Разделы

Цифровизация Бизнес-приложения

Создан эффективный язык программирования для больших данных

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

Язык программирования для больших данных

Исследователи из Лаборатории информатики и искусственного интеллекта (CSAIL) при Массачусетском технологическом институте представили новый язык программирования под названием Milk, ориентированный на работу с разрозненными фрагментами данных в больших массивах.

Недостаток современных ЭВМ

Считается, что современные вычислительные системы не оптимизированы для работы с разрозненными данными. Процесс извлечения информации из оперативной памяти не достаточно быстрый. По этой причине процессоры оснащаются собственной памятью, называемой кэшем. Для того чтобы сократить количество обращений к ОЗУ, процессор считывает память блоками и находит необходимые данные в этих блоках уже в собственном кэше.

Такой подход зарекомендовал себя, когда дело касается вычислительной системы с локальной памятью. Однако если речь идет о сетевой базе данных большого объема, например, хранящей 2 млн фрагментов данных, в которой необходимо найти 20 определенных фрагментов, указанный подход неэффективен. Именно чтобы решить эту проблему и был создан новый язык.

Перехват обращений к ОЗУ

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

Исследователи придумали, как эффективней работать с разрозненными данными

Четырехкратный прирост производительности

Дмитрий Балдин, «РусГидро»: Вынужденный переход на open source приводит к увеличению поверхности кибератак
безопасность

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

Компенсация недостатка существующих архитектур

«Многие современные приложения характеризуются интенсивным потреблением данных. Но наличие разницы между производительностью процессора и оперативной памяти не позволяет этим приложениям эффективно использовать аппаратное обеспечение, — пояснил Матей Захариа (Matei Zaharia), доцент кафеды вычислительной технике в Стэнфордском университете. — Milk позволяет компенсировать этот недостаток, оптимизируя процесс обращения к памяти. При создании нового языка его разработчиками были учтены особенности работы контроллеров памяти и возможности компиляторов». 

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

Александр Бабкин, Газпромбанк: Сейчас иностранные ИБ-решения в Газпромбанке замещены на 65%
безопасность

Добавление нескольких строк кода

Для того чтобы воспользоваться описанными преимуществами, программисту необходимо добавить несколько строк кода ко всем командам обращения к большим массивам данных в своей программе и затем воспользоваться компилятором Milk. Поддерживаются C, Fortran и другие языки программирования, совместимые с технологией OpenMP, через которую осуществляется оптимизация. 

Сергей Попсулин