Как я могу инициализировать MPI в функции?

Я хочу использовать несколько -процессов в функции и как мне это сделать.

Как вы знаете, MPI _Init требует два параметра :"int argc, char **argv". Означает ли это, что я должен добавить эти два параметра в определение функции?

Мое требование состоит в том, что я хочу распараллелить шаг в функции вместо шага в основной программе.

Например,

func(mat &A, vec &x) {
  some computation on A;
  auto B = sub_mat(A, 0, 10);
  B*x; // I want to parallelize this computation
}
main(){
  mat A;
  vec x;
  func(A, x);
}

Я просто хочу использовать MPI в B *x, но я не знаю, как запустить MPI? Кстати, если я могу инициировать MPI int func, существует ли A в каждом процессе в это время?

Помогите мне и спасибо!

7
задан xunzhang 28 July 2012 в 12:03
поделиться