Параллельное программирование


Download 18.85 Kb.
bet5/6
Sana31.01.2024
Hajmi18.85 Kb.
#1832631
TuriЛекция
1   2   3   4   5   6
Bog'liq
B5mlaReH9EY54Q5honIqFoROqSZvYdboj2UQkPzj

Пример MPI_Gather

  • #include “mpi.h”
  • #include
  • int main (int argc, char *argv[])
  • {
  • int gsize,sendarray[100];
  • int root=0, rank, *rbuf;
  • MPI_Init(&argc, &argv);
  • MPI_Comm_rank( comm, &rank);
  • if ( rank == root)
  • {
  • MPI_Comm_size(MPI_COMM_WORLD, &gsize);
  • rbuf = malloc(gsize*100*sizeof(int));
  • }
  • MPI_Gather(sendarray,100,MPI_INT, rbuf,100, MPI_INT, root, MPI_COMM_WORLD);
  • MPI_Finalize();
  • return 0;
  • }
  • Параллельное программирование с использованием технологии MPI Аксёнов С.В.

Сбор данных MPI_Gatherv

  • Параллельное программирование с использованием технологии MPI Аксёнов С.В.

Сравнение MPI_Gather и MPI_Gatherv

  • Параллельное программирование с использованием технологии MPI Аксёнов С.В.
  • MPI_Gather
  • MPI_Gatherv

Пример MPI_Gatherv

  • Параллельное программирование с использованием технологии MPI Аксёнов С.В.
  • #include “mpi.h”
  • #include
  • int main (int argc, char *argv[])
  • {
  • int gsize,sendarray[100], root=0, *rbuf, stride=105, *displs, *rcounts;
  • MPI_Init(&argc, &argv);
  • MPI_Comm_size(MPI_COMM_WORLD, &gsize);
  • rbuf = malloc(gsize*stride*sizeof(int));
  • displs = malloc(gsize*sizeof(int));
  • rcounts = malloc(gsize*sizeof(int));
  • for (int i=0; i
  • {
  • displs[i] = i*stride;
  • rcounts[i] = 100;
  • }
  • MPI_Gatherv( sendarray, 100, MPI_INT, rbuf, rcounts, displs,MPI_INT, root, MPI_COMM_WORLD);
  • MPI_Filnalize();
  • return 0;
  • }

Download 18.85 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling