Интеграция приложения 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.
Еще
Ред. заметка