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.
* 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.”