WWW.DISSERS.RU

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

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


Pages:     | 1 |   ...   | 2 | 3 || 5 | 6 |   ...   | 8 |

MPI_Pcontrol Управление профилированием int MPI_Pcontrol(int level) Входной параметр level Уровень профилирования Примечание. Эта подпрограмма обеспечивает общий интерфейс для управления профилированием. Интерпретация уровня и любых других параметров оставлена библиотеке профилирования.

MPI_Probe Блокирующий тест для сообщения int MPI_Probe(int source, int tag, MPI_Comm comm, MPI_Status *status) Входные параметры source Номер процесса-источника или MPI_ANY_SOURCE (целое число) tag Значение идентификатора или MPI_ANY_TAG (целое число) comm Коммуникатор (дескриптор) Выходной параметр status Объект состояния (статус) MPI_Recv Основной прием сообщения int MPI_Recv(void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status *status) Входные параметры count Максимальное число элементов в буфере приема (целое число) datatype Тип данных элемента буфера приема (дескриптор) source Номер процесса-источника (целое число) tag Идентификатор сообщения (целое число) comm Коммуникатор (дескриптор) Выходные параметры buf Начальный адрес буфера приема (указатель) status Объект состояния (статус) Примечание. Параметр count указывает максимальную длину сообщения; фактический размер может быть определен при помощи MPI_Get_count.

MPI_Recv_init Формирует дескриптор для приема int MPI_Recv_init(void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Request *request) Входные параметры buf Начальный адрес буфера приема (указатель) count Количество полученных элементов (целое число) datatype Тип каждого элемента (дескриптор) source Номер процесса-источника или MPI_ANY_SOURCE (целое число) tag Идентификатор сообщения или MPI_ANY_TAG (целое число) comm Коммуникатор (дескриптор) Выходной параметр request Запрос связи (дескриптор) См. также MPI_Start, MPI_Request_free MPI_Reduce Приводит значения из всех процессов к одиночному значению int MPI_Reduce(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm) Входные параметры sendbuf Адрес буфера посылки (указатель) count Число элементов в буфере посылки (целое число) datatype Тип данных элементов буфера посылки (дескриптор) op Операция приведения (дескриптор) root Номер корневого процесса (целое число) comm Коммуникатор (дескриптор) Выходной параметр recvbuf Адрес буфера приема (указатель, значимый только в корне) Алгоритм. Реализация в настоящее время использует простой алгоритм дерева.

MPI_Reduce_scatter Объединяет значения и рассеивает результаты int MPI_Reduce_scatter(void *sendbuf, void *recvbuf, int *recvcnts, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm) Входные параметры sendbuf Начальный адрес буфера посылки (указатель) recvcounts Целочисленный массив, определяющий число элементов результата, распределяемое каждому процессу. Массив должен быть идентичен во всех вызывающих процессах.

datatype Тип данных элементов входного буфера (дескриптор) op Операция (дескриптор) comm Коммуникатор (дескриптор) Выходной параметр recvbuf Начальный адрес буфера приема (указатель) MPI_Request_free Освобождает объект запроса связи int MPI_Request_free(MPI_Request *request) Входной параметр request Запрос связи (дескриптор) Примечания. Эта подпрограмма обычно используется для освобождения постоянных запросов, созданных MPI_Recv_init, MPI_Send_init и т.п.

Однако ее можно использовать и для освобождения запроса, созданного MPI_Irecv, MPI_Isend и т.п.; в случае такого использования к запросу не могут применяться подпрограммы тестирования / ожидания.

Разрешается освободить активный запрос. Однако запрос, однажды освобожденный, Вы не можете использовать в подпрограммах ожидания или тестирования (например, MPI_Wait).

См. также MPI_Isend, MPI_Irecv, MPI_Issend, MPI_Ibsend, MPI_Irsend, MPI_Recv_init, MPI_Send_init, MPI_Ssend_init, MPI_Rsend_init, MPI_Wait, MPI_Test, MPI_Waitall, MPI_Waitany, MPI_Waitsome, MPI_Testall, MPI_Testany, MPI_Testsome MPI_Rsend Основная готовая посылка сообщения int MPI_Rsend(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm) Входные параметры buf Начальный адрес буфера посылки (указатель) count Число элементов в буфере посылки (неотрицательное целое число) datatype Тип данных элемента буфера посылки (дескриптор) dest Номер процесса-адресата (целое число) tag Идентификатор сообщения (целое число) comm Коммуникатор (дескриптор) MPI_Rsend_init Формирует дескриптор для готовой посылки int MPI_Rsend_init(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_Start, MPI_Request_free, MPI_Send_init MPI_Scan Вычисляет развертку (scan) (частичные приведения-редукции) данных для совокупности процессов int MPI_Scan(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm) Входные параметры sendbuf Начальный адрес буфера посылки (указатель) count Число элементов во входном буфере (целое число) datatype Тип данных элементов входного буфера (дескриптор) op Операция (дескриптор) comm Коммуникатор (дескриптор) Выходной параметр recvbuf Начальный адрес буфера приема (указатель) MPI_Scatter Посылает данные из одной задачи всем остальным задачам в группе int MPI_Scatter(void *sendbuf, int sendcnt, MPI_Datatype sendtype, void *recvbuf, int recvcnt, MPI_Datatype recvtype, int root, MPI_Comm comm) Входные параметры sendbuf Адрес буфера посылки (указатель, значимый только в корне) sendcount Число элементов, посланных каждому процессу (целое число, значимое только в корне) sendtype Тип данных элементов буфера посылки (значимый только в корне) (дескриптор) recvcount Число элементов в буфере приема (целое число) recvtype Тип данных элементов буфера приема (дескриптор) root Номер посылающего процесса (целое число) comm Коммуникатор (дескриптор) Выходной параметр recvbuf Адрес буфера приема (указатель) MPI_Scatterv Рассеивает буфер по частям всем задачам в группе int MPI_Scatterv(void *sendbuf, int *sendcnts, int *displs, MPI_Datatype sendtype, void *recvbuf, int recvcnt, MPI_Datatype recvtype, int root, MPI_Comm comm) Входные параметры sendbuf Адрес буфера посылки (указатель, значимый только в корне) sendcounts Целочисленный массив (длиной, равной размеру группы), определяющий числа элементов, посылаемых каждому процессору displs Целочисленный массив (длиной, равной размеру группы).



Элемент i определяет смещение (относительно sendbuf), по которому брать исходящие данные для процесса i sendtype Тип данных элементов буфера посылки (дескриптор) recvcount Число элементов в буфере приема (целое число) recvtype Тип данных элементов буфера приема (дескриптор) root Номер посылающего процесса (целое число) comm Коммуникатор (дескриптор) Выходной параметр recvbuf Адрес буфера приема (указатель) MPI_Send Выполняет основную посылку сообщения int MPI_Send(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm) Входные параметры buf Начальный адрес буфера посылки (указатель) count Число элементов в буфере посылки (неотрицательное целое число) datatype Тип данных элемента буфера посылки (дескриптор) dest Номер процесса-адресата (целое число) tag Идентификатор сообщения (целое число) comm Коммуникатор (дескриптор) Примечание. Эта подпрограмма может блокировать процесс, пока сообщение не принято.

См. также MPI_Isend, MPI_Bsend MPI_Send_init Формирует дескриптор для стандартной посылки int MPI_Send_init(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_Start, MPI_Startall, MPI_Request_free MPI_Sendrecv Посылает и получает сообщение int MPI_Sendrecv(void *sendbuf, int sendcount, MPI_Datatype sendtype, int dest, int sendtag, void *recvbuf, int recvcount, MPI_Datatype recvtype, int source, int recvtag, MPI_Comm comm, MPI_Status *status) Входные параметры sendbuf Начальный адрес буфера посылки (указатель) sendcount Число элементов в буфере посылки (целое число) sendtype Тип элементов в буфере посылки (дескриптор) dest Номер процесса-адресата (целое число) sendtag Идентификатор посылки (целое число) recvcount Число элементов в буфере приема (целое число) recvtype Тип элементов в буфере приема (дескриптор) source Номер процесса-источника (целое число) recvtag Идентификатор приема (целое число) comm Коммуникатор (дескриптор) Выходные параметры recvbuf Начальный адрес буфера приема (указатель) status Объект состояния (статус). Это относится к операции приема.

MPI_Sendrecv_replace Посылка и прием, использующие одиночный буфер int MPI_Sendrecv_replace(void *buf, int count, MPI_Datatype datatype, int dest, int sendtag, int source, int recvtag, MPI_Comm comm, MPI_Status *status) Входные параметры count Число элементов в буфере посылки и приема (целое число) datatype Тип элементов в буфере посылки и приема (дескриптор) dest Номер процесса-адресата (целое число) sendtag Идентификатор посылаемого сообщения (целое число) source Номер процесса-источника (целое число) recvtag Идентификатор принимаемого сообщения (целое число) comm Коммуникатор (дескриптор) Выходные параметры buf Начальный адрес буфера посылки и приема (указатель) status Объект состояния (статус) MPI_Ssend Основная синхронная посылка сообщения int MPI_Ssend(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm) Входные параметры buf Начальный адрес буфера посылки (указатель) count Число элементов в буфере посылки (неотрицательное целое число) datatype Тип данных элемента буфера посылки (дескриптор) dest Номер процесса-адресата (целое число) tag Идентификатор сообщения (целое число) comm Коммуникатор (дескриптор) MPI_Ssend_init Формирует дескриптор для синхронной посылки int MPI_Ssend_init(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_Start Инициализирует связь с постоянным дескриптором запроса int MPI_Start(MPI_Request *request) Входной параметр request Запрос связи (дескриптор) MPI_Startall Стартует совокупность запросов int MPI_Startall(int count, MPI_Request array_of_requests[]) Входные параметры count Длина списка (целое число) array_of_requests Массив запросов (массив дескрипторов) MPI_Status_set_cancelled Устанавливает непрозрачную часть MPI_Status так, чтобы MPI_Test_cancelled возвратил флажок int MPI_Status_set_cancelled(MPI_Status *status, int flag) Входные параметры status Состояние, связываемое со счетчиком (статус) flag true указывает, что запрос был отменен (логический) MPI_Status_set_elements Устанавливает непрозрачную часть MPI_Status так, чтобы MPI_Get_elements возвратил счетчик int MPI_Status_set_elements(MPI_Status *status, MPI_Datatype datatype, int count) Входные параметры status Состояние, связываемое со счетчиком (статус) datatype Тип данных, связанный со счетчиком (дескриптор) count Число элементов, связываемое с состоянием (целое число) MPI_Test Тест завершения посылки или приема int MPI_Test(MPI_Request *request, int *flag, MPI_Status *status) Входной параметр request Запрос связи (дескриптор) Выходной параметр flag true, если операция завершилась (логический) status Объект состояния (статус) Примечание. Обратите внимание на статус для операции посылки.





При операциях посылки единственное использование состояния – для MPI_Test_cancelled или в случае ошибки, когда будет установлено поле состояния MPI_ERROR.

MPI_Test_cancelled Тест, определяющий был ли отменен запрос int MPI_Test_cancelled(MPI_Status *status, int *flag) Входной параметр status Объект состояния (статус) Выходной параметр flag (Логический) MPI_Testall Тест завершения всех предварительно инициализированных связей int MPI_Testall(int count, MPI_Request array_of_requests[], int *flag, MPI_Status array_of_statuses[]) Входные параметры count Длина списков (целое число) array_of_requests Массив запросов (массив дескрипторов) Выходные параметры flag (Логический) array_of_statuses Массив объектов состояния (массив статусов) Примечания. flag равен true только, если все запросы завершились.

Иначе, флажок – false и ни array_of_requests, ни array_of_statuses не изменяются.

При операциях посылки единственное использование состояния – для MPI_Test_cancelled или в случае ошибки, когда будет установлено поле состояния MPI_ERROR.

Стандарт MPI не определяет, каков результат многократных подпрограмм завершения при возникновении ошибки. Например, MPI_WAITALL: должна ли подпрограмма ждать завершения или сбоя всех запросов или завершаться немедленно (немедленно по определению MPI, что означает независимость от действий других процессов MPI) MPICH выбрал немедленный возврат (локальный в терминах MPI) и использование класса ошибки MPI_ERR_PENDING (представленный в MPI 1.1) чтобы указать, которые из запросов не завершились. В большинстве случаев, только один запрос с ошибкой будет обнаружен каждым вызовом MPI подпрограммы, которая проверяет многократные запросы. Запросы, которые не были обработаны (из-за ошибки в одном из запросов), будут отмечены установкой их полей MPI_ERROR в значение MPI_ERR_PENDING.

MPI_Testany Тест завершения любой из предварительно инициализированных связей int MPI_Testany(int count, MPI_Request array_of_requests[], int *index, int *flag, MPI_Status *status) Входные параметры count Длина списка (целое число) array_of_requests Массив запросов (массив дескрипторов) Выходные параметры index Индекс операции, которая завершилась или MPI_UNDEFINED если ни одна не завершилась (целое число) flag true, если одна из операций завершилась (логический) status Объект состояния (статус) MPI_Testsome Тест завершения каких-либо из указанных связей int MPI_Testsome(int incount, MPI_Request array_of_requests[], int *outcount, int array_of_indices[], MPI_Status array_of_statuses[]) Входные параметры incount Длина array_of_requests (целое число) array_of_requests Массив запросов (массив дескрипторов) Выходные параметры outcount Число завершившихся запросов (целое число) array_of_indices Массив индексов операций, которые завершились (массив целых чисел) array_of_statuses Массив объектов состояния для операций, которые завершились (массив статусов) MPI_Type_commit Регистрирует тип данных int MPI_Type_commit(MPI_Datatype *datatype) Входной параметр datatype Тип данных (дескриптор) MPI_Type_contiguous Создает непрерывный тип данных int MPI_Type_contiguous(int count, MPI_Datatype old_type, MPI_Datatype *newtype) Входные параметры count Счетчик повторений (неотрицательное целое число) oldtype Старый тип данных (дескриптор) Выходной параметр newtype Новый тип данных (дескриптор) MPI_Type_create_darray Создает тип данных, соответствующий распределенному многомерному массиву int MPI_Type_create_darray(int size, int rank, int ndims, int *array_of_gsizes, int *array_of_distribs, int *array_of_dargs, int *array_of_psizes, int order, MPI_Datatype oldtype, MPI_Datatype *newtype) Входные параметры size Размер группы процессов (положительное целое число) rank Номер процесса в группе (неотрицательное целое число) ndims Размерность массива, а также размерность сетки процессов (положительное целое число) array_of_gsizes Число элементов типа oldtype в каждом измерении глобального массива (массив положительных целых чисел) array_of_distribs Распределение массива в каждом измерении (массив положений) array_of_dargs Дистрибутивный параметр в каждом измерении (массив положительных целых чисел) array_of_psizes Размер сетки процессов в каждом измерении (массив положительных целых чисел) order Флаг порядка хранения массива (состояние) oldtype Старый тип данных (дескриптор) Выходной параметр newtype Новый тип данных (дескриптор) MPI_Type_create_indexed_block Создает ин

Pages:     | 1 |   ...   | 2 | 3 || 5 | 6 |   ...   | 8 |










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

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