bl1231 / bilbomd-worker

Processes BilboMD jobs and run CHARMM, FoXS, and MultiFoXS
1 stars 0 forks source link
bilbomd saxs webapp

bilbomd-worker

Processes BilboMD jobs and run CHARMM, FoXS, and MultiFoXS

bilbomd-worker Description

bilbomd-worker is a simple Typescript NodeJS "worker" app that watches a BullMQ queue for incoming jobs. When a new job appears in the queue it will launch a sequence of processing tasks using CHARMM, FoXS, and MultiFoXS. The results will then be bundled up as a results.tar.gz file. The job progress will be updated in the main MongoDB database as well as in the BullMQ system (which uses Redis behind the scenes to store queue data).

BilboMD processing pipeline

BilboMD flow

Deployment

In order to build the docker images you will need to obtain the source codes for CHARMM, BioXTAS, and OpenMPI and place them in the appropriate folders prior to running any docker build commands.

Deploy via docker compose on Hyperion

To build the Docker image from the command line.

git clone git@github.com:bl1231/bilbomd-worker.git
cd bilbomd-worker
docker build --build-arg USER_ID=$UID -t bl1231/bilbomd-worker -f bilbomd-worker.dockerfile .

Deploy via Rancher/SPIN at NERSC

At the moment there are two versions of the bilbomd-worker needed for deploying BilboMD at NERSC. One version for doing the work on a perlmutter compute node and a second version that does no real "work", but is deployed to SPIN where it monitors for jobs and uses the Superfacility API to prepare and launch jobs via slurm batch scripts.

In general, all of the build steps are performed as part of the Continuous Integration steps coordinated by GitHub Actions. If you need to buidl the Docker images manually you will need to build two images. To build bilbomd-perlmutter-worker which is the podman-hpc runtime for performing the Molecular Dynamics steps on Perlmutter compute nodes:

cd bilbomd-worker
podman-hpc build --build-arg USER_ID=$UID -t bilbomd/bilbomd-perlmutter-worker -f bilbomd-perlmutter-worker.dockerfile .

To build bilbomd-spin-worker for running on the SPIN Kubernetes cluster. The $GITHUB_TOKEN comes from GitHub... ask me if you need to know about this.

cd bilbomd-worker
podman-hpc build --build-arg GITHUB_TOKEN=$GITHUB_TOKEN -t bilbomd/bilbomd-spin-worker -f bilbomd-spin-worker.dockerfile .

Authors

Version History