Сообщения MPI.
Теория разработки параллельных программ на основе библиотеки MPI
Число Число элементов данных в сообщении. Заметим, что это число элементов, а не байт. Это делается для переносимости кода, чтобы не беспокоиться о различных представлениях типов данных на различных компьютерах. Реализация математического обеспечения MPI определяет число байт автоматически. Число, определенное при получении, должно быть не меньше числа, определенного при отправке. Если… Читать ещё >
Сообщения MPI. Теория разработки параллельных программ на основе библиотеки MPI (реферат, курсовая, диплом, контрольная)
Сообщения MPI состоят из двух основных частей: отправляемые или получаемые данные (содержимое), и сопроводительная информация (записи на оболочке — конверте). Сопроводительная информация позволяет отправить данные по определенному маршруту. В вызовах передачи сообщений MPI обычно существуют три вызываемых параметра, которые описывают данные и три других параметра, которые определяют маршрут:
Сообщение = данные (3 параметра) + оболочка (3 параметра) Типичный состав сообщения в MPI смотрите рис. 3.1:
Рис. 3.1.
Ниже будет дано более детальное обсуждение каждого параметра в данных и оболочке, включая информацию о том, когда отправителю и получателю следует скоординировать эти параметры.
Данные
Буфер в вызовах MPI есть место в компьютерной памяти, из которого сообщения должны быть отправлены или где они накапливаются при приеме. В этом смысле буфер — это просто память, которую компилятор выделил для переменной (часто, массива) в вашей программе. Следующие три параметра вызова MPI необходимы, чтобы определить буфер: Начало буфера 14 Адрес начала данных.
Число Число элементов данных в сообщении. Заметим, что это число элементов, а не байт. Это делается для переносимости кода, чтобы не беспокоиться о различных представлениях типов данных на различных компьютерах. Реализация математического обеспечения MPI определяет число байт автоматически. Число, определенное при получении, должно быть не меньше числа, определенного при отправке. Если отправляется больше данных, чем имеется места в хранилище принимающего буфера, то произойдет ошибка.
Тип данных Тип данных, которые будут передаваться — с плавающей точкой, например. Этот тип данных должен быть тем же самым в вызовах функций отправки и получения. Исключением из этого правила является тип данных MPI_PACKED, который является одним из способов обработки сообщений со смешанным типом данных (предпочтительнее использовать метод с производными типами данных). Проверка типов в этом случае не нужна. Предопределенные в MPI типы данных называют «основными типами данных», они перечислены ниже.
Основные типы данных MPI для C смотрите рис. 3.2.
Рис. 3.2.
Производные типы данных Могут быть также определены дополнительные типы данных, называемые производными типами данных. Вы можете определить тип данных для несмежных данных или для последовательности смешанных основных типов данных. Это может облегчить программирование и часто обеспечивает более быстрое выполнение кода. Производные типы данных будут описаны в модуле «Производные типы данных», одной из последующих лабораторных работ.
Некоторые производные типы данных:
- * Contiguous
- * Vector
- * Hvector
- * Indexed
- * Hindexed
- * Struct