MACC-Compilersuite

MACC-COMPILERSUITE

Combine productive development with high-performance computation of your computer models on HPC infrastructures
PyMACC
MatMACC
Lernen Sie die Codeoptimierung der MACC-Compilersuite unverbindlich über unseren Demonstrator kennen!

HIGHLIGHTS

Explore the MACC-Compilersuite and experience the future of productive development. Take profit from high-performance computation of your computer models.

With the MACC-Compilersuite you can increase the productivity of your development processes in MATLAB or Python. Re-focus on modeling with orientation to the core task. Your code will be significantly optimized and accelerated using the MACC-Compilersuite, eliminating the need to worry about limited performance when modelling.
After a hotspot analysis by profiling, you simply mark the hotspots with MACC directives (annotations). After selecting your preferred hardware, the MACC-Compilersuite does the rest for you.
At the push of a button using the latest compiler and parallelization techniques, the MACC-Compilersuite optimizes your code automatically. In this process, MEX Files are generated out of MATLAB code and C Extension Modules out of Python code.
By using the latest HPC technologies, completely new dimensions of computing acceleration can be achieved. Thereby, the target hardware is optimally exploited for the highest possible performance gain.
Due to the partial automation of the parallelization process, specialist knowledge for parallelization becomes no longer necessary. The parallelization process is easy to perform for every user in just a few steps.
The uncomplicated usage of the MACC-Compilersuite quickly and efficiently replaces the time-consuming process of manual translation and parallelization. The generated and highly optimized MEX Files and C Extension Modules can be smoothly integrated into your code base.

Productive development with MATLAB or Python
With the MACC-Compilersuite you can increase the productivity of your development processes in MATLAB or Python. Re-focus on modeling with orientation to the core task. Your code will be significantly optimized and accelerated using the MACC-Compilersuite, eliminating the need to worry about limited performance when modelling.

No need for major code changes
After a hotspot analysis by profiling, you simply mark the hotspots with MACC directives (annotations). After selecting your preferred hardware, the MACC-Compilersuite does the rest for you.

Automated compiling into high-performance code
At the push of a button using the latest compiler and parallelization techniques, the MACC-Compilersuite optimizes your code automatically. In this process, MEX Files are generated out of MATLAB code and C Extension Modules out of Python code.

Efficient use of multicore CPUs and GPUs
By using the latest HPC technologies, completely new dimensions of computing acceleration can be achieved. Thereby, the target hardware is optimally exploited for the highest possible performance gain.

Parallelization without professional expertise
Due to the partial automation of the parallelization process, specialist knowledge for parallelization becomes no longer necessary. The parallelization process is easy to perform for every user in just a few steps.

Simple integration into the existing workflow
The uncomplicated usage of the MACC-Compilersuite quickly and efficiently replaces the time-consuming process of manual translation and parallelization. The generated and highly optimized MEX Files and C Extension Modules can be smoothly integrated into your code base.

MACC-WORKFLOW

While script languages such as MATLAB and Python are excellently suited for prototyping, weak performance limits the scope of computational tasks. Only through manual translation into a hardware-related language and a subsequent parallelization it is possible to compute complex applications, larger samples and repetitive runs with high performance - the results of which can achieve the necessary accuracy and reliability. The manual process causes considerable effort and slows down the innovation process.


FUNCTIONALITY

The MACC-Compilersuite with its two frontends MatMACC and PyMACC supports both MATLAB and NumPy code. The generated highly optimized computation modules can be easily integrated into existing code and do not require any significant manual code changes.

Intelligent
Code Analysis
Intelligent Code Analysis
The compiler uses complex interference analyses to automatically detect acceleration potentials in previously marked hotspots. For this purpose, it simply examines the structural setup of the code sections without extracting information from their content.

Automated
Translation
Automated Translation
The hotspots are then translated into high-performance code to achieve an initial acceleration.

Partial Automated
Parallelization
Partial Automated Parallelization
Automatic conversions and simplifications at all levels of the code enable an optimal data and control flow for parallel computing - without changing the semantics of the program.

Simple
Integration
Simple Integration
The compiler can generate both MEX Files for MATLAB and C Extension Modules for Python, which ensure the uncomplicated integration of the computation results into the remaining code.
Intelligent Code Analysis
The compiler uses complex interference analyses to automatically detect acceleration potentials in previously marked hotspots. For this purpose, it simply examines the structural setup of the code sections without extracting information from their content.

ACCELERATION UP TO 300 TIMES

Measured acceleration using the EasyWave-Tsunami simulation of the German Research Centre for Geosciences (GFZ) as an example.