Томский политехнический университет
Параллельное программирование с использованием технологии MPI Аксёнов С.В.
Параллельное программирование с использованием технологии MPI Аксёнов С.В.
int MPI_Reduce(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm)
Вход sendbuf: Адрес посылающего буфера
Выход recvbuf: Адрес принимающего буфера Вход count: Количество элементов в посылающем буфере
Вход datatype: Тип данных элементов посылающего буфера
Вход op: Операция редукции
Вход root: Номер корневого процесса
Вход comm: Коммуникатор
int MPI_Allreduce (void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm)
Вход sendbuf: Адрес посылающего буфера
Выход recvbuf: Адрес принимающего буфера Вход count: Количество элементов в посылающем буфере
Вход datatype: Тип данных элементов посылающего буфера
Вход op: Операция редукции
Вход comm: Коммуникатор
int MPI_Reduce_scatter(void *sendbuf, void *recvbuf, int *recvcounts, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
Вход sendbuf: Адрес посылающего буфера
Выход recvbuf: Адрес принимающего буфера Вход recvcounts: Целочисленный массив, определяющий количество элементов результата, распределенных каждому процессу.
Вход datatype: Тип данных элементов посылающего буфера
Вход op: Операция редукции
Вход comm: Коммуникатор
int MPI_Scan(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
Вход sendbuf: Адрес посылающего буфера
Выход recvbuf: Адрес принимающего буфера Вход count: Количество элементов в принимающем буфере
Вход datatype: Тип данных элементов посылающего буфера
Вход op: Операция редукции
Вход comm: Коммуникатор
int MPI_Op_create(MPI_User_function *function, int commute, MPI_Op *op)
Вход function: Пользовательская функция
Вход commute: Флаг, которому присваивается значение «истина», если
операция коммутативна
Выход op: Операция редукции
После завершения операций приведения пользовательская функция должна быть удалена:
int MPI_Op_free(MPI_Op *op)
Функция MPI_Type_contiguous() позволяет копировать тип данных в смежные области.
Новый тип newtype есть тип, полученный конкатенацией (сцеплением) count копий старого типа oldtype.
Функция MPI_Type_vector() является универсальным конструктором, который позволяет реплицировать типы данных в области, которые состоят из блоков равного объема. Каждый блок получается как конкатенация некоторого количества копий старого типа. Пространство между блоками кратно размеру oldtype.
Функция MPI_Type_hvector() идентична MPI_Type_vector() за исключением того, что страйд задается в байтах, а не в элементах.
Функция MPI_Type_indexed() позволяет реплицировать старый тип oldtype в последовательность блоков (каждый блок есть конкатенация oldtype), где каждый блок может содержать различное число копий и иметь различное смещение. Все смещения блоков кратны длине старого блока oldtype.
Функция MPI_Type_hindexed() идентична MPI_Type_indexed() за исключением того, что смещения блоков в массиве array_of_displacements задаются в байтах, а не в кратностях ширины старого типа oldtype.
Функция MPI_Type_hindexed() идентична MPI_Type_indexed() за исключением того, что смещения блоков в массиве array_of_displacements задаются в байтах, а не в кратностях ширины старого типа oldtype.
int MPI_Type_commit(MPI_Datatype datatype)
Вход datatype: Объявленный тип данных
int MPI_Type_free(MPI_Datatype datatype)
Вход datatype: Тип данных, который освобождается
Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть