Платим блогерам
Редакция
Новости Hardware GreenCo
В стремлении к идеальному.

реклама

Переход от гонки за частотами к многоядерности вызвал необходимость в углублённой разработке алгоритмов, направленных на параллелизм в вычислениях. Особенно это стало актуально с началом эры GPGPU-вычислений, для которых программирование на OpenCL становится всё более популярным подходом. Но это не исключает того, что отдельные разработчики пытаются разработать свой "идеальный" язык программирования для многоядерных сред.

Как сообщает сайт EE Times, группа студентов и аспирантов Лаборатории Искусственного Интеллекта и Компьютерных Наук Массачусетского Технологического Института (MIT CSAIL) предложила новый язык программирования для обработки изображений в многоядерной среде. Язык, который назвали Halide (от общего названия двухкомпонентных галогенидных соединений, что станет ясно ниже), решает сразу две главных задачи. Во-первых, он проще в написании и проверке кода, чем современные языки для обработки изображений. Во-вторых, новый язык способен автоматически оптимизировать код, исключая трудоёмкие ручные операции.

реклама

Согласно проведённым тестам, переписанные на Halide программы оказались примерно на одну треть длиннее программ, написанных опытными программистами на современных языках, но они показали выигрыш в скорости расчётов в 2, 3 и даже 6 раз. В отдельном случае расчёты на Halide оказались в 70 раз быстрее. Правда, при значительном превышении длины кода.

Секрет нового языка, как говорят разработчики, кроется в его двухмодульной основе. Программа на Halide состоит из двух секций. В одной секции описан общий алгоритм вычислений, а в другой — планировщик процесса. Причём команды в планировщике можно менять на ходу без модификации кода всей программы. Это открывает путь к экспериментам с новыми идеями, которые для проверки не потребуют переписывать программу заново. Кроме того, меняя только блок планировщика (в котором расписаны шаги по выполнению той или иной последовательности команд на конкретных ядрах), можно организовать перенос расчётов на любую аппаратную платформу.

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

Показать комментарии (23)

Сейчас обсуждают