32 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.
-
Structuring Descriptive Data of Organisms — Requirement Analysis and Information Models
(2007)
-
Gregor Hagedorn
- Data that describe organisms in a structured form are indispensable not only for taxonomic and identification purposes, but also many phylogenetic, genetic, or ecological analyses. By analyzing existing information models and performing selected fundamental requirement analyses, the present work contributes to a broadening of the understanding of these forms of data. It falls into an interdisciplinary area between biology and information science. The term “descriptive data” is understood here in a broad sense: As descriptions of individuals, populations, or taxa, intended for various purposes (e. g., genetic, phylogenetic, diagnostic, taxonomic, or ecological), and covering a wide array of observation methods and data types (e. g., morphological, anatomical, genetic, physiological, molecular, or behavioral data). The position of descriptive data in the context of biodiversity framework concepts (covering, e. g., nomenclatural data, specimen collection data, or resource management) is discussed. A number of fundamental problems arise when modeling biological descriptive data. The ways in which existing data exchange formats, information models, and software applications address them are studied and future possible solutions are outlined. One such solution, the information model for the software “DiversityDescriptions (DeltaAccess)” is one of the results of this thesis and fully documented (Ch. 7). This entity relationship model fully supports the concepts of the traditional DELTA data exchange format (Description Language for Taxonomy; TDWG standard since 1986). If further improves on DELTA by introducing “modifiers” as a new terminology class, by introducing a more flexible system of handling statistical measures, by improving the handling of multilingual data sets, by supporting subset and filter features for concurrent collaborative editing (instead of supporting these for report-generation purposes alone), by supporting improved character attributes to create natural language descriptions from structured descriptions, and by adding metadata for a data set to improve the ability of data exchange without external documentation. In preparation of a future improved information model for descriptive data, the results of three requirement analyses are presented: a data-centric analysis of general concepts, a process-centric analysis of identification tools, and a high-level use case analysis. The first analysis (Ch. 4) is a structured inventory of fundamental approaches and problems involved in collecting and summarizing scientific descriptions of organisms. It is informed in part by current practices in information science, comparative data analysis, statistical, descriptive or phylogenetic software applications, and data exchange formats in biodiversity informatics. At the end three topics are discussed in particular detail (“Federation and modularization of terminology”, “Modifiers”, and “Secondary classification resulting in description scopes”). Except for phylogenetic analyses, identification is the most common usage of descriptive data. The second analysis (Ch. 5) therefore studies the processes, data structures, presentational and user interface requirements for printable and computer-aided identification tools (“keys”). Finally, a general use case analysis is performed with the goal of creating a framework of high-level use cases into which present as well as future requirements may be integrated (Ch. 6). All three requirement analyses are explorative and do not fulfill formal criteria of software engineering. They identify many requirements not addressed by the relational DiversityDescriptions model. Some of these could only be explored and await future solutions. For others solutions are proposed (some of which could already be incorporated into the design of SDD, an xml-based TDWG standard since 2005): The traditional data types are changed into an extensible character type model. The importance of data aggregation concepts was recognized to be fundamental. Complementary to data aggregation, the present and potentially future use of data inheritance along the lines of the taxonomic hierarchy is briefly studied. The concept of calculated characters could be addressed only insofar as the mapping between values can potentially be generalized. Character decomposition models are studied, but ultimately the traditional character concept, supplemented with a forest of ontologies for compositional and generalization concept hierarchies, is preferred as a more general concept. Both the traditional character subset and character applicability models can be integrated into concept hierarchies.
-
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.