Compatible with:
Custom AiiDA scheduler/transport plugins.
AiiDA nicely comes with a handful of scheduler plugins that we can use for running our calculations. However, configuration or type of schedulers may differ slightly or significantly in different HPCs that consequently would require minor or major changes in the shipped plugins with AiiDA to make them work for particular HPC. The hard way to do it (which I was doing for few month) is as follows:
Thanks to Leopold Talirz for the idea,
now the easier way is using aiida-scheduler-bundle
.
It can be used to add custom plugins under the aiida-scheduler
entry point. So, once you have it installed, you will have extra scheduler plugins in addition to ones shipped with AiiDA. Once you need to configure the computer, you simply provide the entry point for the custom scheduler plugin.
metavo
which will contain modified PBSPro
and Transport
plugins modified for my case.__init__.py
or having them in different files as they are in case of metavo
setup.json
. For the metavo
exmaple, we have:
"entry_points": {
"aiida.cmdline.computer.configure": [
"sshmetavo = aiida_scheduler_bundle.metavo.ssh_metavo:CONFIGURE_SSH_CMD"
],
"aiida.schedulers": [
"pbsprometavo = aiida_scheduler_bundle.metavo.pbspro_metavo:PbsproSchedulerMetaVO"
],
"aiida.transports": [
"sshmetavo = aiida_scheduler_bundle.metavo.ssh_metavo:SshTransport"
]
Herein, a modified version of PBSPro
will be added under aiida.schedulers
entry point. In this case, pbsprometavo
can be used during the computer setup.
metavo
, a light change is required to make transport plugin work with a certain HPC which with this approach, we again avoid direct modification in aiida-core
.Once all files are in place and entry points are defined accordingly:
pip install -e .
You may kindly open and PR and add your collection to the package so it can contain all possible combinations and plugins to be used by others as well.
pzarabadip@gmail.com