File: cpi-master.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 (23 lines) | stat: -rw-r--r-- 517 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
from mpi4py import MPI
from array import array
from math import pi as PI
from sys import argv

cmd = './cpi-worker-py.exe'
if len(argv) > 1: cmd = argv[1]
print("%s -> %s" % (argv[0], cmd))

worker = MPI.COMM_SELF.Spawn(cmd, None, 5)

n  = array('i', [100])
worker.Bcast([n,MPI.INT], root=MPI.ROOT)

pi = array('d', [0.0])
worker.Reduce(sendbuf=None,
              recvbuf=[pi, MPI.DOUBLE],
              op=MPI.SUM, root=MPI.ROOT)
pi = pi[0]

worker.Disconnect()

print('pi: %.16f, error: %.16f' % (pi, abs(PI-pi)))