Доброго вам дня! З цієї самої замітки почнеться занурення в паралельний світ паралельного програмування, з метою навчитися распараллеливать все, що написано на C / C ++ і навіть на Fortran. Інструментом нам послужить класична бібліотека MPICH версії 3.0. Але перш, що таке MPI.
Як свідчить вікіпедія, MPI (Message Passing Interface) це програмний інтерфейс для передачі інформації, який дозволяє обмінюватися повідомленнями між процесами, які виконують одну задачу. По русски кажучи, цей інтерфейс дозволяє распараллелить завдання на кілька процесів в операційній системі. Що в деяких випадках може серйозно поліпшити продуктивність, коли як в інших, навпаки її погіршити.
Бібліотека MPICH, яку ми будемо встановлювати, є однією з найперших MPI бібліотек, тому я назвав її класичної. На її основі в майбутньому було побудовано велике безліч комерційних і відкритих бібліотек, можливо, про деякі з них я теж коли-небудь напишу. Приступимо до встановлення.
Установка бібліотеки MPI
Як я обожнюю повторювати, абсолютно нічого модерного в установці не виявлено. Проходимо на офіційний сайт, в розділ завантаження. Там нас цікавить табличка з платформами і версіями бібліотеки, знаходимо Ubuntu і викачуємо. Виглядає це ось так.
Потрапляємо на сторінку Ubuntu packages і вибираємо свою платформу. Я собі скачую amd64, ось з цього списку.
На цьому пригоди ще не закінчилися, ми потрапляємо на сторінку з вибором дзеркала для скачування. Навіть Африка є, разюче.
Вибираємо найближче за географічним розташуванням дзеркало, і ось у нас на диску deb пакет бібліотеки, який ми встановлюємо подвійним кліком. Як бачите, більше сил знадобилося на те, щоб її скачати.
Запуск програм з використанням MPI
Після установки в системі з'явилися компілятори для мов C / C ++ і Fortran, які називаються відповідно mpicc / mpic ++ і mpifortran. Кожен з них забезпечений докладною документацією, що різко зменшує тривалість танців з бубном.
Розглянемо компіляцію і запуск на класичному прикладі - програма «Hello, world».
Компілюється цю справу командою
mpic ++ -o hello hello.cpp
І відразу запускаємо за допомогою mpiexec, параметр -n говорить про те, скільки процесів запустити для цієї програми.
mpiexec -n 5 ./hello
Таким чином ми запустимо 5 процесів.
висновок
На цьому завершується перше боязке знайомство з бібліотекою MPI, ми її встановили і спробували з її допомогою одночасно 5 разів привітатися зі світом. У наступному випуску будуть нові можливості MPI, а на сьогодні у мене все, спасибі за увагу!