Библиотека MPICH может использоваться в программах на языках; C/C++ и FORTRAN 90. На этих языках различаются вызов подпрограмм, запись имен функций, способы получения кодов завершения подпрограмм и прочее. Здесь мы будем в основном рассматривать случаи использования языка С и С++. В программах на языке С/С++ для имен функций используется префикс MPI_, поэтому нежелательно для своих функций или переменных использовать имена, которые начинаются с символов MPI_. Первая буква имени набирается в верхнем регистре. Согласно спецификации имена подпрограмм имеют такой вид: Класс_действие__подмножество или Класс_действие. В C++ подпрограмма является методом для определенного класса, поэтому запись имени в этом языке иная: MPI::Класс::действие_подмножество. Для некоторых действий введены стандартные наименования:
Create — создание нового объекта,
Get — получение информации об объекте,
Set — установка параметров объекта,
Delete — удаление информации,
Is — запрос о том, имеет ли объект указанное свойство.
Значения кода завершения имеют целый тип и определяются по значению функции. Имена констант MPI записываются в верхнем регистре. Их описания находятся в заголовочном файле mpi.h, который обязательно включается в MPI-программу. В других реализациях MPI имя этого файла может быть иным. Входные параметры функций передаются по значению, а выходные (и INOUT) — по ссылке. Переменная status имеет тип MPI_Status и является структурой с полями status.MPI_SOURCE и status.MPI_TAG. В MPI принята своя система обозначения типов данных, которая во многих случаях соответствует типам данных в языках С/С++ (табл. 4.1) и FORTRAN (табл. 4.2).
Тип данных 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 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 должны соблюдаться правила совместимости типов. Соответствие типов, как правило, должно иметь место в процедурах отправки и процедурах приема сообщений. Избазовых типов могут быть сконструированы более сложные типы данных.
В отличие от С/С++ на языке FORTRAN регистр букв в именах не имеет значения, однако по традиции и определенным соглашениям имена подпрограмм желательно набирать в верхнем регистре. Все имена подпрограмм и констант MPI начинаются с MPI_. Коды завершения передаются через дополнительный параметр целого типа, который обычно находится на последнем месте в списке параметров подпрограммы. Код успешного завершения — MPI_SUCCESS. Константы и другие объекты MPI описываются в файле mpi.h, который обязательно включается в MPI-программу с помощью оператора include. Оператор include находится в начале программы. Переменная status является массивом стандартного целого типа. Его размер (MPI_STATUS_SIZE) и индексы задаются именованными константами, например:
integer status(MPI_STATUS_SIZE)
. . .
if(status(MPI_TAG).EQ.tag1)
then
. . .
Тип данных MPI |
Тип данных FORTRAN |
MPI_INTEGER |
INTEGER |
MPI_REAL |
REAL |
MPI_DOUBLE_PRECISION |
DOUBLE PRECISION |
MPI_DOUBLE_COMPLEX |
DOUBLE COMPLEX |
MPI_COMPLEX |
COMPLEX |
MPI_LOGICAL |
LOGICAL |
MPI_CHARACTER |
CHARACTER |
MPI_BYTE |
Нет соответствия |
MPI_PACKED |
Нет соответствия |
Типы, которые имеются не во всех реализациях MPI |
|
MPI_INTEGER1 |
INTEGER*1 |
MPI_INTEGER2 |
INTEGER*2 |
MPI_INTEGER4 |
INTEGER*4 |
MPI_REAL4 |
REAL*4 |
MPI_REAL8 |
REAL*8 |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.