Uncouple compilation for systems where gfortran/ifort is not available
Some HPC systems do not provide compilers in the nodes.
A workaround is to run the compilation before the job submission in the head node and then skip the compilation step in the node. I am thinking of some CLI flags like these:
-
--compilation-only: Meant to be executed in the head node, before submission. -
--compilation-skip: Meant to be used in the job submission script.
Then, the workflow would be like this:
- Gather all the files in the head node. Run
easymecp --compilation-only -f input.gjf. This will generate theMECP.xexecutable in the working directory. - Prepare
job.shsubmission file with modules, environment variables, file copying, and so on, pluseasymecp --skip-compilation -f input.gjf.
HOWEVER: if libfortran in the node (and so on) is not compatible with the ones present in the head node, it will fail. I would recommend compiling in the node to avoid problems like these, anyway. If gfortran is not available, ideally the HPC staff should be contacted to install it. Nothing dangerous is going to happen if permissions are in order, anyway.
It will be really helpful if this can be implemented - our HPC cluster does not have compilers installed on compute nodes, only on the head nodes.
I will need a couple of days before I start tackling this, but it will get done, I promise!
In the meantime, can you run easymecp in the head node for a simple molecule? We only need the compilation step, so you can cancel it when that's done. Then, copy the MECP.x executable to a node and try to run it (even with no input), so we can see if the compute nodes have the needed libraries installed, or if they are compatible with the head's.
I tried that and it works for the example molecule. Thank you!