Commit dcc3de38 authored by Adam Fekete's avatar Adam Fekete
Browse files

updated dockerfile

parent 4c296439
# https://github.com/jupyter/docker-stacks
# https://jupyter-docker-stacks.readthedocs.io/en/latest/index.html
FROM jupyter/scipy-notebook
LABEL maintainer="Gian-Marco Rignanese <gian-marco.rignanese@uclouvain.be>"
# # Fix DL4006
# SHELL ["/bin/bash", "-o", "pipefail", "-c"]
# Abinit installation
# ===================
# # 1. compiler: gfortran
# # 2. MPI libraries - choice for Open MPI: mpi-default-dev libopenmpi-dev
# # 3. math libraries - choice for lapack and blas: liblapack-dev libblas-dev
# # 4. mandatory libraries:libhdf5-dev libnetcdf-dev libnetcdff-dev libpnetcdf-dev libxc-dev libfftw3-dev libxml2-dev
USER root
RUN apt-get update \
&& apt install -y --no-install-recommends \
gfortran \
mpi-default-dev libopenmpi-dev \
liblapack-dev libblas-dev \
libhdf5-dev libnetcdf-dev libnetcdff-dev libpnetcdf-dev libxc-dev \
libfftw3-dev libxml2-dev \
mongodb \
slurmd slurm-client slurmctld \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /opt
ARG abinit_version="9.4.0"
COPY configs/abinit_config.ac9 /opt/abinit-${abinit_version}/build/abinit_config.ac9
RUN wget -k "https://www.abinit.org/sites/default/files/packages/abinit-${abinit_version}.tar.gz" \
&& tar xzf abinit-${abinit_version}.tar.gz \
&& cd abinit-${abinit_version} \
&& cd build \
&& ../configure --with-config-file='abinit_config.ac9' \
&& make -j4 \
&& make install \
&& rm /opt/abinit-${abinit_version}.tar.gz \
# && rm -rf /opt/abinit-${abinit_version}
&& fix-permissions "/opt/abinit-${abinit_version}"
USER $NB_UID
# Install Python 3 packages
# =========================
RUN conda install --quiet --yes \
# 'ase' \
# 'pymatgen' \
# 'atomate' \
# 'matminer' \
# 'jupyterlab-git' \
'abipy' \
'jupyter_contrib_nbextensions' \
'jupyter_nbextensions_configurator' \
&& pip install --no-cache-dir jupyter-jsmol fireworks \
&& conda clean --all -f -y \
&& fix-permissions "${CONDA_DIR}" \
&& fix-permissions "/home/${NB_USER}"
# Pseudo-dojo
USER root
WORKDIR /opt
RUN git clone --depth 1 https://github.com/abinit/pseudo_dojo.git \
&& cd pseudo_dojo \
&& fix-permissions "/opt/pseudo_dojo"
USER $NB_UID
RUN pip install -e pseudo_dojo
WORKDIR $HOME
# MPI settings
with_mpi="yes"
enable_mpi_io="yes"
# linear algebra settings
with_linalg_flavor="netlib"
LINALG_LIBS="-L/usr/lib/x86_64-linux-gnu -llapack -lblas"
# mandatory libraries
with_libxc="yes"
with_hdf5="yes"
with_netcdf="yes"
with_netcdf_fortran="yes"
# fast fourier settings
with_fft_flavor="fftw3"
FFTW3_CPPFLAGS="-I/usr/include"
FFTW3_FCFLAGS="-I/usr/include"
FFTW3_LIBS="-L/usr/lib/x86_64-linux-gnu -lfftw3 -lfftw3f"
# XML2 library (used by multibinit)
with_libxml2="yes"
LIBXML2_FCFLAGS="-I/usr/lib/x86_64-linux-gnu/"
LIBXML2_LIBS="-L/usr/include/libxml2/libxml/ -lxmlf90"
## Local runner ##############
# policy:
# autoparal: 0
qadapters: # List of `qadapters` objects (just one in this simplified example)
- priority: 1
queue:
qtype: shell # "Submit" jobs via the shell.
qname: localhost # "Submit" to the localhost queue
# (it's a fake queue in this case)
job:
mpi_runner: "mpirun"
# pre_run: "export PATH=$HOME/git_repos/abinit/build_gcc/src/98_main:$PATH"
limits:
timelimit: 24:00:00 # Time-limit for each task.
max_cores: 64 # Max number of cores that can be used by a single task.
hint_cores: 8
hardware:
num_nodes: 1
sockets_per_node: 2
cores_per_socket: 64
mem_per_node: 256 Gb
##############################
seconds: 30 # number of seconds to wait.
#minutes: 0 # number of minutes to wait.
#hours: 0 # number of hours to wait.
# Limit on the number of jobs that can be present in the queue. (DEFAULT: 200)
max_njobs_inqueue: 8
# Maximum number of cores that can be used by the scheduler.
max_ncores_used: 128
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment