IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> параллельная обработка элементов массива, MPI
сообщение
Сообщение #1


Влюблённый псих
***

Группа: Пользователи
Сообщений: 185
Пол: Женский
Реальное имя: Лейла

Репутация: -  1  +


Привет! Вот столкнулась примерно с такой проблемой.
Предположим, у меня есть массив из n элементов. Надо обработать каждый элемент массива. Т.е. цикл
for (i=0; i<n; i++) И, например, к каждому элементу массива прибавить некое число k и запомнить в другой массив под сооттв. номером. т.е. summa[i]=massiv[i]+k;
А сделать это надо с использованием MPI функций. Т.е. элементы массива должны обрабатываться не по очереди, а параллельно друг другу. Значит, число процессов будет равно числу элементов в массиве. Собственно, вопрос по реализации. Уместно ли в данной задаче использование функции MPI_Bcast, или получается не то, что надо?
#include "mpi.h"
#include <stdio.h>
int main ()
{int i,n,k;
char massiv[10];
char summa[10];
n=10;
MPI_Status status;
MPI_Init();
MPI_Comm_rank(MPI_COMM_WORLD, &i); //номер процесса
MPI_Comm_size(MPI_COMM_WORLD, &n); //число процессов
for (i=0; i<n; i++)
{ MPI_Bcast(&i,1,MPI_INT,0,MPI_COMM_WORLD) //каждому процессу посылаем порядковый номер очередного элемента массива
//далее к элементу массива прибавляем число k
summa[i]=massiv[i]+k; //запоминаем в summa под своим номером
}
MPI_Finalize();
return 0; }

З.Ы. Каюсь, не было возможности прокомпилировать, может быть, вообще не работает.

Сообщение отредактировано: Тёмный Эльф -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 26.10.2021 12:07
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name