Intel представил River Trail, расширение к JavaScript для параллельного программирования

Компания Intel представила новый открытый проект River Trail, в рамках которого разработано расширение для языка программирования JavaScript, позволяющее задействовать технику параллельного программирования для создания высокопроизводительных web-приложений. Ключевой особенностью нового проекта является обеспечение возможности значительного повышения производительности приложений без ухода от стандартных web-технологий, используя только специальный набор расширений к JavaScript. Использование в программах River Trail мало чем отличается от создания обычных JavaScript-приложений.

В настоящий момент представлен рабочий прототип River Trail, выполненный в виде дополнения к Firefox с реализацией поддержки параллельного прогрммирования на JavaScript, основанной на плотном задействовании распараллеливания на многоядерных CPU и использовании векторных инструкций SSE/AVX. Для обращения к функциям параллельного программирования подготовлена специальная JavaScript-библиотека, реализующая уровень абстракции ParallelArray для параллельной обработки структур данных. Разработчику предоставляются средства для преобразования обычных массивов, включая пиксельные карты Canvas, в ParallelArray или создания новых объектов для новых данных. В дальнейшем, при работе с массивами ParallelArray можно использовать методы параллельного программирования, такие как map/reduce, комбинирование значений и фильтрация. Все операции синхронизации и работы с блокировками выполняются автоматически.

Использование стандартного JavaScript позволяет комбинировать выполнение требующих интенсивных вычислений функций со стандартными техниками HTML5, такими как Canvas и WebGL, что позволяет добиться более высокой скорости обработки 2D и 3D графики. River Trail гармонично дополняет WebGL, который предоставляет возможности по формированию полноценной 3D-графики, но мало чем может помочь в ситуациях, требующих интенсивных вычислений при формировании поведения объектов графической сцены.

В качестве примера потенциальных возможностей River Trail приводится демонстрационное приложение, производящие симуляцию физических процессов для сцены из 4000 объектов. При использовании только традиционных JavaScript-технологий, скорость отрисовки сцены составляет примерно 3 кадра в секунду, при использовании River Trail производительность приложения удалось поднять до 45 кадров в секунду.

По мнению разработчиков проекта, River Trail позволит приблизить к нативным программам возможности работающих внутри браузера web-приложений, которые станет реальным использовать в таких требующих интенсивных вычислений областях, как обработка фотографий, редактирование видео, симуляция физических процессов и создание современных 3D-игр. Из альтернативных проектов, нацеленных на создание высокопроизводительных приложений, работающих внутри браузера, можно отметить WebCL - JavaScript-интерфейс к стандарту OpenCL (Open Computing Language), определяющему расширения для параллельного программирования, и развиваемый компанией Google проект Native Client, позволяющий выполнять в окне web-браузера написанные на C и С++ приложения, ограниченные в специальном изолированном окружении.

Разработка River Trail является внутренним проектом Intel, тем не менее интерес к данному проекту уже продемонстрировали разработчики из сообщества Mozilla. В частности, Брэндон Эйх (Brendan Eich), создатель языка JavaScript, занимающий пост технического директора Mozilla Corporation, заявил, что он намерен добиться включения River Trail в состав набора спецификаций ECMAScript.

©  OpenNet