forked from payu-org/payu
-
Notifications
You must be signed in to change notification settings - Fork 3
/
CHANGELOG
240 lines (194 loc) · 9.91 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
v0.11.2:
- Payu collation jobs launched by an initial payu job would sometimes fail
if the LD_LIBRARY_PATH was not set correctly (usually in a `payu-run`
job). We now prepend the executable's LD_LIBRARY_PATH before collation.
- `runlog: False` was not correctly handled due to changes in the Runlog
object, and has been fixed. Thanks to Nic Hannah for reporting.
- Several OSError checks throughout the module were not being handled
correctly in Python 3, where most of these have been replaced by various
more specific exceptions. We now check for the more generic
EnvironmentError and handle the error code as before. Thanks to Navid
Constantinou for reporting.
- The f90nml parser used by MITgcm was not correctly removing comments from
`data.mnc` config files. We now use the MITgcm-configured parser.
- Userscripts that were not executable but required python may have failed
due to a generic `python` execution. We now use the same executable as
the one used to launch Payu.
- mnctools is now an optional dependency to be installed when MITgcm
collation support is needed. This will also install numpy and netCDF4,
which can be a significant burden if unneeded, and why this is optional.
- globbing support for netCDF files in mppnccombine-fast
v0.11.1:
- PYTHONPATH is now passed directly to the next job. Previously, we tried
to derive this variable from `sys.path` after removing all the default
paths, but the remainder was virtually identical to PYTHONPATH.
- Runscripts are now constructed by setuptools via `entry_point` rather than
the explicit scripts in the `bin` directory. This was done in part to
accommodate conda environments on NCI. Thanks to Scott Wales for
outlining this method.
v0.11:
- The "reversion" technique of relaunching payu to a fixed version has been
removed, and we now use the version specified at execution.
- Payu is now nominally compatible with Python 2.6, 2.7, and most newer 3.x
releases. Minor issues are expected, and to be fixed in later versions.
2.6 support:
- Implicit string arguments replaced with explicit parameters
- backport of `subprocess.check_output` (public code by Eduardo Felipe)
- Dictionary comprehensions have been removed
3.x support:
- `multiprocessing.dummy` is now replaced with `multiprocessing` in FMS
collation support
Note: Much of the 2.6 support can be reversed when we've officially
stopped using it.
- Payu runtime environment is now strictly defined at execution, and no
longer relies on environment modules for setup. Includes the following:
- Explicit paths to the python executable, rather than relying on `PATH`
- Safer generation of PYTHONPATH to include active version of Payu when
installed outside of default `sys.path`.
- Explicit tracking of payu command line tools
(Note: For now, this assumes a common directory for all tools)
- Python and Payu modules are no longer loaded within payu
(Note: PBS is still loaded for queuing support)
- `LD_LIBRARY_PATH` is constructed and explicitly set for Python runtime
- The `PAYU_MODULENAME` and `PAYU_MODULEPATH` environment variables have
been removed
- Simple test automation using Travis CI. The environment is still
incomplete and only a few command line tests are included, but it includes
a functional Torque (PBS) server for future job submission tests.
- Minor documentation update (thanks to Navid Constantinou for reporting)
Bugfixes
- `runlog: True` no longer causes a runtime crash, due to conflicts with
the complete `runlog` config dictionary tree.
(Thanks to Paul Spence for reporting)
- `payu collate -d $DIR` no longer uses $DIR as `jobname` when this entry is
absent from `config.yaml`. We now default to the directory name itself,
rather than the full path.
We have also added support for a `jobname` record inside the full
`collate:` config dictionary tree.
- `dateutil` is now identified as a Payu dependency
v0.10:
Aidan Heerdegen:
- collate config in `config.yaml` replaces `collate_*` config with
subkeys under `collate:`
- Support for Scott Wales' `mppnccombine-fast` collation
- Multithreaded collate errors are gathered and reported more
thoroughly
- `cli.get_config` was removed and calls replaced with
`fsops.read_config`
Marshall Ward:
- Minor usability improvements to GitHub experiment sync
- MOM (temporarily) produces `log` directories to support OM2 logging
v0.9.1:
- Reverting the optional_config_files directory chance back to work_input,
since it was breaking MOM6.
v0.9:
- Top-level models (i.e. models with submodels) are now handled as
independent models, with their own configuration elements (e.g. input
directory, etc.) This allows configuration files to be shared more easily
across submodels.
Much of this work is ongoing, and this should be seen as a progressive
step, rather than the final product.
- `ocean_mask_table` has been added to the MOM driver as an optional config
file.
- Optional configuration files are now (perhaps temporarily) copied to the
`work_input_path` rather than `work_path`. This is solely to accommodate
the `ocean_mask_table` in ACCESS-OM2. This probably needs to be
restructured better in the future.
- Missing restart files in the old ACCESS are now handled more safely. If
a restart file is missing, it will conditionally check the prior output.
- CICE output file permissions are correctly set to be user-writeable.
- Hyperthreading is now correctly removed from collation jobs. There was
some poor handling of the optional space betweel `-l` and the flag
contents which has been fixed.
New model support:
- YATM
- ACCESS-OM2
NOTE: The ACCESS-OM2 driver currently overrides most of the intrinsic
Payu driver structure, and will probably be rewritten at some stage.
- The largely unused `exe_prefix` config setting was basically unusable
since it was not passed to the model object. This change now passes it
to the model object, which handles the executable command.
v0.8.1:
- Environment variable corruption of bash functions by PBS is now only
applied if the `BASH_FUNC_module()` variable is present. This prevents
failing under tcsh.
- Numerical job names should now work correctly
- Bash-like environment variable substitution can now be used in MPI flags.
This feature may be extended to other components if necessary.
- Multiple runs per PBS submission now supported (`runspersub`)
- Safer import of f90nml
- ACCESS-OM2:
- Necessary configuration files are now copied to the restart
directory.
- CICE namelists now search in the prior output path if absent from the
prior restart path
- Safer CICE restart cleanup
- FMS:
- Collation by mppnccombine will now report a nonzero error code if any
of its pool threads fails, which will halt resubmission.
v0.8:
- Remote synchronization of run experiment with github repository
- Error logs are now captured and archived separately from successful runs
- PBS and error logs are now saved in the archive directory
- Basic OpenMP support
- FMS collation default flag update (netCDF4)
- Error code reporting from FMS collation
- OASIS namcouple cleanup (Nic Hannah)
New dependencies:
- requests[security] (for github sync support)
New model support:
- Q-GCM
- CICE 5
Bug fixes:
- Calendar leap year support (Nic Hannah)
- Payu module pathname
- Protect environment variables with '\n' from corruption by PBS Pro
- CICE restart cleanup (Nic Hannah)
v0.7:
- `payu setup` and `payu archive` commands now available
(c/o Aidan Heerdegen)
- Basic support for NEMO
- `platform` configuration now available to set per-node CPU and RAM
- Enable Lustre IO striping with `stripedio` config flag
- Git-based logging of job submissions is now enabled by default
- Basic (and incomplete) testing framework now available
- Several bugfixes related to repeatable runs and submodel testing
v0.6:
- Partially committed node flags (`npernode`) updated to new syntax
- Non-directories in archive (e.g. symbolic links) are not deleted
- Improved single-core MITgcm support
- MITgcm runtimes can now be set in time, rather than just timesteps
- `payu build` now ignores user .gitconfig settings
- Some profiler cleanup (openspeedshop moved to Profiler class)
- Minimal WAVEWATCH III support
- A non-functional test suite was started, please add to it!
v0.5:
- Multithreaded collation (c/o Aidan Heerdegen)
- Improved CICE and ACCESS support (c/o Nicholas Hannah)
- Explict output collation path (c/o Aidan Heerdegen)
- Default jobname is not set to control path directory name
- repeat runs (repeat: True) now delete any restart files
- Profiler driver class introduced (not yet adopted for all)
- Documentation update (incomplete)
v0.4.1:
- MOM: mppnccombine bugfix for land masked runs
- We now save the last N restarts, rather than every Nth plus any inbetween
- MOM6 support (Angus Gibson)
- Runtimes for various models can now be set in seconds
- Exit code error message clarification
- ACCESS default repository change (CWSL)
- setuptools default support
- wheel install support
v0.4:
- Initial setup of model and profiler driver framework
- `env` and `mpirun` config.yaml values can now safely be unset
- Bugfix of `payu sweep` of collate logs
- ACCESS repeat_run bugfix
v0.3.2:
- TODO
v0.3:
- TODO
v0.2:
- TODO
v0.1:
- TODO