<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "JATS-journalpublishing1-3.dtd">
<article article-type="research-article" dtd-version="1.3" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:lang="ru"><front><journal-meta><journal-id journal-id-type="publisher-id">ellibs</journal-id><journal-title-group><journal-title xml:lang="ru">Электронные библиотеки</journal-title><trans-title-group xml:lang="en"><trans-title>Russian Digital Libraries Journal</trans-title></trans-title-group></journal-title-group><issn pub-type="epub">1562-5419</issn><publisher><publisher-name>Казанский (Приволжский) федеральный университет</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.26907/1562-5419-2021-24-1-157-183</article-id><article-id custom-type="elpub" pub-id-type="custom">ellibs-268</article-id><article-categories><subj-group subj-group-type="heading"><subject>Research Article</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="ru"><subject>Статьи</subject></subj-group></article-categories><title-group><article-title>Средства интерактивного взаимодействия с пользователем в системе SAPFOR</article-title><trans-title-group xml:lang="en"><trans-title>Interaction with the User in the SAPFOR System</trans-title></trans-title-group></title-group><contrib-group><contrib contrib-type="author" corresp="yes"><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Катаев</surname><given-names>Н. А.</given-names></name><name name-style="western" xml:lang="en"><surname>Kataev</surname><given-names>N. A.</given-names></name></name-alternatives><email xlink:type="simple">kataev_nik@mail.ru</email></contrib></contrib-group><pub-date pub-type="collection"><year>2021</year></pub-date><pub-date pub-type="epub"><day>28</day><month>02</month><year>2021</year></pub-date><volume>24</volume><issue>1</issue><fpage>157</fpage><lpage>183</lpage><permissions><copyright-statement>Copyright &amp;#x00A9; Катаев Н.А., 2021</copyright-statement><copyright-year>2021</copyright-year><copyright-holder xml:lang="ru">Катаев Н.А.</copyright-holder><copyright-holder xml:lang="en">Kataev N.A.</copyright-holder><license xml:lang="ru" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>Данная работа распространяется под лицензией Creative Commons Attribution 4.0.</license-p></license><license xml:lang="en" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>This work is licensed under a Creative Commons Attribution 4.0 License.</license-p></license></permissions><self-uri xlink:href="https://ellibs.elpub.ru/jour/article/view/268">https://ellibs.elpub.ru/jour/article/view/268</self-uri><abstract><p>Автоматизация параллельного программирования затрагивает различные этапы в разработке параллельной программы, начиная от профилирования исходной программы, ее преобразования и приведения к виду, допускающему эффективное распараллеливание, и заканчивая построением параллельной версии программы и ее последующей оптимизацией. Немалое значение имеет выбор целевой модели параллельного программирования, с одной стороны, позволяющей задействовать разнообразие существующих на данный момент аппаратных ресурсов, а с другой, упрощающей разработку автоматизированных средств и позволяющей пользователю изучить решения, принимаемые системой автоматизированного распараллеливания. Система SAPFOR (System FOR Automated Parallelization) объединяет различные подходы, направленные на автоматизацию программирования, и позволяет пользователю принимать активное участие в процесс распараллеливания программ. Кроме того, распараллеливание выполняется в модели DVMH, позволяющей разрабатывать эффективные параллельные программы для гетерогенных вычислительных кластеров.


В настоящей статье рассмотрен подход к автоматизированному распараллеливанию программ, реализованный в системе SAPFOR. Отдельное внимание уделено архитектуре системы и реализации подсистемы интерактивного взаимодействия с пользователем. Рассмотрено применение интерактивной оболочки в процессе распараллеливания и приведены результаты распараллеливания некоторых программ из набора NAS Parallel Benchmarks 3.3.1 c ручным распараллеливанием, выполненным с помощью OpenCL.
</p></abstract><trans-abstract xml:lang="en"><p>Automation of parallel programming is important at any stage of parallel program development. These stages include profiling of the original program, program transformation, which allows us to achieve higher performance after program parallelization, and, finally, construction and optimization of the parallel program. It is also important to choose a suitable parallel programming model to express parallelism available in a program. On the one hand, the parallel programming model should be capable to map the parallel program to a variety of existing hardware resources. On the other hand, it should simplify the development of the assistant tools and it should allow the user to explore the parallel program the assistant tools generate in a semi-automatic way. The SAPFOR (System FOR Automated Parallelization) system combines various approaches to automation of parallel programming. Moreover, it allows the user to guide the parallelization if necessary. SAPFOR produces parallel programs according to the high-level DVMH parallel programming model which simplify the development of efficient parallel programs for heterogeneous computing clusters. This paper focuses on the approach to semi-automatic parallel programming, which SAPFOR implements. We discuss the architecture of the system and present the interactive subsystem which is useful to guide the SAPFOR through program parallelization. We used the interactive subsystem to parallelize programs from the NAS Parallel Benchmarks in a semi-automatic way. Finally, we compare the performance of manually written parallel programs with programs the SAPFOR system builds.
</p></trans-abstract><kwd-group xml:lang="ru"><kwd>анализ программ</kwd><kwd>преобразование программ</kwd><kwd>автоматизация распараллеливания</kwd><kwd>графический интерфейс пользователя</kwd></kwd-group><kwd-group xml:lang="en"><kwd>SAPFOR</kwd><kwd>DVM</kwd><kwd>LLVM</kwd></kwd-group></article-meta></front><back><ref-list><title>References</title><ref id="cit1"><label>1</label><citation-alternatives><mixed-citation xml:lang="ru">Grosser T., Groesslinger A., Lengauer C. Polly – performing polyhedral optimizations on a low-level intermediate representation // Parallel Processing Letters. 2012. Vol. 22, No. 04. 1250010. https://doi.org/10.1142/S0129626412500107.</mixed-citation><mixed-citation xml:lang="en">Grosser T., Groesslinger A., Lengauer C. Polly – performing polyhedral optimizations on a low-level intermediate representation // Parallel Processing Letters. 2012. Vol. 22, No. 04. 1250010. https://doi.org/10.1142/S0129626412500107.</mixed-citation></citation-alternatives></ref><ref id="cit2"><label>2</label><citation-alternatives><mixed-citation xml:lang="ru">Grosser T., Hoefler T. Polly-ACC Transparent compilation to heterogeneous hardware // ICS '16: Proceedings of the 2016 International Conference on 373 Supercomputing June 2016. P. 1–13. https://doi.org/10.1145/2925426.2926286.</mixed-citation><mixed-citation xml:lang="en">Grosser T., Hoefler T. Polly-ACC Transparent compilation to heterogeneous hardware // ICS '16: Proceedings of the 2016 International Conference on 373 Supercomputing June 2016. P. 1–13. https://doi.org/10.1145/2925426.2926286.</mixed-citation></citation-alternatives></ref><ref id="cit3"><label>3</label><citation-alternatives><mixed-citation xml:lang="ru">Bondhugula U., Hartono A., Ramanujam J., Sadayappan P. A practical automatic polyhedral parallelizer and locality optimizer // ACM SIGPLAN Notices. 2008. Vol. 43, No. 6. P. 101–113. https://doi.org/10.1145/1379022.1375595.</mixed-citation><mixed-citation xml:lang="en">Bondhugula U., Hartono A., Ramanujam J., Sadayappan P. A practical automatic polyhedral parallelizer and locality optimizer // ACM SIGPLAN Notices. 2008. Vol. 43, No. 6. P. 101–113. https://doi.org/10.1145/1379022.1375595.</mixed-citation></citation-alternatives></ref><ref id="cit4"><label>4</label><citation-alternatives><mixed-citation xml:lang="ru">Vandierendonck H., Rul S., De Bosschere K. The Paralax Infrastructure: Automatic Parallelization with a Helping Hand // Proceedings of the 19th international conference on Parallel architectures and compilation techniques (PACT'10). 2010. P. 389–400. https://doi.org/10.1145/1854273.1854322.</mixed-citation><mixed-citation xml:lang="en">Vandierendonck H., Rul S., De Bosschere K. The Paralax Infrastructure: Automatic Parallelization with a Helping Hand // Proceedings of the 19th international conference on Parallel architectures and compilation techniques (PACT'10). 2010. P. 389–400. https://doi.org/10.1145/1854273.1854322.</mixed-citation></citation-alternatives></ref><ref id="cit5"><label>5</label><citation-alternatives><mixed-citation xml:lang="ru">Baghdadi R., Beaugnon U., Cohen A., Grosser T., Kruse M., Reddy C., Verdoolaege S., Betts A., Donaldson A.F., Ketema J., Absar J., Haastregt S., Kravets A., Lokhmotov A., David R., Hajiyev E. Pencil: A platform-neutral compute intermediate language for accelerator programming // Proceedings of the 2015 International Conference on Parallel Architecture and Compilation (PACT), PACT’15. IEEE Computer Society. Washington, DC, USA, 2015. P. 138–149. https://doi.org/10.1109/PACT.2015.17.</mixed-citation><mixed-citation xml:lang="en">Baghdadi R., Beaugnon U., Cohen A., Grosser T., Kruse M., Reddy C., Verdoolaege S., Betts A., Donaldson A.F., Ketema J., Absar J., Haastregt S., Kravets A., Lokhmotov A., David R., Hajiyev E. Pencil: A platform-neutral compute intermediate language for accelerator programming // Proceedings of the 2015 International Conference on Parallel Architecture and Compilation (PACT), PACT’15. IEEE Computer Society. Washington, DC, USA, 2015. P. 138–149. https://doi.org/10.1109/PACT.2015.17.</mixed-citation></citation-alternatives></ref><ref id="cit6"><label>6</label><citation-alternatives><mixed-citation xml:lang="ru">Kim M., Kim H., Luk C.-K. Prospector: A Dynamic Data-Dependence Profiler To Help Parallel Programming // 2nd USENIX Workshop on Hot Topics in Parallelism (HotPar'10), 2010. P. 1–6.</mixed-citation><mixed-citation xml:lang="en">Kim M., Kim H., Luk C.-K. Prospector: A Dynamic Data-Dependence Profiler To Help Parallel Programming // 2nd USENIX Workshop on Hot Topics in Parallelism (HotPar'10), 2010. P. 1–6.</mixed-citation></citation-alternatives></ref><ref id="cit7"><label>7</label><citation-alternatives><mixed-citation xml:lang="ru">Intel Parallel Studio. URL: https://software.intel.com/en-us/parallel-studioxe.</mixed-citation><mixed-citation xml:lang="en">Intel Parallel Studio. URL: https://software.intel.com/en-us/parallel-studioxe.</mixed-citation></citation-alternatives></ref><ref id="cit8"><label>8</label><citation-alternatives><mixed-citation xml:lang="ru">Клинов М.С., Крюков В.А. Автоматическое распараллеливание Фортран-программ. Отображение на кластер // Вестник Нижегородского университета им. Н.И. Лобачевского. 2009. № 2. С. 128–134.</mixed-citation><mixed-citation xml:lang="en">Клинов М.С., Крюков В.А. Автоматическое распараллеливание Фортран-программ. Отображение на кластер // Вестник Нижегородского университета им. Н.И. Лобачевского. 2009. № 2. С. 128–134.</mixed-citation></citation-alternatives></ref><ref id="cit9"><label>9</label><citation-alternatives><mixed-citation xml:lang="ru">Бахтин В.А., Жукова О.Ф., Катаев Н.А., Колганов А.С., Крюков В.А., Кузнецов М.Ю., Поддерюгина Н.В., Притула М.Н., Савицкая О.А., Смирнов А.А. Распараллеливание программных комплексов. Проблемы и перспективы // Труды XX Всероссийской научной конференции «Научный сервис в сети Интернет», Новороссийск, Россия, 17–22 сентября 2018 г. М.: ИПМ им. М.В. Келдыша, 2018. С. 63–72.</mixed-citation><mixed-citation xml:lang="en">Бахтин В.А., Жукова О.Ф., Катаев Н.А., Колганов А.С., Крюков В.А., Кузнецов М.Ю., Поддерюгина Н.В., Притула М.Н., Савицкая О.А., Смирнов А.А. Распараллеливание программных комплексов. Проблемы и перспективы // Труды XX Всероссийской научной конференции «Научный сервис в сети Интернет», Новороссийск, Россия, 17–22 сентября 2018 г. М.: ИПМ им. М.В. Келдыша, 2018. С. 63–72.</mixed-citation></citation-alternatives></ref><ref id="cit10"><label>10</label><citation-alternatives><mixed-citation xml:lang="ru">URL: http://keldysh.ru/abrau/2018/theses/33.pdf. https:// doi.org/10.20948/abrau-2018-33</mixed-citation><mixed-citation xml:lang="en">URL: http://keldysh.ru/abrau/2018/theses/33.pdf. https:// doi.org/10.20948/abrau-2018-33</mixed-citation></citation-alternatives></ref><ref id="cit11"><label>11</label><citation-alternatives><mixed-citation xml:lang="ru">Hwu W.-m., Ryoo S., Ueng S.-Z., Kelm J.H., Gelado I., Stone S.S., Kidd R.E., Baghsorkhi S.S., Mahesri A.A., Tsao S.C., Navarro N., Lumetta S.S., Frank M.I., Patel S.J. Implicitly parallel programming models for thousand-core microprocessors // Proceedings of the 44th annual Design Automation Conference (DAC '07), ACM, New York, NY, USA. 2007. P. 754–759. https://doi.org/10.1145/1278480.1278669.</mixed-citation><mixed-citation xml:lang="en">Hwu W.-m., Ryoo S., Ueng S.-Z., Kelm J.H., Gelado I., Stone S.S., Kidd R.E., Baghsorkhi S.S., Mahesri A.A., Tsao S.C., Navarro N., Lumetta S.S., Frank M.I., Patel S.J. Implicitly parallel programming models for thousand-core microprocessors // Proceedings of the 44th annual Design Automation Conference (DAC '07), ACM, New York, NY, USA. 2007. P. 754–759. https://doi.org/10.1145/1278480.1278669.</mixed-citation></citation-alternatives></ref><ref id="cit12"><label>12</label><citation-alternatives><mixed-citation xml:lang="ru">Blume W., Eigenmann R. Performance analysis pf parallelizing compilers on the Perfect Benchmarks programs // IEEE Transactions on Parallel and Distributed Systems. 1992. Vol. 3, Issue 6. P. 643–656. https://doi.org/10.1109/71.180621.</mixed-citation><mixed-citation xml:lang="en">Blume W., Eigenmann R. Performance analysis pf parallelizing compilers on the Perfect Benchmarks programs // IEEE Transactions on Parallel and Distributed Systems. 1992. Vol. 3, Issue 6. P. 643–656. https://doi.org/10.1109/71.180621.</mixed-citation></citation-alternatives></ref><ref id="cit13"><label>13</label><citation-alternatives><mixed-citation xml:lang="ru">Wolfe M. Scalar vs. parallel optimizations // CSETech. 210. 1990. URL: https://classes.cs.uoregon.edu/16S/cis410parallel/Documents/scalar-paralleloptimizations-wolfe.pdf</mixed-citation><mixed-citation xml:lang="en">Wolfe M. Scalar vs. parallel optimizations // CSETech. 210. 1990. URL: https://classes.cs.uoregon.edu/16S/cis410parallel/Documents/scalar-paralleloptimizations-wolfe.pdf</mixed-citation></citation-alternatives></ref><ref id="cit14"><label>14</label><citation-alternatives><mixed-citation xml:lang="ru">Konovalov N.A., Krukov V.A, Mikhajlov S.N., Pogrebtsov A.A. Fortan DVM: a Language for Portable Parallel Program Development // Programming and Computer Software. 1995. V. 21, No. 1. P. 35–38.</mixed-citation><mixed-citation xml:lang="en">Konovalov N.A., Krukov V.A, Mikhajlov S.N., Pogrebtsov A.A. Fortan DVM: a Language for Portable Parallel Program Development // Programming and Computer Software. 1995. V. 21, No. 1. P. 35–38.</mixed-citation></citation-alternatives></ref><ref id="cit15"><label>15</label><citation-alternatives><mixed-citation xml:lang="ru">Бахтин В.А., Клинов М.С., Крюков В.А., Поддерюгина Н.В., Притула М.Н., Сазанов Ю.Л. Расширение DVM-модели параллельного программирования для кластеров с гетерогенными узлами // Вестник Южно-Уральского государственного университета, серия «Математическое моделирование и программирование». 2012. №18 (277), выпуск 12. Челябинск: Издательский центр ЮУрГУ. C. 82–92.</mixed-citation><mixed-citation xml:lang="en">Бахтин В.А., Клинов М.С., Крюков В.А., Поддерюгина Н.В., Притула М.Н., Сазанов Ю.Л. Расширение DVM-модели параллельного программирования для кластеров с гетерогенными узлами // Вестник Южно-Уральского государственного университета, серия «Математическое моделирование и программирование». 2012. №18 (277), выпуск 12. Челябинск: Издательский центр ЮУрГУ. C. 82–92.</mixed-citation></citation-alternatives></ref><ref id="cit16"><label>16</label><citation-alternatives><mixed-citation xml:lang="ru">Kulkarni P., Zhao W., Moon H., Cho K., Whalley D., Davidson J., Bailey M., Paek Y., Gallivan K. Finding effective optimization phase sequences // Proceedings of the 2003 ACM SIGPLAN Conference on Languages, Tools, and Compilers for Embedded Systems. 2003. P. 12–23. https://doi.org/10.1145/780731.780735.</mixed-citation><mixed-citation xml:lang="en">Kulkarni P., Zhao W., Moon H., Cho K., Whalley D., Davidson J., Bailey M., Paek Y., Gallivan K. Finding effective optimization phase sequences // Proceedings of the 2003 ACM SIGPLAN Conference on Languages, Tools, and Compilers for Embedded Systems. 2003. P. 12–23. https://doi.org/10.1145/780731.780735.</mixed-citation></citation-alternatives></ref><ref id="cit17"><label>17</label><citation-alternatives><mixed-citation xml:lang="ru">NAS Parallel Benchmarks. URL: https://www.nas.nasa.gov/publications/ npb.html.</mixed-citation><mixed-citation xml:lang="en">NAS Parallel Benchmarks. URL: https://www.nas.nasa.gov/publications/ npb.html.</mixed-citation></citation-alternatives></ref><ref id="cit18"><label>18</label><citation-alternatives><mixed-citation xml:lang="ru">Lattner C., Adve V. LLVM: A Compilation Framework for Lifelong Program Analysis &amp; Transformation // Proc. of the 2004 International Symposium on Code Generation and Optimization (CGO’04), Palo Alto, California. 2004.</mixed-citation><mixed-citation xml:lang="en">Lattner C., Adve V. LLVM: A Compilation Framework for Lifelong Program Analysis &amp; Transformation // Proc. of the 2004 International Symposium on Code Generation and Optimization (CGO’04), Palo Alto, California. 2004.</mixed-citation></citation-alternatives></ref><ref id="cit19"><label>19</label><citation-alternatives><mixed-citation xml:lang="ru">https://doi.org/10.1109/CGO.2004.1281665.</mixed-citation><mixed-citation xml:lang="en">https://doi.org/10.1109/CGO.2004.1281665.</mixed-citation></citation-alternatives></ref><ref id="cit20"><label>20</label><citation-alternatives><mixed-citation xml:lang="ru">Kataev N.A. Application of the LLVM Compiler Infrastructure to the Program Analysis in SAPFOR // Voevodin V., Sobolev S. (eds). Supercomputing. RuSCDays 2018. Communications in Computer and Information Science. 2018. V. 965. Springer, Cham. P. 487–499. doi:10.1007/978-3-030-05807-4_41.</mixed-citation><mixed-citation xml:lang="en">Kataev N.A. Application of the LLVM Compiler Infrastructure to the Program Analysis in SAPFOR // Voevodin V., Sobolev S. (eds). Supercomputing. RuSCDays 2018. Communications in Computer and Information Science. 2018. V. 965. Springer, Cham. P. 487–499. doi:10.1007/978-3-030-05807-4_41.</mixed-citation></citation-alternatives></ref><ref id="cit21"><label>21</label><citation-alternatives><mixed-citation xml:lang="ru">Катаев Н.А., Смирнов А.А., Жуков А.Д. Определение зависимостей по данным средствами динамического анализа системы SAPFOR // Электронные библиотеки. Тематический выпуск «Научный сервис в сети Интернет». Часть 1. 2020. Том 23. № 3. С. 473–493. https://doi.org/10.26907/1562-5419-2020-23-3-473-493.</mixed-citation><mixed-citation xml:lang="en">Катаев Н.А., Смирнов А.А., Жуков А.Д. Определение зависимостей по данным средствами динамического анализа системы SAPFOR // Электронные библиотеки. Тематический выпуск «Научный сервис в сети Интернет». Часть 1. 2020. Том 23. № 3. С. 473–493. https://doi.org/10.26907/1562-5419-2020-23-3-473-493.</mixed-citation></citation-alternatives></ref><ref id="cit22"><label>22</label><citation-alternatives><mixed-citation xml:lang="ru">Visual Studio Code. URL: https://code.visualstudio.com/, last accessed 2020/11/25.</mixed-citation><mixed-citation xml:lang="en">Visual Studio Code. URL: https://code.visualstudio.com/, last accessed 2020/11/25.</mixed-citation></citation-alternatives></ref><ref id="cit23"><label>23</label><citation-alternatives><mixed-citation xml:lang="ru">OpenMP Application Programming Interface.</mixed-citation><mixed-citation xml:lang="en">OpenMP Application Programming Interface.</mixed-citation></citation-alternatives></ref><ref id="cit24"><label>24</label><citation-alternatives><mixed-citation xml:lang="ru">https://www.openmp.org/wp-content/uploads/OpenMP-API-Specification-5-1.pdf, last accessed 2020/11/25.</mixed-citation><mixed-citation xml:lang="en">https://www.openmp.org/wp-content/uploads/OpenMP-API-Specification-5-1.pdf, last accessed 2020/11/25.</mixed-citation></citation-alternatives></ref><ref id="cit25"><label>25</label><citation-alternatives><mixed-citation xml:lang="ru">Катаев Н.А., Василькин В.Н. Восстановление многомерной формы обращений к линеаризованным массивам в системе SAPFOR // Электронные библиотеки. Тематический выпуск «Научный сервис в сети Интернет». Часть 2. 2020. Том 23. № 4. С. 770–787. https://doi.org/10.26907/1562-5419-2020-23-4-770-787.</mixed-citation><mixed-citation xml:lang="en">Катаев Н.А., Василькин В.Н. Восстановление многомерной формы обращений к линеаризованным массивам в системе SAPFOR // Электронные библиотеки. Тематический выпуск «Научный сервис в сети Интернет». Часть 2. 2020. Том 23. № 4. С. 770–787. https://doi.org/10.26907/1562-5419-2020-23-4-770-787.</mixed-citation></citation-alternatives></ref><ref id="cit26"><label>26</label><citation-alternatives><mixed-citation xml:lang="ru">Seo S., Jo G., Lee J. Performance Characterization of the NAS Parallel Benchmarks in OpenCL // 2011 IEEE International Symposium on. Workload Characterization (IISWC), 2011. P. 137–148. https://doi.org/10.1109/IISWC.2011.6114174.</mixed-citation><mixed-citation xml:lang="en">Seo S., Jo G., Lee J. Performance Characterization of the NAS Parallel Benchmarks in OpenCL // 2011 IEEE International Symposium on. Workload Characterization (IISWC), 2011. P. 137–148. https://doi.org/10.1109/IISWC.2011.6114174.</mixed-citation></citation-alternatives></ref><ref id="cit27"><label>27</label><citation-alternatives><mixed-citation xml:lang="ru">SAPFOR. https://github.com/dvm-system.</mixed-citation><mixed-citation xml:lang="en">SAPFOR. https://github.com/dvm-system.</mixed-citation></citation-alternatives></ref></ref-list><fn-group><fn fn-type="conflict"><p>The authors declare that there are no conflicts of interest present.</p></fn></fn-group></back></article>
