我按照以下教程在Codeblocks上执行mpi
Tutorial for installing MPI on Code blocks
如果我执行简单的MPI代码来自Tutorial,我总是得到1为MPI_Comm_size。 如何从代码中获取更多线程?
#include <iostream>
#include "mpi.h"
#include <string>
using namespace std;
int main(int argc, char *argv[])
{
int my_rank; /* rank of process */
int noProcesses; /* number of processes */
int nameSize; /* length of name */
char computerName[MPI_MAX_PROCESSOR_NAME];
MPI_Init(&argc, &argv); /*START MPI */
/*Determines the size of the group associated with a communicator */
MPI_Comm_size(MPI_COMM_WORLD, &noProcesses);
/*Determines the rank of the calling process in the communicator*/
MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);
/*Gets the name of the processor*/
MPI_Get_processor_name(computerName, &nameSize);
printf("Hello from process %d of %d processor on %s\n", my_rank, noProcesses, computerName);
MPI_Finalize(); /* EXIT MPI */
return 0;
}
我已在相应位置的cmd提示符下尝试mpiexec -n 2 file.exe
。
但是收到错误消息Can't find ~~ __gxx_personality_v0 ~~~ DLL libstdc++-6.dll ~~~.
我通过重命名其他mpiexec.exe文件解决了这个问题。就我而言,它位于C:\ Program Files \ Microsoft MPI \ Bin中。
答案 0 :(得分:0)
问题是由系统路径中的另一个mpiexec.exe引起的。
所以我在前面写了特定的完整路径,例如:&#34; C:\ Program Files \ MPICH2 \ bin \ mpiexec.exe&#34;。
之后,在&#34; C:\ Program Files \ Microsoft MPI \ Bin&#34;中重命名另一个mpiexec.exe文件。到&#34; C:\ Program Files \ Microsoft MPI_temp \ Bin&#34;。
但是在重命名&#34; smpd版本不匹配&#34;后,它会出现另一个错误。所以我通过smpd -version检查了它的版本。它是&#34; 1.0.3&#34;。所以我只需通过&#34; smpd.exe -install&#34;重新安装smpd。命令。