All Projects → giovtorres → Slurm Docker Cluster

giovtorres / Slurm Docker Cluster

Licence: mit
A Slurm cluster using docker-compose

Projects that are alternatives of or similar to Slurm Docker Cluster

Dotnetcore Microservices Poc
Very simplified insurance sales system made in a microservices architecture using .NET Core
Stars: ✭ 1,304 (+1191.09%)
Mutual labels:  docker-compose
Off
OFF, Open source Finite volume Fluid dynamics code
Stars: ✭ 93 (-7.92%)
Mutual labels:  hpc
Magento Docker
Docker environment dedicated for ScandiPWA theme development
Stars: ✭ 98 (-2.97%)
Mutual labels:  docker-compose
Porter
A docker based multi-site setup for local PHP development. Inspired by Laravel Valet, Homestead and Vessel.
Stars: ✭ 92 (-8.91%)
Mutual labels:  docker-compose
Nextcloud Libreoffice Online
Docker configuration for Nextcloud with LibreOffice Online (plain http, no SSL support)
Stars: ✭ 92 (-8.91%)
Mutual labels:  docker-compose
Charm
The Charm++ parallel programming system. Visit https://charmplusplus.org/ for more information.
Stars: ✭ 96 (-4.95%)
Mutual labels:  hpc
Sci Pype
A Machine Learning API with native redis caching and export + import using S3. Analyze entire datasets using an API for building, training, testing, analyzing, extracting, importing, and archiving. This repository can run from a docker container or from the repository.
Stars: ✭ 90 (-10.89%)
Mutual labels:  docker-compose
Fusionauth Containers
Container definitions for docker, kubernetes, helm, and whatever containers come next!
Stars: ✭ 101 (+0%)
Mutual labels:  docker-compose
Docker Nginx Php Mysql
Docker running Nginx, PHP-FPM, MySQL & PHPMyAdmin
Stars: ✭ 1,322 (+1208.91%)
Mutual labels:  docker-compose
Python Microservice Fastapi
Learn to build your own microservice using Python and FastAPI
Stars: ✭ 96 (-4.95%)
Mutual labels:  docker-compose
Shenfun
High performance computational platform in Python for the spectral Galerkin method
Stars: ✭ 92 (-8.91%)
Mutual labels:  hpc
React Pinpoint
An open source utility library for measuring React component render times.
Stars: ✭ 93 (-7.92%)
Mutual labels:  docker-compose
Prometheus Playground
Turnkey sandbox projects demonstrating a wide variety of Prometheus use cases
Stars: ✭ 96 (-4.95%)
Mutual labels:  docker-compose
Docker Experiments
Discover docker with a simple use case in development, production (local kubernetes) and CI
Stars: ✭ 92 (-8.91%)
Mutual labels:  docker-compose
Singularity Cri
The Singularity implementation of the Kubernetes Container Runtime Interface
Stars: ✭ 97 (-3.96%)
Mutual labels:  hpc
Docker Symfony
🐳 A docker multicontainer with NGINX, PHP7-FPM, MySQL and ELK (Elasticsearch Logstash and Kibana)
Stars: ✭ 1,305 (+1192.08%)
Mutual labels:  docker-compose
Streamlit Fastapi Model Serving
Simple web app example using streamlit and FastAPI to serve a PyTorch model
Stars: ✭ 96 (-4.95%)
Mutual labels:  docker-compose
Wordpressify
🎈 A build system designed to automate your WordPress development workflow.
Stars: ✭ 1,374 (+1260.4%)
Mutual labels:  docker-compose
Splits Io
a speedrunning data store, analysis engine, and racing platform
Stars: ✭ 99 (-1.98%)
Mutual labels:  docker-compose
Nextflow
A DSL for data-driven computational pipelines
Stars: ✭ 1,337 (+1223.76%)
Mutual labels:  hpc

Slurm Docker Cluster

This is a multi-container Slurm cluster using docker-compose. The compose file creates named volumes for persistent storage of MySQL data files as well as Slurm state and log directories.

Containers and Volumes

The compose file will run the following containers:

  • mysql
  • slurmdbd
  • slurmctld
  • c1 (slurmd)
  • c2 (slurmd)

The compose file will create the following named volumes:

  • etc_munge ( -> /etc/munge )
  • etc_slurm ( -> /etc/slurm )
  • slurm_jobdir ( -> /data )
  • var_lib_mysql ( -> /var/lib/mysql )
  • var_log_slurm ( -> /var/log/slurm )

Building the Docker Image

Build the image locally:

docker build -t slurm-docker-cluster:19.05.1 .

Build a different version of Slurm using Docker build args and the Slurm Git tag:

docker build --build-arg SLURM_TAG="slurm-19-05-2-1" -t slurm-docker-cluster:19.05.2 .

Note: You will need to update the container image version in docker-compose.yml.

Starting the Cluster

Run docker-compose to instantiate the cluster:

docker-compose up -d

Register the Cluster with SlurmDBD

To register the cluster to the slurmdbd daemon, run the register_cluster.sh script:

./register_cluster.sh

Note: You may have to wait a few seconds for the cluster daemons to become ready before registering the cluster. Otherwise, you may get an error such as sacctmgr: error: Problem talking to the database: Connection refused.

You can check the status of the cluster by viewing the logs: docker-compose logs -f

Accessing the Cluster

Use docker exec to run a bash shell on the controller container:

docker exec -it slurmctld bash

From the shell, execute slurm commands, for example:

[[email protected] /]# sinfo
PARTITION AVAIL  TIMELIMIT  NODES  STATE NODELIST
normal*      up 5-00:00:00      2   idle c[1-2]

Submitting Jobs

The slurm_jobdir named volume is mounted on each Slurm container as /data. Therefore, in order to see job output files while on the controller, change to the /data directory when on the slurmctld container and then submit a job:

[cd /data/
[--wrap="uptime"
Submitted batch job 2
[ls
slurm-2.out

Stopping and Restarting the Cluster

docker-compose stop
docker-compose start

Deleting the Cluster

To remove all containers and volumes, run:

docker-compose stop
docker-compose rm -f
docker volume rm slurm-docker-cluster_etc_munge slurm-docker-cluster_etc_slurm slurm-docker-cluster_slurm_jobdir slurm-docker-cluster_var_lib_mysql slurm-docker-cluster_var_log_slurm
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].