47 research outputs found

    Sprachen für parallele objektorientierte Programmierung

    Get PDF
    In letzter Zeit wurden eine ganze Reihe von objektorientierten Sprachen zur parallelen Programmierung entworfen und implementiert. Einige dieser Sprachen werden hier einander gegenübergestellt. Das Hauptaugenmerk der Arbeit liegt einerseits auf den bereitgestellten Konzepten zur Bewältigung der Komplexität, die sich durch die Parallelisierung ergibt, und andererseits auf der Flexibilisierung von Synchronisation und Kommunikation zur Optimierung der Parallelisierbarkeit von Programmausführungen

    Laufzeitoptimierung von FAME-IO: Gesamtlaufzeit in Abhängigkeit der Agentenanzahl und Simulationsgranularität

    Get PDF
    Das Ziel der vorliegenden Arbeit ist die Optimierung der Laufzeit von FAME-IO, einer Komponente des agentenbasierten Simulationsframeworks FAME. Die Laufzeit von FAME-IO hängt direkt von der Anzahl der zu verarbeitenden Parameter Agenten und deren Zeitreiheneinträgen ab. Daher wird die folgende Forschungsfrage untersucht: In wie weit kann die Laufzeit von FAME-IO in Abhängigkeit der Anzahl an Agenten und Zeitreiheneinträgen reduziert werden. Darüber hinaus wird die Frage, welche Auswirkungen die angewendeten Optimierungen auf den Arbeitsspeicherbedarf haben, beantwortet. Zur Beantwortung der Forschungsfragen wurde der Ausgangszustand des Programms analysiert und anhand eines Profilings die Programmteile identifiziert, die den größten Anteil an der Gesamtlaufzeit haben. Zudem wurde der Bedarf an Arbeitsspeicher mit einem Memory Profiler ermittelt. Die Analyse des Ausgangszustandes zeigte, dass die Umwandlung der Zeitreiheneinträge einen Großteil der Gesamtlaufzeit einnimmt. Zur Verbesserung dieses Programmteils wurde neben einer effizienteren Implementierung der Verarbeitung der Zeitreiheneinträge auch ein Mechanismus zu deren parallelen Verarbeitung angewendet. Durch die angewendeten Methoden konnte die Gesamtlaufzeit der Verarbeitung des umfangreichsten Simulationsszenarios von 232 Sekunden auf 133 Sekunden reduziert und somit nahezu halbiert werden. Die Auswirkung der parallelen Verarbeitung auf mehreren Prozessen auf den Arbeitsspeicher ist dabei abhängig von der verwendeten Methode zum Initialisieren neuer Prozesse. Werden acht Prozesse gestartet, benötigen diese bei Verwendung der "Fork" Methode gemeinsam etwa 35 GiB, bei Verwendung der "Spawn" Methode hingegen gemeinsam nur acht GiB an Arbeitsspeicher. Eine weiterfuhrende Untersuchung könnte auf die Erhöhung des parallelisierbaren Anteils des Programmcodes ausgerichtet sein, oder auch schnellere Alternativen zu eingebundenen fremden Programmbibliotheken ermitteln, z. B. zum Einlesen von Datein im YAML Format

    Analyse expliziter Zustandsverwaltung als Mittel der Synchronisation

    Get PDF
    Parallelität ist fester Bestandteil moderner Softwareentwicklung. Nebenläufige Zugriffe auf geteilte Ressourcen müssen synchronisiert werden, da sonst Softwarefehler wie Data-Races entstehen. Zur Synchronisation werden neben etablierten auch häufig »selbstgestrickte« zustandsbasierte Mechanismen eingesetzt. Diese implementieren oft endliche Automaten. Bestehenden leichtgewichtigen, auf Mustererkennung ausgerichteten Ansätzen zur Analyse von Synchronisationseigenschaften expliziter Zustandsverwaltung fehlt es an Mächtigkeit, um solche Muster befriedigend zu analysieren. Diese Abhandlung stellt einen neuen, deutlich schwergewichtigeren Ansatz zur Analyse expliziter Zustandsverwaltung als Mittel der Synchronisation vor. Dabei reduziert statische Analyse in der Sprache C geschriebene Systeme auf im formalen Prozesskalkül CSP verfasste Modelle. Refinement-Checker untersuchen, ob Paare von Zugriffen auf Variablen im Modell ein Data-Race bilden. Lässt sich das Data-Race im Modell ausschließen, ist es dank konservativer Approximierung auch im ursprünglichen System unerreichbar. Die Modellierung und Vorverarbeitung des Modells wird erläutert. Die Evaluation zeigt, dass der neue Ansatz oft eine bessere Einschätzung der Synchronisationseigenschaften expliziter Zustandsverwaltung liefert als bisherige Ansätze. Die Anwendung auf reale eingebettete Systeme aus Automobilen demonstriert, dass der Ansatz praktisch einsetzbar ist

    Ko-Orientierung und Ko-Referenzierung in Augmented Reality basierter Kooperation

    Get PDF
    Schnier C. Ko-Orientierung und Ko-Referenzierung in Augmented Reality basierter Kooperation. Bielefeld: Universität Bielefeld; 2016

    Lastverteilung für feinkörnig parallelisiertes Branch-and-bound

    Get PDF
    Zur Planung und Steuerung von komplexen rechnerintegrierten Fertigungssystemen (CIM) ist die Abarbeitung vieler extrem aufwendiger Algorithmen notwendig. Aus dem Bereich der Fertigungssteuerung zählt die Generierung von Maschinenbelegungsplänen (scheduling) dazu. Zur Steigerung der Lösungsgeschwindigkeit bzw. zum Erreichen exakter Ergebnisse bietet sich der massive Einsatz von Rechenparallelität an. Mit Parallelrechnern ist durch die gleichzeitige Verwendung von vielen Prozessoren potentiell eine sehr große Leistungssteigerung zu erreichen. Dafür muß jedoch die vorhandene Parallelität effektiv genutzt werden. Die dazu erforderliche Verteilung der anstehenden Arbeit auf eine große Menge von Prozessoren heißt Lastverteilung und stellt den Kern dieser Arbeit dar. Als allgemeiner Algorithmus zur Lösung kombinatorischer Optimierungs-probleme wird das Branch-and-bound-Verfahren eingesetzt und auf fein-körnigen Parallelrechnerarchitekturen ausgeführt. Zur Lastverteilung werden folgende drei Ansätze verfolgt und untersucht: " Statische Lastverteilung: Es werden mehrere Methoden zur Initialisierung der Prozessoren, welche vor dem eigentlichen Optimierungsalgorithmus ausgeführt werden, analysiert. Es zeigt sich, daß sich die statische Last-verteilung überproportional stark auf die Laufzeit des nachfolgenden Branch-and-bound-Algorithmus auswirkt. Es ist daher wichtig, der bisher unterschätzten statischen Lastverteilung für die parallele Baumsuche mit realen Problemstellungen, besondere Aufmerksamkeit zu schenken. " Dynamische Lastverteilung: Es wird ein vereinfachtes, gut skalierbares Flüssigkeitsmodell als erste synchrone lokale Lastverteilung entwickelt, welche besonders für Parallelrechner mit kurzer Verzögerungszeit beim Aufbau von Kommunikationsverbindungen effizient ist. Die Methode wird mit dem bekannten, aus dem Asynchronen übertragenen, Mittelungs-Ansatz verglichen. Zum analytischen Vergleich wird als ein realistischeres Aufwandsmaß die Kommunikationsmenge statt der üblichen Anzahl von Kommunikationsschritte verwendet. Der in der Prozessoranzahl bisher benötigte quadratische Zeitaufwand wird durch das Flüssigkeitsmodell auf einen linearen Aufwand reduziert, wobei das Flüssigkeitsmodell auch bzgl. der konstanten Zeitfaktoren signifikant effizienter ist. " Implizite Lastverteilung: Zur Vermeidung von Wartezeiten der unbe-teiligten Prozessoren während der Lastverteilung wird der Lastverteilungs-prozeß mit dem Branch-and-bound-Prozeß verschmolzen. Das neuartige Konzept der k-Expansion unterstützt eine automatische Lastverteilung und approximiert eine globale Suchstrategie. Zur Validierung der Ergebnisse werden Simulationen und Experimente mit einem Satz von Benchmark-Problemen durchgeführt. Der zugrunde liegende SIMD-Rechner ist eine MasPar MP-1 mit 16.384 Prozessoren in einem 2- dimensionalen Torus. Als exemplarische, NP-harte Anwendungsdomäne werden statische, non-operationale Planungsprobleme betrachtet

    Koordination kritischer Zugriffe auf verteilte Datenbanken in Rechnernetzen bei dezentraler Ueberwachung

    Get PDF

    Konzepte, Architektur und Implementierung adaptiver Prozessmanagementsysteme

    Get PDF
    Prozessmanagementsysteme (PrMS) besitzen erhebliches Potential: Betriebliche Abläufe werden in Form von Prozessmodellen explizit repräsentiert und durch eine mächtige Laufzeitumgebung ausgeführt. Die aktive Steuerung und Überwachung macht die Abläufe transparent und jederzeit nachvollziehbar. Wissenschaftlich fundierte Konzepte, wie Korrektheitskriterien für Prozesse und deren Anwendung zur Modellier- und Ausführungszeit, vereinfachen die Umsetzung der Abläufe, erhöhen die Robustheit und verringern den Testaufwand im Vergleich zu herkömmlicher Softwareentwicklung. Trotz dieses Potentials werden PrMS im Vergleich zu Datenbankmanagementsystemen (DMBS) bisher jedoch kaum genutzt. Dies liegt nicht zuletzt daran, dass wenig fundierte Systemarchitekturen die Praxistauglichkeit von PrMS stark einschränken. Dennoch ist die Architektur von PrMS im Gegensatz zu DBMS bisher kaum Forschungsgegenstand. Obwohl es für PrMS zu DBMS vergleichbare wissenschaftliche Konzepte gibt, etwa Prozessmetamodelle mit klar definierter Ausführungssemantik, fehlen Untersuchungen der technischen Umsetzung, realitätsnahe Implementierungen der Konzepte sowie Diskussionen zu deren Integration in reale Systemarchitekturen. Die vorliegende Arbeit leistet einen wichtigen Beitrag, diese Lücke zwischen wissenschaftlichen Konzepten und umfassender Implementierung zu schließen. Aufbauend auf funktionalen und nicht-funktionalen Anforderungen werden innovative technische Konzepte für die Implementierung eines PrMS entwickelt, im Detail untersucht und evaluiert. Dabei werden insbesondere auch Abhängigkeiten zwischen verschiedenen Anforderungen und technischen Konzepten berücksichtigt. Eine im Rahmen dieser Arbeit entwickelte Systemarchitektur eines adaptiven PrMS integriert die technischen Konzepte. Eine umfassende Machbarkeitsimplementierung validiert die Architektur und die entwickelten Konzepte im praktischen Einsatz

    System design for distributed applications and models in the planning process

    Get PDF
    Der Planungsprozess im Konstruktiven Ingenieurbau ist gekennzeichnet durch drei sich zyklisch wiederholende Phasen: die Phase der Aufgabenverteilung, die Phase der parallelen Bearbeitung mit entsprechenden Abstimmungen und die Phase der Zusammenführung der Ergebnisse. Die verfügbare Planungssoftware unterstützt überwiegend nur die Bearbeitung in der zweiten Phase und den Austausch der Datenbestände durch Dokumente. Gegenstand der Arbeit ist die Entwicklung einer Systemarchitektur, die in ihrem Grundsatz alle Phasen der verteilten Bearbeitung und unterschiedliche Arten der Kooperation (asynchron, parallel, wechselseitig) berücksichtigt und bestehende Anwendungen integriert. Das gemeinsame Arbeitsmaterial der Beteiligten wird nicht als Dokumentmenge, sondern als Menge von Objekt- und Elementversionen und deren Beziehungen abstrahiert. Elemente erweitern Objekte um applikationsunabhängige Eigenschaften (Features). Für die Bearbeitung einer Aufgabe werden Teilmengen auf Basis der Features gebildet, für deren Elemente neue Versionen abgeleitet und in einen privaten Arbeitsbereich geladen werden. Die Bearbeitung wird auf Operationen zurückgeführt, mit denen das gemeinsame Arbeitsmaterial konsistent zu halten ist. Die Systemarchitektur wird formal mit Mitteln der Mathematik beschrieben, verfügbare Technologie beschrieben und deren Einsatz in einem Umsetzungskonzept dargestellt. Das Umsetzungskonzept wird pilothaft implementiert. Dies erfolgt in der Umgebung des Internet in der Sprache Java unter Verwendung eines Versionsverwaltungswerkzeuges und relationalen Datenbanken.The planning process in structural engineering can be characterized by three iterative phases: the phase of distribution of tasks, the phase of parallel working with cooperation among the planners and the phase of merging the results. Available planning software does only support the second phase and the exchange of data via documents. The objective of this thesis is the development of a software architecture that supports the three phases and all types of cooperation (asynchronous, parallel and reciprocal) in principle and integrates existing engineering applications. The common planning material is abstracted as a set of object versions, element versions and their relationships. Elements extend objects with application independent properties, called features. Subsets on the base of features are calculated for the execution of tasks. Therefore new versions of elements and objects are derived and copied into the planners’s private workspace. Already stored versions remain unchanged and can be referred to. Modifications base on operations that ensure the consistency of the versioned model. The system architecture is formally described with mathematical methods. Available information technology is analyzed and used for an implementation concept. The implementation concept is proven by a pilot applicable in the Internet. The implementation is based on the programming language Java, a version control system and a relational database
    corecore