|
15 | 15 | where len decides the size of each local array, which is len x len x len.
|
16 | 16 | So, each non-record variable is of size len*len*len * nprocs * sizeof(int)
|
17 | 17 | All variables are partitioned among all processes in a 3D
|
18 |
| - block-block-block fashion. Below is an example standard output from |
19 |
| - command: |
20 |
| -
|
21 |
| - mpiexec -n 32 python3 nonblocking_write_.py tmp/test1.nc 100 |
22 |
| -
|
23 |
| - MPI hint: cb_nodes = 2 |
24 |
| - MPI hint: cb_buffer_size = 16777216 |
25 |
| - MPI hint: striping_factor = 32 |
26 |
| - MPI hint: striping_unit = 1048576 |
27 |
| - Local array size 100 x 100 x 100 integers, size = 3.81 MB |
28 |
| - Global array size 400 x 400 x 200 integers, write size = 0.30 GB |
29 |
| - procs Global array size exec(sec) write(MB/s) |
30 |
| - ------- ------------------ --------- ----------- |
31 |
| - 32 400 x 400 x 200 6.67 45.72 |
| 18 | + block-block-block fashion. |
32 | 19 | """
|
33 | 20 |
|
34 |
| -import sys, os, argparse, inspect |
| 21 | +import sys, os, argparse |
35 | 22 | import numpy as np
|
36 | 23 | from mpi4py import MPI
|
37 | 24 | import pnetcdf
|
@@ -96,7 +83,7 @@ def pnetcdf_io(filename, length):
|
96 | 83 | req_id = vars[i].iput_var(buf[i], start = start, count = count)
|
97 | 84 | reqs.append(req_id)
|
98 | 85 |
|
99 |
| - # commit posted noblocking requests |
| 86 | + # commit posted nonblocking requests |
100 | 87 | req_errs = [None] * NUM_VARS
|
101 | 88 | f.wait_all(NUM_VARS, reqs, req_errs)
|
102 | 89 |
|
@@ -136,7 +123,7 @@ def parse_help():
|
136 | 123 | help_flag = "-h" in sys.argv or "--help" in sys.argv
|
137 | 124 | if help_flag and rank == 0:
|
138 | 125 | help_text = (
|
139 |
| - "Usage: {} [-h] | [-q] [file_name]\n" |
| 126 | + "Usage: {} [-h | -q | -l len] [file_name]\n" |
140 | 127 | " [-h] Print help\n"
|
141 | 128 | " [-q] Quiet mode (reports when fail)\n"
|
142 | 129 | " [-l len] size of each dimension of the local array\n"
|
|
0 commit comments