1 |
heimbach |
1.1 |
|
2 |
|
|
Different configurations of the full setup, |
3 |
|
|
using cost = \sum_{i,j} theta(i,j)**2 |
4 |
|
|
They include: |
5 |
|
|
|
6 |
|
|
1. Single-processor: |
7 |
|
|
a. with hand-written AD routines |
8 |
|
|
* output_nompi_handad_adm.txt (FAIL) |
9 |
|
|
* output_nompi_handad_tlm.txt (OK) |
10 |
|
|
b. without hand-written AD routines for exch2_rx2_cube |
11 |
|
|
* output_nompi_nohandad_adm.txt (OK) |
12 |
|
|
* output_nompi_nohandad_tlm.txt (OK) |
13 |
|
|
|
14 |
|
|
2. MPI setup for 4 processors: |
15 |
|
|
a. with hand-written AD routines |
16 |
|
|
|
17 |
|
|
All header files (stuff in code_ad*) |
18 |
|
|
and input files (stuff in input_ad*) |
19 |
|
|
are kept in one directory. |
20 |
|
|
Depending on experiment, the relevant |
21 |
|
|
files are copied over from appropriate templates |
22 |
|
|
(see below). |
23 |
|
|
This helps ensuring that as little as possible |
24 |
|
|
changes between setups, and it it transparent |
25 |
|
|
exactly what has changed. |
26 |
|
|
|
27 |
|
|
|
28 |
|
|
|
29 |
|
|
Compile and run: |
30 |
|
|
---------------- |
31 |
|
|
|
32 |
|
|
# Prepare experiments in exe_ad_t2 |
33 |
|
|
cd exe_ad_t2/ |
34 |
|
|
ln -s ../build_ad_t2/mitgcmuv_ad . |
35 |
|
|
ln -s ../build_ad_t2/mitgcmuv_ftl . |
36 |
|
|
ln -s ../input_ad_t2/* . |
37 |
|
|
ln -s ../input_fields/* . |
38 |
|
|
|
39 |
|
|
Exp. 1.a.: |
40 |
|
|
---------- |
41 |
|
|
|
42 |
|
|
# prepare setup headers |
43 |
|
|
cd ../code_ad_t2/ |
44 |
|
|
# |
45 |
|
|
# ensure that you're using single-proc. topology |
46 |
|
|
# by re-copying relevant files (mostly redundant) |
47 |
|
|
cp topol_32x32/* . |
48 |
|
|
# |
49 |
|
|
# copy .flow, .list for case "hand-written" adjoint |
50 |
|
|
cp exch2_ad_diff.list_rl2_cube_hand_ad exch2_ad_diff.list |
51 |
|
|
cp exch2.flow_rl2_cube_hand_ad exch2.flow |
52 |
|
|
# |
53 |
|
|
# generate ADM and TLM and compile |
54 |
|
|
cd ../build_ad_t2 |
55 |
|
|
../../../tools/genmake2 -mods ../code_ad_t2 |
56 |
|
|
make CLEAN |
57 |
|
|
make depend |
58 |
|
|
make adall |
59 |
|
|
make ftlall |
60 |
|
|
# |
61 |
|
|
# run ADM and TLM |
62 |
|
|
cd ../exe_ad_t2/ |
63 |
|
|
rm *.??ta |
64 |
|
|
./mitgcmuv_ad >! output_nompi_handad_adm.txt |
65 |
|
|
./mitgcmuv_ftl >! output_nompi_handad_tlm.txt |
66 |
|
|
|
67 |
|
|
Exp. 1.b.: |
68 |
|
|
---------- |
69 |
|
|
|
70 |
|
|
# prepare setup headers |
71 |
|
|
cd ../code_ad_t2/ |
72 |
|
|
# |
73 |
|
|
# ensure that you're using single-proc. topology |
74 |
|
|
# by re-copying relevant files (mostly redundant) |
75 |
|
|
cp topol_32x32/* . |
76 |
|
|
# |
77 |
|
|
# copy .flow, .list for case "NON-hand-written" adjoint |
78 |
|
|
cp exch2_ad_diff.list_rl2_cube_nohand_ad exch2_ad_diff.list |
79 |
|
|
cp exch2.flow_rl2_cube_nohand_ad exch2.flow |
80 |
|
|
# |
81 |
|
|
# generate ADM and TLM and compile |
82 |
|
|
cd ../build_ad_t2 |
83 |
|
|
../../../tools/genmake2 -mods ../code_ad_t2 |
84 |
|
|
make CLEAN |
85 |
|
|
make depend |
86 |
|
|
make adall |
87 |
|
|
make ftlall |
88 |
|
|
# |
89 |
|
|
# run ADM and TLM |
90 |
|
|
cd ../exe_ad_t2/ |
91 |
|
|
rm *.??ta |
92 |
|
|
./mitgcmuv_ad >! output_nompi_nohandad_adm.txt |
93 |
|
|
./mitgcmuv_ftl >! output_nompi_nohandad_tlm.txt |
94 |
|
|
|
95 |
|
|
|
96 |
|
|
|
97 |
|
|
Exp. 2.a.: |
98 |
|
|
---------- |
99 |
|
|
|
100 |
|
|
# prepare setup headers |
101 |
|
|
cd ../code_ad_t2/ |
102 |
|
|
# |
103 |
|
|
# ensure that you're using multi-proc. topology with MPI(!!!) |
104 |
|
|
# by copying relevant files |
105 |
|
|
\cp -f topol_16x16/* . |
106 |
|
|
\cp -f SIZE.h_mpi SIZE.h |
107 |
|
|
# |
108 |
|
|
# copy .flow, .list for case "hand-written" adjoint |
109 |
|
|
cp exch2_ad_diff.list_rl2_cube_hand_ad exch2_ad_diff.list |
110 |
|
|
cp exch2.flow_rl2_cube_hand_ad exch2.flow |
111 |
|
|
# |
112 |
|
|
# generate ADM and TLM and compile |
113 |
|
|
cd ../build_ad_t2 |
114 |
|
|
../../../tools/genmake2 -mpi -mods ../code_ad_t2 |
115 |
|
|
###../../../tools/genmake2 -mpi -fc ifort -of ../../../tools/build_options/linux_amd64_ifort_generic_mpi -mods ../code_ad_t2 |
116 |
|
|
make CLEAN |
117 |
|
|
make depend |
118 |
|
|
make adall |
119 |
|
|
make ftlall |
120 |
|
|
# |
121 |
|
|
# run ADM and TLM |
122 |
|
|
cd ../exe_ad_t2/ |
123 |
|
|
rm *.??ta |
124 |
|
|
mpiexec -np 4 mitgcmuv_ad >! output_mpi_handad_adm.txt |
125 |
|
|
mpiexec -np 4 mitgcmuv_ftl >! output_mpi_handad_tlm.txt |
126 |
|
|
|