Министерство энергетики США, в ведении которого находится заметная часть HPC-парка страны, объявило о планах выделить до $12 млн на исследования, направленные на адаптацию научного программного обеспечения для работы на суперкомпьютерах следующего поколения — экзафлопсные машины будут вводиться в строй в ближайшие несколько лет. Деньги планируется выделять в виде трёхлетних грантов, заявки на которые будут открыты для национальных лабораторий Министерства энергетики, университетов, промышленности и некоммерческих исследовательских организаций.
Исследование будет сосредоточено на двух областях: разработка подходов к обновлению научных приложений для новых сред параллельного программирования, а также разработка новых методов тестирования научных приложений. Это позволит уменьшить усилия, необходимые для перевода программного обеспечения на платформы следующего поколения. Также, по мнению представителей Министерства энергетики, это позволит раскрыть потенциал новых суперкомпьютеров и ПО к ним.
Как ожидается, суперкомпьютеры системы следующего поколения будут гетерогенными и распределёнными. Это значит, что в них будут задействованы CPU, GPU, FPGA, CGRA, ИИ-ускорители и так далее. Идея состоит в том, чтобы создать программное обеспечение, способное работать вне зависимости от аппаратной архитектуры. Отмечается, что ни одно современное решение (OpenMP, SYCL, Kokkos, RAJA, CUDA и др.) не является оптимальным для всех платформ HPC.
Потому цель проекта — помочь программистам осуществить перенос существующих приложений между различными аппаратными платформами. Подробнее о сути проекта, требованиях и так далее написано в этом документе. Авторами на данном этапе выделено две основные области исследований:
- Инновационные методы автоматической генерации тестов для комплексной оценки работы научных приложений. Причём в задачи входит как снижение числа, объёма, сложности и времени запуска подобных тестов, так и удобство работы с ними программистов, в том числе возможность быстрого и точного выявлении проблемных мест в коде.
- Инновационные методы, позволяющие трансформировать научные приложения, использующие одну модель параллельного программирования, в приложения, ориентированные на гетерогенные системы, использующие различные модели.