Closed ccarouge closed 1 year ago
Draft requirements for what stdout should look like for various commands
svn
:by default
$ benchcab checkout
Creating src directory: /absolute/path/to/src
Checking out repositories...
Successfully checked out <branch_name> at revision <revision>
Writing revision number info to rev_number-0.log
with verbose -v
option:
$ benchcab checkout -v
Creating src directory: /absolute/path/to/src
Checking out repositories...
svn checkout https://trac.nci.org.au/svn/cable/<path_to_branch> src/<branch_name>
A src/<branch_name>/offline
A src/<branch_name>/offline/cable_mpiworker.F90
A src/<branch_name>/offline/serial_cable
A src/<branch_name>/offline/cable_LUC_EXPT.F90
... (this ellipsis won't be here, this is just to reduce the amount of text in the draft)
A src/<branch_name>/util/cable_common.F90
A src/<branch_name>/util/masks_cbl.F90
A src/<branch_name>/util/cable_climate_type_mod.F90
U src/<branch_name>
Checked out revision <revision>.
Successfully checked out <branch_name> at revision <revision>
Writing revision number in rev_number-0.log
by default
$ benchcab build
Compiling CABLE <"with MPI" if MPI else "serially"> for realisation <branch_name>...
Successfully compiled CABLE for realisation <branch_name>
with verbose -v
option:
$ benchcab build -v
Compiling CABLE <"with MPI" if MPI else "serially"> for realisation <branch_name>...
./build3.sh
Building cable (serial)
Build setup complete. Compiling now ...
Building from source common across serial and MPI applications
Building drivers for either serial or MPI application
ifort -O2 -fp-model precise -I/apps/netcdf/4.7.4/include/Intel -c grid_constants_cbl.F90 ifort -O2 -fp-model precise -I/apps/netcdf/4.7.4/include/Intel -c cable_maths_constants_mod.F90 ifort -O2 -fp-model precise -I/apps/netcdf/4.7.4/include/Intel -c cable_phys_constants_mod.F90 ... (this ellipsis won't be here, this is just to reduce the amount of text in the draft) ifort -O2 -fp-model precise -I/apps/netcdf/4.7.4/include/Intel -c casa_feedback.F90 ifort -O2 -fp-model precise -I/apps/netcdf/4.7.4/include/Intel -c casa_sumcflux.F90
BUILD OK
Successfully compiled CABLE for realisation
### When creating directories
by default
$ benchcab fluxnet-setup-work-dir Setting up run directory tree for FLUXNET tests... Creating runs/site/logs directory: /absolute/path/to/runs/logs Creating runs/site/outputs directory: /absolute/path/to/runs/site/outputs Creating runs/site/tasks directory: /absolute/path/to/runs/site/tasks Creating task directories... Setting up tasks... Successfully setup FLUXNET tasks
with verbose `-v` option:
- print all output from the non-verbose case
- print paths to all directories created
- make all file manipulations explicit
$ benchcab fluxnet-setup-work-dir -v
Setting up run directory tree for FLUXNET tests...
Creating runs/site/logs directory: /absolute/path/to/runs/logs
Creating runs/site/outputs directory: /absolute/path/to/runs/site/outputs
Creating runs/site/tasks directory: /absolute/path/to/runs/site/tasks
Creating task directories...
Creating runs/site/tasks/
### When running FLUXNET tasks (job submission)
by default
$ benchcab fluxnet-run-tasks
Creating PBS job script to run FLUXNET tasks on compute nodes: benchmark_cable_qsub.sh
PBS job submitted:
with verbose `-v` option:
- same output as non-verbose case
### When running FLUXNET tasks (no job submission)
by default
Note: keep <task_name> as is in printed output to indicate it's a generic pattern that changes for each task.
$ benchcab fluxnet-run-tasks --no-submit Running FLUXNET tasks... Successfully ran FLUXNET tasks
with verbose `-v` option:
- print all output from the non-verbose case
- print stdout running the CABLE executable for each task? (Need to be careful about parallel IO.)
$ benchcab fluxnet-run-tasks --no-submit -v
Running FLUXNET tasks...
Running task
@ccarouge I've added a rough draft for what I think we should output to stdout. Please feel free to add or change the output behaviour in the rough draft.
During compilation, I would specify "serially / with MPI".
For fluxnet-setup-work-dir
, I would start with a generic sentence, something like: "setting up run directory tree for flux sites tests". And maybe just list the logs, outputs and tasks paths in the default output. The "runs" and "site" paths aren't useful information.
For CABLE stdout, I would send it to a file in the tasks directory in all cases. So we save it but don't output to screen. In verbose version, we could output something like: "Running task X. CABLE standard output saved in /path/to/file".
Edit: Awesome to discuss the output here in the issue.
Thanks for the feedback. I've made those changes to the draft
Added a few more details for the case $ benchcab fluxnet-run-tasks
, non-verbose. So people know where all outputs are.
I've just made an edit to keep <task_name>
when describing the location of outputs for $ benchcab fluxnet-run-tasks
Edit: more details about what the PBS script is for under $ benchcab fluxnet-run-tasks
Currently,
benchcab
outputs stdout from other commands such assvn
and./build3.sh
, but does not output anything when running./cable
or when generating particular directory structures. This can be improved by havingbenchcab
print helpful messages to stdout so that the user is made aware of whatbenchcab
is doing.