Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

MPI_Sendrecv_replace - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Отсортировать двумерный массив по столбцам http://www.cyberforum.ru/cpp-beginners/thread1162404.html
С помощью какой сортировки можно отсортировать двумерный массив по столбцово? Следующий вопрос вот в чем. Вот у меня двумерный массив (3 строки, 9 столбцов). Получается - ячеек 21. Как сделать так,...
C++ Найти смещение точки координаты которой находятся в цикле Товарищи помогите! Есть задача найти смещение точки координаты которой находятся в цикле for(int i = 0; i < faces.size(); i++) { Point center( faces.x + faces.width/2, faces.y +... http://www.cyberforum.ru/cpp-beginners/thread1162398.html
C++ Высокая точность вычислений (погрешность<10^-30)
Здравствуйте, необходимо вычислить значение функции с заданной точностью (к примеру с точностью до 30-го знака после запятой), знает ли кто как выполнить это? (слышал что вродебы через vector это...
C++ Утечка памяти или что? Валидность итератора
вообщем падает задача через раз, вроде бы в 44 строке, вместо str+= надо бы по идее метод push_back() но при подстановке str.push_back(*it_v) ругается.... мб причина и не в этом #include <iostream>...
C++ Поиск по заштрихованной части матрицы http://www.cyberforum.ru/cpp-beginners/thread1162367.html
Такая вот задача: есть матрица 5х5 (заполняется случайным образом), в ней некоторые елементы заштрихованы. Найти минимальный элемент в заштрихованной части матрицы и заменить им все элементы из...
C++ Найти числа которые делятся на 6, делятся на 2, и на 3 Даны числа от 1 го до 20 ти. из них надо найти числа коорые делятся на 6, делятся на 2, и на 3. Как решить помогите контрольная работа у нас кто-нибудь пожалуйста! подробнее

Показать сообщение отдельно
maksimkalon
9 / 8 / 2
Регистрация: 03.03.2013
Сообщений: 71

MPI_Sendrecv_replace - C++

30.04.2014, 10:32. Просмотров 534. Ответов 4
Метки (Все метки)

Здравствуйте! Задача такая: в каждом процессе дано вещественное число, нужно изменить порядок этих чисел, т.е. число из процесса 0 поместить в последний процесс, из процесса 1 в предпоследний процесс, и т.д. Делаю так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
    int flag;
    MPI_Initialized(&flag);
    if (flag == 0)
        return;
    int rank, size;
    MPI_Comm_size(MPI_COMM_WORLD, &size);
    MPI_Comm_rank(MPI_COMM_WORLD, &rank);
    
    MPI_Status s;
    double a;
    *Получаем число a*
    MPI_Sendrecv_replace(&a,1,MPI_DOUBLE,size-rank-1,0,rank,0,MPI_COMM_WORLD,&s);
    *Выводим число a*
При запуске программы зависают все процессы. В попытке разобраться написал следующий код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    int flag;
    MPI_Initialized(&flag);
    if (flag == 0)
        return;
    int rank, size;
    MPI_Comm_size(MPI_COMM_WORLD, &size);
    MPI_Comm_rank(MPI_COMM_WORLD, &rank);
    
    MPI_Status s;
    double a;
    *Получаем число a*
    if(rank == 0 || rank == 1)
    {
        MPI_Sendrecv_replace(&a,1,MPI_DOUBLE,0,0,1,0,MPI_COMM_WORLD,&s);
    }
    *Выводим число a*
В результате процесс 1 завис, но в нулевом процессе было число из процесса 1
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru