Разработка и исследование методов параллельной обработки сверхбольших баз данных на перспективных многоядерных процессорах

Втр, 05/09/2017 - 20:57

В настоящее время для решения задач в большинстве сфер человеческой жизни необходимо применять концепцию больших данных для получения новой информации о происходящих явлениях, и выявлении скрытых закономерностей. Примерами таких задач могут служить медицинские исследования по выявлению диагноза различных заболеваний, проблема использования ресурсов - воды, электричества; задачи, связанные с автоматизацией промышленности и повышением эффективности производства и т.д.
Основными характеристиками “больших данных” является большой объем и требования к скорости обработки. По оценке аналитической компании IDC, количество данных в мире удваивается каждые два года и к 2020 г. достигнет 44 Зеттабайт, из которых порядка 37% нуждается в обработке и анализе.
Для обработки больших данных могут применяться NoSQL СУБД. Данные СУБД позволяют эффективно добавлять, удалять, обновлять и получать данные по определенным простым критериям. При этом, обработка сверхбольших объемов данных возможна только при работе на вычислительном кластере, состоящем из большого количества вычислительных узлов.
В настоящее время увеличение производительности вычислительных систем производится, в основном, за счет роста количества вычислительных устройств и их параллельного использования. Так, например, компания NVIDIA выпускает графические ускорители, оснащенные 1536 вычислительными процессорами. Компания Intel в 2012 году предложила аналогичное решение – многоядерные сопроцессоры KNC, оснащенные 61 вычислительным ядром с архитектурой x86, при этом каждое ядро может одновременно обрабатывать 4 вычислительных потока.
В этом году компания Intel выпустила архитектуру KNL – развитие архитектуры KNС, которая используется в виде центрального процессора, который оснащен 72 вычислительным ядром и может обрабатывать 288 потоков одновременно. (расписать про еще подобные процессоры). Такой тип архитектуры получил название many-core. (многоядерные процессоры), в отличие от традиционной архитектуры multi-core (мультиядерные процессоры), которые содержат до 20 вычислительных ядер и могут обрабатывать до 32 потоков одновременно.
Предлагаемая библиотека в виде колоночного сопроцессора позволяет производить эффективную обработку сверхбольших баз данных с использованием многоядерных процессоров.
Библиотека встраивается в СУБД с открытым исходным кодом. Библиотека организует хранение часто используемых данных в виде колоночных индексов в кластерной системе, что позволит эффективно выполнять запросы класса OLTP со скоростью, характерной для NoSQL СУБД, при этом, сохраняя функции реляционных СУБД по анализу данных.