Как стать автором
Обновить

StreamIt — новый язык для параллельного программирования

Время на прочтение 1 мин
Количество просмотров 1.2K
Специалисты из Массачусетского технологического института разработали новый язык параллельного программирования StreamIt. Язык в первую очередь ориентирован на программирование потоковых приложений, таких как потоковое видео и аудио, системы мобильной связи, шифрование и дешифрование потоков информации в реальном времени. Подробная информация — на сайте проекта StreamIt.

Разработка языка продолжается уже несколько лет. В настоящее время с сайта можно скачать компилятор для версии StreamIt 2.1. Также можно скачать и установить Exlipse Development Plugin для ведения разработки в среде Eclipse.
Идеология разработки на StreamIt примерно следующая. Программист конструирует граф потока, состоящий из блоков с одним входом и выходом, описывает функции блоков-атомов и структуру составных блоков. Компилятор генерирует код для каждого блока и оптимизирует граф потока под целевую архитектуру вычислительной системы.
Алгоритм работы компилятора основан на концепции потока данных. Данные проходят через конвейер, состоящий из функций. Компилятор определяет, какие функции независимы друг от друга, и размещает их выполнение на разных процессорах.
В текущей реализации на выходе компилятор генерирует Java-код.
По синтаксису язык напоминает C и Java. Вот пример с фрагментом кода:

float->float filter LowPassFilter (int N, float freq) {
float[N] weights;
init {
weights = calcWeights(N, freq);
}
work peek N pop 1 push 1 {
float result = 0;
for (int i=0; i<weights.length; i++) {
result += weights[i] * peek(i);
}
push(result);
pop();
}
}
Теги:
Хабы:
+4
Комментарии 5
Комментарии Комментарии 5

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн
PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн