14.6.2. Hello World Example 2ΒΆ
The source code is shown below, which can be downloaded
here
.Run the source code with 4 processors
mpiexec -np 4 python hello2.py
the outputs look like
Random:
Hello from 2
Hello from 1
Hello from 3
Ordered:
Hello from 1
Hello from 2
Hello from 3
Broadcasting:
Hello from 0
Hello from 0
Hello from 0
Process 3 Terminating
Process 2 Terminating
Process 1 Terminating
Process 0 Terminating
The script is shown below
1import openseespy.opensees as ops
2
3pid = ops.getPID()
4np = ops.getNP()
5
6# datatype = 'float'
7# datatype = 'int'
8datatype = 'str'
9
10if pid == 0:
11 print('Random: ')
12
13 for i in range(1, np):
14 data = ops.recv('-pid', 'ANY')
15 print(data)
16else:
17 if datatype == 'str':
18 ops.send('-pid', 0, 'Hello from {}'.format(pid))
19 elif datatype == 'float':
20 ops.send('-pid', 0, float(pid))
21 elif datatype == 'int':
22 ops.send('-pid', 0, int(pid))
23
24ops.barrier()
25
26if pid == 0:
27 print('\nOrdered: ')
28
29 for i in range(1, np):
30 data = ops.recv('-pid', i)
31 print(data)
32else:
33 if datatype == 'str':
34 ops.send('-pid', 0, 'Hello from {}'.format(pid))
35 elif datatype == 'float':
36 ops.send('-pid', 0, float(pid))
37 elif datatype == 'int':
38 ops.send('-pid', 0, int(pid))
39
40ops.barrier()
41if pid == 0:
42 print('\nBroadcasting: ')
43 if datatype == 'str':
44 ops.Bcast('Hello from {}'.format(pid))
45 elif datatype == 'float':
46 ops.Bcast(float(pid))
47 elif datatype == 'int':
48 ops.Bcast(int(pid))
49else:
50 data = ops.Bcast()
51 print(data)