MPICH

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

MPICH (MPI Chameleon) — одна з реалізацій MPI яка підтримує роботу на великому числі платформ із різними комунікаційними інтерфейсами, у тому числі і з TCP/IP.Створена в Арагонській національній лабораторії (США). Існують версії цієї бібліотеки для всіх популярних операційних систем. до того ж, вона бескоштовна. Перечислені фактори роблять MPICHідеальним варіантом для того, щоб розпочати практичні навички MPI.

Основні особливості MPICH v 1.2.2[ред.ред. код]

  • повна сумісність зі специфікацією MPI-1;
  • наявність інтерфейсу в стилі MPI-2 з функціями для мови C++ зі специфікації MPI-1;
  • наявність інтерфейсу з процедурами мови FORTRAN-77/90;
  • є реалізація для Windows NT (несумісна з UNIX-реалізацією);
  • підтримка великого числа архітектур, у тому числі кластерів, SMP і т. д.;
  • часткова підтримка MPI-2;
  • часткова підтримка паралельного вводу-виводу — ROMIO;
  • наявність засобів трасування і протоколювання (SLOG-based);
  • наявність засобів візуалізації продуктивності паралельних програм (upshot і jumpshot);
  • наявність у складі MPICH тестів продуктивності і перевірки функціонування системи.

Недоліки MPICH — неможливість запуску процесів під час роботи програми і відсутність засобів моніторингу поточного стану системи.

До складу MPICH входять бібліотечні і заголовні файли, що реалізують біля сотні підпрограм.

Принципи роботи MPICH[ред.ред. код]

Розглянемо MPICH для Windows яка містить в собі наступні компоненти :

  • Менеджер процесів smpd.exe, який представляє собою системну службу (сервісну програму). Менеджер процесів веде список обчислювальних вузлів системи, і запускає на цих вузлах MPI-програми, надаючи ним необхідну інформацію для работи і обміну повідомленнями.
  • Заголовочні файли (.h) и бібліотеки стадії компіляції (.lib), необхідні для розробки MPI-програм.
  • Бібліотеки часу виконання(.dll), необхідні для раоботи MPI-програм.
  • Додаткові утиліти (.exe), необхідні для налаштування MPICH и запуску MPI-программ.

Менеджер процесів є основним компонентом, який повинен бути встановлений і налаштований на всіх комп'ютерах мережі . Остальні файли потрібні для розробки MPI-програм і налаштування «головного» комп'ютера, з якого буде виконуватися їх запуск.

Менеджер працює в фоновому режимі і чекає на запит до його з мережі з сторони «головного» менеджера процесів (по замовчуванні використовується мережевий порт 8676). щоб якось застерегти себе від хакерів и вірусів, менеджер просить пароль при зверненні до його. Коли один менеджер процесів звертається до другого менеджера процесів, він передає йому свій пароль. Звідси слідує, що потрібно вказувати один і той самий пароль при встановленні MPICH на комп'ютери мережі.

MPI-програма працює наступним чином :

  1. Програма запускається і ініціалізує бібліотеку часу виконання MPICH шляхом виклику функціїMPI_Init.
  2. Бібліотека отримує від менеджера процесів інформацію про кількість і місцезнаходження інших процесів програми, і встановлює з ними зв'язок.
  3. Після цього запущені копіїпрограми можуть обмінюватися один з одним інформацією за допомогою бібліотеки MPICH. З точик зору операційної системи бібліотека є частиною програми, тому можна вважати що запущені копії MPI-програми обмінюються даними напряму один з одним.
  4. Консольний ввід-вивід всіх процесів MPI-програми перенаправляються на консоль, на якій запущена Mpirun. Перенаправленням вводу-виводу займаються менеджери процесів, так як вони запустили копії MPI-програми, и тому можуть отримати доступ до потоків введення-виведення програм.
  5. Перед завершенням всі процеси викликають функцію MPI_Finalize, яка коректно завершує передачу и отримання всіх повідомлень, і відключає MPICH.

Все описані вище принципи діють, навіть якщо ви запускаєте MPI-програму на одному комп'ютері.

Див. також[ред.ред. код]

  • Open MPI — інша популярна реалізація MPI з відкритим кодом.


Посилання[ред.ред. код]