发送使用C+生成的处理器秩+;并打开MPI到Python脚本 我是初学C++和MPI的用户。我在HPC环境中工作,需要做以下工作: 使用C++代码获取处理器秩。< /LI> 将秩传递给bash脚本 将这个秩值输入python脚本并运行它(从bash脚本)
这是我写的代码: C++(文件名-CPP2BASHZATE.CPP): 狂欢节: 最后,我将bash脚本作为PBS作业提交。以下是输出文件: 行“Argument accepted=”来自python脚本,该脚本只接受秩并打印它。 为了更好地理解为什么Python脚本得到一个奇怪的值,我改变了shell脚本,不接受C++代码的任何输入。相反,C++代码只是打印输出。这是我在输出文件中看到的部分屏幕截图: Python文件输出(第二幅图中未显示)仍然与前面显示的类似 我在谷歌上搜索那个警告,但我并没有真正理解我要读的内容。事实上,我甚至不知道我读的东西是否与我的问题有关。发送使用C+生成的处理器秩+;并打开MPI到Python脚本 我是初学C++和MPI的用户。我在HPC环境中工作,需要做以下工作: 使用C++代码获取处理器秩。< /LI> 将秩传递给bash脚本 将这个秩值输入python脚本并运行它(从bash脚本),python,c++,bash,mpi,suppress-warnings,Python,C++,Bash,Mpi,Suppress Warnings,这是我写的代码: C++(文件名-CPP2BASHZATE.CPP): 狂欢节: 最后,我将bash脚本作为PBS作业提交。以下是输出文件: 行“Argument accepted=”来自python脚本,该脚本只接受秩并打印它。 为了更好地理解为什么Python脚本得到一个奇怪的值,我改变了shell脚本,不接受C++代码的任何输入。相反,C++代码只是打印输出。这是我在输出文件中看到的部分屏幕截图: Python文件输出(第二幅图中未显示)仍然与前面显示的类似 我在谷歌上搜索那个警告,但
我怀疑C++代码的完整输出包含警告,当传递到Python时,警告会被截断,只不过是方括号内的那些奇怪值。如何删除这些警告并将正确的值传递给python脚本?请注意,对于大多数队列系统,都设置了表示进程级别的系统变量。一旦进入脚本(以
MPI
启动),您就应该能够从环境中获取它(您必须查看队列系统手册)
另一种方法是为信息生成一些包装日志和grep,例如:
cout << "RANK:" << rank << endl;
在你的情况下是这样的
result=$(./PRank | grep RANK | cut -f2 -d':')
echo $result
#!/bin/sh
result=$(./PRank)
python3 bash2py_test.py $result
cout << "RANK:" << rank << endl;
result=$(echo "RANK:2" | grep RANK | cut -f2 -d':')
echo $result
result=$(./PRank | grep RANK | cut -f2 -d':')
echo $result