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 з відкритим кодом.


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