Giter Club home page Giter Club logo

docker-files's Introduction

deal.II Docker images based on MPICH for shifter

This repository contains Dockerfiles that have been modified to build dealii and its dependencies using MPICH. This was done so that the images could be used to run ASPECT via shifter on HPC systems (specifically PAWSEY/Magnus).

More information is available here: https://support.pawsey.org.au/documentation/display/US/Containers. Alexis Espinosa from PAWSEY carried out most of this work. Ongoing updates to these Dockerfiles will be posted here.

You can download the MPICH based Dealii image using docker/shifter (and swapping out dansand for your profile):

docker/shifter pull dansand/dealii:v9.1.0-pre-gcc-mpichpawsey-fulldepsmanual

(check https://hub.docker.com/r/dansand/dealii/tags to verify that the tagname is still valid )

To build the MPICH-based Dealii image yourself, follow these instructions:

at docker-files/base/gcc-mpi:

docker build -t dansand/dealii_base:gcc-mpi .

at docker-files/full-deps/fulldepsmanual

docker build -t dansand/dealii_full-deps:fulldepsmanual .

^This is the one you want to modify in order to use the update versions of the Aspect dependecies (P4EST, etc.)

at docker-files/dealii/fulldepsmanual

docker build -t dansand/dealii:v9.1.0-pre-gcc-mpichpawsey-fulldepsmanual .

Started from @tjhei, edited by @luca-heltai

For each directory in this repository, one (or more) images are built either on dockerhub, or on travis.

In particular

  • ubuntu16
  • base

contain the startup OS and a minimal set of packages to compile serial builds. Both images are built automatically on dockerhub:

The directory full-deps contain docker images that download and install all external dependencies for deal.II, using two possible different methods:

  • fulldepscandi (gcc based)
  • fulldepsmanual (clang based)

The building of these images is very expensive, and it is done manually, when important updates are available on the external libraries.

The directory dealii, finally, contains the Dockerfiles to build the actual deal.II library images, in particular we build several different types of deal.II images, each on its own tag. Tags are named based on the type of base system that is used to bootstrap the build:

  • bare
  • fulldepscandi
  • fulldepsmanual

And for each of these, build types Debug, Release, or DebugRelease versions of the library are built, with the final images stored in

  • dealii/dealii:ver-compiler-serialormpi-depstype-buildtype

You can pull any of the above image from dockerhub using (for example)

docker pull dealii/dealii:v8.4.2-clang-mpi-fulldepsmanual-debugrelease

after which you could run an interactive shell in it:

docker run -i -t dealii/dealii:v8.4.2-clang-mpi-fulldepsmanual-debugrelease

This will drop you in an isolated environment where you can experiment with deal.II.

A list of all available images is here: https://hub.docker.com/r/dealii/dealii/tags/

Notice that if a debug build is present in the image, then you'll also have access to deal.II source files.

All images are built by the user dealii.

docker-files's People

Contributors

alexisespinosagayosso avatar dansand avatar davydden avatar luca-heltai avatar tamiko avatar tjhei avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.