ПВМ   ОКМ   ДМ   экономическая информатика   4GL   Теория и практика обработки информации

Параллельная виртуальная машина, PVM

Выполнение программ ПВМ

В этом подразделе Вы изучите, как откомпилировать и выполнить программы ПВМ. В последующих подразделах описывается как писать параллельные программы ПВМ. В этом Вы будете иметь дело с программами-образцами, поддерживаемыми программным обеспечением ПВМ. Эти образцовые программы создают полезные шаблоны, на основе которых можно создавать собственные ПВМ программы.

Первым шагом является копирование программы-образца в свою пользовательскую область на диске:

% cp -r /PVM_ROOT/examples $HOME/pvm3/examples

% cd $HOME/pvm3/examples

Каталог с примерами содержит файлы Makefile.aimk и Readme, в которых описано как построить примеры. ПВМ поддерживает архитектурно независимую программу построения aimk, которая автоматически определяет PVM_ARCH и прилинковывает любые требующиеся и специфичные для данной операционной системы библиотеки к разрабатываемому приложению. aimk автоматически доопределяет соответствующую $PATH, когда Вы помещаете cshrc.stub в файл .cshrc. Применение aimk позволяет Вам сохранить исходные тексты и файл с программой сборки неизменными при компиляции в среде с различными архитектурами.

Программная модель "ведущий-ведомый" - это наиболее популярная модель из используемых при распределенных вычислениях. (В области параллельного программирования вообще, модель ОКМД более популярна).

Для компиляции примера "ведущий-ведомый" на С введите:

% aimk master slave
Если Вы предпочитаете работать c Fortran, откомпилируете версию на Fortran:

% aimk fmaster fslave
В зависимости от расположения каталога согласно PVM_ROOT, выражения INCLUDE в заголовках примеров на Fortran могут нуждаться в изменениях. Если PVM_ROOT не совпадает с HOME/pvm3, то замените ее таким образом, чтобы она указывала на $PVM_ROOT/include/fpvm3.h. Заметьте, PVM_ROOT для Fortran не "расширяется" - поэтому Вы должны добавлять определение достоверного пути.

Программа сборки пересылает исполняемые файлы в $HOME/pvm3/bin/PVM_ARCH - где ПВМ по умолчанию будет искать их на всех хостах. Если задействованные файловые системы на всех хостах ПВМ не одинаковы, то Вам понадобится дополнительно создавать или копировать (в зависимости от архитектуры) эти исполняемые файлы на хосты в составе ПВМ.

Теперь, задействовав одно окно, запустите ПВМ и сконфигурируйте несколько хостов. Приводимые примеры разработаны для выполнения на произвольном числе хостов, включая один. В другом окне смените каталог на HOME/pvm3/bin/PVM_ARCH и введите:

% master
Программа выдаст запрос о числе задач. В примерах количество задач не обязательно должно совпадать с количеством хостов. Проверьте несколько комбинаций.

Первый пример иллюстрирует возможность запустить программу ПВМ из любого терминала Unix на любом хосте виртуальной машины. Этот процесс подобен способу, при котором Вы запускали бы последовательную программу a.out на рабочей станции. В следующем примере, который также относится к модели "ведущий-ведомый", под названием hitc, Вы можете увидеть, как порождается работа с консоли ПВМ, а также из XPVM.

hitc иллюстрирует балансирование динамической загрузки с применением парадигмы "пула задач". Согласно парадигме пула задач, ведущая программа управляет большой очередью задач, всегда посылая "простаивающим" ведомым программам больше заданий для выполнения - до тех пор, пока очередь не опустеет. Такая парадигма эффективна в ситуациях, когда хосты очень рознятся по вычислительной мощности потому, что наименее загруженные или более мощные хосты выполняют больше работы, причем все хосты остаются занятыми до тех пор, пока задание не выполнится. Для компиляции hitc введите:

% aimk hitc hitc_slave
С этого момента hitc не требует никакого пользовательского ввода, он может быть порожден прямо с консоли ПВМ. Запустите консоль ПВМ и добавьте ограниченное число хостов. В ответ на приглашение консоли ПВМ введите:

pvm> spavn -> hitc
При порождении, опция -> заставляет все конструкции вывода на экран в hitc и ему подчиненных направлять информацию в видимую область консоли. Эта возможность применима при отладке Ваших первых небольших программ ПВМ. Вы можете поэкспериментировать с этой опцией, помещая конструкции вывода на экран в hitc.f и hitc_slave.f и перекомпилируя их.

hitc может использоваться для иллюстрирования возможностей анимации в реальном масштабе времени для XPVM. Запустите XPVM и постройте виртуальную машину с четырьмя хостами. Кликните на кнопку tasks и выберите в меню spawn. Введите hitc, когда XPVM запросит команду и кликните на start. Вы увидите подсветку иконок хостов, как только виртуальная машина станет задействованной. Вы увидите порождение задач hitc_slave и увидите все сообщения, которые "бродят" между задачами на дисплее Space Time. Можно выбрать несколько несколько других вариантов просмотра с помощью XPVM меню views. Способ task output эквивалентен применению опции -> для консоли ПВМ. Это заставляет стандартный вывод всех задач принудительно перенаправлять в окно, которое при этом "всплывает".

Существует одно ограничение на программы, которые порождаются из XPVM (и консоли ПВМ). Программы не должны включать любой интерактивный ввод - как, например, запрос о числе подчиненных задач для запуска или о том, насколько велика решаемая задача. Этот тип информации может быть считан из файла или помещен в командную строку в качестве аргументов, но при этом нет никакой возможности пользовательского ввода с клавиатуры в потенциально удаленную задачу.

ПВМ   ОКМ   ДМ   экономическая информатика   4GL   Теория и практика обработки информации

Знаете ли Вы, что априорное решение в стохастических двухэтапных моделях - это вектор оптимальных значений переменных, характеризующих плановые задания, требующие выполнения до поступления информации о случайных событиях, влияющих на ожидаемые хозяйственные результаты.

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution