MACC-Compilersuite
Kombinieren Sie produktive Entwicklung mit performanter Berechnung Ihrer Computermodelle auf HPC-Infrastrukturen.
Lernen Sie die Codeoptimierung der MACC-Compilersuite unverbindlich über unseren Demonstrator kennen!
Highlights
Entdecken Sie die MACC-Compilersuite und überzeugen Sie sich selbst von der Zukunft der produktiven Entwicklung. Profitieren Sie von der performanten Berechnung Ihrer Computermodelle.
Produktive Entwicklung mit MATLAB oder Python
Mit der MACC-Compilersuite steigern Sie die Produktivität Ihrer Entwicklungsprozesse in MATLAB oder Python. Konzentrieren Sie sich wieder auf eine Modellierung mit Orientierung an der Kernaufgabe. Ihr Code wird unter Verwendung der MACC-Compilersuite für Sie signifikant optimiert und beschleunigt, sodass eine limitierte Performance bei der Modellierung nicht mehr berücksichtigt werden muss.
Keine Notwendigkeit wesentlicher Codeumstellungen
Nach einer Hotspot-Analyse durch Profiling kennzeichnen Sie lediglich die Hotspots mit MACC-Direktiven (Annotationen). Nach der Auswahl Ihrer gewünschten Hardware erledigt die MACC-Compilersuite anschließend für Sie den Rest.
Automatische Kompilierung in performanten Code
Die MACC-Compilersuite optimiert unter Einsatz modernster Compiler- und Parallelisierungstechniken Ihren Code automatisch und auf Knopfdruck. In diesem Prozess werden aus MATLAB-Code MEX-Files und aus Python-Code C-Extension-Modules erzeugt.
Effiziente Nutzung von Multicore CPUs und GPUs
Durch den Einsatz modernster HPC-Technologien können völlig neue Dimensionen der Rechenbeschleunigung erreicht werden. Dabei wird die Zielhardware für einen höchstmöglichen Performancegewinn optimal ausgenutzt.
Parallelisierung ohne Fachkenntnisse
Durch die Teilautomatisierung des Parallelisierungsprozesses werden Fachkenntnisse zur Parallelisierung hinfällig. Der Parallelisierungsprozess ist für jeden Anwender in wenigen Schritten leicht durchführbar.
Einfache Integration in bestehende Workflows
Der unkomplizierte Einsatz der MACC-Compilersuite ersetzt schnell und effizient die aufwändige Durchführung einer manuellen Übersetzung und einer manuellen Parallelisierung. Die generierten und hochoptimierten MEX-Files oder C-Extension-Modules können reibungslos in Ihre Codebasis integriert werden.
MACC-Workflow
Während sich Skriptsprachen wie MATLAB und Python exzellent für das Prototyping eignen, wirkt die schwache Performance stark limitierend auf den Umfang der Rechenaufgaben. Erst durch manuelle Übersetzung in eine hardwarenahe Sprache und anschließender Parallelisierung können auch komplexe Anwendungen, größere Stichproben und repetitive Durchläufe performant gerechnet werden, deren Ergebnisse die notwendige Genauigkeit und Belastbarkeit erzielen können. Der manuelle Prozess verursacht einen erheblichen Aufwand und bremst den Innovationsprozess aus.
Funktionsweise
Die MACC-Compilersuite unterstützt mit seinen beiden Frontends MatMACC und PyMACC sowohl MATLAB- als auch NumPy-Code. Die erzeugten hochoptimierten Rechenmodule können ohne Weiteres in bestehenden Code eingebunden werden und bedürfen keinen wesentlichen manuellen Codeumstellungen.
-
Intelligente Codeanalyse
-
Automatisierte Übersetzung
-
Teilautomatisierte Parallelisierung
-
Einfache Integration
Intelligente Codeanalyse
Mithilfe komplexer Interferenzanalysen erkennt der Compiler selbstständig Beschleunigungpotentiale in zuvor markierten Hotspots. Hierzu untersucht er lediglich den strukturellen Aufbau der Codeabschnitte ohne Informationen aus deren Inhalt zu ziehen.
Automatisierte Übersetzung
Die Hotspots werden anschließend in performanten Code übersetzt, um eine erste Beschleunigung zu erreichen.
Teilautomatisierte Parallelisierung
Automatische Umstellungen und Vereinfachungen auf allen Ebenen des Codes ermöglichen einen für das parallele Rechnen optimalen Daten und Kontrollfluss – ohne, dass die Semantik des Programms geändert wird.
Einfache Integration
Der Compiler kann sowohl MEX-Bibliotheken für MATLAB als auch C-Extension-Module für Python generieren, die die unkomplizierte Integration der Rechenergebnisse in den übrigen Code gewährleisten.
Intelligente Codeanalyse
Mithilfe komplexer Interferenzanalysen erkennt der Compiler selbstständig Beschleunigungpotentiale in zuvor markierten Hotspots. Hierzu untersucht er lediglich den strukturellen Aufbau der Codeabschnitte ohne Informationen aus deren Inhalt zu ziehen.
Automatisierte Übersetzung
Die Hotspots werden anschließend in performanten Code übersetzt, um eine erste Beschleunigung zu erreichen.
Teilautomatisierte Parallelisierung
Automatische Umstellungen und Vereinfachungen auf allen Ebenen des Codes ermöglichen einen für das parallele Rechnen optimalen Datenund Kontrollfluss – ohne, dass die Semantik des Programms geändert wird.
Einfache Integration
Der Compiler kann sowohl MEX-Bibliotheken für MATLAB als auch C-Extension-Module für Python generieren, die die unkomplizierte Integration der Rechenergebnisse in den übrigen Code gewährleisten.
Bis zu 300-fache Beschleunigungen
Gemessene Beschleunigung am Beispiel der EasyWave-Tsunamisimulation des deutschen GeoForschungsZentrums (GFZ).