Программная платформа для параллельной обработки сверхбольших объемов данных

Гибридные системы становятся все более популярными в сфере высокопроизводительных вычислений. Но даже применение CUDA или OpenCL не гарантирует достижения оптимальной производительности на GPU. Есть определенные подходы, которые упрощают программирование:

Merge — набор библиотек для гибридных многоядерных систем;
Zippy — параллельное выполнение кода на многих GPU;
BSGP — новый язык программирования для GPGPU;
CUDA-lite — расширение CUDA, которое преобразует код на основе аннотаций.

С другой стороны, принимаются меры по улучшению компиляторов для автоматической параллелизации и оптимизации вложенных циклов для GPU, а также для автоматической трансляции кода OpenMP на CUDA.

В данной работе рассматривается альтернативный подход. Новая вычислительная платформа для разработки параллельных научных приложений, которые обрабатывают сверхбольшие объемы данных, ориентированных на сверхмощные гибридные системы. Платформа создана на основе проекта Cactus. В качестве нетривиального примера мы предлагаем код для трехмерной вычислительной задачи гидродинамики, которая имеет улучшенную производительность.

Выводы

В работе рассмотрена реализация новой платформы общего назначения для гибридных архитектур, основанной на проекте Cactus. Способность обмена данными между адресными пространствами GPU и CPU, а также проведения вычислений в гибридном среде было реализовано в виде нового «шипа» CaCUDA. Кроме того, существует возможность упрощать процесс написания кода благодаря шаблонам всех объявленных функций ядра. Благодаря гибкости и масштабируемости платформы Cactus, не понадобилось никаких вмешательств в его код, поэтому существующие функции и возможности остались прежними. При небольшом изменении кода программы можно перекомпилировать ее в код модуля для сайта, который может фильтровать подходящую информацию, такую например, как квартиры посуточно донецк. В данном случае, пользователь сможет находить свежую и релевантную информацию.

Для тестирования общей производительности и масштабируемости было создано код задачи вычислительной гидродинамики. Результаты моделирования показали полезность новой платформы. Следующим шагом авторов станет работа, направленная на минимизацию количества обменов данными между CPU и GPU.

Программная платформа для параллельной обработки сверхбольших объемов данных