- Параллельное программирование с использованием технологии MPI Аксёнов С.В.
- #include “mpi.h”
- #include
- int main (int argc, char *argv[])
- {
- int rank, gsize,*sendbuf, size;
- int root =0, rbuf[100];
- MPI_Init(&argc, &argv);
- MPI_Comm_size( comm, &gsize);
- MPI_Comm_rank(MPI_COMM_WORLD,&rank);
- size = gsize*100;
- sendbuf = malloc(size*sizeof(int));
- if (rank==root)
- for( i =0; i
- sendbuf[i] =i;
- MPI_Scatter(sendbuf, 100, MPI_INT, rbuf, 100, MPI_INT, root, MPI_COMM_WORLD);
- MPI_Finalize();
- return 0;
- }
Распределение данных MPI_Scatterv - Функция MPI_Scatterv позволяет передавать каждому процессу переменное число элементов данных.
- Параллельное программирование с использованием технологии MPI Аксёнов С.В.
- int MPI_Scatterv(void *sendbuf, int *sendcounts, int *displs, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)
- Вход sendbuf: Адрес буфера рассылки
- Вход sendcount: Массив определяющий, число элементов для пересылки каждому процессу
- Вход displs: Смещение
- Вход sendtype: Тип данных в буфере рассылки
- Вход/Выход recvbuf: Адрес буфера-получателя
- Вход recvcount: Количество элементов в буфере приема
- Вход recvtype: Тип данных в буфере приема
- Вход root: Номер корневого процесса
- Вход comm: Коммуникатор
Сравнение MPI_Scatterv и MPI_Scatter - Параллельное программирование с использованием технологии MPI Аксёнов С.В.
Do'stlaringiz bilan baham: |