1 |
Right now some sizes need to be configured manually: |
From Bron, February 28, 2019 |
2 |
|
|
3 |
recvTask.c lines 79-82 |
In the newest version, it is no longer necessary to hand-edit the |
4 |
|
constants in "recvTask.c" and "readtile_mpiio.c". Instead, the file |
5 |
#define NUM_X 90 |
"SIZE.h" has been modified in two ways: |
6 |
#define NUM_Y 1170L // get rid of this someday |
(1) SIZE.h now includes the constant "sFacet" |
7 |
#define NUM_Z 50 |
(2) SIZE.h may now be #include in both C and Fortran files |
8 |
#define MULTDIM 7 |
This means that "recvTask.c" and "readtile_mpiio.c" now get the |
9 |
|
information they need directly from "SIZE.h", so the magic constants |
10 |
|
for the run only need to be edited in one place (namely, SIZE.h). |
|
and |
|
|
|
|
|
readtile_mpiio.c lines 115-119 |
|
|
|
|
|
facetElements1D = 90; |
|
|
tileSizeX = 30; |
|
|
tileSizeY = 30; |
|
|
xGhosts = 8; |
|
|
yGhosts = 8; |
|
11 |
|
|
12 |
One tile per rank is recommended, mostly for pickup input performance, |
One tile per rank is recommended, mostly for pickup input performance, |
13 |
but it is not strictly necessary. |
but it is not strictly necessary. |
16 |
to do the rolling checkpoints yet. It'll dump u,v,t, and etan now - |
to do the rolling checkpoints yet. It'll dump u,v,t, and etan now - |
17 |
send me a list of other fields you want, as it is rather involved |
send me a list of other fields you want, as it is rather involved |
18 |
to change them. But this should be enough to see if it works. |
to change them. But this should be enough to see if it works. |
19 |
|
|
20 |
|
Set run-time parameter: useSingleCPUio=.FALSE. |
21 |
|
|
22 |
|
Only a couple of files are different from previous version. |
23 |
|
But note in particular that "SIZE.h" is a new file in that directory, |
24 |
|
and "recvTask.c" has a huge number of changes. |
25 |
|
|
26 |
|
The input scheme implemented here is only invoked on |
27 |
|
the 64bit pickup files. It is specific to the LLC decomposition and will |
28 |
|
not work on e.g. the Monterey high-res simulations we did a couple years |
29 |
|
ago. (Although, the code should work for any facet size as specified |
30 |
|
in SIZE.h) The format of SIZE.h was changed so that it can be included |
31 |
|
in both C and Fortran files, and I also added the "sFacet" constant that |
32 |
|
specifies the base facet size (e.g. 1080). So SIZE.h will probably look |
33 |
|
kinda weird at first, but shouldn't be hard to figure out. The major |
34 |
|
advantage is that now you no longer need to edit any magic constants in |
35 |
|
recvTask.c and readtile_mpiio.c - they now derive the info they need by |
36 |
|
directly including SIZE.h |
37 |
|
|
38 |
|
The code now automatically figures out how many ranks are running per node. |
39 |
|
You can run with whatever number of ranks per node that you want, but the |
40 |
|
number needs to be consistent for all nodes (except possibly the last node, |
41 |
|
which can be short). |
42 |
|
|
43 |
|
The initial burst of output generated by recvTask.c (the "map" describing |
44 |
|
the way the I/O processes are allocated) is now somewhat longer and more |
45 |
|
detailed, but can continue to be ignored. |
46 |
|
|
47 |
|
I did NOT try to cure the "integer" problem. It seems that the code is |
48 |
|
getting fairly close to bumping into the 2G (i.e. 2^31) limit on numbers |
49 |
|
that fit into a default integer. I *think* you can probably do one more |
50 |
|
doubling of the resolution (to 8640), but I'm also pretty sure that going |
51 |
|
past that will break the code. |