maybeelf общество maybeelf

Представлен стандарт параллельного программирования OpenMP 6.0

Опубликован набор спецификаций OpenMP 6.0 (Open Multi-Processing). Он определяет API и способы применения методов параллельного программирования для языков С, С++ и Fortran на многоядерных и гибридных (CPU+GPU/DSP) системах с общей памятью и блоками векторизации (SIMD).

Основные нововведения:упрощённый процесс программирования задач (task), которые определяют независимые части программы, выполняемые параллельно с другими;возможность выполнения задач в потоках free-agent, не привязанных к группам потоков (teams) и выполняющих блоки кода в нескольких потоках (parallel region);поддержка сохранения графа задач (taskgraph), который определяет зависимости между задачами и порядок их выполнения;механизм прозрачных задач (transparent tasks) для упрощения управления зависимостями и автоматического управления выполнением дочерних задач;поддержка вычислительных устройств, которые могут использоваться для выполнения параллельных задач (CPU, GPU, DSP);новый синтаксис массивов, позволяющий использовать директиву "workdistribute" для разделения обработки массивов между разными единицами работы;новые возможности управления выделением памяти, упрощающие управление переменными, для которых она выделяется динамически;расширенная поддержка атрибутов, определяющих распределение данных между устройствами по умолчанию;упрощённое написание кода для асинхронной передачи данных дополнительным вычислительным устройствам (GPU);улучшенное управление памятью и её привязкой к вычислительным устройствам;директива "groupprivate" для закрепления памяти за группой потоков, выполняемых на определённом вычислительном устройстве;упрощённое программирование некоторых видов трансформации циклов, таких как объединение нескольких циклов, изменение порядка

DMCA