我學習了一下MPI的,並決定作出的程序來調用對象,例如main.c
做測試 - >主程序,function.c
- >任何功能MPI 2倍打印
function.c即會只使用MPI。我編譯如下:
gcc-c main.c
創建main.o
,mpicc-c
創造function.c
function.o
,我當然創建文件function.h
了。
我編譯mpicc-o
程序main.o
function.o
這裏是main.c
#include <stdio.h>
#include "function.h"
void main(int argc, char *argv[])
{
printf("Hello\n");
function();
printf("Bye\n");
}
只是函數具有MPI代碼,但是當我運行程序mpiexe -np 2
我得到
Hello
Hello
----- function job here -----
Bye
Bye
但我希望它是
Hello
------ function job -----
Bye
我該怎麼辦?
所以,在每一個程序,我必須使用MPI_Comm_rank和只有1個等級的打印,但我需要調用MPI_INIT在每次常規嗎? – 2012-04-18 23:24:44
你不需要在外部函數中調用MPI_Init - 只需在你的'main' – 2012-04-19 00:20:10