code_aster_on_docker
code_aster_on_docker copied to clipboard
Docker images for Code_Aster
Docker for Code_Aster
This repository contains the Dockerfiles for building images of Code_Aster inside a Ubuntu based system. The built images are available on quay.io. Using Docker you can directly execute Code_Aster on virtually any platform (Linux, Mac, Windows, ...) and without having to compile yourself the full package (hdf5, med, mumps, etc).
Some files are based on the Docker files of the FEniCS project.
Currently the following images are available:
quay.io/tianyikillua/code_aster:v13: aGCC-based build of the 13.6 version. Both the sequential and parallel (MPI) versions are available. Its size is around 3 GB.
-- CODE_ASTER -- VERSION : EXPLOITATION (stable) --
Version 13.6.0 modifiée le 21/06/2018
révision fb950a49b96d - branche 'v13'
Copyright EDF R&D 1991 - 2018
Version de Python : 2.7.12
Version de NumPy : 1.11.0
Version de la librairie HDF5 : 1.8.14
Version de la librairie MED : 3.3.1
Version de la librairie MFront : 3.0.0
Version de la librairie MUMPS : 5.1.1
Version de la librairie PETSc : 3.7.7p0
Version de la librairie SCOTCH : 6.0.4
quay.io/tianyikillua/code_aster: aGCC-based build of the 14.4 version. Both the sequential and parallel (MPI) versions are available. Its size is around 3 GB.
-- CODE_ASTER -- VERSION : DÉVELOPPEMENT STABILISÉE (testing) --
Version 14.4.0 modifiée le 28/06/2019
révision 9aa55c3f2e9e - branche 'default'
Copyright EDF R&D 1991 - 2019
Version de Python : 3.6.8
Version de NumPy : 1.13.3
Version de la librairie HDF5 : 1.10.3
Version de la librairie MED : 4.0.0
Version de la librairie MFront : non disponible
Version de la librairie MUMPS : 5.1.2
Librairie PETSc : non disponible
Version de la librairie SCOTCH : 6.0.4
For the 14.4 version, currently PETSc is not supported. It may be tricky to compile PETSc with 64-bit support.
quay.io/tianyikillua/salome_meca: the official releases of Salome_Meca Only the sequential version is available, butasteris compiled with Intel compilers that in general give better performance. Additional packages such asecrevisseare also provided. Unnecessary modules could in fact be removed to reduce the image size, which is currently around 4.1 GB.
There is a
profile.shissue in the latest 2019 version such that theas_runcommand does not work properly. To investigate.
Introduction and usage
To install Docker for your platform, follow the instructions at docker.com. The tutorial provided there may also be useful.
One you have Docker installed, you can use the following commands to enjoy this Code_Aster image.
Preliminary verification
We can run an interactive bash session containing in particular the as_run command in its PATH
docker run -ti --rm quay.io/tianyikillua/code_aster
where -ti stands for an interactive process and --rm means the container will be automatically removed when it exits, in order to save disk space.
If everything goes well, you will see the following message showing up in the terminal
# Code_Aster latest stable version
Welcome to Code_Aster!
This image provides a GCC-based build of the latest
stable release of Code_Aster containing the following
components:
...
To execute an "export" file, just run
as_run foo.export
To immediately verify that Code_Aster indeed works, you may launch a simple testcase (here forma02a)
as_run --test forma02a
for the sequential version, and
as_run --vers stable_mpi --test forma02a
for the parallel version.
Running simulation via as_run inside an interactive session
You already have all simulation files and an export file test.export defining all input/outputs in your current directory. You can first open an interactive session as before, and then run the simulation using the as_run command. In this case, you also need to share your current working directory into the container directory /home/aster/shared via the -v command. The -w command defines the starting working directory.
docker run -ti --rm -v $(pwd):/home/aster/shared -w /home/aster/shared quay.io/tianyikillua/code_aster
as_run test.export
The Windows users may need to replace $(pwd) by %cd%.
Of course, you need to have a correct export file.
- All files should be accessible by Docker via the
/home/aster/shareddirectory. They should be given using their relative path or absolute path including/home/aster/shared, like this
F comm /home/aster/shared/test.comm D 1
F mmed /home/aster/shared/test.med D 20
F mess /home/aster/shared/test.mess R 6
F resu /home/aster/shared/test.resu R 8
- In order to use the parallel version, these are the related variables in the
exportfile
P version stable_mpi
P mpi_nbcpu 4 -> number of CPU cores
P mpi_nbnoeud 1 -> number of nodes
P ncpus 1 -> number of threads (OpenMP)
It is recommended to read the official Code_Aster documentation on parallelism.
Running simulation via a direct as_run command
You can also directly run the simulation by indicating the exact command to Docker, without opening an interactive session. Suppose you want to run test.export, you can directly run in your host
docker run --rm -v $(pwd):/home/aster/shared -w /home/aster/shared quay.io/tianyikillua/code_aster "/home/aster/aster/bin/as_run test.export"
Note that you have to specify the absolute path of as_run (/home/aster/aster/bin/as_run).
Running simulation via astk
You can also use the graphical interface astk to run your simulations, which will automatically write an export file for you.
- For Windows users, download and open a X11 server via MobaXterm, etc.
- Get your IP address (use
ipconfigfor Windows users) - Run the following in the directory containing simulations files
docker run -ti --rm -e DISPLAY=[YOUR IP ADDRESS]:0 -v $(pwd):/home/aster/shared -w /home/aster/shared quay.io/tianyikillua/code_aster
- Run
astkin your terminal, and voilà (see here). Remember to define ancpusvalue before running your simulation (see here).
Testcases qualification
A simple run_tests.sh script file is available at /home/aster that will launch all the testcases available. You can just run
./run_tests.sh
The test results are saved to /home/aster/shared/test (which will be shared with your host if you are using the -v command). A summary will also be given at the end.
By default it will run the sequential version stable. You can define an environmental variable ASRUN to run the parallel version stable_mpi
export ASRUN="/home/aster/aster/bin/as_run --vers stable_mpi"
./run_tests.sh
Using the sequential and parallel versions provided here, only the following tests fail mainly due to lack of some features not provided by the aster-full package.
The following tests are reported for the 13.6 version.
- Missing
xmgrace(20 cases)
forma10a forma10b forma30b sdld102a sdnl105a sdnl105b sdns107a sdns107b
ssnl127a ssnl127b ssnl127c ssnl127d ssnl127e ssnp150b ssnp153a ssnv194a
ssnv219b ssnv219c ssnv219d tplp107b
- Missing
europlexus(28 cases)
plexu* (except plexu10c)
gmshinstallation problem (3 cases, see #1)
ssls131a zzzz151a zzzz216b
- Missing
miss3d(27 cases)
fdlv112b fdlv112e fdlv112f fdlv112g fdlv112k fdlv113a sdls118a sdls118d
sdlv133a sdlx101a sdlx101b sdlx103a sdlx104a sdlx105a sdlx106a sdnx100a
sdnx100b sdnx100c sdnx100d sdnx100e sdnx100f sdnx100g sdnx101a sdnx101b
sdnx101c zzzz108c zzzz200b
- Missing
ecrevisse(19 cases)
zzzz218a zzzz218b zzzz218c zzzz354a zzzz354b zzzz354c zzzz354d zzzz354e
zzzz354f zzzz354g zzzz354h zzzz355a zzzz355b zzzz355c zzzz355d zzzz355e
zzzz355f zzzz355g zzzz355h
- Missing
CALC_MAC3COEUR(31 cases)
mac3c*
- Missing
MACR_RECAL(6 cases)
sdls121a sdls121b sdls121c zzzz159b zzzz159e zzzz159f
- Missing material data (32 cases)
hsnv131a ort001a ssll501a ssna117a ssna117b ssna117c ssnl121b ssnl121c
ssnl128a ssnl128b ssnl128c ssnl128d ssnl131a ssnl131b ssnl131c ssnl131d
ssnp132a ssnv101c ssnv113a ssnv190a ssnv190b ssnv212a ssnv213a ssnv214a
ssnv215a ssnv216a zzzz118a zzzz118b zzzz118c zzzz118d zzzz120a zzzz120b
- Missing
scipy(1 case)
sdll151a
- Missing
devtools(1 case)
supv002a
- Possible numerical issues to be investigated further (12 cases)
erreu06a forma11a rccm01b sdnd123a ssnp504e ssns115b ssnv128r ssnv157k
supv003a umat002a wtnv135a zzzz255b
Performance
On a Windows 10 host with 8 Intel(R) Xeon(R) W-2123 CPU @ 3.6 GHz, with the Docker Community Edition for Windows, the following strong scaling result is obtained for the perf009d testcase.

Similarly, for the perf015 testcases, we obtain

Since back-end virtualization may still be used by Docker under Mac and Windows, performance should be better under a native Linux environment using Docker.