Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сборник лекций по предмету Методы Программирова...doc
Скачиваний:
43
Добавлен:
22.09.2019
Размер:
4.83 Mб
Скачать

Структура каталога pvm:

  1. Исполнительные файлы – примера программ.

  2. Конфигурационные файлы.

  3. Исходные тексты консоли.

  4. Документации.

  5. Исходные тексты примеров.

  6. Командные файлы.

Интерактивный режим работы PVM обеспечивается с помощью консоли. Ее можно остановить в любой момент – команда quit. Консоль можно запустить на каждом из хостов. Работа с ней не меняет конфигурацию PVM.

Приглашение ввести команду PVM: PVM>

Примеры команд:

PVM> add do1

PVM> delete do1

PVM> conf – вывести конфигурацию.

Наиболее распространенные проблемы

  1. Неправильное определение переменной окружения PVM_ROOT

  2. Файл с описанием хоста .rhost

  3. Неправильно зарегистрирован пользователь на данном хосте.

Пример простейшей программы

// программа для master

#include "pvm3.h"

main()

{

  int err, tid, msgtag;

  char buf[100];

  printf("master:tid t%i\n", pvm_mytid());

  err= pvm_spawn("f1", (char**)0, 0, "",1, &tid);

  if (err == 1) {

     msgtag = 1;

     pvm_recv(tid, msgtag);

      pvm_upkstr(buf);

     printf("Получено сообщение от tid= %i: %s\n", tid, buf);

else printf("Ошибка\n");

  pvm_exit();

}

Лекция 12

Структура программы pvm.

f1

#include “pvm3.h”

main ()

{

int ptid, msgtag;

char buf [100];

ptid=pvm-parent (); // определяется идентификатор базового процесса

strcopy (buf, “Задача f1”); // занесение в буфер

msgtag=1;

pvm-initsend ();

PvmDataDefault (); //режимы инициирования по умолчанию

pvm_pkstr (buf);

pvm_send (ptid, msgtag);

pvm_exit ();

}

Выводы по pvm:

  1. Если платформа в виде многопроцессорного компьютера, то рекомендуется использовать технологию MPI;

  2. Если предполагается использовать различные по настройкам режимы обмена, то используем MPI;

  3. Если используется гетерогенный кластер (разнородный), то используем PVM;

  4. Динамическое распределение задач, то используем PVM.

Классификация вычислительных систем

Одним из наиболее распространенных способов классификации ЭВМ является систематика Флинна (Flynn), в рамках которой основное внимание при анализе архитектуры вычислительных систем уделяется способам взаимодействия последовательностей (потоков) выполняемых команд и обрабатываемых данных. При таком подходе различают следующие основные типы систем:

Рис. 13

I – поток инструкций

D – поток данных

Рис. 14

За одну операцию обрабатывается вектор данных

Рис. 15

Много операций над одним и тем же числом.

Рис. 16

Алгоритмы предварительного распределения данных (графы)

Модель PRAM (параллельный произвольный доступ к памяти - parallel random acess memory)- вычислительная модель, состоящая из некоторого числа синхронизованных процессоров, имеющих доступ к общей памяти. В модели предусмотрены режимы Exclusive, когда одновременный доступ к ячейке памяти разрешается только одному процессору, и Concurrent, когда одновременный доступ к ячейке памяти разрешается нескольким процессорам. Процессоры сильно связаны и используют общий блок памяти. У каждого процессора есть индивидуальная регистровая память.

Все процессоры осуществляют стандартный цикл обработки.

  • чтение данного

  • обработка

  • запись в память

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

  1. Конкурентный доступ

  2. Исключительный доступ

Коллизии чтения

  1. Конкурентный режим доступа. К одной и той же ячейке могут обращаться несколько процессоров одновременно.

  2. Исключительный доступ. Читать из поля памяти может в каждый момент времени только единственный процессор.

Коллизии записи

  1. Конкурентный доступ к памяти. Коллизии разрешаются приоритетами, приоритет может совпадать с номером процессора, может вычисляться в процессе решения задачи, логическое управление конкурентным доступом. Запись допускается, если процессоры записывают одно и то же значение, записывается минимальное из значений, которые они записывают. Арифметические подходы: попытка записи нескольких значений, то записывается их сложение или умножение.

  2. Исключительный подход. Любая коллизия при записи фиксируется как ошибка.