计划:
#include <stdio.h>
#include <mpi.h>
int main (argc, argv)
int argc;
char *argv[];
{
int rank, size;
MPI_Init (&argc, &argv); /* starts MPI */
MPI_Comm_rank (MPI_COMM_WORLD, &rank); /* get current process id */
MPI_Comm_size (MPI_COMM_WORLD, &size); /* get number of processes */
printf( "Hello world from process %d of %d\n", rank, size );
MPI_Finalize();
return 0;
}
错误:
/usr/lib/gcc/i586-suse-linux/4.4/../../../../i586-suse-linux/bin/ld: cannot find -lopen-rte
collect2: ld returned 1 exit status
编译命令:mpicc hello.c -o ./hello
。
我正在尝试构建一个openSUSE节点集群。
所以我正在测试mpich2程序是否在每个节点上运行。
答案 0 :(得分:1)
libopen-rte.so是指OpenMPI,而不是MPICH2。使用mpi-selector工具检查默认的MPI实现。我个人更喜欢OpenMPI。
答案 1 :(得分:0)
看起来您同时安装了两个MPI库。虽然这是可能的,但如果您不是非常小心,配置和使用通常会很痛苦。我建议卸载Open MPI或MPICH。这应该照顾你的问题。