File: test_service.py

package info (click to toggle)
mpi4py 3.0.3-8
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 12,428 kB
  • sloc: python: 18,672; javascript: 9,118; ansic: 7,092; makefile: 567; sh: 183; f90: 158; cpp: 103
file content (31 lines) | stat: -rw-r--r-- 816 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

    options = {}
    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()