Wiki¶To run PARTONS on the farm we need to do is to create a singularity container, follow these steps
- Set the environment and load the appropriate modules
module load singularity/3.9.5
- Build the container:
singularity build --sandbox partons_singularity docker://partons/partons
- The previous command with create a new folder called "partons_singularity". To run the container do:
singularity shell --writable partons_singularity
- Now your terminal has changed. You can find PARTONS' folders in /root/workspace/
- For instance, to run an example inside the container you can do:
- To run partons using a .xml outside the container (I am using computeSingleKinematicsForGPD.xml), we need to bind the folder on host to a folder on the container.
1. I create a folder where the xml files are going to be linked on the container.
2. Create a script with the commands to run. I call it "order". The content of my file named "order" is:
The script will change working directory on the container and will execute PARTONS.
This script has to be located in your home directory (or any other mounted location e.g. input folder) and you need to give permissions using chmod 755 ~/order
3. Then, execute PARTONS binding the folder containing the .xml file (on host) to the folder you have have just created (I created the folder input in the current location):
singularity exec --writable --bind ./input/:/root/workspace/partons-example/input/ partons_singularity/ ./order
where the "path_to_xml_file" will be "input/computeSingleKinematicsForGPD.xml"
For completeness, notice that the "order" file contains the following lines:
If you need to re-build the container and get the error "no space left on device", you just need to delete the folder .apptainer and .singularity in your home directory
If you get the error
./bin/PARTONS_example: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory.
strip --remove-section=.note.ABI-tag /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
- singularity shell --writable --containall epic_partons (to enter the container)
- singularity exec --writable --containall --bind ./test/:/work/workspace/epic/test/ epic_partons run.sh (to bind a folder and use it as executable)
A EpIC.txt file is left to guide the creation of the singularity container.
All libraries to be installed have to be done on a local computer with sudo permissions.
All commands have to be executed inside the container.
Some important links