Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Константы. Типы. Сообщения, атрибуты сообщения. Структура MPI_Status



Константы MPI

· MPI_SUCCESS - константа, в которую записывается результат работы функции, если равно 0, то функция удачно завершила работу, иначе функция возвращает ошибку.

· MPI_COMM_WORLD - идентификатор коммуникатора всеобъемлющей группы, которая стартует при запуске MPI-программы

· MPI_ANY_SOURCE - идентификатор любого процесса отправителя

· MPI_ANY_TAG - идентификатор сообщения с любым идентификатором, с любым тегом

· MPI_Datatype - системный тип для обозначения типа переменных в терминологии MPI

· MPI_Comm - системный тип для описания коммуникаторов

· MPI_BSEND_OVERHEAD - константа для буфера, используемого функцией MPI_Bsend (#define MPI_BSEND_OVERHEAD 512)

· MPI_Op - системный тип для описания глобальных операций

Обозначение глобальной операции Описание глобальной операции
MPI_MAX Нахождение максимального значения
MPI_MIN Минимальное значение
MPI_SUM Сумма
MPI_PROD Произведение
MPI_LAND Логическое И (конъюнкция)
MPI_BAND Побитовая конъюнкция
MPI_LOR Логическое ИЛИ (дизъюнкция)
MPI_BOR Побитовая дизъюнкция
MPI_LXOR Лог. XOR
MPI_BXOR Побит. XOR
Тип С/С++ Тип MPI_Datatype
char MPI_CHAR
int MPI_INT
float MPI_FLOAT
double MPI_DOUBLE
long double MPI_LONG_DOUBLE

Cтруктура MPI_Status. Сообщение MPI

Сообщение - набор данных определенного типа.

Сообщение имеет атрибуты, важные из этих атрибутов: идентификатор сообщения или тег

сообщения: msgtag

Тег сообщения у перенимающего или переедающего сообщения должен совпадать

В структуре MPI_Status прописаны атрибуты принятого сообщения. Она имеет вид:

typedef struct { int count;//количество байт в принятом сообщении

int MPI_SOURCE;//идентификатор процесса отправителя

int MPI_TAG;//идентификатор сообщения

int MPI_ERROR;//код ошибки } MPI_Status;

Пусть в программе описана структура MPI_Status, которую назовем status. Для обращения к

полям структуры будем:

1) для определения идентификатора процесса отправителя status.MPI_SOURCE

2) для определения тэга сообщения status.MPI_TAG

3) для определения кода ошибки status.MPI_ERROR

4) поле count является private, поэтому для определения числа элементов в принятом сообщении пользуются функцией: int MPI_Bit_count(MPI_Status *status, MPI_Datatype type, int *count)

MPI_Status *status - адрес структуры типа MPI_Status

MPI_Datatype type - тип элементов в принятом сообщении в терминологии MPI

int *count - адрес переменной целого типа, куда будет записано количество элементов в принятом сообщении.

3. Основные функции MPI: MPI_Init(), MPI_Finalize(), MPI_Wtime().

Функция инициализации параллельной секции

int MPI_Init(int *argc, char **argv);

При запуске функции инициализируется параллельная секция. Всем процессам параллельного приложения передаются параметры main(), в которых указывается общее число процессов в приложении. Функция возвращает код ошибки или 0 в случае успешного завершения.

Функция деинициализации параллельной секции





Дата публикования: 2015-02-03; Прочитано: 602 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...