Методические материалы

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

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

При описании мы будем опираться на задачи из области вычислительной механики в качестве примера.

В кратком виде методику создания и использования предметно-ориентированной библиотеки можно описать следующей последовательностью шагов:

  1. Определить в библиотеке предметно-ориентированные структуры для описания данных.
  2. Определить в библиотеке специальные вызовы для заведения массивов данных, которые будут обрабатываться в задачах.
  3. Определить в библиотеке необходимый набор для описания коммуникационных шаблонов.
  4. В библиотеке реализовать распределение данных между узлами и обмены согласно шаблонам. При необходимости, реализовать специальные инструменты, для автоматизации построения распределения данных и обменов, исходя из конкретных шаблонов задачи.
  5. В программе все циклы привести к стандартному виду. В теле цикла для обращения к данным использовать специальные структуры, предоставляемые библиотекой.
  6. Разбить программу на отдельные циклы-стадии и к каждому приписать коммуникационный шаблон.
  7. Для необходимых стадий определить код, который может исполняться на ускорителе вычислений.