File: test_service.py

package info (click to toggle)
mpi4py 4.1.0-4
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 4,540 kB
  • sloc: python: 34,465; ansic: 16,475; makefile: 614; sh: 325; cpp: 193; f90: 178
file content (31 lines) | stat: -rw-r--r-- 804 bytes parent folder | download | duplicates (2)
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()