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

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

Портирование существующих приложений в ПВМ

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

Распараллеливание приложений можно делать "интуитивно", взяв за основу существующие последовательные версии или даже параллельные. В обоих случаях стадии сводятся к выбору подходящего алгоритма для каждой из подзадач приложения - обычно с помощью опубликованных описаний - или изобретением параллельного алгоритма и последующему кодированию этого алгоритма на выбранном языке (C, C++ или Fortran 77 - для ПВМ), а также реализации интерфейса с другими приложениями, управляющим процессом и прочими конструкциями. При распараллеливании существующих последовательных программ также обычно следуют общим рекомендациям, первичным из которых является "разрыв петель", начиная с наиболее удаленных петель и постепенно продвигаясь вглубь. Основная работа такого процесса заключается в определении зависимостей и разбивании петель таким образом, чтобы зависимости не нарушались при возникновении параллельных выполнений. Процесс такого распараллеливания описан в ряде печатных изданий и учебников по параллельному программированию, хотя в немногих из них обсуждаются практические и специфические аспекты трансформации последовательной программы в параллельную.

Существующие параллельные программы могут базироваться либо на парадигме разделения памяти, либо на парадигме распределенной памяти. Приспособление написанных программ для разделяемой памяти к ПВМ походит на преобразование из последовательного кода, причем версии с разделяемой памятью базируются на векторном или на уровне петель параллелизме. В случае с программами, явно разделяющими память, первичная задача состоит в поиске точек синхронизации и замещении их обменами сообщениями. Для преобразования для распределенной памяти параллельного кода к ПВМ, главная задача состоит в преобразовании одного набора параллельных конструкций в другой. Обычно, существующие параллельные программы для распределенной памяти написаны либо для аппаратных мультипроцессоров, либо для других, сетевых сред, таких, как p4 или Express. В обоих случаях, главные изменения требуются в отношении подсистемы управлении процессами. В примере с семейством Intel DMMP, обычной практикой является запуск процессов с помощью командной строки интерактивных оболочек. Такая парадигма должна замещаться ПВМ - либо посредством ведущей программы, либо посредством программы для станции, берущей на себя ответственность за порождение процессов. В смысле взаимодействия, при этом, к счастью, много общего между вызовами по обмену сообщениями в различных средах программирования. Основными отличиями ПВМ и других систем в этом контексте являются:

ПВМ   ОКМ   ДМ   экономическая информатика   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