62
функций, вызываемых из программ, написанных на языках C и FORTRAN.
Список этих функций весьма невелик, но, тем не менее, предоставляет
программисту достаточно широкие возможности для создания программ
сложной структуры. Возможно программирование как в режиме SPMD,
так и в режиме MPMD.
Рассмотрим наиболее важные из этих функций. При обсуждении
параметров процедур символами IN будем указывать входные параметры
процедур, символами OUT выходные, а INOUT – входные параметры,
модифицируемые процедурой.
Подпрограмма идентификации процессором самого себя whoami
Все параметры этой подпрограммы являются выходными.
Возвращаются: идентификатор (логический номер) процессора nCUBE2,
номер процесса на nCUBE2, номер xnc-процесса на хост-компьютере,
размерность выделенного задаче подкуба (общее число процессоров).
C:
void whoami (int *node_ID, int *proc, int *host, int *dims)
FORTRAN:
subroutine whoami (node_ID, proc, host, dims)
integer node_ID, proc, host, dims
Здесь:
OUT node_ID – номер процессора в заказанном подкубе, нумерация с 0;
OUT proc – целая переменная, в которую упакован номер
процессора и номер процесса;
OUT host – номер процесса на хост-компьютере, используется как
адрес для обмена c хост-компьютером;
OUT dims – размерность выделенного программе подкуба.
Функция nwrite посылает сообщение c идентификатором type
длиной nbyte из массива buffer процессору dest.
C:
int nwrite (char *buffer, int nbytes, int dest, int type, int *flag)
FORTRAN:
integer function nwrite (buffer, nbytes, dest, type, flag)
dimension buffer (*)
integer nbytes, dest, type, flag