Skip to content

euroexa/micropp-ompss-2-cluster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Micropp

Build Status

Micropp is a 3-D Finite Element (FEM) code for solving solid mechanics problems for modeling micro-scale effects in composite materials.

The code solve the equilibrium equations at Representative Volume Elements (RVE) to calculate average properties (stresses and constitutive tensors) for multi-scale simulations:

drawing

The code is mainly designed to be coupled with codes for modeling with FEM the macro-scale, e.g. a wing of an aircraft.

drawing

The code has been ported to GPUs to accelerate the calculation of the micro-scale problems.

Characteristics

  1. Works with 3-D structured FE elements problems
  2. OpenACC and CUDA (under development in cuda branch) acceleration support for GPUs
  3. OpenMP support for multi-core CPUs
  4. Solver: Diagonal Preconditioned Conjugate Gradients (DPCG)
  5. More than 10 micro-structures patterns and 3 material laws (elastic, damage and plastic)
  6. No external libraries are required
  7. Native instrumentation to measure performance
  8. C and Fortran Wrappers for coupling Micropp with external codes

Performance CPU vs. GPUs

The peformance using the hybrid CPU/GPU execution in notably better than CPU-only:

drawing

For hybrid CPU/GPU the parallelization with CUDA has proven better perfomance than OpenACC:

drawing

Currently CUDA acceleration only works with some parts of the code and has not been completely integrated.

Select the compiler

CMake has a certain rules for searching the compiler available in your system if a specific compiler is needed the following environmental variables should be set. E.g. in Bash:

export CC=<path-to-C-compiler>
export CXX=<path-to-C++-compiler>
export FC=<path-to-Fortran-compiler>

Compilation

git clone [email protected]:gagiuntoli/Micropp.git
cd Micropp
mkdir <build-dir>
cd <build-dir>
cmake ..
make

Compilation Options

It is suggested to use the graphical ccmake tool for setting the configuration options. After executing on the <build-dir> the command:

ccmake .

The following menu with the default options appears:

CMAKE_BUILD_TYPE
CMAKE_INSTALL_PREFIX             /usr/local
ENABLE_CUDA                      OFF
ENABLE_OPENACC                   OFF
ENABLE_OPENMP                    OFF
ENABLE_TIMER                     OFF

In straightforware manner it is possible to toggle across the different options using the arrows and Enter keys and finalizing by pressing c and g keys.

Also the options can be set in the first called to cmake, e.g.:

cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_CUDA=On

Future Work

  • Finalize and optimize CUDA integration
  • Refactoring of the entired code
  • Add in the CI environment with more compilers to the tests
  • Implement Periodic and Uniform Stress BCs (numerical method)