
- •Федеральное агенство связи Поволжская государственная академия телекоммуникаций и информатики
- •Введение
- •Реализация и настройка кластера интерфейса mpi в среде ms Windows 9x/nt/xp
- •Рекомендуемая литература
- •Лабораторная работа № 1 Компиляция программ, использующих интерфейс mpi
- •Подготовка к работе
- •Контрольные вопросы
- •3. Задание
- •4. Методические указания
- •4. Листинг программы
- •5. Примечания
- •Лабораторная работа № 2 Использование функции групповой рассылки данных
- •Подготовка к работе
- •Контрольные вопросы
- •3. Задание
- •4. Методические указания
- •5. Примечания
- •Лабораторная работа № 3 Вычисление числа π
- •Подготовка к работе
- •Контрольные вопросы
- •Задание
- •4. Методические указания
- •5. Пример выполнения
- •6. Примечания
- •Лабораторная работа № 4 Передача данных отдельным процессам
- •Задание
- •Методические указания
- •Алгоритм
- •Пример выполнения
- •Лабораторная работа № 5 Матричные вычисления
- •Контрольные вопросы
- •Приложение а
- •Приложение в Краткий справочник функций mpi
- •Сообщения «точка-точка»
- •Групповые сообщения
- •Типы пересылаемых данных
- •Аргументы
Типы пересылаемых данных
Тип в MPI |
Соответствующий тип в Си |
MPI_CHAR |
signed char |
MPI_SHORT |
signed short int |
MPI_INT |
signed int |
MPI_LONG |
signed long int |
MPI_UNSIGNED_CHAR |
unsigned char |
MPI_UNSIGNED_SHORT |
unsigned short |
MPI_UNSIGNED |
unsigned int |
MPI_UNSIGNED_LONG |
unsigned long int |
MPI_FLOAT |
float |
MPI_DOUBLE |
double |
MPI_LONG_DOUBLE |
long double |
MPI_BYTE |
8 бит |
MPI_PACKED |
Данные, упакованные с помощью MPI_Pack() |
Аргументы
Аргумент |
Тип |
Описание |
Буфер (buffer) |
*char |
Указатель на буфер, где хранятся пересылаемые данные. Должен выделяться до вызова функций с помощью malloc |
Количество( Count) |
Unsigned long |
Количество элементов в буфере. Например длина текстовой строки. |
Тип (type) |
MPI_TYPE |
Тип передаваемых данных. См. предыдущую таблицу |
Получатель (destination) |
Unsigned long |
Номер процесса-получателя. Если получатель не важен или нужен всем MPI_ANY_SOURCE |
Таг (tag) |
Unsigned long |
Идентификатор сообщения. Должен совпадать в функциях отправки и функции, которая получает отправленные данные. Если это не важно или не нужно – используется тег MPI_ANY_TAG |
Коммуникатор (comm) |
Unsigned long |
Номер коммуникатора. Если сообщение требуется разослать всем процессам – используется MPI_COMM_WORLD |
Статус (status) |
Struct MPI_STATUS |
Структура, содержащая статус выполненной функции. Формат можно посмотреть в файле mpi.h |
Запрос (request) |
Struct MPI_REQUEST |
Структура для асинхронных операций пересылки. С помощью неё можно в дальнейшем проверить состояние пересылаемого сообщения. |