22 search hits
-
Effiziente Implementierung eingebetteter Runge-Kutta-Verfahren durch Ausnutzung der Speicherzugriffslokalität
(2006)
-
Matthias Korch
- Eingebettete Runge-Kutta-Verfahren zählen zu den numerischen Lösungsverfahren für nichtsteife Anfangswertprobleme gewöhnlicher Differentialgleichungssysteme. Sie werden in der Praxis häufig eingesetzt, da sie gute numerische Eigenschaften aufweisen, eine effiziente Steuerung der Schrittweite ermöglichen und aufgrund ihrer Berechnungsstruktur oft schneller die gesuchte Lösung berechnen können als alternative Verfahren. Der erforderliche Berechnungsaufwand ist dennoch sehr hoch, insbesondere für Systeme großer Dimension. Diese Arbeit beschäftigt sich mit der effizienten Implementierung eingebetteter Runge-Kutta-Verfahren. Das Ziel ist es, durch eine möglichst gute Ausnutzung der Leistungsfähigkeit moderner sequentieller und paralleler Rechnersysteme die erforderliche Berechnungszeit weitestgehend zu reduzieren. Der wichtigste Ansatzpunkt dazu ist die Optimierung der Speicherzugriffslokalität, da die Programmlaufzeit auf modernen Rechnersystemen häufig durch Wartezeiten aufgrund ausstehender Speichertransaktionen bestimmt wird. Diesbezüglich werden zunächst verschiedene allgemeine Implementierungsvarianten für sequentielle Rechnersysteme beschrieben und ausführlich hinsichtlich ihres Lokalitätsverhaltens untersucht. Die Untersuchungen zeigen, daß die Schleifenstruktur der Implementierungen aufgrund des daraus hervorgehenden Speicherzugriffsmusters einen signifikanten Einfluß auf die Anzahl der erzeugten Cache-Fehlzugriffe und somit auch auf die Laufzeit ausübt. In Anlehnung an die sequentiellen Implementierungsvarianten werden im Anschluß allgemeine parallele Implementierungsvarianten für verteilten und für gemeinsamen Adreßraum, die das Parallelitätspotential bezüglich der Komponenten des Differentialgleichungssystems ausnutzen, entwickelt und ebenfalls hinsichtlich ihres Lokalitätsverhaltens und ihrer Skalierbarkeit untersucht. Die durchgeführten Untersuchungen machen deutlich, daß das Lokalitätsverhalten einen großen Einfluß auf die Skalierbarkeit der Implementierungen für gemeinsamen Adreßraum besitzt, während die Skalierbarkeit der Implementierungen für verteilten Adreßraum in der Regel durch die Kosten der Kommunikationsoperationen begrenzt wird. Als eine Möglichkeit zur Verbesserung der Skalierbarkeit wird der Einsatz von Techniken zur dynamischen Lastbalancierung untersucht. Der Einsatz solcher Techniken ist immer dann sinnvoll, wenn eine ungleichförmige Verteilung der Funktionsauswertungskosten bezüglich der einzelnen Komponenten des Differentialgleichungssystems vorliegt oder die Berechnung auf einem heterogenen Rechnersystem durchgeführt wird. Die durchgeführten Laufzeitexperimente zeigen, daß unter bestimmten Voraussetzungen aber auch für Differentialgleichungssysteme mit nahezu ausgeglichenen Funktionsauswertungskosten ein Laufzeitgewinn erzielt werden kann. Da allgemeine Implementierungen weder ein optimales Lokalitätsverhalten besitzen noch eine zufriedenstellende Skalierbarkeit erreichen können, werden Möglichkeiten untersucht, Lokalität und Skalierbarkeit durch eine Spezialisierung bezüglich des Differentialgleichungssystems zu verbessern. Es wird ein blockbasierter Pipelining-Algorithmus vorgestellt, der unter der Voraussetzung, daß die rechte Seite eine beschränkte Zugriffsdistanz besitzt, bei der Integration von Differentialgleichungssystemen mit großer Dimension ein besseres Lokalitätsverhalten als die allgemeinen Implementierungen aufweist. Darüber hinaus kann der Pipelining-Algorithmus mit einem geringen Speicherplatzbedarf realisiert werden. Er eignet sich deshalb gut für die Integration mittels Linienmethode semi-diskretisierter partieller Differentialgleichungssysteme, die eine beschränkte Zugriffsdistanz besitzen und häufig einen hohen Speicherplatzbedarf aufweisen. Weiterhin ermöglicht der Pipelining-Algorithmus das frühzeitige Erkennen von Zeitschritten, die verworfen werden müssen. Bei einer parallelen Implementierung für verteilten Adreßraum kann die beschränkte Zugriffsdistanz ausgenutzt werden, um den Kommunikationsaufwand zu reduzieren, indem Einzeltransferoperationen anstelle von globalen Kommunikationsoperationen eingesetzt werden und Datenübertragungszeiten durch Berechnungen überdeckt werden. Von dem verbesserten Lokalitätsverhalten des Pipelining-Algorithmus können sowohl parallele Implementierungen für gemeinsamen Adreßraum als auch parallele Implementierungen für verteilten Adreßraum profitieren. Der zur Realisierung des Pipelining-Algorithmus verfolgte Ansatz läßt sich auf weitere Verfahren, wie z.B. iterierte Runge-Kutta-Verfahren, übertragen.
-
Konzeption und prototypische Implementierung eines Frameworks zur automatisierten Softwaremessung
(2008)
-
Bernhard Daubner
- Im Rahmen der betriebswirtschaftlichen Unternehmenssteuerung sind sogenannte Management-Cockpits oder Managementunterstützungssysteme schon länger bekannt. Dabei handelt es sich um EDV-Systeme zur Visualisierung entscheidungsrelevanter Daten, welche insbesondere der Unternehmensleitung auf Knopfdruck wesentliche Kenngrößen (Key Performance Indicators) des Unternehmens darstellen. Analog dazu sollen Projektleitstände den Projektleitern entsprechende Kenngrößen der laufenden IT-Projekte darstellen. Derartige Kennzahlen sind beispielsweise die Testabdeckung, der Fertigstellungsgrad, die Code-Qualität oder der bereits erbrachte Arbeitsaufwand. Diese Softwaremaße sollten dazu von den Messwerkzeugen automatisiert erfasst werden können. Aktuell verfügbare Anwendungen zur Softwaremessung sind jedoch entweder stark an bestimmte Prozessmodelle oder Entwicklungsumgebungen gebunden, können teilweise selbst keine Messwerte ermitteln und dienen somit als reine Visualisierungswerkzeuge oder können nur eingeschränkt von den Anwendern konfiguriert oder erweitert werden. Im Rahmen dieser Arbeit wird daher ein Framework zur automatisierten Softwaremessung vorgestellt. Zu dessen wesentlichen Anforderungen gehören die weitgehende Automatisierung des Messprozesses und die Möglichkeit, die zu erhebenden Softwaremaße unabhängig von einem konkreten Projekt definieren zu können. Dazu werden Kontextinformationen bestimmt, welche als Anknüpfungspunkte für die zu erhebenden Softwaremaße dienen. Ein Kontext kann dabei eine bestimmte Aktivität des zugrunde liegenden Vorgehensmodells, eine Projektphase oder eine zu implementierende Funktionalität sein. Dadurch ist es beispielsweise möglich, Umfangsmessungen auf bestimmte Projektphasen oder auf Komponenten, durch die bestimmte Funktionalitäten implementiert werden, einzuschränken. Im Gegensatz zu vielen anderen Messwerkzeugen, die entweder nur die Vermessung von bereits erstellten Artefakten erlauben oder Softwaremaße nur auf der Ebene des Gesamtprojekts ermitteln können, ermöglicht es der hier dargestellte Ansatz, Softwaremaße in Bezug auf einen bestimmten Kontext zu definieren. Die konkrete Ausprägung der letztendlich zu messenden Entitäten muss zum Zeitpunkt der Definition des Softwaremaßes noch nicht bekannt sein. Dadurch kann erreicht werden, dass Softwaremaße standardisiert und über Projektgrenzen hinweg konsistent ermittelt werden können. Als prototypische Implementierung dieses Softwaremessungsansatzes wird ein Framework dargestellt, welches auf einer Open-Source-Projektverwaltungssoftware basiert. Dieses Framework, welches entsprechende API-Funktionen zur Ermittlung einfacher Softwaremaße zur Verfügung stellt, erlaubt die flexible Definition komplexer Softwaremaße, welche dann zur Projektlaufzeit automatisiert ermittelt und gegebenenfalls visualisiert werden können. Zur Definition der zu erhebenden Softwaremaße wird auf die Konfigurationsmöglichkeiten der zugrunde liegenden Projektverwaltungssoftware zurückgegriffen. Dadurch können bei der Softwaremessung bereits vorhandene Projektinformationen wiederverwendet werden. Um die Tragfähigkeit des in dieser Arbeit dargestellten Ansatzes unter Beweis zu stellen, wird die Evaluierung dieses Messwerkzeuges anhand zweier studentischer Softwareentwicklungsprojekte dargestellt.
-
Evaluation der Leistungsfähigkeit von gemischt-parallelen Programmen in homogenen und heterogenen Umgebungen unter Berücksichtigung effizienter Schedulingstrategien
(2008)
-
Sascha Hunold
- Die gemischt-parallele Formulierung von Programmen, welche aus kooperierenden Multiprozessor- Tasks (M-Tasks) bestehen, erlaubt einen höheren Grad an Parallelität als gewöhnliche datenparallele Implementierungen. Um diesen höheren Parallelitätsgrad auszunutzen, bedarf es effizienter gemischt-paralleler Realisierungen von Algorithmen, einer guten Infrastruktur zur Ausführung der Programme und leistungsfähigen Scheduling-Algorithmen, die die einzelnen M-Tasks auf die bestmögliche Menge von Prozessoren abbilden. Im ersten Teil der vorliegenden Arbeit werden exemplarisch verschiedene gemischt-parallele Realisierungen der Matrixmultiplikation zweier dicht besetzter Matrizen untersucht. Dazu werden Algorithmen (z. B. die Matrixmultiplikation nach Strassen) so umstrukturiert, dass die resultierenden Verfahren aus hierarchisch organisierten, datenparallelen Multiprozessor- Tasks bestehen. Durch die abstraktere Beschreibung von Problemen mittels kooperierender Tasks lassen sich Algorithmen einfacher miteinander kombinieren. In dieser Arbeit wurden verschiedene gemischt-parallele Algorithmen zu neuen Poly-Algorithmen zusammengesetzt, wobei die gemischt-parallele Variante von Strassens Algorithmus als Ausgangsalgorithmus gewählt wurde. Die so entstandenen Poly-Algorithmen zur Matrixmultiplikation wurden in einer Vielzahl von Experimenten mit der Leistung datenparalleler Implementierungen auf homogenen parallelen und verteilten Systemen verglichen. Dabei zeigte sich, dass die gemischt-parallelen Varianten für viele Konfigurationen kürzere Laufzeiten als die datenparallelen Algorithmen erreichen. Gemischt-parallele Programme lassen sich als gerichteter azyklischer Graph (DAG) beschreiben. Diese Darstellung ist sehr gut für eine verteilte Abarbeitung der einzelnen Knoten (M-Tasks) über Clustergrenzen hinaus geeignet. Trotzdem benötigt man eine entsprechende Software-Infrastruktur, um gemischt-parallele Programme auf verschiedenen Clustern auszuführen. Aus diesem Grund wurde im Rahmen dieser Arbeit TGrid entwickelt, um gemischt-parallele Applikationen im Grid auszuführen. TGrid ist zum einen eine Middleware, die verschiedene heterogene Systeme zu einem kooperierenden System zusammenfügt. Zum anderen bietet TGrid eine Programmierschnittstelle, um gemischtparallel Programme zu formulieren und diese mit Hilfe der Middleware auszuführen. Die TGrid-Middleware ermöglicht die Co-Allokation von Ressourcen für eine einzige gemischtparallele Anwendung, d. h. ein einziges Programm kann durch mehrere Cluster parallel abgearbeitet werden. Eine weitere wichtige Eigenschaft ist die Unterstützung der automatischen Datenumverteilung zwischen M-Tasks. Der Programmierer muss dazu nur die Abbildung der Ausgangsdatenstrukturen auf die Eingangsdatenstrukturen zweier M-Tasks definieren. Die eigentliche Datenkommunikation übernimmt das TGrid-System. Für eine effiziente Ausführung gemischt-paralleler Programme in Clustern und Multiclustern (Cluster aus Clustern) ist auch die Frage zu klären, in welcher Reihenfolge die ausführbereiten Tasks abgearbeitet werden sollen. Das Ausführen von dynamisch erzeugten M-Taskgraphen in Multiclustern führt zu einer neuen Klasse von Scheduling-Problemen. Deshalb werden in der vorliegenden Arbeit zwei Algorithmen (RePA und DMHEFT) für das Scheduling von dynamisch generierten Taskgraphen entwickelt und deren Leistungsfähigkeit mit Compile-Zeit-Verfahren wie MHEFT verglichen. Da TGrid auch für die Ausführung von statisch definierten Taskgraphen genutzt werden kann, wird ein neuer zweistufiger Scheduling-Algorithmus (RATS) vorgestellt, welcher zu Compile-Zeit arbeitet. Dieser Algorithmus versucht durch gezielte Änderung der Prozessor- Allokation von Tasks, die Kosten der Datenumverteilung zu reduzieren. Nach genauer Analyse mittels Grid-Simulationen konnte festgestellt werden, dass RATS deutlich kürzere Ablaufpläne als andere zweistufige Verfahren, wie z. B. HCPA, auf homogenen Clustern produziert. Zusammenfassend zeigt die vorliegende Arbeit, wie gemischt-parallele Algorithmen entwickelt und effizient ausgeführt werden können. In homogenen parallelen Systemen ermöglichen diese gemischt-parallelen Anwendungen bessere Laufzeiten als datenparallele Implementierungen. Die Arbeit verdeutlicht auch, dass eine gemischt-parallele Formulierung von Algorithmen eine effiziente Ausführung von parallelen Verfahren in Grid-Umgebungen (Multiclustern) erlaubt, die mit anderen parallelen Programmiermodellen in diesen nicht zu erreichen ist.
-
Effiziente taskbasierte Programmausführung irregulärer Applikationen mit adaptiver Lastbalancierung
(2009)
-
Ralf Hoffmann
- Zur parallelen Ausführung irregulärer Applikationen auf Parallelrechnern mit gemeinsamem Speicher eignet sich ein taskbasierter Ansatz, da durch eine dynamische Lastverteilung einzelner Tasks geeignet auf die irreguläre Abarbeitungsstruktur der Applikation reagiert werden kann. In dieser Arbeit wird das KOALA-Framework zur Abarbeitung feingranularer Tasks paralleler Programme vorgestellt. Es wird ein adaptiver Taskpool beschrieben, der effizient auf wechselnde Lastzustände innerhalb einer Applikation reagieren kann. Durch adaptiv angepasste Taskblöcke kann der adaptive Taskpool auch bei einer sehr großen Anzahl von ausführungsbereiten Tasks mit nur wenigen Operationen Taskumverteilungen durchführen, um die Berechnungen möglichst gleichmäßig auf die Prozessoren zu verteilen. Verschiedene irreguläre Applikationen werden getestet, um die unterschiedlichen Taskpool-Implementierungen zu vergleichen. Dabei erzielen die adaptiven Taskpools im Gegensatz zu konventionellen Taskpools bei allen untersuchten Applikationen gute Ergebnisse. Die einzelnen funktionalen Bestandteile des KOALA-Frameworks können ohne Änderungen in der Applikation ausgetauscht werden. Eine spezielle Implementierung der Lock-Komponente erlaubt so die Nutzung von Hardware-Operationen zur effizienten Synchronisation der beteiligten Threads. Weiterhin wird eine Profiling-Komponente vorgestellt, mit der die Taskstruktur einer Applikation analysiert werden kann. An einem Fallbeispiel werden Engstellen in einer Applikation identifiziert, durch deren Behebung eine erhebliche Verbesserung der Laufzeit erreicht werden konnte.
-
Erweiterung des Threadmodelles fur den Einsatz in verteilten und heterogenen Systemumgebungen
(2009)
-
Raik Nagel
- Für die klassischen distributed memory und shared memory Architekturen kann bei der Programmierung auf bewährte nachrichten- und threadbasierte Programmiermodelle zurückgegriffen werden. Die weite Verbreitung und Akzeptanz dieser Modelle ermöglicht den portablen Einsatz und die Migration von bestehenden Programmen auf andere gleichartige Computersysteme. In verteilten heterogenen Systemumgebungen, die aus einer Vielzahl von unterschiedlichen Computerknoten bestehen und über ein Netzwerk miteinander verbunden sind, wird meistens ein nachrichtenbasiertes Programmiermodell verwendet. Neben praktischen Problemen, wie der Sicherstellung der korrekten Datendarstellung beim Nachrichtenaustausch zwischen Knoten mit unterschiedlicher Prozessorarchitektur, ergeben sich weitere Fragestellungen, die eine Erstellung und Portierung von Programmen für solche Ausführungsumgebungen erschweren. So ist man beispielsweise bei der Verwendung einer MPI-Bibliothek meist an ein Netzwerk gebunden und kann oft Systeme mit unterschiedlichen Prozessorarchitekturen nicht gleichzeitig verwenden. Im ersten Teil der vorliegenden Arbeit wird das Modell einer hybriden Programmierumgebung vorgestellt. Durch die Verwendung von Konzepten aus den thread- und nachrichtenbasierten Programmiermodellen soll eine leichte Einarbeitung in das System und ein breites Einsatzgebiet ermöglicht werden. Im Anschluß an die Spezifikationen und Definitionen der Programmierumgebung und des Programmiermodelles wird die hierfür erstellte Prototypimplementierung beschrieben. Diese Prototypimplementierung erlaubt die Ausführung von Programmen in verteilten heterogenen Systemumgebungen und zeichnet sich durch eine hohe Modularität aus. Dies bedeutet, daß nahezu jede Komponente des Systems austauschbar ist und Funktionen bereitstellt, welche in der allgemeinen Spezifikation der Umgebung definiert werden. F"ur verschiedene Zielsetzungen des Anwenders, wie z.B. die Sicherheit der Datenübertragung oder eine hohe Fehlertoleranz der gesamten Kommunikation, lassen sich so unterschiedliche Komponenten in das Laufzeitsystem einbinden, ohne das Benutzerprogramm neu erstellen oder anpassen zu müssen. Die Benutzung und Einbindung von bereits existierenden, externen Implementierungen für solche Anforderungen ist ebenfalls möglich und reduziert den Entwicklungsaufwand neuer Komponenten des Laufzeitsystems. In der Arbeit wird das unter anderen anhand der TSpaces-Bibliothek von IBM als alternatives Speichersystem demonstriert. Die sich im zweiten Teil der Arbeit anschließenden Kapitel befassen sich mit mehreren Umsetzungen von numerischen Algorithmen für die erstellte Prototypimplementierung der beschriebenen Programmierumgebung. Die erzielten Ergebnisse zeigen, daß die im Vorfeld definierten Ziele erreicht werden können und die resultierenden Programme mit unterschiedlichen Systemkonfigurationen lauffähig sind.
-
Ansätze zur flexiblen Navigation in Prozessabläufen
(2009)
-
Christoph Günther
- Prozessnavigationssysteme oder Workflow Management Systeme (WFMS) sind ein wesentlicher Bestandteil vieler Betriebe und Organisationen. Aktuell zeigen sich einige Probleme wie Inakzeptanz durch die Benutzer und Effizienzverlust in Betriebsprozessen, da derzeit gängige Systeme starr und unflexibel sind. In dieser Arbeit soll ein wesentlich flexiblerer Ansatz betrachtet werden. Es wird nur noch ein Rahmen vorgegeben, der den Erfolg des Workflow sicher stellt. Die Entscheidung der Prozessschrittabfolge wird hierbei nur beratend unterstützt, dem Benutzer jedoch die Entscheidung überlassen. Das System sucht also alle möglichen nächsten Prozessschritte und schlägt sie dem Benutzer vor. Durch die große Anzahl der Kombinationsmöglichkeiten sind innovative Ansätze gefordertum ein performantes System zu bieten. In dieser Arbeit werden Probleme aufgezeigt, diskutiert und gelöst um am Ende einen sehr performanten und hochflexiblen Ansatz zur Prozessnavigation vorzustellen.
-
Modelle und Werkzeuge für modellgetriebene Softwareproduktlinien am Beispiel von Softwarekonfigurationsverwaltungssystemen
(2010)
-
Thomas Buchmann
- Die Entwicklung von Softwareproduktlinien basiert auf der pro-aktiven Wiederverwendung von Softwareartefakten (Anforderungen, Komponenten, Code, Testfällen, etc.). In einer Softwareproduktlinie werden die invarianten Eigenschaften der Softwareprodukte durch eine gemeinsame Basis realisiert. Durch Integration von Variabilität in diese gemeinsame Plattform wird die effiziente Entwicklung von kunden- bzw. marktspezifischen Softwarelösungen ermöglicht. Der hohe Anteil der Wiederverwendung führt dabei im Vergleich zur Entwicklung von Einzel-Softwaresystemen zu einer Reduktion von Entwicklungszeit und Entwicklungskosten bei einer gleichzeitigen Steigerung der Softwarequalität. Modellgetriebene Entwicklung hingegen beschreibt die Verwendung von formalen Modellen zur Beschreibung eines Softwaresystems anstelle der Erstellung von Programmcode. Geeignete Werkzeuge sind in der Lage, diese Modelle in Programmcode zu übersetzen. Diese formalen Modelle beschreiben das zu erstellende System auf einer höheren Abstraktionsebene als der Programmcode. Ebenso wird die Wiederverwendbarkeit für unterschiedliche Zielplattformen erhöht, indem spezielle Codegeneratoren verwendet werden. Die Kombination von modellgetriebener Softwareentwicklung und Software Produktlinien verspricht Produktivitätssteigerungen aus mehreren Gründen: (1) durch die Entwicklung von wiederverwendbaren Komponenten in einer Produktlinie und (2) durch die Erstellung von Modellen anstatt von Programmcode, (3) durch eine erleichterte Erweiterung von bestehenden Systemen, (4) durch Werkzeuge zur Automation und (5) durch Wiederverwendbarkeit des mittels Modellen beschriebenen Wissens für alle Projektmitarbeiter. Diese Arbeit untersucht die Konzepte, Modelle und Werkzeuge, die benötigt werden, um modellgetrieben Produktlinien zu entwickeln. Als durchgängiges anwendungsbezogenes Beispiel wird die modellgetriebene Entwicklung einer Produktlinie für Softwarekonfigurationsverwaltungssysteme betrachtet. Das Beispiel Softwarekonfigurationsverwaltungssysteme wurde als nicht-trivialer Anwendungsfall gewählt, da in dieser Domäne sehr viele Systeme existieren, die sich teilweise in ihrer Funktionalität sehr ähneln, dennoch aber jeweils von Grund auf neu entwickelt wurden. Im Verlauf der Ausarbeitung werden bestehende Prozesse zur Produktlinienentwicklung vorgestellt und eine Kombination mit dem modellgetriebenen Entwicklungsansatz diskutiert. Es wird ein innovativer Ansatz eines modellgetriebenen Entwicklungsprozesses für Produktlinien vorgestellt und es werden neu entwickelte Werkzeuge präsentiert und diskutiert, die diesen spezifischen Prozess unterstützen. Für die Entwicklung einer durchgängigen Werkzeugunterstützung wurde versucht, auf bestehende Werkzeuge zurückzugreifen. Dennoch waren umfangreiche Neuentwicklungen nötig, um eine Werkzeugunterstützung des kompletten Prozesses zu gewährleisten. Die Neuentwicklungen betrafen einerseits die Kopplung von Modellen aus der modellgetriebenen Softwareentwicklung mit Modellen aus der Produktlinienentwicklung, andererseits aber auch eine weitreichendere Unterstützung von modellgetriebener Entwicklung im Bereich der Architekturmodellierung.
-
Parallele Implementierung und Analyse eines expliziten Adams-Verfahrens
(2010)
-
Konrad Ley
- Das Adams-Bashforth-Verfahren ist ein numerisches Verfahren zur Lösung von gewöhnlichen Differentialgleichungen. In dieser Arbeit werden mehrere Implementierungsvarianten des Adams- Bashforth-Verfahrens vorgestellt, verglichen und analysiert. Zunächst arbeiten die Implementierungen sequentiell. Später werden die sequentiellen Implementierungen für den Einsatz auf einem Parallelrechner erweitert. Dabei wird besonderen Wert auf die Ausnutzung der Speicherhierarchie durch eine geschickte Organisation der Berechnungsreihenfolge gelegt. Außerdem wird bei der Synchronisation darauf geachtet, dass die Implementierungen auf Mehrkernprozessoren mit einer Shared-Memory- Architektur gut skalieren. Ziel ist die Ausführungszeit des Adams-Bashforth-Verfahrens zu minimieren.
-
Temporale Fuzzy Logik - Eine Vereinigung der Temporal-Logik und Fuzzy-Logik anhand von vorausschauenden Wartungs- und Überwachungssystemen
(2011)
-
Thorsten W. Schmidt
- Fuzzy-Logik und ihre Anwendung in Fuzzy-Reglern ist seit vielen Jahren ein Forschungsthema. In den vergangenen Jahren kamen Fuzzy-Regler vielfach in den verschiedensten industriellen Anwendungen zum Einsatz. Fuzzy-Regler können in Waschmaschinen und anderen Haushaltsgeräten Verwendung finden. Aber der wichtigste Vorteil von Fuzzy-Logik ist die Tatsache, dass das vorhandene Wissen über die Kontrolle eines Prozesses einfach und intuitiv für einen Regler umgesetzt werden kann. Außerdem ist es einfach, einen solchen Regler zu warten oder zu erweitern. Bei Fuzzy-Logik werden Informationen über eine Prozess-Steuerung in einer transparenten Regel-Datenbank abgelegt. Dadurch geht dieses Wissen nie verloren. Allerdings können diese Fuzzy-Regler nicht in bestimmten Anwendungen (zum Beispiel Wartungssystemen) verwendet werden, da sie nicht in der Lage sind, zeitliche Abhängigkeiten zu modellieren, welche wesentlich für diese Systeme sind. Deshalb wird ein neues Konzept zur zeitlichen Fuzzy-Regelung eingeführt, indem Fuzzy-Logik durch neue Prädikate erweitert wird. Diese Prädikate behandeln zeitliche Aspekte, um zu erkennen oder vorherzusagen, wie das vergangene oder zukünftige Verhalten eines Prozesses ist. Mit der Fähigkeit ausgestattet, vergangenes oder zukünftiges Prozessverhalten zu analysieren, kann der Nutzer des so genannten Temporalen-Fuzzy-Reglers leichter Expertenwissen in die Regelung integrieren. Als Beispiele für die Richtigkeit dieses Konzeptes untersucht diese Arbeit das Verhalten eines Fuzzy geregelten Büroraum-Beleuchtungssystems und eines Fuzzy-Video-Verarbeitungs-Tools. Dies verdeutlicht die einfache Handhabung und hohe Effizienz dieses Ansatzes. In dieser Arbeit wird gezeigt, dass es möglich ist, Fuzzy-Logik mit zeitlichen Prädikaten zu erweitern, um die so genannte Temporale-Fuzzy-Logik zu erhalten, welche die Modellierung zeitlicher Abhängigkeiten von Ereignissen ermöglicht. Die Arbeit beschreibt die mathematischen Grundlagen der hier eingeführten zeitlichen Fuzzy-Prädikate. Die zeitlichen Fuzzy-Prädikate sind abgeleitet aus den in sich abgeschlossenen Prädikaten der Temporal-Logik. Wie in der Temporal-Logik ist es dann auch in der Temporalen-Fuzzy-Logik möglich, Bedingungen für komplette Zeitintervalle zu erstellen. So sind die temporalen Fuzzy-Prädikate ebenfalls in sich abgeschlossen. Es ist möglich, zeitliche Abhängigkeiten mit AND und OR verknüpften Prädikaten zu bilden, um mit diesen temporale Regelbedingungen zu formulieren. Die Konjunktion der Prädikate wird wie jede andere Fuzzy-Verknüpfung berechnet. Weiterhin gilt die s- und t-Norm (Funktionen mit den folgenden Bedingungen: Einselement, Monotonie, Kommutativität, Assoziativität) für diese Berechnungen. Solche Fuzzy-Regler können für die Überwachung und Wartung von Anwendungen eingesetzt werden. Dieser Ansatz wird in einem Wartungs-Beispiel gezeigt, in welchem ein Benutzer über defekte Lampen informiert und die Büroraumhelligkeit bei einem gewünschten Niveau gehalten wird. Ein weiterer Anwendungsfall ist die Fuzzy-Videoverarbeitung. Videos können mit hoher Effizienz verarbeitet werden und die Regeln, welche die Videoverarbeitung beschreiben, sind so einfach wie Standard Mamdani-Regeln.
-
Sensorbasierte, echtzeitfähige Online-Bahnplanung für die Mensch-Roboter-Koexistenz
(2011)
-
Thorsten Gecks
- Die Zusammenarbeit von Mensch und Roboter ist ein wichtiges Ziel der aktuellen Forschung in der Robotik, um die spezifischen Fähigkeiten von Mensch und Roboter zu verbinden. Die Voraussetzung für die Zusammenarbeit ist die sichere und effiziente Koexistenz in einem gemeinsamen Arbeitsraum. Hierzu muss die Sicherheit des Menschen gewährleistet sein und eine hohe Verfügbarkeit des Robotersystems erreicht werden. In dieser Arbeit wird ein bildbasierter Kollisionstest beziehungsweise eine Distanzberechnung entwickelt, um die Sicherheit des Menschen zu realisieren. Eine hohe Verfügbarkeit wird durch die Konzeption und Implementierung einer Bahnplanung erreicht, welche echtzeitfähig mit Ausweichbewegungen auf dynamische Hindernisse wie z.B. den Menschen reagiert, um gegenseitige Blockaden zu vermeiden. Die Detektion des Menschen und anderer Objekte wird mit Hilfe eines Netzwerks stationärer Kameras erreicht, deren Befestigung den Einsatz effizienter Differenzbildverfahren („Change Detection“) ermöglicht und über die Kalibrierung der Kameras die Verwendung von Modellen bekannter Objekte (Roboter und Zellenaufbauten) erlaubt. Hierdurch werden Verdeckungen unbekannter Objekte (z.B. der Mensch) in einem bildbasierten Kollisionstestverfahren korrekt berücksichtigt. Weiterhin werden Konzepte zum Umgang mit dynamischen Hintergründen in realistischen Arbeitszellen erarbeitet. Die zusätzlich realisierte bildbasierte Distanzberechnung ermöglicht die Geschwindigkeits-regelung des Roboterarms für die sichere und ergonomische Mensch-Roboter-Koexistenz. Auch hierbei wird eine korrekte Behandlung der verdeckenden Geometrien berücksichtigt. Die Bahnplanung wird in jedem Zyklus des Systems (100 ms) auf Basis aktueller Sensordaten (im bildbasierten Kollisionstest) durchgeführt, parallel zur Ausführung der jeweils im vorigen Zyklus berechneten Bahn. Das entwickelte Konzept verbindet dabei eine globale Bahnplanung auf randomisierten Netzen in hochdimensionalen Konfigurations-räumen mit der Begrenzung von teuren Kollisionstests bzw. Distanzberechnungen. Informationen über die nicht berechneten Teile des Graphen werden durch Schätzung aus bekannten Informationen erzeugt. Zusätzlich werden bereits berechnete Informationen über die Umwelt durch Speicherung im Graph über Systemzyklen hinweg beibehalten und somit sukzessive ausgeweitet. Ein Konzept wurde entwickelt und implementiert, um die persistenten Informationen bei detektierter Arbeitsraumdynamik zu adaptieren, wodurch flexibel auf Umweltveränderungen reagiert werden kann. Dieses grundlegende Rahmenwerk erzeugt einen Planer, welcher echtzeitfähig ist und somit auf dynamische Objekte reagieren kann und über Systemzyklen hinweg statistische Vollständigkeit in statischen Umgebungen erreicht. Mit Hilfe des bildbasierten Kollisionstests wird dann ein wegoptimierender Planer realisiert und mit Hilfe der bildbasierten Distanzberechnung ein zeitoptimierender Planer, welcher die Ausführungsdauer der Bewegung unter Maßgabe der distanzbasierten Geschwindigkeitsregelung optimiert. Letzterer ist für die Mensch-Roboter-Koexistenz aufgrund des vergrößerten Hindernisabstands besonders geeignet.