Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции - Чернышева.doc
Скачиваний:
8
Добавлен:
13.11.2019
Размер:
1.03 Mб
Скачать

Определение времени вычисления на Parsytec.

#include <time.h>

time_t time(timet*tloс);

tipedef long time_t

Функция time определяет относительное время в секундах и записывает по адресу tloс. Функция возвращает определенное время в секундах. Ошибка для данной функции не предусмотрена.

time_t tt, tloc;

tt=time(&tloс);

Так как tt=tloc можно записывать time(&tloс);

Определение времени в программе

time_t tn, tk;

int deltat, min, sec;

// начало вычислений

time (&tn);

……………// вычисления

// окончание вычислений

time (&tk);

deltat=tk-tn;

min=(int)(deltat/60);

sec=deltat %60;

printf (“время счета равно %d min, %d sec \n”, min, sec);

Сравнивать эффективность распараллеливания необходимо на Parsytec в однопроцессорной и многопроцессорной (на одной и той же машине)

МВС 1000M

Структура компьютера

http://www.jscc.ru Всего 768 процессоров

flating-point operators per second flops

Использована архитектура квази-матрица – трёхмерная решётка. Что позволяет наращивать программные модули без изменения топологии. Используется на операционных системах Linux и систематически применяется на базе C++.

MPI-интерфейс передачи сообщений

Среда для параллельного программирования реализованная на базе MPI

Message Passing Interfaceпрограммная среда, позволяющая осуществлять обмен данными между процессорами.

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

Основные понятия MPI:

  • Процесс;

  • Группа процессов;

  • Коммуникатор.

Процесс – исполнение программы на одном процессоре, причем не имеет значения, есть ли там параллельные ветви или операции обмена данными последующий программный код.

Каждый процесс имеет уникальный номер – целое неотрицательное число. Процессы не имеют общей памяти, общих данных. Каждый процесс имеет своё собственное адресное пространство. Процессы взаимодействуют друг с другом с помощью явного обмена данными.

Группа процессов – совокупность процессов, каждый из которых в группе имеет свой уникальный номер. Размер группы произволен. Процессы в группе взаимодействуют между собой с помощью коммуникатора.

Коммуникатор – осуществляет обмен данными между процессами и их синхронизацию. Каждый коммуникатор имеет своё коммуникационное пространство. Различные коммуникаторы друг с другом не взаимодействуют и не влияют друг на друга. Коммуникатор создаётся сразу же при создании группы. Вместе с тем при запуске MPI-программы считается, что создаётся всеобъемлющая группа с всеобъемлющим коммуникатором. Его предопределённое имя MPI_COMM_WORLD.

Замечания:

  • В MPI нет явного распределения процессов по процессорам. Предполагается, что операционная система сама распределяет процессы по процессорам.

  • Все предопределяемые константы, функции, типы данных в MPI имеют префикс MPI.

  • Все MPI-функции прописаны в «MPI.h» #include «mpi.h»