Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MPI - MKM.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
391.79 Кб
Скачать

71 Сурак

1. Shared & distributed memory архитектуралары.

Распределенная общая память (DSM - Distributed Shared Memory)

Традиционно распределенные вычисления базируются на модели передачи сообщений, в которой данные передаются от процессора к процессору в виде сообщений. Удаленный вызов процедур фактически является той же самой моделью (или очень близкой). DSM - виртуальное адресное пространство, разделяемое всеми узлами (процессорами) распределенной системы. Программы получают доступ к данным в DSM примерно так же, как они работают с данными в виртуальной памяти традиционных ЭВМ. В системах с DSM данные перемещаются между локальными памятями разных компьютеров аналогично тому, как они перемещаются между оперативной и внешней памятью одного компьютера. Конфигурация — с распределенной разделяемой памятью, представляет собой вариант распределенной памяти. Здесь все узлы, состоящие из одного или нескольких процессоров, подключенных по схеме SMP, используют общее адресное пространство. Отличие этой конфигурации от машины с распределенной памятью в том, что здесь любой процессор может обратиться к любому участку памяти. Однако, время обращения к разным участкам памяти для каждого процессора различно в зависимости от того, где участок физически расположен в кластере. По этой причине такие конфигурации еще называют машинами с неоднородным доступом к памяти NUMA (non-uniform memory access).

2. Отличия MPI и PVM.

Система PVM (Parallel Virtual Machine) была создана для объединения нескольких связанных сетью рабочих станций в единую виртуальную параллельную вычислительную машину. Система представляет собой надстройку над операционной системой UNIX и используется на различных аппаратных платформах, включая и системы с массовым параллелизмом. Наиболее распространены сейчас системы параллельного программирования на основе MPI (Message Parsing Interface). Идея MPI исходно проста и очевидна. Она предполагает представление параллельной программы в виде множества параллельно исполняющихся процессов, взаимодействующих друг с другом в ходе исполнения передачи данных с помощью коммуникационных процедур. Они и составляют библиотеку MPI. Однако надлежащая реализация MPI для обеспечения межпроцессорных коммуникаций оказалась довольно сложной. Такая сложность связана с необходимостью достижения высокой производительности программ, необходимостью использовать многочисленные ресурсы мультикомпьютера, и, как следствие большим разнообразием в реализации коммуникационных процедур в зависимости от режима обработки данных.

MPI и PVM имеют следующие общие характеристики: 1. и MPI и PVM призваны решать одну и ту же задачу обеспечения межпроцессорной связи, 2. и MPI и PVM ориентированы на одну и туже MPMD парадигму программирования; 3. и MPI и PVM представляют собой библиотеку программ; 4. и MPI и PVM обеспечивают мобильность создаваемых программ.

MPI и PVM имеют следующие основные отличия: 1. интерфейс программиста PVM проще, чем такой же интерфейс MPI; 2. PVM имеет средства динамического порождения ветвей (в стандарте MPI-2 такая возможность также имеется); 3. в PVM возможно взаимодействие приложений, запущенных одним и тем же пользователем (в стандарте MPI-2 такая возможность также имеется).

3. Напишите программу параллельного вычисления числа e.

int main(int argc,char **argv)

{

int size,rank;

MPI_Status status;

MPI_Init(&argc,&argv);

MPI_Comm_rank(MPI_COMM_WORLD,&rank);

MPI_Comm_size(MPI_COMM_WORLD,&size);

float s,s0=1,s1=0,n=10,i,p;

int k;

if(rank==0)

{ for (i=0; i<n/2; i++)

{p=1;

for (k=1; k<=i+1; k++)

{p=p*(k); }

s0=s0+(1.0)/p;

}

MPI_Send(&s0,1,MPI_FLOAT,1,5,MPI_COMM_WORLD);

}

if(rank==1)

{

for (i=n/2; i<n; i++)

{ p=1;

for (k=1; k<=i+1; k++)

{p=p*k;}

s1=s1+(1.0)/p;

}

MPI_Recv(&s0,1,MPI_FLOAT,0,5,MPI_COMM_WORLD,&status);

s=s1+s0;

printf("s=%f ",s);

}

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]