Рейтинг@Mail.ru
Навигация

← Предыдущая статья             Содержание номера             Следующая статья →

Журнал First Break – Сентябрь 2017 – Выпуск 9 – Том 35 – Новости EAGE

На семинаре по высокопроизводительным вычислениям обсуждались проблемы программирования

Nicola Bienati (Eni), Gary Crouse (Society of HPC Professionals) и Jan Thorbecke (Cray) представляют отчёт о семинаре на тему «Программирование современных архитектур для высокопроизводительных вычислений: эффективность и переносимость», который проходил во время ежегодной конференции EAGE «Париж 2017».

Основной акцент на семинаре был сделан на недостатках и опыте использовании современных языков программирования, а также о новых, лучше подогнанных, методах программирования. Цель заключалась в анализе имеющихся узких мест в написании удобного, переносимого, отказоустойчивого и хорошо работающего кода.

Нынешняя эпоха вычислений на ускорителях и многоядерных архитектур требует других навыков и языков программирования. Современные архитектуры для высокопроизводительных вычислений имеют много уровней распараллеливания. Например, каждый программист должен иметь дело с векторизацией, многопоточностью, многоядерными и многопроцессорными системами. Такие языки, как C, C++ и Fortran, были изначально предназначены для программирования таких многоядерных гибридных архитектур. В наши дни стандартом отрасли фактические стали языки для ускоренных вычислений (Cuda, OpenMP/ACC/CL) в сочетании с MPI. Новые языки (и улучшенные компиляторы) позволяют программистам лучше использовать современное оборудование и стимулируют инновации за счёт сокращения времени выхода на рынок новых алгоритмов.

Семинар начался с трёх докладов, в которых предлагались новые подходы к ускоренной разработке новых приложений. Первый доклад сделал Paolo Mazzucchelli (Aresys), который рассмотрел потребности среды в быстрой разработке графов параллельной обработки данных, таких как подходы на основе подавления поверхностных кратных волн, цель которых заключается в обеспечении параллелизма, начиная с разработки опытного образца. Для того чтобы обеспечить производительность и гибкость пользовательских рабочих процессов, когда речь идёт о таких алгоритмах, как подавление поверхностных кратных волн, одним из важных моментов является доступность уровня ПО для обобщения сложности произвольного доступа к трёхмерному массиву данных о месторождении с типичной для них нерегулярной системой наблюдений. Распределение работ в параллельном режиме основывается на реализации модели «хозяин — работник», предназначенной для достижения хорошо сбалансированной нагрузки.

В докладе д-ра Dirk Merten (Общество Фраунгофера) был рассмотрен контекст приложения, в котором используется библиотека обмена данными с низким значением задержки (GPI, интерфейс программирования глобального адресного пространства) и формальная система сетей, позволяющие описывать пользовательский рабочий процесс и одновременно обеспечивать модель асинхронного выполнения для достижения максимального быстродействия. Отказоустойчивость — ещё одна важная характеристика, которую гарантирует эта оболочка.

Fabio Luporini (Имперский колледж) представил Devito, программную инфраструктуру на основе языка Python, автоматически генерирующую исходный код C для реализации конечностно-разностного алгоритма для решения заданного дифференциального уравнения с частными производными. Исходное описание уравнения PDE является символическим, а производительность сгенерированного C-кода впечатляет. Devito остановился на аспектах, влияющих на производительность, таких как распараллеливание и блокирование кэша при высоком уровне абстракции и перед генерацией кода C.

Вторая часть утренней сессии была посвящена языкам программирования. Elliot Ronaghan (Cray) рассказал о Chapel, современном языке параллельного программирования, который предназначен для повышения эффективности процесса развёртывания ПО, переносимости кода и повышения скорости выполнения.

Несмотря на то, что первоначально язык Chapel был разработан компанией Cray, его исходный код полностью открыт и доступен на веб-сервисе GitHub.

Filippo Broggini (Швейцарская высшая техническая школа Цюриха) рассказал о том, как язык Python упрощает его исследовательскую работу, в частности, благодаря большому количеству высококачественных библиотек с открытым исходным кодом, в которых содержится много модулей для разработки новых приложений. Bill Long (Cray) воздал должное сохраняющим свою актуальность языкам, таким как Fortran, которые спустя 60 лет продолжают развиваться, идя в ногу с непрерывной эволюцией высокопроизводительных вычислений. Длительный опыт работы Long с Fortran сделал его доклад очень полезным и поучительным, особенно для новичков. В частности, он дал дружеский совет преподавателям продолжать учить тому, как осуществлять параллельное программирование, и подчеркнул тот момент, что сегодня нам нужно больше знать об оборудовании, чтобы добиться более высокой производительности, чем раньше. Long резюмировал, что если мы хотим, чтобы наше ПО сохраняло актуальность в последующие 40 лет, то Fortran будет для нас языком номер один.

Третья и заключительная сессия семинара была посвящена тому, как языки программирования могут соответствовать конкретным характеристикам современных вычислительных устройств, таких как графические карты и многоядерные ЦП. Hervé Chevanne (AMD) продемонстрировал один из подходов ускоренного переноса кодов CUDA на платформы, отличные от NVIDIA. Samuel Rodriguez (Барселонский супервычислительный центр) остановился на том, как применение высокоуровневых моделей программирования на основе инструкций (openMP, openACC, OmpSs) при небольших усилиях позволяет быстро добиться параллелизма внутри одного узла. В частности, он продемонстрировал, как применение таких моделей программирования позволило за считанные часы добиться на одном узле ускорения применяемой повторяющейся реализации FWI для волнового уравнения упругих волн, добившись повышения производительности на целый порядок.

François Courteille (NVIDIA) объяснил, как в случае систем, где применяются графические ускорители, унифицированная область памяти хоста (эта тема уже затрагивалась в первом докладе вечерней сессии) позволяет упростить разработку новых приложений с ускорением вычислений.

И, наконец, одной из тем во время неформального общения в конце семинара стала необходимость более консолидированной оценки одинарной точности, которая может применяться для сравнения широко распространённых библиотек HPL и составления рейтинга топ-500. В области наук о Земле для многих приложений, особенно тех, которые используются для обработки сейсмических данных, тот уровень достоверности, который обеспечивает одинарная точность, является удовлетворительным. Соответственно, было бы очень полезно характеризовать системы с учётом производительности их вычислений с числами одинарной точности. В то же время необходим общепризнанный критерий оценки этого параметра, по крайней мере, для нефтегазовой отрасли. Такое решение может стать темой следующего семинара по высокопроизводительным вычислениям.




← Предыдущая статья             Содержание номера             Следующая статья →















Яндекс цитирования
Журнал First Break и материалы всех мероприятий EAGE направляются на индексацию в систему Scopus.
Журналы Basin Research, Geophysical Prospecting, Near Surface Geophysics и Petroleum Geoscience направляются на индексацию в системы Scopus и Web of Science.