Здавалка
Главная | Обратная связь

MPI_SEND(buf, count, datatype, dest, tag, comm)



 

buf начальный адрес буфера посылки сообщения (альтернатива)
count число элементов в буфере посылки (неотрицательное целое)
datatype тип данных каждого элемента в буфере передачи (дескриптор)
dest номер процесса-получателя (целое)
tag тэг сообщения (целое)
comm коммуникатор (дескриптор)

Данные в сообщении

Буфер посылки описывается операцией MPI_SEND,в которой указано количество последовательных элементов, тип которых указан в поле datatype,начиная с элемента по адресу buf.Длина сообщения задается числом элементов, а не числом байт.

Число данных countв сообщении может быть равно нулю, это означает, что область данных в сообщении пуста. Базисные типы данных в сообщении соответствуют базисным типам данных используемого языка программирования. Список возможного соответствия этих типов данных для языка С и MPI дан ниже.

MPI datatype C datatype
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 int
MPI_UNSIGNED unsigned int
MPI_UNSIGNED_LONG unsigned long int
MPI_FLOAT float
MPI_DOUBLE double
MPI_LONG_DOUBLE long double
MPI_BYTE  
MPI_PACKED  

Типы MPI_BYTEи MPI_PACKEDне имеют соответствия в языке С. Значением типа MPI_BYTEявляется байт. Байт не интерпретируется и отличен от символа. Различные машины могут иметь различное представление для символов или могут использовать для представления символов более одного байта. С другой стороны, байт имеет то же самое двоичное значение на всех машинах.

Атрибуты сообщения

В дополнение к описанию данных сообщение несет информацию, которая используется, чтобы различать и выбирать сообщения. Эта информация состоит из фиксированного количества полей, которые в совокупности называются атрибутами сообщения. Эти поля таковы: source, destination, tag, communicator (номер процесса-отправителя сообщения, номер процесса-получателя, тэг, коммуникатор).

Целочисленный аргумент тэг используется, чтобы различать типы сообщений. Диапазон значений тэга находится в пределах 0,…,UB, где верхнее значение UB зависит от реализации. MPI требует, чтобы UB было не менее 32767.

Аргумент commописывает коммуникатор, который используется в операции обмена. Коммуникатор описывает коммуникационный контекст коммуникационной операции. Сообщение всегда принимается внутри контекста, в котором оно было послано; сообщения, посланные в различных контекстах, не взаимодействуют.

Коммуникатор также описывает ряд процессов, которые разделяют этот коммуникационный контекст. Эта группа процессов упорядочена, и процессы определяются их номером внутри этой группы: диапазон значений для destесть 0,...,n-1, где n есть число процессов в группе

В MPI предопределен коммуникатор MPI_COMM_WORLD.Он разрешает обмен для всех процессов, которые доступны после ини­циализации MPI, и процессы идентифицируются их номерами в груп­пе MPI_COMM_WORLD.

Блокирующий прием







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.