Интеграция приложения Tachyon с системой параллельного программирования OpenTS
Автор: Роганов Владимир Александрович, Осипов Валерий Иванович, Матвеев Герман Анатольевич
Журнал: Программные системы: теория и приложения @programmnye-sistemy
Рубрика: Программное и аппаратное обеспечение распределенных и суперкомпьютерных систем
Статья в выпуске: 4 (35) т.8, 2017 года.
Бесплатный доступ
Работа описывает интеграцию приложения Tachyon из библиотеки Intel® Threading Building Blocks с системой параллельного программирования OpenTS
ID: 143164282 Короткий адрес: https://sciup.org/143164282
Текст ред. заметки Интеграция приложения Tachyon с системой параллельного программирования OpenTS
Программа Tachyon, реализующая алгоритм трассировки лучей, предназначена для рендеринга изображений. Исходное описание изображения описано на языке описания сцен в текстовом формате. В исходном файле описывается расположение и размер объектов, источника света, расположение и ориентация камеры. Приложение создает изображение, содержащее тени и отражения объектов. Приложение Tachyon разработанное Джоном Е. Стоуном [1] , было включено в бенчмарк SPEC MPI [2] , затем в библиотеку Intel ○ R Threading Building Blocks [3] .
В данной статье описывается интеграция приложения Tachyon с системой параллельного программирования OpenTS [4 –7] , приведены результаты сравнительных испытаний с приложением PovRay и реализациями Tachyon на OpenMP, Cilk и Intel ○ R TBB. Для интеграции была выбрана последовательная версия приложения из Intel ○ R Threading Building Blocks. В качестве модели использовалось изображение, описанное в файле (модели) balls.dat. После работы последовательной версии приложения было создано изображение на рис. 1. Испытания проводились на кластере, работающем под операционной системой Linux.
Параллельная версия приложения tachyon.with_OpenTS имеет дополнительные параметры, количество строк и количество столбцов. Запускается оно так:
Shel l
-
1 mpirun --np N./tachyon.with_OpenTS NRows NColumns, где N = NRows*NColumns
Например, если запущена команда
○c В. А. Роганов, В. И. Осипов, Г. А. Матвеев, 2017
○c Институт программных систем имени А. К. Айламазяна РАН , 2017
○c Программные системы: теория и приложения, 2017

Рис. 1. Последовательная версия изображения 7381 сфер «Sphereflake»
Shel l
1 mpirun --np 6./tachyon.with_OpenTS 2 3
то параллельно создаются 6 кусков изображения на рис. 2
Интеграция приложения состоит в распараллеливании вложенного цикла for в функции draw_task() .
Вложенный цикл for последовательной версии:
T-System
-
1 for (int y = starty; y < stopy; y++)
-
2 for (int x = startx; x < stopx; x++)
-
3 Рендерить_пиксель(x,y);

Рис. 2. Результат работы на 6 вычислительных узлах приложения tachyon.with_OpenTS. Каждый узел параллельно создает только часть изображения (всего 6 частей)
Здесь startx , stopx , starty , stopy — границы изображения по координатам х и у .
Вложенный цикл for параллельной версии приложения tachyon.with_OpenTS:
T-System
1 for (int y = y1; y < y2; y++)
2 for (int x = x1; x < x2; x++)
3 Рендерить_пиксель(x,y);
Здесь

Количество узлов вычислительной системы
Рис. 3. Графики time%_T для приложений tachyon и povray, интегрированных с OpenTS
PovRay
Tachyon
T-System
-
1 int y1 = rowID * stopy / NRows;
-
2 int y2 = (rowID + 1) * stopy / NRows;
-
3 int x1 = columnID * stopx / NColumns;
int x2 = (columnID + 1) * stopx / NColumns;
где
T-System
-
1 int columnID = threadID / NRows;
-
2 int rowID = threadID % NRows;
threadID – номер текущего вычислительного узла.
Приложение tachyon.with_OpenTS параллельно запускает N задач, по одной задаче на каждом вычислительном узле. Каждая из задач создает свою часть изображения и записывает ее в файл формата bmp.
Ранее [8] была произведена интеграция системы параллельного программирования OpenTS с приложением PovRay, реализующим алгоритм трассировки лучей. Результаты сравнительных испытаний приложений Tachyon и PovRay, интегрированных с OpenTS, представлены на рис. 3 .

Рис. 4. Зависимость времени работы от количества узлов вычислительной системы для приложений tachyon.with_OpenMP, tach y on.withOpenTS, t a chyon.withtbb и tachyon.withCilk
Здесь time%_T (W) = time_T (W Vtim^C , где time_C , time_T (W) — времена выполнения в секундах C-реализации и T-реализации соответственно, зависящие от числа процессоров N .
Из графика видно, что алгоритмы распараллеливания приложений Tachyon и PovRay имеют одинаковую эффективность.
График зависимости времени работы приложения от количества вычислительных узлов изображен на рис. 4 . На этом же графике приведены результаты испытаний для реализаций OpenMP, Cilk и Intel ○ R TBB.
Из графика видно, что эффективности алгоритмов распараллеливания приложения Tachyon в реализациях на OpenMP, Cilk, Intel ○ R TBB и OpenTS близки друг к другу.
Список литературы Интеграция приложения Tachyon с системой параллельного программирования OpenTS
- Tachyon Parallel Multiprocessor Ray Tracing System, URL: http://jedi.ks.uiuc.edu/~johns/raytracer/
- SPEC MPIR 2007 benchmark suite, URL: https://www.spec.org/mpi2007/
- IntelR Threading Building Blocks, URL: https://software.intel.com/enus/intel-tbb
- С. М. Абрамов, В. А. Васенин, Е. Е. Мамчиц, В. А. Роганов, А. Ф. Слепухин. Динамическое распараллеливание программ на базе параллельной редукции графов. Архитектура программного обеспечения новой версии T-системы//Научная сессия МИФИ-2001, Сборник научных трудов. Т. 2 (Москва, 22-26 января 2001 г.). С. 234-235.
- С. М. Абрамов, А. А. Кузнецов, В. А. Роганов. Кроссплатформенная версия T-системы с открытой архитектурой//Труды Международной научной конференции "Параллельные вычислительные технологии (ПаВТ'2007)". Т. 1 (Челябинск, 29 января-2 февраля 2007 г.), Изд. ЮУрГУ, Челябинск. С. 115-121.
- С. М. Абрамов, А. А. Кузнецов, В. А. Роганов. Кроссплатформенная версия T-системы с открытой архитектурой//Вычислительные методы и программирование, Т. 8, № 1(2). 2007. С. 175-180, URL: http://num-meth.srcc.msu.ru/zhurnal/tom_2007/v8r203.html
- OpenTS. Руководство программиста, http://www.opents.net/index.php/ru/ruk-progr.
- С. М. Абрамов, И. М. Загоровский, М. Р. Коваленко, Г. А. Матвеев, В. А. Роганов. Миграция от MPI к платформе OpenTS: эксперимент с приложениями PovRay и ALCMD//Международная конференция "Программные системы: теория и приложения". Т. 1 (Переславль-Залесский, октябрь 2006), Наука. Физматлит, М., 2006. С. 265-275.