Труды КНЦ вып. 11 (ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ) вып. 8/2020 (11)

архитектурой Intel MIC. Минимизация зависимостей вычислительного приложения от предустановленного ПО была реализована за счет использования в приложении исключительно возможностей языка C++ (ISO/IEC 14882:2011) и его стандартных библиотек, в том числе: поддержка многопоточности, объекты синхронизации, атомарные переменные и т.д., а также за счет ручной оптимизации выгрузки отдельных вычислительных потоков и сопутствующих структур данных на сопроцессоры, при их наличии. Все выгружаемые на сопроцессоры функции и структуры данных дополнительно оптимизированы для работы на архитектуре Intel MIC, то есть используют оптимальное, с точки зрения обращений к памяти и кэшу, выравнивание данных, задействуют Intel KNC SIMD, учитывают наличие большого количества вычислительных ядер с поддержкой одновременной многопоточности (англ. simultaneous multithreading, SMT) и ограниченной производительностью, относительно небольшой объем доступной оперативной памяти и достаточно медленную передачу данных между основной системой и сопроцессорами по шине PCIe. Оптимизация оригинального однопоточного приложения в среднем позволила улучшить производительность на 25%. Дальнейшая оптимизация циклов, синхронизации и работы с потоками, организации структур данных и т.п. при реализации многопоточной обработки повысила многопоточную производительность еще почти в полтора раза[7]. Общая производительность, по сравнению с исходной однопоточной версией, увеличилась более чем в 10 раз для 12 потоков SMT (Intel Hyper-Threading) на 6 ядрах процессора Intel Xeon E5-1650 и практически линейно зависит от однопоточной производительности целевого процессора и количества задействованных вычислительных ядер и потоков (см. Рис. 1). Использование в составе вычислительного узла ГСПК с наиболее распространенными сейчас характеристиками центрального процессора (6 вычислительных ядер и 12 потоков) сопроцессора Intel Xeon Phi позволит для данной комбинаторной задачи увеличить эффективность вычислений в несколько раз. При этом методы оптимизации, используемые для многопоточного приложения, предназначенного для выполнения на сопроцессоре с архитектурой Intel MIC, оказываются весьма эффективны, в том числе и при выполнении приложения на современном многоядерном центральном процессоре серверного класса. Литература 1. Rezaur Rahman Intel Xeon Phi Coprocessor Architecture and Tools, ISBN: 978-1­ 4302-5927-5, Apress, 2013. 2. Vanderbauwhede W., Benkrid K. High-Performance Computing Using FPGAs. // Springer, 2013. - 803 p. 3. James Jeffers, James Reinders Intel Xeon Phi Processor High Performance Programming // ISBN: 978-0-12-410414-3, Morgan Kaufmann, 2013. - 432 p. 4. Stephen Blair-Chappell Parallel Programming with Intel Parallel Studio XE, ISBN: 978-0-4708-9165-0, Wrox, 2012. - 552 p. 5. Anderson D. P. BOINC: A platform for volunteer computing // Journal of Grid Computing. - 2019. - pp. 1-24. 6. Vatutin E., Belyshev A., Kochemazov S., Zaikin O., Nikitina N. Enumeration of isotopy classes of diagonal Latin squares of small order using volunteer computing // Communications in Computer and Information Science. Vol. 965. Springer, 2018. pp. 578-586. DOI: 10.1007/978-3-030-05807-4_49. 109

RkJQdWJsaXNoZXIy MTUzNzYz