Описание слайда:
Транспонирование матрицы float a[100][100], b[100][100]; int row, xpose, sizeoffloat, myrank; MPI_status status; /* транспонирование матрицы а в b */ MPI_Comm_rank(MPI_COMM_WORLD, &myrank); MPI_Type_extent(MPI_FLOAT, &sizeoffloat); /* создание типа для одной строки - это вектор со 100 float элементами и расстоянием равным 100 */ MPI_Type_vector (100, 1, 100, MPI_FLOAT, &row); /* создание типа для матрицы упорядоченной по строкам , каждая копия новой строки сдвинута друг относительно друга на один элемент) */ MPI_Type_hvector(100, 1, sizeoffloat, row, &xpose); MPI_Type_commit(xpose); /* передача матрицы строками и прем ее колонками */ MPI_Sendrecv(a, 1, xpose, myrank, 0, b, 100*100, MPI_FLOAT, myrank, 0, MPI_COMM_WORLD, &status);