Розроблено програмний засіб для оптимізації обчислень, що дозволяє в напівавтоматичному режимі здійснити паралелізацію циклічних операторів програми для виконання обчислень на графічних прискорювачах. Здійснено буферизацію даних, синхронізовану із виконанням основного циклу, та побудований за допомогою системи переписувальних правил TermWare засіб інтегровано з інструментарієм проектування та синтезу програм (ІПС). Проведено випробування розробленої системи на гетерогенному мультиядерному кластері.
Распараллеливание циклических операторов является давно известной проблемой параллельного программирования. С широким использованием графических ускорителей для вычислительных задач возникла новая постановка данной проблемы для этого класса мультиядерных систем. Целью данной работы является усовершенствование механизма преобразования операторов цикла для его параллелизации для выполнения на графическом ускорителе. Разработано программное средство для оптимизации вычислений, которое позволяет в полуавтоматическом режиме осуществлять параллелизацию циклических операторов программы. Осуществлена буферизация данных, синхронизированная с выполнением основного цикла, и с помощью системы переписывающих правил TermWare построено средство, которое интегрировано с инструментарием проектирования и синтеза программ ИПС. Проведены испытания разработанной системы на гетерогенном мультиядерном кластере. Выполнено сравнение с известной системой параллелизации Par4All, в результате которого выявлены преимущества разработанной системы в плане быстродействия и возможности обработки объёмов данных, которые превышают объём памяти графического ускорителя, а также возможности использования нескольких ускорителей одновременно. Созданная система применена для распараллеливания последовательного цикла, входящего в состав программы численного прогнозирования погоды.
Parallelization of loop operators is a long standing problem of parallel programming. The widespread use of graphics processing units for computational tasks has resulted in the new statement of the mentioned problem for this class of multicore systems. The purpose of this work is to improve the mechanism of transformation of cyclic operators for loop parallelization for execution on a graphics processing unit. Software tool for computation optimization that allows to parallelize cyclic operators semi automatically was developed. Data bufferization synchronized with main loop execution was implemented, and the software tool using the rewriting rules system TermWare was built and integrated with the toolkit for design and synthesis of programs IDS. The developed system was tested using heterogeneous multicore cluster. The advantages of the developed system in comparison with well-known parallelization system Par4All consist in processing speed and the possibility of processing of data amounts exceeding the amount of memory of a graphics processing unit, and also the ability to use several graphics processing units simultaneously. The developed system was applied for parallelization of a serial loop, which is the part of a numerical weather forecasting program.