Параллельная виртуальная машина ( PVM ) — это программный инструмент для параллельной сетевой работы компьютеров . Он разработан для того, чтобы сеть разнородных машин Unix и/или Windows могла использоваться как единый распределенный параллельный процессор . [2] Таким образом, большие вычислительные задачи могут быть решены более экономически эффективно за счет использования совокупной мощности и памяти многих компьютеров. Программное обеспечение очень портативно; исходный код, доступный бесплатно через netlib , был скомпилирован на всем, от ноутбуков до Crays . [3]
PVM позволяет пользователям использовать имеющееся у них компьютерное оборудование для решения гораздо более масштабных задач с меньшими дополнительными затратами. PVM использовался в качестве образовательного инструмента для обучения параллельному программированию , но также использовался для решения важных практических задач. [3] Он был разработан Университетом Теннесси , Национальной лабораторией Оук-Ридж и Университетом Эмори . Первая версия была написана в ORNL в 1989 году, и после того, как ее переписал Университет Теннесси, версия 2 была выпущена в марте 1991 года. Версия 3 была выпущена в марте 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), которая отправляет данные всем процессам в группе, и многоадресную рассылку (PVM_mcast), которая отправляет данные определенному списку процессов.