MACC-Compilersuite
Combine productive development with high-performance computation of your computer models on HPC infrastructures.
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.
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 compilation 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 existing workflows
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.