High-Performance Computing w/ Docker & Kubernetes
Garrett Mills
Follow along: https://slides.com/glmdev/k8s/live
glmdev@ku.edu
Pro: it's the standard
Con: it's expensive
Pro: cheaper & portable
Con: learning curve
Environment is static.
No guarantee that each node is the same.
I'm going to mispronounce this.
Production-grade container orchestration.
a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another
container (n.) -
Source: Docker Resources, https://www.docker.com/resources/what-container
Source: Docker Resources
Source: Docker Resources
Fedora
module purge
module load legacy
module load emacs/26.1
module use /panfs/pfs.local/work/crmda/tools/modules
module load Rstats/3.5.1
module load mplus
module load SAS
module load anaconda
FROM everpeace/kube-openmpi:2.1.2-16.04-0.7.0
RUN apt-get update
RUN apt-get install -y fish python3-pip apt-transport-https software-properties-common python-software-properties
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
RUN add-apt-repository -y 'deb [arch=amd64,i386] https://cran.rstudio.com/bin/linux/ubuntu xenial/'
RUN apt-get update
RUN apt-get install -y r-base
COPY ./Rinst.R /tmp
RUN R --vanilla -f /tmp/Rinst.R
RUN pip3 install numpy mpi4py
WORKDIR /clusterfs
For example:
5 nodes x 4 cores/node
20 cores total
10 hour runtime
Source: Google Cloud, https://cloud.google.com/products/calculator/