GT ideas: Difference between revisions

From
Jump to navigation Jump to search
Line 3: Line 3:
[[jpr1]]
[[jpr1]]


== Framework für prozessbasierte, diskrete Simulation in Rust ==
== Prozessbasierte, diskrete Simulation in Rust ==


In diesem Masterarbeitsthema geht es um die Implementation einer Rust-Bibliothek für prozessorientierte, diskrete Simulatoren, vergleichbar mit dem älteren [https://www.informatik.hu-berlin.de/de/forschung/gebiete/sam/Lehre/tools/odemx ODEMx] für C<tt>++</tt>.
In diesem Masterarbeitsthema geht es um die Implementation einer Rust-Bibliothek für prozessorientierte, diskrete Simulatoren, vergleichbar mit dem älteren [https://www.informatik.hu-berlin.de/de/forschung/gebiete/sam/Lehre/tools/odemx ODEMx] für C<tt>++</tt>.

Revision as of 09:34, 25 September 2019

jpr

jpr1

Prozessbasierte, diskrete Simulation in Rust

In diesem Masterarbeitsthema geht es um die Implementation einer Rust-Bibliothek für prozessorientierte, diskrete Simulatoren, vergleichbar mit dem älteren ODEMx für C++.

Dazu sind Konzepte zur Umsetzung aktiver Klassen, der Erzeugung hochwertiger Zufallszahlen, der systematischen Sammlung statistischer Messgrößen sowie deren anpassbare Ausgabe zu entwickeln und umzusetzen. Darüber hinaus müssen wesentliche Synchronisationsstrukturen wie Prozesswarteschlangen, Kanäle, beschränkte und unbeschränkte abstrakte und konkrete Ressourcen implementiert werden. Im Gegensatz zu ODEMx wünschen wir uns die Möglichkeit, nicht nur auf zeitbasierte Ereignisse, sondern auch auf zustandsbasierte Ereignisse warten zu können sowie die Umsetzung von Intraprozessparallelität.

Wichtiger Teil der Arbeit ist auch die Dokumentation, Unit-Tests und Benchmarks typischer Szenarien im Vergleich mit alternativen Lösungen wie ODEMx und SLX.

Programmierung von eingebetteten Geräten

Dieses Bachelorarbeitsthema soll überblicksartig die Programmierung von eingebetteten Geräten wie Mikrocontrollern, Raspberry-Pie und/oder Grafikkarten (CUDA/OpenCL) in den jeweils dafür üblichen Sprachen (Lua, Python, Rust, C) erklären und für verschiedene Anwendungsfälle miteinander vergleichen.

Dafür wählt man initial eines oder mehrere eingebettete Geräte aus, beschreibt für die unterstützten Quellsprachen die Werkzeugkette vom Quellcode bis zum ausgebrachten Binärartefakt anhand eines typischen Beispiels und vergleicht anschließend die Komplexität der unterschiedlichen Ansätze bezüglich selbstgewählter und begründeter Kriterien.