Опыт применения механизма областей для поэтапного распараллеливания программных комплексов с помощью системы SAPFOR

Авторы

DOI:

https://doi.org/10.26089/NumMet.v21r432

Ключевые слова:

SAPFOR (System FOR Automated Parallelization), автоматизация распараллеливания, параллельные вычисления, DVM (Distributed Virtual Memory), инкрементальное распараллели- вание для кластера

Аннотация

Одна из основных сложностей разработки параллельной программы для кластера — необходимость принятия глобальных решений по распределению данных и вычислений с учетом свойств всей программы, а затем выполнения кропотливой работы по модификации программы и ее отладки. Большой объем программного кода, а также многомодульность, многовариантность и многоязыковость, затрудняют принятие решений по согласованному распределению данных и вычислений. Опыт использования предыдущей системы САПФОР показал, что при распараллеливании на кластер больших программ и программных комплексов необходимо уметь распараллеливать их постепенно, начиная с наиболее времяемких фрагментов и постепенно добавляя новые фрагменты, пока не достигнем желаемого уровня эффективности параллельной программы. С этой целью предыдущая система была полностью переработана, и на ее основе была создана новая система SAPFOR (System FOR Automated Parallelization). В данной статье будет рассмотрен опыт применения метода частичного распараллеливания, идея которого заключается в том, что распараллеливанию подвергается не вся программа целиком, а ее части (области распараллеливания) — в них заводятся дополнительные экземпляры требуемых данных, производится распределение этих данных и соответствующих им вычислений.

Автор

А. С. Колганов

Институт прикладной математики имени М.В. Келдыша РАН (ИПМ РАН),
Миусская пл., 4, 125047, Москва
• научный сотрудник

Библиографические ссылки

  1. NVidia CUDA Zone. https://developer.nvidia.com/cuda-zone.
  2. Колганов А.С., Катаев Н.А., Титов П.А. Автоматизированное распараллеливание задачи моделирования распространения упругих волн в средах со сложной 3D геометрией поверхности на кластеры разной архитектуры // Вестн. Уфимского гос. авиацион. техн. ун-та. 2017. 21, № 3. 87–96.
  3. DVM-система. http://dvm-system.org.
  4. Клинов М.С., Крюков В.А. Автоматическое распараллеливание Фортран-программ. Отображение на кластер // Вестн. Нижегородского гос. ун-та им. Н.И. Лобачевского. 2009. № 2, 128–134.
  5. Бахтин В.А., Жукова О.Ф., Катаев Н.А., Колганов А.С., Крюков В.А., Поддерюгина Н.В., Притула М.Н.,Савицкая О.А., Смирнов А.А. Автоматизация распараллеливания программных комплексов // Тр. XVIII Всеросс. научной конференции “Научный сервис в сети Интернет”. М.: ИПМ РАН, 2016. 76–85.
  6. Бахтин В.А., Жукова О.Ф., Катаев Н.А., Колганов А.С., Королев Н.Н., Крюков В.А., Кузнецов М.Ю., Поддерюгина Н.В., Притула М.Н., Савицкая О.А., Смирнов А.А. Инкрементальное распараллеливание для кластеров в системе САПФОР // Тр. XIX Всеросс. научной конференции “Научный сервис в сети Интернет”. М. :ИПМ РАН, 2017. 48–52.
  7. Колганов А.С., Яшин С.В. Автоматическое инкрементальное распараллеливание больших программных комплексов с помощью системы SAPFOR // Тр. Междунар. научной конференции “Параллельные вычислительные технологии” (ПаВТ’2019). Челябинск: Издательский центр ЮУрГУ, 2019. 275–287.
  8. Banerjee P., Chandy J.A., Gupta M., et al. An overview of the PARADIGM compiler for distributed-memory multicomputers,” http://www.cs.cmu.edu/∼745/papers/paradigm.pdf.
  9. Система BERT77: automatic and efficient parallelizer for FORTRAN. http://www.sai.msu.su/sal/C/3/BERT_77.html.
  10. Система ParaWise. http://www.parallelsp.com/.
  11. Описание модели DVMH. URL: http://dvm-system.org/static_data/docs/FDVMH-user-guide-ru.pdf.
  12. Колганов А.С., Королев Н.Н. Статический анализ приватных переменных в системе автоматизированного распараллеливания Фортран-программ // Тр. Междунар. научной конференции “Параллельные вычислительные технологии” (ПаВТ’2018). Челябинск: Издательский центр ЮУрГУ, 2018. 286–294.
  13. Тесты NAS parallel benchmarks. https://www.nas.nasa.gov/publications/npb.html.
  14. Bailey D.H., Barton J.T. The NAS kernel benchmark program. Report TM-86711. Moffett Field: NASA Ames Research Center, 1985.
  15. Pulliam T.H. Efficient solution methods for the Navier–Stokes Equations. Rhode-Saint-Gen´ese: Von K´arm´an Inst. for Fluid Dynamics, 1986.
  16. Jameson A., Schmidt W., Turkel E. Numerical solution of the Euler equations by finite volume methods using Runge–Kutta time stepping schemes // AIAA Paper 81-1259. 1981. doi: 10.2514/6.1981-1259.
  17. The NAS Parallel Benchmarks. https://www.nas.nasa.gov/assets/pdf/techreports/1994/rnr-94-007.pdf.
  18. Суперкомпьютер K60. https://keldysh.ru/.
  19. Распараллеленные тесты NAS с помощью CUDA. https://www.tu-chemnitz.de/informatik/PI/sonstiges/downloads/npb-gpu/index.php.en.
  20. Распараллеленные тесты NAS с помощью OpenCL. http://aces.snu.ac.kr/software/snu-npb/.

Загрузки

Опубликован

2020-11-12

Как цитировать

Колганов А. С. Опыт применения механизма областей для поэтапного распараллеливания программных комплексов с помощью системы SAPFOR // Вычислительные методы и программирование. 2020. 21. 388-404. doi 10.26089/NumMet.v21r432

Выпуск

Раздел

Параллельные программные средства и технологии