我们如何使用MPI API将带有用户定义函数的c程序转换为并行程序。演示将更有用
谢谢。 哈
答案 0 :(得分:1)
这取决于您尝试并行执行的内容以及您的要求。
有很多很好的教程可供选择。
这是一个简单的hello world程序:
#include "stdio.h"
#include "mpi.h"
int main(int argc, char *argv[])
{
int id, nprocs;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &id);
MPI_Comm_size(MPI_COMM_WORLD, &nprocs);
printf("Hello World from proc %d out of %d!\n", id, nprocs);
MPI_Finalize();
return 0;
}
编译如下
usr@xbc:~> mpicc -Wall -Werror -o mpihello mpihello.c
在两台独立的计算机上运行
usr@xbc:~> mpirun_rsh -ssh -np 2 node0 node1 /home/xbc/mpihello
或
usr@xbc:~> mpirun_rsh -hostfile hostlist -n 2 /home/xbc/mpihello
您的hostlist
文件将包含node0
和node
在与2个进程相同的计算机上运行
usr@xbc:~> mpirun_rsh -ssh -np 2 node0:1 /home/xbc/mpihello
或
usr@xbc:~> mpirun_rsh -hostfile hostlist -n 2 /home/xbc/mpihello
您的hostlist
文件中有1个条目为node0:1
输出put将是一个Hello world,其中Rank为0
和1
来自2台机器或2个进程,具体取决于您运行它的方式。
现在,您可以根据您的要求,通过IB / InfiniBand上的IP / IP或基于IP的MPI(InfiniBand)或基于IB的MPI运行MPI或以许多其他方式运行MPI。
您必须相应地配置mpi编译和安装。