MACC-Compilersuite

MACC-Compilersuite

Combine productive development with high-performance computation of your computer models on HPC infrastructures.

PyMACC
MatMACC

Learn about the code optimization of the MACC compiler suite without obligation via our demonstrator!

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.

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.
 

  • Advanced Code Analysis
  • Automated Translation
  • Partial Automated Parallelisation
  • Effortless Integration
Advanced 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

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

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.

Effortless 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.

Advanced Codeanalysis

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

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

Partial Automated Parallelisation

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.

Effortless 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.

Acceleration up to 300 times

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