如何在linux shell中使用mpiexec

如何在linux shell中使用mpiexec,shell,pipe,mpiexec,Shell,Pipe,Mpiexec,我有一个文件a.txt,每行包含一个参数。现在我想使用mpiexec调用我的程序,比如a.out,来计算每个参数。所以我使用linux shell脚本来处理这个问题。代码是示例 cat a.txt | while read line do mpiexec -v -hostfile hosts -np 16 ./a.out ${line} done 出乎意料的是,脚本仅在处理了文件a.txt的一行后结束。那么,是因为管道使用不当吗?我如何处理这个问题

我有一个文件a.txt,每行包含一个参数。现在我想使用mpiexec调用我的程序,比如a.out,来计算每个参数。所以我使用linux shell脚本来处理这个问题。代码是示例

    cat a.txt | while read line
    do
        mpiexec -v -hostfile hosts -np 16 ./a.out ${line} 
    done 
出乎意料的是,脚本仅在处理了文件a.txt的一行后结束。那么,是因为管道使用不当吗?我如何处理这个问题

#!/bin/bash
for LINE in `cat a.txt | xargs -r`; do
    mpiexec -v -hostfile hosts -np 16 ./a.out $LINE 
done