WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!


Pages:     | 1 | 2 || 4 | 5 |   ...   | 8 |

Элемент i определяет смещение относительно recvbuf, с которым нужно поместить входящие данные из i процесса (значимый только в корне) recvtype Тип данных элементов буфера recv (значимый только в корне) (дескриптор) root Номер получающего процесса (целое число) comm Коммуникатор (дескриптор) Выходной параметр recvbuf Адрес буфера приема (указатель, значимый только в корне) MPI_Get_count Получает число элементов "верхнего уровня" int MPI_Get_count(MPI_Status *status, MPI_Datatype datatype, int *count) Входные параметры status Состояние, возвращенное операцией приема (статус) datatype Тип данных элемента буфера приема (дескриптор) Выходной параметр count Число полученных элементов (целое число) Примечание. Если размер типа данных – ноль, эта подпрограмма возвратит count = нулю. Если количество данных в status – не точный множитель размера типа данных datatype (при этом count не был бы целым), взамен возвращается count = MPI_UNDEFINED.

MPI_Get_elements Возвращает число основных элементов в типе данных int MPI_Get_elements(MPI_Status *status, MPI_Datatype datatype, int *elements) Входные параметры status Состояние, возвращенное операцией приема (статус) datatype Тип данных, используемый операцией приема (дескриптор) Выходной параметр count Число полученных основных элементов (целое число) MPI_Get_processor_name Получает имя процессора int MPI_Get_processor_name(char *name, int *resultlen) Выходные параметры name Уникальный спецификатор для фактического (в противоположность виртуальному) узла.

resultlen Длина имени (в символах) Примечание. Возвращенное имя должно идентифицировать специфическую часть аппаратных средств; точный формат определяется реализацией. Это имя может быть, а может и не быть тем же, что и возвращаемое при помощи gethostname, uname или sysinfo.

MPI_Get_version Получает версию MPI int MPI_Get_version(int *version, int *subversion) Выходные параметры version Старшая версия MPI (1 или 2) subversion Младшая версия MPI.

Примечание. Определенные значения MPI_VERSION и MPI_SUBVERSION содержат ту же самую информацию. Эта подпрограмма позволяет Вам проверить, соответствует ли библиотека версии, определенной в файле mpi.h.

MPI_Group_compare Сравнивает две группы int MPI_Group_compare(MPI_Group group1, MPI_Group group2, int *result) Входные параметры group1 1 группа (дескриптор) group2 2 группа (дескриптор) Выходной параметр result Целое число, которое является MPI_IDENT, если порядок и члены обеих групп одинаковы, MPI_SIMILAR, если только члены одинаковы, и MPI_UNEQUAL – иначе MPI_Group_difference Делает группу из разности двух групп int MPI_Group_difference(MPI_Group group1, MPI_Group group2, MPI_Group *group_out) Входные параметры group1 Первая группа (дескриптор) group2 Вторая группа (дескриптор) Выходной параметр newgroup Группа - разность (дескриптор) См. также MPI_Group_free MPI_Group_excl Производит группу, переупорядочивая существующую группу и принимая только неперечисленные члены int MPI_Group_excl(MPI_Group group, int n, int *ranks, MPI_Group *newgroup) Входные параметры group Группа (дескриптор) n Число элементов в массиве ranks (целое число) ranks Массив целочисленных номеров в группе group, которые не должны появиться в новой группе Выходной параметр newgroup Новая группа, полученная, как описано выше, с сохранением порядка, определенного группой group (дескриптор) Примечание. В настоящее время, каждый из исключаемых номеров должен быть действительным номером процесса в группе и все элементы должны быть различными, иначе – функция ошибочна. Это ограничение реализации – временное.

См. также MPI_Group_free MPI_Group_free Освобождает группу int MPI_Group_free(MPI_Group *group) Входной параметр group Группа (дескриптор) Примечание. На выходе group устанавливается в MPI_GROUP_NULL.

MPI_Group_incl Производит группу, переупорядочивая существующую группу и принимая только перечисленные члены int MPI_Group_incl(MPI_Group group, int n, int *ranks, MPI_Group *group_out) Входные параметры group Группа (дескриптор) n Число элементов в массиве ranks (и размер newgroup) (целое число) ranks Номера процессов в группе group, которые должны появиться в newgroup (массив целых чисел) Выходной параметр newgroup Новая группа, полученная, как описано выше, в порядке, определяемом массивом ranks (дескриптор) Примечание. Реализация в настоящее время не проверяет список номеров, чтобы гарантировать отсутствие дубликатов.

См. также MPI_Group_free MPI_Group_intersection Производит группу как пересечение двух существующих групп int MPI_Group_intersection(MPI_Group group1, MPI_Group group2, MPI_Group *group_out) Входные параметры group1 Первая группа (дескриптор) group2 Вторая группа (дескриптор) Выходной параметр newgroup Группа - пересечение (дескриптор) См. также MPI_Group_free MPI_Group_range_excl Производит группу, исключая диапазоны процессов из существующей группы int MPI_Group_range_excl(MPI_Group group, int n, int ranges[][3], MPI_Group *newgroup) Входные параметры group Группа (дескриптор) n Число элементов (троек) в массиве ranges (целое число) ranges Одномерный массив целочисленных троек вида [первый номер, последний номер, шаг], указывающих номера в группе процессов group, которые будут исключены из выходной групы newgroup.

Выходной параметр newgroup Новая группа, полученная, как описано выше, с сохранением порядка в группе group (дескриптор) См. также MPI_Group_free и примечание к MPI_Group_excl MPI_Group_range_incl Создает новую группу из диапазонов номеров в существующей группе int MPI_Group_range_incl(MPI_Group group, int n, int ranges[][3], MPI_Group *newgroup) Входные параметры group Группа (дескриптор) n Число троек в массиве ranges (целое число) ranges Одномерный массив целочисленных троек вида [первый номер, последний номер, шаг], индицирующих номера в группе group или процессы, которые будут включены в newgroup Выходной параметр newgroup Новая группа, полученная, как описано выше, в порядке, определенном диапазонами ranges (дескриптор) Примечание. Реализация в настоящее время не проверяет список диапазонов, чтобы включаемые номера были действительными процессами в группе.



См. также MPI_Group_free MPI_Group_rank Возвращает номер текущего процесса в заданной группе int MPI_Group_rank(MPI_Group group, int *rank) Входной параметр group Группа (дескриптор) Выходной параметр rank Номер вызывающего процесса в группе, или MPI_UNDEFINED, если процесс не является ее членом (целое число) MPI_Group_size Возвращает размер группы int MPI_Group_size(MPI_Group group, int *size) Входной параметр group Группа (дескриптор) Выходной параметр size Число процессов в группе (целое число) MPI_Group_translate_ranks Транслирует номера процессов в одной группе в их номера в другой группе int MPI_Group_translate_ranks(MPI_Group group_a, int n, int *ranks_a, MPI_Group group_b, int *ranks_b) Входные параметры group1 1 группа (дескриптор) n Число номеров в массивах ranks1 и ranks2 (целое число) ranks1 Массив действительных номеров в group1 (ноль или более номеров) group2 2 группа (дескриптор) Выходной параметр ranks2 Массив соответствующих номеров в group2, MPI_UNDEFINED, когда соответствия не существует.

MPI_Group_union Производит группу, объединяя две группы int MPI_Group_union(MPI_Group group1, MPI_Group group2, MPI_Group *group_out) Входные параметры group1 Первая группа (дескриптор) group2 Вторая группа (дескриптор) Выходной параметр newgroup Группа - объединение (дескриптор) См. также MPI_Group_free MPI_Ibsend Начинает неблокирующую буферизированную посылку int MPI_Ibsend(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request) Входные параметры buf Начальный адрес буфера посылки (указатель) count Число элементов в буфере посылки (целое число) datatype Тип данных элемента буфера посылки (дескриптор) dest Номер адресата (целое число) tag Идентификатор сообщения (целое число) comm Коммуникатор (дескриптор) Выходной параметр request Запрос связи (дескриптор) MPI_Init Инициализирует выполнение среды MPI int MPI_Init(int *argc, char ***argv) Входные параметры argc Указатель на число параметров argv Указатель на вектор параметров Параметры командной строки. MPI не определяет параметры командной строки, но позволяет реализации MPI использовать их.

-mpiqueue Распечатывает состояние очередей сообщений, когда вызывается MPI_Finalize. Вывод может быть труден для декодирования и предназначен для целей отладки.

-mpiversion Распечатывает версию реализации (не MPI), включая параметры, которые использовались при выборе конфигурации.

-mpinice nn Увеличивает nice value до nn (понижая приоритет программы до nn). nn должен быть положительным (кроме корня). Не все системы поддерживают этот параметр; те, что не поддерживают – игнорируют его.

-mpedbg Запускает отладчик в окне xterm при возникновении ошибки (либо обнаруженной MPI, либо – при обычном фатальном сигнале). Это работает только, если MPICH был конфигурирован с параметром -mpedbg.

-mpimem Если MPICH был построен с -DMPIR_DEBUG_MEM, использование аргумента приводит к проверке всех операций malloc и free (внутри MPICH) на наличие признаков ущерба областям распределения памяти.

-mpidb options Активизирует различные опции отладки. Некоторые требуют, чтобы MPICH был построен со специальными опциями. Они предназначены для отладки MPICH, не для отладки программ пользователя.

Примечания. На выходе из этой подпрограммы все процессы будут иметь копии списка параметров. Стандарт MPI этого не требует, и действительно переносимые коды не должны на это полагаться. Данная особенность обеспечена как сервис реализации.

Стандарт MPI не определяет, что программа может делать перед MPI_Init и после MPI_Finalize. В MPICH реализации Вы должны делать как можно меньше. В частности, избегайте чего-либо, что изменит внешнее состояние программы, например, открытие файлов, чтение стандартного ввода или запись в стандартный вывод.

Стандарт MPI требует документирования всех используемых аппаратных сигналов. MPICH реализация непосредственно не использует сигналы, но некоторые из них могут использоваться программным обеспечением, над которым MPICH надстроена. Обратите внимание, что если Вы используете программное обеспечение, нуждающееся в тех же самых сигналах, Вы можете обнаружить, что не имеется никакого способа использовать такое программное обеспечение с MPI реализацией. Сигналы, которые вызывают наибольшие проблемы для прикладных программ, включают SIGIO, SIGALRM и SIGPIPE. Например, использование SIGIO и SIGPIPE может вывести из строя X11 подпрограммы.

MPI_Init_thread Инициализирует выполнение среды MPI int MPI_Init_thread(int *argc, char ***argv, int required, int *provided) Входные параметры argc Указатель на число параметров argv Указатель на вектор параметров required Желательный уровень поддержки потока Выходной параметр provided Обеспечиваемый уровень поддержки потока Параметры командной строки. MPI не определяет параметры командной строки, но позволяет MPI реализации использовать их. См.





MPI_Init для описания параметров командной строки, поддержанных MPI_Init и MPI_Init_thread.

Примечание. В настоящее время MPICH накладывает на MPI_Init_thread те же самые ограничения, что и на MPI_Init (см. описание MPI_Init). Когда MPICH полностью поддержит MPI-2, это ограничение будет снято (как требуется стандартом MPI-2).

MPI_Initialized Указывает, вызывалась ли MPI_Init int MPI_Initialized(int *flag) Выходной параметр flag Флажок true, если MPI_Init вызвалась, и false – в противном случае.

MPI_Iprobe Неблокирующий тест для сообщения int MPI_Iprobe(int source, int tag, MPI_Comm comm, int *flag, MPI_Status *status) Входные параметры source Номер процесса-источника или MPI_ANY_SOURCE (целое число) tag Значение идентификатора сообщения или MPI_ANY_TAG (целое число) comm Коммуникатор (дескриптор) Выходной параметр flag (Логический) status Объект состояния (статус) MPI_Irecv Начинает неблокирующий прием int MPI_Irecv(void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Request *request) Входные параметры buf Начальный адрес буфера приема (указатель) count Число элементов в буфере приема (целое число) datatype Тип данных элемента буфера приема (дескриптор) source Номер процесса-источника (целое число) tag Идентификатор сообщения (целое число) comm Коммуникатор (дескриптор) Выходной параметр request Запрос связи (дескриптор) MPI_Irsend Начинает неблокирующую готовую посылку int MPI_Irsend(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request) Входные параметры buf Начальный адрес буфера посылки (указатель) count Число элементов в буфере посылки (целое число) datatype Тип данных элемента буфера посылки (дескриптор) dest Номер процесса-адресата (целое число) tag Идентификатор сообщения (целое число) comm Коммуникатор (дескриптор) Выходной параметр request Запрос связи (дескриптор) MPI_Isend Начинает неблокирующую посылку int MPI_Isend(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request) Входные параметры buf Начальный адрес буфера посылки (указатель) count Число элементов в буфере посылки (целое число) datatype Тип данных элемента буфера посылки (дескриптор) dest Номер процесса-адресата (целое число) tag Идентификатор сообщения (целое число) comm Коммуникатор (дескриптор) Выходной параметр request Запрос связи (дескриптор) MPI_Issend Начинает неблокирующую синхронную посылку int MPI_Issend(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request) Входные параметры buf Начальный адрес буфера посылки (указатель) count Число элементов в буфере посылки (целое число) datatype Тип данных элемента буфера посылки (дескриптор) dest Номер процесса-адресата (целое число) tag Идентификатор сообщения (целое число) comm Коммуникатор (дескриптор) Выходной параметр request Запрос связи (дескриптор) MPI_Op_create Создает определяемый пользователем дескриптор комбинационной функции int MPI_Op_create(MPI_User_function *function, int commute, MPI_Op *op) Входные параметры function Определяемая пользователем функция (функция) commute true, если коммутативная; false иначе.

Выходной параметр op Операция (дескриптор) Примечание. Определение типа функции пользователя:

typedef void (MPI_User_function)(void *a, void *b, int *len, MPI_Datatype*);

где операция – это b[i] = a[i] op b [i], для i =0,..., len-1. Указатель типа данных, передаваемый MPI подпрограмме коллективного вычисления (т.е.

MPI_Reduce, MPI_Allreduce, MPI_Scan или MPI_Reduce_scatter) передается также и определенной пользователем подпрограмме.

См. также MPI_Op_free MPI_Op_free Освобождает определяемый пользователем дескриптор комбинационной функции int MPI_Op_free(MPI_Op *op) Входной параметр op Операция (дескриптор) Примечание. На выходе op устанавливается в MPI_OP_NULL.

Пустые дескрипторы. Спецификация MPI 1.1 в разделе по непрозрачным объектам запрещает использование пустого дескриптора в качестве параметра (см. примечание к разделу MPI_Cancel).

См. также MPI_Op_create MPI_Pack Упаковывает тип данных в непрерывную память int MPI_Pack(void *inbuf, int incount, MPI_Datatype datatype, void *outbuf, int outcount, int *position, MPI_Comm comm) Входные параметры inbuf Начало входного буфера (указатель) incount Число входных элементов данных (целое число) datatype Тип входных элементов данных (дескриптор) outcount Размер выходного буфера, в байтах (целое число) position Текущая позиция в буфере, в байтах (целое число) comm Коммуникатор для упакованного сообщения (дескриптор) Выходной параметр outbuf Начало выходного буфера (указатель) См. также MPI_Unpack, MPI_Pack_size MPI_Pack_size Возвращает верхнюю границу пространства, необходимого для упаковки сообщения int MPI_Pack_size(int incount, MPI_Datatype datatype, MPI_Comm comm, int *size) Входные параметры incount Параметр-счетчик для вызова упаковки (целое число) datatype Параметр типа данных для вызова упаковки (дескриптор) comm Параметр коммуникатора для вызова упаковки (дескриптор) Выходной параметр size Верхняя граница размера упакованного сообщения в байтах (целое число) Примечание. Документ MPI-стандарта описывает это в терминах MPI_Pack, но это применимо как к MPI_Pack, так и к MPI_Unpack. То есть значение size – максимум, который необходим или MPI_Pack или MPI_Unpack.

Pages:     | 1 | 2 || 4 | 5 |   ...   | 8 |










© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.