Автоматизация распараллеливания программ для многоядерных процессоров с распределенной локальной памятью

Main Article Content

Антон Павлович Баглий
Борис Яковлевич Штейнберг

Аннотация

В статье идет речь о создании распараллеливающих компиляторов для вычислительных систем с распределенной памятью. Промышленные распараллеливающие компиляторы распараллеливают программы для вычислительных систем с общей памятью. Преобразование последовательных программ для вычислительных систем с распределенной памятью требует разработки дополнительных функций. Это становится актуальным для перспективных систем на кристалле с сотнями и более ядер. В терминах графа информационных связей сформулировано условие распараллеливания программного цикла на вычислительную систему с распределенной памятью.

Article Details

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

1. Ammaev S.G., Gervich L.R., Steinberg B.Y. Combining parallelization with overlaps and optimization of cache memory usage // PaCT 2017: Parallel Computing Technologies, Lecture Notes in Computer Science. 2017. Vol. 10421. P. 257–264.
2. Gong Z., Chen Z., Szaday Z., Wong D., Sura Z., Watkinson N., Maleki S., Padua D., Veidenbaum A., Nicolau A. An empirical study of the effect of source-level loop transformations on compiler stability // Proceedings of the ACM on Programming Languages. 2018. P. 1–29.
3. Гервич Л.Р., Кравченко Е.Н., Штейнберг Б.Я., Юрушкин М.В. Автоматизация распараллеливания программ с блочным размещением данных // Сибирский журнал вычислительной математики. 2015. Т. 18. №1. C. 41–53.
4. Bondhugula U. Automatic distributed-memory parallelization and codegeneration using the polyhedral framework // Technical report ISc-CSA-TR-2011-3. 2011. 10 p.
5. DVM-система разработки параллельных программ. URL: http://dvm-system.org/ru/about/, дата обращения 26.03.2022.
6. Корнеев В.В. Параллельное программирование // Программная инженерия. 2022. Т. 13. № 1. С. 3–16.
7. Krivosheev N.M., Steinberg B.Ya. Algorithm for searching minimum inter-node data transfers. // «Procedia Computer Science», 10th International Young Scientist Conference on Computational Science. YSC 2021. 1–3 July 2021. P. 306–313.
8. Kwon D., Han S., Kim H. MPI backend for an automatic parallelizing compiler // Proceedings Fourth International Symposium on Parallel Architectures, Algorithms, and Networks (I-SPAN’99). 06.1999. P. 152–157. https://doi.org/10.1109/ISPAN.1999. 778932.
9. Epiphany-V: A 1024-core 64-bit RISC processor. URL: https://parallella.org/2016/10/05/epiphany-v-a-1024-core-64-bit-risc-processor, дата обращения 26.03.2022.
10. SoC Esperanto. URL: https://www.esperanto.ai/technology, дата обращения 26.03.2022.
11. Бахтин В.А., Захаров Д.А., Колганов А.С., Крюков В.А., Поддерюгина Н.В., Притула М.Н. Решение прикладных задач с использованием DVM-системы // Вестник ЮУрГУ. Серия: Вычислительная математика и информатика. 2019. Т. 8. № 1. С. 89–106.
12. Прангишвили И.В., Виленкин С.Я., Медведев И.Л. Параллельные вычислительные системы с общим управлением. М.: Энергоатомиздат, 1983. 312 с.
13. Процессор НТЦ «Модуль». URL: https://www.cnews.ru/news/top/2019-03-06_svet_uvidel_moshchnejshij_rossijskij_nejroprotsessor, дата обращения 26.03.2022.
14. Штейнберг Б.Я. Блочно-аффинные размещения данных в параллельной памяти // Информационные технологии. 2010. №6. C. 36–41.
15. Штейнберг Б.Я. Оптимизация размещения данных в параллельной памяти. Ростов-на-Дону: Изд-во Южного федерального университета, 2010. 255 с.
16. Vasilenko A., Veselovskiy V., Metelitsa E., Zhivykh N., Steinberg B.,
Steinberg O. Precompiler for the ACELAN-COMPOS Package Solvers // In: Malyshkin V. (eds). Parallel Computing Technologies. PaCT 2021. Lecture Notes in Computer Science. Vol. 12942. P. 103–116. Springer, Cham. https://doi.org/10.1007/978-3-030-86359-3_8
17. Штейнберг О.Б. Минимизация количества временных массивов в задаче разбиения циклов // Известия ВУЗов. Северо-Кавказский регион. Естественные науки. 2011. №5. C. 31–35.
18. SambaNova Launches Second-Gen DataScale System. URL: https://www.hpcwire.com/2022/09/14/sambanova-launches-second-gen-datascalesystem, дата обращения 20.01.2023.
19. Елизаров Г.С., Конотопцев В.Н., Корнеев В.В. Специализированные большие интегральные схемы для реализации нейросетевых выводов // XХII международная конференция «Харитоновские тематические научные чтения «Суперкомпьютерное моделирование и искусственный интеллект»: сб. трудов / Под ред. Р.М. Шагалиева. Саров: ФГУП «РФЯЦ-ВНИИЭФ», 2022. С. 181–184.
20. Корнеев В.В. Направления повышения производительности нейросетевых вычислений // Программная инженерия. 2020. Т. 11, № 1. С. 21–25. https://doi.org/10.17587/prin.11.21–25
21. Yen I.E., Xiao Zh., Xu D. S4: a High-sparsity, High-performance AI Accelerator // arXiv:2207.08006v1 [cs.AR] 16 Jul 2022
22. Gale T., Elsen E., Hooker S. The state of sparsity in deep neural networks // arXiv preprint arXiv:1902.09574, 2019
23. Intelligence Processing Unit. URL: https://www.graphcore.ai/products/ipu. (accessed: 20.01.2023)
24. Jia Zh., Tillman B., Maggioni M., Scarpazza D.P. Dissecting the Graphcore IPU Architecture via Microbenchmarking // Technical Report. December 7, 2019. arXiv:1912.03413v1 [cs.DC] 7 Dec. 2019. 91 p.