Containerized cmorfixer for cmorfixing of affected CMIP6 data on tetralith
December 28, 2020
About
- cmor-fixer is a tool developed by the EC-EARTH community, for ‘on-site fixing of cmorized data’.
- cmor-fixer_env is a containerized deployment of the cmor-fixer tool.
- Contains a wrapper script to allow for scripted/batch-job driven fixing.
The container
- A predeployed singularity container
cmorfixerenv.simg
is now available on tetralith. - Available as
/proj/s-cmip/singularity/cmorfixerenv.simg
. - SHA256SUM:
8fff400a5acb62fefac8b62870fd8dbe9ec2baa61c2ae6bdd2c5ed4ad19d7f33
- Wrapper script for non-interactive execution.
- Gitlab repo for cmorfixer_env
General instructions
- Singularity is only available on compute nodes on tetralith, so in order to use the container, ensure that you are already on a compute node.
- A bug with cmorfixer causes the list of changed files to remain empty if the
--npp
value is greater than 1, so it is perhaps best to request for a single task, instead of a dedicated node. - You need to mount the directory containing the data (absolute path) to be scanned/fixed, so the container can see it.
Usage instructions (interactive)
- On the compute node, do the following
singularity run --bind <path_to_datadirectory>:/mnt /proj/s-cmip/singularity/cmorfixerenv.simg
- Example
singularity run --bind /home/pchengi/cmorfixer_test/CMIP6:/mnt /proj/s-cmip/singularity/cmorfixerenv.simg
Singularity> source /etc/bashrc
Singularity> activateminiconda3
Singularity> conda activate cmorfixer
(cmorfixer) Singularity>
(cmorfixer) Singularity> ls /mnt
CMIP6
(cmorfixer) Singularity> /opt/cmor_fixer/cmor-fixer/cmor-fixer.py /mnt/CMIP6 --verbose --olist --npp 1 --dry
Usage instructions (non-interactive)
[pchengi@n481 ~]$ singularity exec --bind /home/pchengi/cmorfix_test:/mnt /proj/s-cmip/singularity/cmorfixerenv.simg /opt/scripts/cmorfixerwrapper.sh /mnt/CMIP6 --verbose --olist --npp 1 --dry
2020-12-28 12:16:58 WARNING:cmor-fixer.py: Output file name list-of-modified-files.txt already exists, trying list-of-modified-files-2.txt...
Dry-run vs actual run
- The flag
--dry
only checks if any issues are present. - If the flag
--dry
is used, the list-of-modified-files.txt will always be empty, even if there are files with issues. - If the flag
--dry
is used, the standard output would contain lines that would indicate issues. - To perform an actual cmorfix run, leave out the
--dry
flag. - If there would be unaffected files along with the affected files in the data directory, please use the
--forceid
files, to ensure that they too get new tracking ids.