Паралельна віртуальна машина

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Паралельна віртуальна машина
Автор Національна лабораторія Оук-Ридж
Розробник Університет Теннессі
Перший випуск 1989
Стабільний випуск 3.4.6 (2 лютого 2009; 15 років тому (2009-02-02)[1])
Операційна система Windows and Unix
Мова програмування C
Ліцензія BSD, GPL
Вебсайт csm.ornl.gov/pvm/

Parallel Virtual Machine (дослівно паралельна віртуальна машина) — це загальнодоступний програмний інструмент для паралельної мережі комп'ютерів, розроблений для доступу в мережу різноманітних Unix і/або Windows пристроїв, які будуть використовуватись як один розподілений паралельний процесор, що дозволяє об'єднувати різнорідний набір комп'ютерів до загального обчислювальний ресурс («віртуальну паралельну машину») і надає можливості управління процесами за допомогою механізму передачі повідомлень. Таким чином, складні обчислювальні завдання можуть бути вирішені більш ефективно з використанням сукупної потужності та пам'яті багатьох комп'ютерів. Програмне забезпечення є дуже портативним; вихідний код доступний безкоштовно через netlib[en], скомпільований на багатьох пристроях, від ноутбуків до Crays.[2] Має більш розширені можливості, ніж її популярний аналог MPI, в плані контролю обчислень: присутній спеціалізована консоль управління паралельної системою і її графічний еквівалент XPVM, що дозволяє наочно продемонструвати роботу всієї системи.

PVM дозволяє користувачам використовувати свої існуючі комп'ютерні апаратні засоби, щоб вирішити значно складніші проблеми при менших витратах. PVM була використана як навчальна програма для вивчення паралельного програмування, також використовується для вирішення важливих практичних завдань[2]. PVM була розроблена університетом Теннессі, Національною лабораторією Оук-Ридж і університетом Еморі. Перша версія була написана ORNL у 1989, і згодом була переписана університетом Теннессі, реліз другої версії відбувся у березні 1991 року. Реліз третьої версії відбувся у березні 1993 року, в ньому була покращена відмовостійкість і переносимість.

PVM був кроком на шляху до сучасних тенденцій в області розподілених обчислень і ґрід обчислень, але вже з середини 1990-х років, в значній мірі витіснений набагато успішнішого стандарту MPI для передачі повідомлень на паралельних машинах . PVM є вільним програмним забезпеченням, випущеним у рамках як ліцензії BSD і GNU General Public License .

Дизайн[ред. | ред. код]

PVM — програмна система, що дозволяє використовувати декілька комп'ютерів як послідовний і гнучкий паралельний обчислювальний ресурс, або як «паралельну віртуальну машину».

Індивідуальні комп'ютери можуть мати мультипроцесори зі спільною або локальною пам'яттю, векторні суперкомп'ютери, спеціалізовані графічні системи або скалярні робочі станції і ПК, які можуть бути з'єднані між собою за допомогою різних мереж, таких як Ethernet або FDDI.

PVM складається із середовища виконання і бібліотеки для передачі повідомлень, завдань і керування ресурсами, а також із повідомлень про несправності. Поки PVM не робить швидко і автоматично пакунки комерційних програм, він забезпечує потужний набір функцій для ручного розпаралелювання існуючого джерела програми, або для написання нових паралельних / розподілених програм.

Програмне забезпечення PVM має бути інстальоване на кожен пристрій, який використовує «віртуальну машину». Немає автоматичної інсталяції для виконуваних файлів на віддалених PVM пристроях, хоча просте копіювання pvm3/lib і pvm3/bin директорій до іншої аналогічної машини (і встановлення $PVM_ROOT і $PVM_ARCH) є достатнім для виконання PVM програм. Компіляція або створення програм PVM вимагає повної установки PVM.

Призначені для користувача програми написані на C, C++ або Fortran можуть отримати доступ до PVM через надані бібліотеки підпрограм.

PVM також підтримує радіомовлення (PVM_bcast), який посилає сигнал до усіх процесів у групі і multicasting (PVM_mcast) який посилає до певного списку процесів.

PVM: стандарт для кластерного програмування[ред. | ред. код]

Програмний пакет PVM дозволяє пов'язувати гетерогенную (неоднорідну) колекцію комп'ютерів в мережу для використання її як єдиного потужного паралельного комп'ютера. Загальна мета PVM-системи — отримати можливість спільно використовувати колекцію комп'ютерів для організації одночасної або паралельної обробки даних. Реалізація бібліотеки PVM підтримує:

• гетерогенність по комп'ютерам, мереж і додатків;

• детально розроблену модель передачі повідомлень;

• обробку даних на основі виконання процесів;

• мультипроцесорну обробку даних (MPP, SMP) [5];

• «напівпрозорий» доступ до обладнання (тобто додатки можуть або ігнорувати, або використовувати переваги відмінностей в апаратних засобах);

• динамічно настроюється пул (процесори можуть додаватися або віддалятися динамічно, можливий також їх змішаний склад).

PVM — це найпростіша (по використанню) і найбільш гнучка среда, доступна для вирішення завдань паралельного програмування, які вимагають застосування різних типів комп'ютерів, що працюють під управлінням різних операційних систем. PVM-бібліотека особливо корисна для об'єднання в мережу декількох однопроцесорних систем з метою освіти віртуальної машини з паралельно працюючими процесорами. Методи використання бібліотеки PVM в С ++ — коді ми розглянемо в розділі 6. PVM — це фактичний стандарт для реалізації гетерогенних кластерів, який легко доступний і широко поширений. PVM прекрасно підтримує моделі паралельного програмування MPMD (MIMD) і SPMD (SIMD). Обидві бібліотеки PVM і MPI можна успішно поєднувати з С ++ для програмування кластерів.[3]

Аналоги[ред. | ред. код]

  • MPI — специфікація механізму передачі повідомлень, опубликована в квітні 1994року, та маюча велику кількість реалізацій.
  • p4 Parallel Programming System — розробка Аргонської Національної лабораторії.
  • Express — продукт компанії ParaSoft Corporation.
  • Linda — розробка Єльського університету.

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

Примітки[ред. | ред. код]

  1. Release Notes
  2. а б Parallel Virtual Machine (PVM) Homepage.
  3. Трейси, Хьюз Камерон + Хьюз. PVM: стандарт для кластерного программирования - Параллельное и распределенное программирование на С++. www.e-reading.club. Процитовано 24 листопада 2016.

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