Современные информационные технологии/1. Компьютерная инженерия
Канд. техн.
наук А.И. Дордопуло, канд. техн. наук Гудков В.А., канд. техн. наук Гуленок
А. А.
Научно-исследовательский институт многопроцессорных
вычислительных систем Южного федерального университета, г. Таганрог, Россия
Д-р техн. наук И.И. Левин
ООО «Научно-исследовательский центр супер-ЭВМ и
нейрокомпьютеров»,
г. Таганрог, Россия
Ресурсонезависимое программирование вычислительных систем
гибридного типа*
Одним
из перспективных способов достижения высокой реальной производительности
вычислительной системы является адаптация ее архитектуры под структуру решаемой
задачи, а также создание специализированного вычислительного устройства,
одинаково эффективно реализующего как структурные [1], так и процедурные [1]
фрагменты вычислений.
Решение этой проблемы
многие разработчики видят в одном из наиболее перспективных направлений
развития высокопроизводительных вычислительных систем – создании гибридных
вычислительных систем, содержащих разнородные по архитектуре вычислительные
узлы. Вычислительные системы гибридного типа (ВСГТ) позволяют сочетать в едином
вычислительном контуре различные варианты организации параллельных и
конвейерных вычислений. Как правило, такие вычислительные системы содержат
унифицированные микропроцессорные узлы и вычислительные узлы перспективных
архитектур, связанные друг с другом пространственной коммутационной системой.
Для эффективного
использования архитектурных преимуществ всех вычислительных узлов системы
гибридного типа необходимы средства описания различных вариантов организации
вычислений, позволяющие реализовать прикладную задачу в едином для различных
архитектур языковом пространстве.
В настоящее время подавляющее большинство
существующих методов программирования гибридных вычислительных систем состоит в
раздельном программировании разнородных вычислительных узлов и осуществляется
на различных языках программирования в разных средах программирования.
Это приводит к тому, что фактически
вычислительная система гибридного типа программируется как многомашинный
комплекс, обмен между различными подсистемами которого осуществляется через
передачу сообщений или обмен файлами, что, в свою очередь, существенно
уменьшает реальную производительность вычислительной системы и сильно усложняет
модернизацию программы при изменении доступного вычислительного ресурса.
Можно выделить следующие основные проблемы
программирования современных вычислительных систем гибридного типа:
1. Каждая часть
вычислительной системы гибридного типа программируется отдельно на своем языке
программирования.
2. Прикладная программа
пишется под текущую конфигурацию вычислительной системы гибридного типа, любое
изменение структуры системы приводит к изменениям программы.
3. Синхронизация
информационных потоков в структуре задачи возлагается на программиста.
4. Портирование прикладной
программы на другую систему с похожей конфигурацией приводит к полной
переработке программы.
5. Время программирования и
отладки прикладной задачи для вычислительной системы гибридного типа составляет
от 6 до 12 месяцев.
По аналогии можно сформулировать необходимые
требования к технологии программирования вычислительной системы гибридного
типа:
1. Необходимы средства
описания структурной (полностью параллельной) реализации вычислений и
процедурной (полностью последовательной) и их различных сочетаний в едином
вычислительном контуре;
2. Прикладная задача для
вычислительной системы гибридного типа должна описываться на одном языке
программирования высокого уровня;
3. Необходимы средства
быстрого масштабирования и изменения прикладной программы под новую
конфигурацию и архитектуру вычислительной системы гибридного типа.
Проведенный анализ показал, что существующие
технологии программирования вычислительных систем гибридного типа (CUDA, OpenACC, OpenCL) невозможно
эффективно использовать для вычислительной системы гибридного типа на основе
полей ПЛИС и микропроцессоров по следующим причинам:
-
все
технологии ориентированы на программирование только одного устройства
(графического процессора или ускорителя Intel Xeon
Phi);
-
разбиение
задачи на фрагменты, каждый из которых выполняется на своем узле вычислительной
системы гибридного типа, возлагается на программиста и сильно зависит от
текущей конфигурации вычислительной системы гибридного типа;
-
любые
изменения конфигурации вычислительной системы гибридного типа приводят к
корректировке прикладной программы;
-
все
технологии ориентированы на поддержку ряда архитектур с фиксированной
внутренней структурой и заранее определенным набором команд, что усложняет
масштабирование прикладной программы вычислительной системы гибридного типа,
особенно в случае сокращения доступного аппаратного ресурса;
-
обмены
между узлами организуются с участием или при помощи хост-процессора, поэтому
при числе одновременно обменивающихся узлов вычислительной системы гибридного
типа более восьми в таких системах наблюдается существенное падение
производительности.
Поэтому
в качестве основы разрабатываемой технологии ресурсонезависимого
программирования вычислительных систем гибридного типа предложено использование
языка высокого уровня COLAMO [1], с помощью которого
можно описывать различные формы организации параллельных вычислений – от
структурной формы, характерной для реконфигурируемых вычислительных узлов,
через структурно-процедурную и мультипроцедурную к процедурной форме
организации вычислений, используемой для унифицированных процессорных узлов.
Преобразования между различными формами организации вычислений можно выполнить
с помощью методов редукции производительности, среди которых методы редукции: по
операциям, по каналам памяти и по разрядности.
Методы
редукции производительности по операциям позволяют сократить число операций
базового подграфа на заданную пользователем величину, тем самым переходя от
структурной реализации через структурно-процедурную к процедурной организации
вычислений на одном процессоре в предельном случае. Методы редукции
производительности по каналам памяти позволяют сократить число входных или
выходных каналов памяти как наиболее критичного ресурса при изменении
конфигурации вычислительной системы гибридного типа. Методы редукции
производительности по разрядности позволяют сократить занимаемый аппаратный
ресурс при сохранении формы организации вычислений, что имеет важное значение
при изменяющейся конфигурации ВСГТ.
Комплексное
использование описанных методов при программировании прикладных задач позволит
обеспечить ресурсонезависимость программирования, т.е. возможность простой и
быстрой адаптации прикладной программы под изменившуюся архитектуру или
конфигурацию вычислительной системы гибридного типа.
Литература
1. Каляев И.А., Левин И.И., Семерников
Е.А., Шмойлов В.И. Реконфигурируемые
мультиконвейерные вычислительные структуры /Изд. 2-е, перераб. и доп. / Под
общ. Ред. И.А. Каляева. - Ростов-на-Дону: Изд-во ЮНЦ РАН, 2009. – 344 с.
______________________________________
*Работа выполнена при финансовой поддержке Министерства образования и науки РФ по Соглашению о предоставлении субсидии №14.578.21.0006 от 05.06.2014, уникальный идентификатор RFMEFI57814X0006, гранту Южного федерального университета №213.01-2014/014 и НИР №2257 базовой части государственного задания №2014/174.