2010-10-10 49 views
0

我正在使用mpiexec来运行两个hello world可执行文件。它们每个都运行,但进程数总是1,看起来应该有4个进程。有人明白为什么吗?我也不确定stty为什么给我一个无效的论点。谢谢!PBS集群上的MPI Hello World

这里是输出:

/bin/stty: standard input: invalid argument 
    Hello world from process 0 of 1 
    Hello world from process 0 of 1 
    Hello world from process 0 of 1 
    Hello world from process 0 of 1 

这里是C文件:

#include <stdio.h> 
#include <mpi.h> 

int main(int argc, char *argv[]) 
{ 
    int rank, size; 
    MPI_Init (&argc, &argv); 
    MPI_Comm_rank(MPI_COMM_WORLD, &rank); 
    MPI_Comm_size(MPI_COMM_WORLD, &size); 
    printf("Hello world from process %d of %d\n", rank, size); 
    fflush(stdout); 
    MPI_Finalize(); 
    return 0; 
} 

这里提交脚本:

#!/bin/bash 

#PBS -N helloWorld 
#PBS -l select=4:ncpus=2 
#PBS -j oe 
#PBS -o output 
#PBS -l walltime=3:00 
cd $PBS_O_WORKDIR 


mpiexec ./helloWorld 
+0

[MPI \ _Rank返回所有进程的相同进程号的可能重复](http://stackoverflow.com/questions/20287564/mp​​i-rank-return-same-process-number-for-all-process) – 2014-06-16 15:32:44

回答

3

史蒂芬:

以上应该管用;它看起来像沿线(PBS < - > MPI库< - > mpiexec)是错误配置。

首先,最明显的猜测是mpiexec是与你编译的库相对应的mpi启动程序。如果在脚本中执行which mpiexec,那么在编译该程序时是否获得与which mpicc相对应的内容?在编译之前,你是否必须像“模块加载[mpi包]”一样做任何事情?

同样,您的mpiexec PBS感知?如果没有,你可能不得不指定一个主机文件($ {PBS_NODEFILE})和处理器的数量。

你正在使用什么mpi,以及你在运行什么系统 - 它是一个公开可用的系统,包含我们可以查看的文档?

+0

当我运行mpiexec mpicc时,我得到/ usr/bin/mpicc/usr/bin/mpiexec。这看起来不错。 我不确定什么是“模块负载”。我猜我没有? 我认为问题可能是我的mpiexec不知道PBS。但是,我不确定如何指定主机文件。 我运行的系统是私人的,但手册页指向该网站的文档:http://www.mcs.anl.gov/mpi/www – 2010-10-11 18:16:47

+0

好的。模块加载内容通常用于安装有多个MPI的大型计算站点;如果你需要使用它,你会了解它。如果您使用的是OpenMPI(mpiexec -V将提供版本信息),则语法为'mpiexec -np 8 --hostfile $ PBS_NODEFILE。/ helloWorld'。如果你使用MPICH2(mpich2version会给你一些信息),语法应该是'mpiexec -f $ PBS_NODEFILE -np 8。/ helloWorld'。看看其中的哪一个能给出更好的结果。 – 2010-10-11 19:14:07

+0

当运行mpiexec -version我得到: 版本0.83,配置选项:'--prefix =/usr''--with-default-comm = mpich2-pmi''--with-pbs =/usr/pbs'配置选项:'--prefix =/usr''--with-default-comm = mpich2-pmi''--with-pbs =/usr/pbs' (当我运行mpiexec -V时或mpich2version我什么都没得到-V不是一个可识别的标签mpich2version命令没有找到当我找到mpich2version我什么也没有得到) 这两个命令都没有正确的语法。 另外,当我回显$ PBS_NODEFILE时,我什么都没有。我不确定我应该得到什么。 – 2010-10-11 19:43:55