Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Константы 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; Прочитано: 604 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!