Новый язык программирования вчетверо ускоряет задачи обработки Больших Данных



Источник: MIT


09:26 16.09.2016 |   4453



Как объясняют создатели языка из МТИ, современные системы оптимизированы для «плотных» данных: при обращении к элементу данных чип загружает в кэш соседние, предполагая, что они тоже вскоре понадобятся. Но Большие Данные обычно разрежены.

Специалисты Лаборатории искусственного интеллекта МТИ представили язык программирования под названием Milk, по сравнению с другими обеспечивающий гораздо более рациональное управление памятью для кода, который работает с элементами данных, разбросанными по обширным срезам.

Как объясняют в МТИ, современные процессоры оптимизированы для плотных данных: при обращении к какому-либо элементу данных чип загружает в кэш соседние, предполагая, что они тоже вскоре понадобятся. Но Большие Данные обычно разреженные — нередко при работе с ними требуется последовательное обращение к элементам данных, могущим находиться довольно «далеко» друг от друга, и кэширование в таких случаях не помогает.

Milk добавляет несколько команд к OpenMP — расширению Си, C++ и Фортрана, помогающему в написании параллельного кода. Вместо загрузки запрашиваемых и соседних данных в кэш команды Milk заставляют процессорное ядро занести адрес данных в локально хранимый список. Когда он достигает некоторой длины, все ядра процессора объединяют такие списки, группируют адреса по принципу соседства и распределяют группы между собой для обработки.

В тестах на распространенных алгоритмах программы на Milk работали вчетверо быстрее, чем на традиционных языках, и по убеждению исследователей, это еще не предел.


Теги: Самое интересное Большие данные Разработка ПО конкурентные вычисления МТИ
На ту же тему: