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

передачи данных или, реже, с использованием внешних интерфейсов. В качестве специализированных высокопроизводительных вычислителей чаще всего используются следующие решения: 1. Использование вычислений на установленных в системе графических ускорителях - GPGPU (англ. general-purpose computing on graphics processing units); 2. Добавление в качестве вычислителей специализированных ускорителей на базе различных графических архитектур, таких как NVIDIA Tesla, AMD FirePro и др.; 3. Использование специализированных ускорителей стандартной архитектуры, например, Intel MIC [1]; 4. Использование различных специализированных вычислительных ускорителей для решения относительно узкого круга задач, например, Intel Neural Compute Stick и т.п.; 5. Реализация наиболее трудоемких алгоритмов и отдельных подзадач в виде логических блоков на ПЛИС (программируемая логическая интегральная схема, англ. field-programmable grid array, FPGA) [2]. Наиболее часто для высокопроизводительных вычислений на ГСПК используются именно GPGPU, так как использование графического ускорителя в вычислительном узле является не только эффективным способом повышения производительности грид-системы, но и позволяет повысить эффективность работы на вычислительном устройстве во множестве других задач, не связанных с распределенными вычислениями. Тем не менее, использование GPGPU для вычислений на узлах ГСПК сталкивается с некоторыми существенными трудностями, в том числе: • Общие аппаратные ограничения GPGPU: специализированная архитектура, весьма существенно отличающаяся от архитектуры универсальных процессоров, ограниченный объем непосредственно адресуемой оперативной памяти, доступной графическому процессору (англ. graphics processing unit, GPU), относительно медленная передача данных между основной системой и GPU; • Отсутствие возможности эффективной реализации используемых вычислительным приложением алгоритмов на архитектуре GPU; • Необходимость существенной доработки алгоритмов, структур данных и внутренних взаимодействий между компонентами вычислительного приложения для оптимального использования ресурсов GPU; • Наличие достаточно большого количества несовместимых между собой программных платформ с различными программными интерфейсами приложения - OpenCL (англ. open computing language, открытый язык для вычислений), NVIDIA CUDA (англ. compute unified device architecture) и др., причем, в случае ГСПК, может потребоваться установка определенных версий этого специализированного программного обеспечения (ПО) на все узлы распределенной системы. Использование специализированных вычислительных ускорителей в составе ГСПК все еще является скорее исключением, чем правилом, так как они зачастую значительно дороже обычных графических ускорителей и их использование ограничено задачами высокопроизводительных вычислений и некоторыми специфическими приложениями, достаточно редко используемыми 106

RkJQdWJsaXNoZXIy MTUzNzYz