[英]Alternative to mpirun inside python script
我面临着这个奇怪的问题。 我认为答案并不困难,但我找不到任何答案,因此我依靠您的建议。
假设我在文件parallel_func.py
有一个并行的python函数:
def parallel_func():
parser=OptionParser()
parser.add_option("-f", "--file", dest="filename",
help="Input FILE", metavar="FILE")
parser.add_option("--parallel", action="store_true",
help="Specify if we need to initialize MPI",
dest="with_MPI", default=False)
(options, args)=parser.parse_args()
if options.with_MPI == True:
from mpi4py import MPI
comm = MPI.COMM_WORLD
myid = comm.Get_rank()
numberPart = comm.Get_size()
have_MPI = True
else:
comm = 0
myid = 0
numberPart = 1
have_MPI = False
etc. etc.
我可以从shell调用此函数,只需键入:
mpirun -np XX parallel_func.py -f input_file --parallel
现在,有没有一种方法可以将我的parallel_func用作在非并行且在单核中运行的python脚本中的函数? 我当前的版本可以运行,但只能在单核中运行parallel_func:
from parallel_func.py import parallel_func
# -------------------------------------------------------------------
# Main
# -------------------------------------------------------------------
def main():
parser=OptionParser()
parser.add_option("-f", "--file", dest="filename",
help="Input FILE", metavar="FILE")
parser.add_option("-n", "--partitions", dest="partitions",
default=1,
help="number of PARTITIONS",
metavar="PARTITIONS")
(options, args)=parser.parse_args()
options.partitions = int( options.partitions )
if options.partitions > 1:
options.with_MPI = True
else:
options.with_MPI = False
parallel_func(options)
长话短说,有没有一种方法可以在python函数main
进行MPI.COMM_WORLD
以使MPI.COMM_WORLD
使parallel_func
正常工作所需的所有信息?
在此先感谢您的回答!!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.