Информационная система "Конференции"



IV Всероссийская конференция молодых ученых по математическому моделированию и информационным технологиям

Красноярск, Академгородок, 3-5 ноября 2003 года

Тезисы докладов


Информационные технологии

Методы преобразования функционально-параллельных программ в их последовательные аналоги (на примере языка программирования Пифагор)

Конотопский Р.

Красноярский Государственный Технический Университет (Красноярск)

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

Рассмотрим пример скалярного произведения двух векторов одинаковой длины. Аргументом функции VVMult является двухэлементный список данных: ((x1, x2, ... xn), (y1, y2, ... yn)). Функциональная программа на языке Пифагор будет организована следующим образом:

// Функция, возвращающая произведение двух векторов
VVMult << funcdef Param { return << Param :# :[] :* :(.) }; //Пример аргумента: ((1,2),(4,5))

Параллельное умножение элементов транспонированного вектора может рассматриваться как реализация бинарной древовидной свертки, что позволяет заменить функцию над параллельным списком аргументов [x1, x2, ... , xn]:F, функцией ForAll, использующей правую рекурсию, которая может легко заменяется итерацией.

ForAll << funcdef Param // аргумент Param содержит 2 параметра
{ Len< p< op< return<< [((Len,1):[<,=,>]):?]^ // в зависимости от соотношения м/ду Len и 1 выполняется соответствующее действие:
( {p:[]}, // при Len<1 возвращается значение p
{p:[]:op}, // при Len=1 возвращается результат применения предопределенной функции op к списку p
{ block{ [p:1:op,(p:-1,op):ForAll:[]]>>break; } } // при Len>1 рекурс. вызов функции ForAll для обработки списка p
):.
};

После внесенных изменений функция _VVMult будет иметь следующий вид:
VVMultRecurs << funcdef Param { return<<(Param:#,*):ForAll:(.); }

Подобным образом можно осуществить и замену конструкций, реализующих массовый параллелизм.

Примечание. Тезисы докладов публикуются в авторской редакции



Ваши комментарии
Обратная связь
[ICT SBRAS]
[Головная страница]
[Конференции]

© 1996-2000, Институт вычислительных технологий СО РАН, Новосибирск
© 1996-2000, Сибирское отделение Российской академии наук, Новосибирск