第一个问题:
我想知道如何将函数调用并行化到同一个函数,但在 for 循环中使用不同的输入参数。例如(C 代码):
//a[i] and b[i] are defined as elements of a list with 2 columns and N rows
//i is the row number
#pragma omp parallel
{
char cmd[1000];
#pragma omp for nowait
for(i=0; i<N; i++) {
//call the serial programm
sprintf(cmd, "./serial_program %f %f", a[i], b[i]);
system(cmd);
}
}
如果我只是为(当然是 omp 标头)应用一个 pragma omp,则不会发生任何事情。也许这对于 OpenMP 是不可能的,但是对于 MPI 是否可能,它会是什么样子呢?到目前为止,我只使用过 OpenMP,但没有使用过 MPI。更新:在并行区域内定义了 cmd
状态:已解决
第二个问题:
如果我有一个 OpenMP 并行程序并且我想在集群内的不同节点之间使用它,我如何使用 MPI 在不同节点之间分配调用以及如何编译它?
//a[i] and b[i] are defined as elements of a list with 2 columns and N rows
//i is the row number
for(i=0; i<N; i++) {
//call the parallelized program
sprintf(cmd, "./openmp_parallelized_program %f %f", a[i], b[i]);
system(cmd);
}
状态:未解决