# BioBB + GMXAPI setup for puhti.csc.fi
## Notes 17.12.2021
* GMXAPI tutorial: full node per participant and *threadmpi* gromacs 2022 + gmxapi 0.3.x + mpi4py --> ok!
* BioBB: this workshop use notebook as the GUI to use BioBB
* this is for demonstration
* for production, mpi is needed
* book a separate meeting later with Adam!
* mpi, slurm conf, pycomps etc.
## Prereqs
* Add python tutorial
* function, decorator, `with` (context manager) ...
* Adam sends improved BioBB prereg formulation
## Testing
* accounts work
* hpc-container-wrapper https://github.com/CSCfi/hpc-container-wrapper
* also possible to run a custom module via OoD, but one should make a module for it
* create a singularity container with a docker recipe? ok!
* for "normal" cases convesion should be automatic
* Eric: contact Henrik to test
* QMMM GMX-CP2k will likely require a separate gromacs build
* building the stack takes loooong
*
## Questions
GPUs? yes for Artem's session; no for gmxapi and biobb
puhti: 40 cores per node
## Expected environment
### Option: Container generated from Conda recipe
### Option: Container generated from Docker image
From Henrik:
#### Converting the docker container:
```
export SINGULARITY_TMPDIR=$TMPDIR
export SINGULARITY_CACHEDIR=$TMPDIR
singularity pull <container_name>.sif docker://<namespace>/<repository>
```
Large image are converted faster when using the local disk instead of the parallel filesystem
#### Creating the wrappers
```
export PATH="/appl/opt/csc-tools/hpc-container-wrapper-beta/bin:$PATH"
mkdir Wrappers
wrapcont -w <abs_path_in_container> <container_name>.sif --prefix Wrappers/
```
The abs_path is some absolute path in the container for which you want to create wrappers e.g /home/tutorial/venv/bin
multiple paths are separated with a comma.
*eric notes: this assumes the venv in the docker image has jupyter notebook installed*
#### Custom module
create ~/privatemodules/course.lua and add
```
prepend_path ("PATH","/<path_to_wrappers>/bin")
```
#### Launching using puhti.csc.fi
- Using a browser go to puhti.csc.fi
- Login using the same username+password as ssh
- Go to the Jupyter app
- In the settings select custom for the python drop down
- Add use.own course to the custom Python module field.
- Make sure the user's home directory is selected for Working Directory
#### Accessing course material
The course material will likely be cloned from a common repository.
Alternatively, if the course material is packaged with the Singularity container, it could be extracted from the container to the user's home directory.
For example:
cd ~
singularity run ~/gmxapi-tutorial.sif \
tar cvf - -C /home/tutorial/ gmxapi-introduction \
|tar xvf -
Then, the user can navigate to the tutorial notebook after launching the Jupyter session.
## Links
* https://ssl.eventilla.com/event/mWeRZ
* https://github.com/CSCfi/csc-user-guide
* https://github.com/CSCfi/hpc-container-wrapper