Mit modernen Programmierparadigmen wie generischer Programmierung erreicht CMM eine schnelle Umsetzung in effiziente und korrekte Software.

Umsetzung in effiziente Software

Wenn geeignete Algorithmen gefunden sind, ist der nächste Schritt ihre Umsetzung in effiziente Software. Hierbei muss eine Balance aus Performance, Zuverlässigkeit und Erweiterbarkeit / Flexibilität erreicht werden.

Gute Algorithmen sind notwendig, aber nicht hinreichend für gute Performance. Oft kann der theoretisch schlechtere Algorithmus durch seine einfachere Struktur in der Implemenentierung einen theoretisch schnelleren Algorithmus ausstechen. Zuverlässigkeit ist auf der einen Seite eine Eigenschaft der verwendeten Algorithmen (etwa deren numerischer Stabilität), und auf der anderen Seite deren korrekter Umsetzung. Hier ist es hilfreich, auf bereits getestete Komponenten zurückgreifen zu können. Schließlich ergibt sich Flexibilität aus der Spezialisierung des mathematischen Modells, dem zulässigen Bereich der gewählten Algorithmen und der Allgemeinheit der Implementierung.

Es sind oft Kompromisse notwendig, um alle drei Eigenschaften in einem (für das Problem) angemessenen Verhältnis zu realisieren. Ich habe weitreichende Erfahrungen in der Optimierung von Algorithmen und Software; die Entwicklung von flexiblen, universellen und gleichzeitig effizienten Software-Komponenten für technisch-wissenschaftliche Anwendungen steht seit langen Jahren im Zentrum meiner Arbeit. Meine Bibliothek GrAL stellt einen Meilenstein in der Entwicklung generischer geometrischer Algorithmen und Datenstrukturen dar.

Unter Umständen ist auch bei optimalen Algorithmen der Rechenaufwand so groß, dass parallele Hardware oder gar Hochleistungsrechner zum Einsatz kommen müssen. Gemeinsam mit meinen Partnern kann ich Sie auch in diesen Fragen kompetent unterstützen!