[:de]

Die Simulationskomponente MARS LIFE basierte bisher auf der .NET 4.5 Plattform. Da das offizielle .NET-Framework allerdings nur für Windows verfügbar ist, mußte für die Ausführung unter Mac OS X und Linux (und somit auch bei der angestrebten Verwendung von LIFE als Dockercontainer) stets auf die Ersatzimplementation Mono zurückgegriffen werden.

Allerdings weist die Mono-Implementierung diverse Schwachstellen auf. So ist zum Beispiel die Speicherbereinigung auf mobile Anwendungen ausgelegt, was bei MARS zu großen Performanceproblemen führt. Daneben stören ein mangelhaftes Eventsystem und Defizite bei den Netzwerkfähigkeiten sowie diverse Bugs. Aus diesen Gründen war die effiziente Simulationsausführung bisher nur mit der Microsoft-Laufzeitumgebung unter Windows möglich.

Eine neue Hoffnung verspricht das Projekt .NET Core. Dabei handelt es sich um eine OpenSource-Entwicklung von Microsoft mit modularem Aufbau, welche eine Alternative zu dem alten .NET-Framework bieten soll. Da Microsoft sich mit diesem Projekt auf die Fahnen schreibt, ein Framework für alle Zielplattformen anzubieten, werden künftig keine Ersatzimplementierungen für Mac OS X und Linuxsysteme mehr notwendig sein.

Durch die Umstellung auf .NET Core erhofft sich die MARS-Gruppe deutliche Performancesteigerungen bei gegebener Plattformunabhängigkeit, wodurch auch wieder die Bereitstellung von LIFE als Dockercontainer ermöglicht wird. Weitere Ziele sind eine einfachere Projektstruktur und schlankere Builds durch das neue Abhängigkeiten-Management.

Ein Großteil der Microservices und der überwiegende Teil von MARS LIFE sind inzwischen portiert, sodass demnächst die ersten Ergebnisse zu erwarten sind.

[:en]

The main simulation component MARS LIFE was up to this point based upon Microsoft’s software framework .NET 4.5. Because the official implementation is only available for the Windows operating system, the MARS Group had to use the surrogate implementation Mono for the Mac OS X and Linux platforms (and thereby also for the Docker deployments).

Unfortunately the Mono implementation has several shortcomings, mainly because it was developed with the use of mobile applications in mind. For that reason, e.g. the garbage collection and the event handling lead to huge performance impacts when used in the scale of an average MARS model. The addition of other deficits like missing functionality in the networking stack and runtime bugs cause the simulation on Mono to be unusable, leaving the execution on Windows as the only efficient choice.

Thanks to the new .NET Core project there now appears to be a fair chance to return to the Docker deployment. .NET Core is an open source supported by Microsoft that aims to be a modular, efficient and cross-platform alternative to the old .NET framework. The MARS Group expects an increase in performance and an improved project structure owing to the migration to .NET Core. Furthermore it would be possible again to deploy LIFE as a Docker container. The majority of the MARS microservices and a large part of LIFE are already ported, first results and performance measurements follow soon.

[:]

Categories: News