Zapcc Case Study – University of Dortmund

The chair of Applied Mathematics and Numerics at the Department of Mathematics of the TU Dortmund, is developing a C++ Version of the FEAT (Finite Element Analysis Toolbox) package, designed to solve large scale Finite Element based problems in a highly efficient way across a wide variety of modern hardware architectures. FEAT is devised with efficiency, encapsulation and multi-architecture support in mind.


Thfeat3e project involves the following attributes:

* Heavy use of advanced c++ template

* Around 135K LOC

* Windows 7/8, Ubuntu 12.04/14.04, Centos 6.6, SLES 11, FreeBSD,  MacOS

* Compiled regularly with gcc 4.8+, intel 14+, clang 3.5+, pgi15+ and msvc12+.

* Can utilize: MPI, CUDA, Intel MKL, SuitSparse and additional numeric libraries

* CMake, driven by python scripts

* 10-20 developers

* Clang is used for the actual code development

* gcc/icc for optimized benchmarks / production runs

* Special compilers for special hardware like arm on linux or android

“Using Zapcc, we were able to reduce build times to 1m47s, vs clang 3.8 3m00s, almost a 2X build speedup on a Xeon E5-2670 system.”