我正在尝试创建一个python脚本,它可以驱动多个MPI模拟(F90可执行文件,尽管这无关紧要)。每个MPI模拟都使用2个处理器。假设我想同时运行三个MPI模拟。如果我在3个不同的终端上从命令行运行这3个模拟,没有python,它们每个都有自己的2个处理器,运行起来就像世界上只有它们一样。你知道吗
我当前的实现似乎没有这样做。从跟踪MPI仿真可以明显看出,MPI仿真之间存在竞争。这是我目前的程序
import subprocess
import multiprocessing as mp
def execute(inputs, output):
do_stuff_with_inputs()
subprocess.call('mpiexec -np 2 my_executable.x', shell=True)
results = post_process_stuff()
output.put(results)
output = mp.Queue()
processes = []
for i in xrange(3):
process.append(mp.Process(target=execute, args=args)))
for p in process:
p.start()
for p in process:
p.join()
results = [output.get() for p in process]
我想做的是对这个过程更加明确,以某种方式在python中“创建”处理器空间,以便可执行调用有自己的专用处理器数量。你知道吗
我们可以创建一个anonymous class的对象来实现接口:
如果您有一个接口,它声明了一个方法
toString
,那么您可以首先创建一个实现这个接口的类,然后创建这个类的对象:或者你可以创建一个匿名类的对象来简化代码:
在这两种情况下,它都会打印^{
test
应该是输出。这是一个匿名内部类的示例这是一种非常常见的模式,用于
Comparator
接口模拟闭包诀窍不仅仅是关于匿名内部类,这会打印测试,因为它会覆盖toString方法,而
System.out.println
它隐式调用对象的toString方法我不知道这个问题的意义。如果这是一个面试问题,那么我可以说没关系。但在实时情况下,这不是实现继承的正确方法。现在来回答这个问题,这里你要做的是一个匿名的内部类
在这里,您将实例化一个类,并通过编写
当然,结果会是
test
也试试这个。。。生成匿名类的名称
你在这里看到的是anonymous inner class:
给定以下接口:
您可以创建类似它的实例,如下所示:
现在,您有了一个您定义的接口的实例。但是,您应该注意,您实际上所做的是定义一个类,该类实现接口并同时实例化该类
相关问题 更多 >
编程相关推荐