1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
import sys
from mpi4py.futures import MPIPoolExecutor
def main():
def getarg(opt, default=None):
try:
return sys.argv[sys.argv.index("--" + opt) + 1]
except ValueError:
return default
if "--host" in sys.argv or "--port" in sys.argv:
service = (getarg("host"), getarg("port"))
else:
service = getarg("service")
if "--info" in sys.argv:
info = getarg("info").split(",")
info = dict(entry.split("=") for entry in info if entry)
else:
info = None
with MPIPoolExecutor(service=service, mpi_info=info) as executor:
fut1 = executor.submit(abs, +42)
fut2 = executor.submit(abs, -42)
assert fut1.result(0) == 42
assert fut2.result(0) == 42
if __name__ == "__main__":
main()
|