Visualisierung paralleler bzw. verteilter Programme



Ähnliche Dokumente
THREAD ARCS: An Thread Visualization

Motivation. Motivation

Java-Tutorium WS 09/10

Präsentation zur Vorstellung meiner Bachelor-Arbeit beim BSE- Seminar. Vortrag von Patrick Bitterling

Implementation of a Framework Component for Processing Tasks within Threads on the Application Level

Visualisierung verteilter Systeme

Theoretische Grundlagen der Informatik

Modellierung biologischer. Christian Maidorfer Thomas Zwifl (Seminar aus Informatik)

Bausteine für zukünftige HL7- Hausstandards. Kraska D, Wentz B, Prokosch HU Medizinisches IK-Zentrum; Universitätsklinikum Erlangen

Führen Sie zum Einstieg in die Materie einige Systemdiagnosen durch. Benutzen Sie dabei winmsd.exe.

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?

Installation und Inbetriebnahme von Microsoft Visual C Express

Methoden zur Visualisierung von ereignisdiskreten Analysedaten

Die Orgadata AG ist ein stark expandierendes Software-Unternehmen aus Leer. Mit unserem System LogiKal

Abschlusspräsentation Projekt Loan Broker mit BizTalk 2010

SolarWinds Engineer s Toolset

Praktikum ios-entwicklung im Sommersemester 2015 Übungsblatt 3

Auszüge eines Vortrags von Axel Braunger im Rahmen der TOPIX Tour 2009

Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96

Alexandru Arion, Benjamin Schöllhorn, Ingo Reese, Jürgen Gebhard, Stefan Patsch, Stephan Frank

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

4D Server v12 64-bit Version BETA VERSION

Programmieren Lernen mit BYOB. Gerald Futschek 5. November 2012

IMS - Learning Design

Architekturbeschreibung im C2-Stil

Military Air Systems

Übergang vom Diplom zum Bachelor

3D Visualisierung von UML Umgebungsmodellen

Vorhersagemodell für die Verfügbarkeit von IT-Services

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Was ist Software-Architektur?

Konzepte der Informatik

Lichtbrechung an Linsen

How-to: Webserver NAT. Securepoint Security System Version 2007nx

DURCH VIDA ERZEUGTE PROTOKOLLDATEIEN 1 EINFÜHRUNG

Anleitung zum Einrichten eines -Accounts im Outlook Express 6

ACDSee 10. ACDSee 10: Fotos gruppieren und schneller durchsuchen. Was ist Gruppieren? Fotos gruppieren. Das Inhaltsverzeichnis zum Gruppieren nutzen

Petri-Netze / Eine Einführung (Teil 2)

Praktikum Ingenieurinformatik (PI)

Visualisierung. Rückblick. Scientific Visualization vs. Informationsvisualisierung. Allgemeine Ziele und Anforderungen Prof. Dr.-Ing.

Kap. 35 Swing: Grundlagen Kap Swing: Hauptfenster

ICMP Internet Control Message Protocol. Michael Ziegler

Business Process Model and Notation

Eine Anwendung mit InstantRails 1.7

fungen Debugging Boris Tripolskij

Trace- und Zeit-Zusicherungen beim Programmieren mit Vertrag

Print2CAD 2017, 8th Generation. Netzwerkversionen

WI EDI Solution. Stand

Seminar Werkzeuggestütze. tze Softwareprüfung. fung. Slicing. Sebastian Meyer

Leica 3D Disto CAD-Werkzeuge

Abacus Formula Compiler (AFC)

-Hygiene SPAM und Viren in den Briefkästen

ANLEITUNGEN ZUR WEBEX NUTZUNG

Auf der Hannover Messe: Technology

Dynamische Mathematik mit GeoGebra 30. März 1. April 2009

Dr. Klaus Körmeier BlueBridge Technologies AG

Laborübung - Task-Manager (Verwalten von Prozessen) in Windows 7

Haustechniksteuerung Hörsäle

Dynamic Ressource Management

SPI-Seminar : Interview mit einem Softwaremanager

Fehlermonitor. Software zur seriellen Verbindung PC-Airdos Visualdatensignale und Fehlermeldungen-Ausagabe per SMS / Drucker

The ToolChain.com. Grafisches Debugging mit der QtCreator Entwicklungsumgebung

Praktikum ios-entwicklung im Sommersemester 2015 Übungsblatt 4

Die Software für Visualisierung und Analyse von Strukturinformationen aus EDM- und PDM-Systemen.

Schritt für Schritt Anleitung zum Erstellen einer Android-App zum Ein- und Ausschalten einer LED

SEQUENZDIAGRAMM. Christoph Süsens

Robot Karol für Delphi

C# Programmierung. Eine Einführung in das.net Framework. C# Programmierung - Tag 7: Prozesse und Möglichkeiten

VORSTELLUNG DER DIPLOMARBEIT

"Memory Stick" zur Programmierung der comfort 8+ Lichtsteuranlage mit PC Software "scenes editor"

Referenzen Typo3. Blog der Internetagentur Irma Berscheid-Kimeridze Stand: Juni 2015

KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE

Real-Time Collaboration Eine Kostprobe Workshop

Architekturplanung und IS-Portfolio-

Reaktive Programmierung Vorlesung 16 vom : Theorie der Nebenläufigkeit

Weiterbildungsbedarfe im demografischen Wandel

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

PC-Anwendungen in der Erwachsenenbildung

Kollaborative Anforderungsanalyse im verteilten Softwareentwicklungsprozess

Sabotage in Scrum. dem Prozess erfolglos ins Knie schiessen. Andreas Leidig (andrena objects ag) Vortrag bei den XP Days 2007

BPMN. Suzana Milovanovic

Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015

Zellulare Neuronale Netzwerke

BETTER.SECURITY AWARENESS FÜR INFORMATIONSSICHERHEIT

Bedienungsanleitung für 3D PDF

Betreuung. Teilnehmer

die wichtigsten online-tools für augenoptiker websites

Personalentwicklung. Umfrage zur Personalentwicklung. Februar Cisar - consulting and solutions GmbH. In Zusammenarbeit mit

Prof. Dr. Uwe Schmidt. 21. August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

HIT-Software Installieren und Starten der Netzwerklizenz als Download-Anwendung

Lehrer: Einschreibemethoden

Chapter 7 Distanzvektorprotokolle. CCNA 2 version 3.0 Wolfgang Riggert, FH Flensburg auf der Grundlage von

Social Media Einsatz in saarländischen Unternehmen. Ergebnisse einer Umfrage im Mai 2014

Liste Programmieren - Java

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Wirtschaftsinformatik 2 Modellierung betrieblicher Informationssysteme - MobIS

MPI-Programmierung unter Windows mit MPICH2. Installieren von MPICH2, Übersetzen, Ausführen und Debuggen von MPI-Programmen. Christian Terboven

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!

OSEK-OS. Oliver Botschkowski. PG AutoLab Seminarwochenende Oktober AutoLab

Transkript:

Seminar Visualisierung in Informatik und Naturwissenschaften im SS 1999 Visualisierung paralleler bzw. verteilter Programme Holger Dewes

Gliederung Zum Begriff Motivation PARADE Beispiel 1: Thread basierte Programme Beispiel 2: Conch GRADE Zusammenfassung

Zum Begriff Parallele/Verteilte Programme: Programme, die auf mehreren Prozessoren und/oder Rechnern zur Performancesteigerung laufen. Zwei Arten: message passing shared memory

Motivation Gleichzeitigkeit paralleler Programme (z. B. Kommunikation) textuell kaum zu veranschaulichen viele Probleme paralleler Programmierung sind inhärent visuell (z. B. deadlocks) Nichtdeterminismus erschwert Fehlersuche und erfordert genaues Verständnis des Programms r1 p1 p2 r2

Variationen Visualisierung der Performance (relativ verbreitet) Visualisierung der Semantik (nicht sehr verbreitet) Schwerpunkt dieses Vortrags online Vorteil: Visualisierung während der Ausführung post-mortem Vorteile: geringe Beeinflussung des Programms, mehr Flexibilität bei der Visualisierung

PARADE (PARallel program Animation Development Environment) Stasko et al., Georgia Institute of Technology Flexibles Framework: bietet Standardlösungen als auch applikationsspezifische Visualisierung sowohl semantische als auch Performance- Visualisierung post-mortem

PARADE - Architektur Programm Events Choreographer Scenes Sammlung von trace Daten Analyse Polka Animationen

Animation Choreographer verantwortlich für zeitliche Einordnung der Events (Program-to-Animation Mapping) 4 Arten der Sortierung: Timestamp: geordnet nach einer globalen Uhr Serial: seriell nach kausaler Ordnung Minimal distortion: nach globaler Uhr, aber löse dabei kausale/logische Probleme Maximum concurrency: maximale Nebenläufigkeit unter Berücksichtigung der kausalen Ordnung

Animation Choreographer eine Spalte pro Prozeß/Thread ein Knoten pro Event Kanten für Abhängigkeiten zwischen Events (z.b. send-receive Paar)

POLKA (Parallel program-focused Object-oriented Low Key Animation) objekt-orientiert (C++) high-level Interface nebenläufige Animationen unterstützt mehrere Views auf ein Programm

Beispiel: Thread basierte Programme Basiert auf KSR Pthreads interface (POSIX Threads) wrapper library Gthreads sammelt trace Daten Funktionsanfänge und -ende müssen von Hand durch Makroaufrufe signalisiert werden

Thread basierte Programme

Thread View ein Rechteck pro Thread ausgefüllt: bereit zu laufen bzw. läuft nicht ausgefüllt: idle oder blockiert

Function View ein Rechteck pro Funktion (wird dynamisch erzeugt) ein Kreis pro Thread

History View eine Reihe pro Thread ein Segment pro Funktion Pfeile zeigen Thread Erzeugung und Thread joining

Mutex View ein großer Kreis pro Mutex (dynamisch) ein kleiner Kreis pro Thread geeignet, um deadlocks zu erkennen?

Barrier View ein Fenster pro Barrier (dynamisch) ein Block pro Barrier Synchronisierungsphase ein Kreis pro Thread: groß: noch in Phase klein: Phase abgeschlossen

Beispiel: Conch Heterogenes Netzwerk für paralleles verteiltes Rechnen trace Datensammlung eingebaut Lamport logical clock für timestamping Applikationsspezifische Visualisierung möglich

Conch

Global View zeigt Zustand der Prozesse an

History View Rechtecke sind Nachrichten dunkle Farbe: message send helle Farbe: message receive Zeigt Größe und Nachrichtentyp

Message Passing View ein Rechteck pro Prozeß ein Kreis pro Nachricht (Radius proportional zu Nachrichtengröße) message send: Nachricht wandert ins Zentrum message receive: Nachricht wandert zum Prozeß

Lamport View Prozesse wachsen horizontal zur Lamport Uhr ein Pfeil pro message send/receive Paar alternative Sicht zur History View

GRADE (Graphical Application Development Environment) KFKI-MSZKI Institut Budapest, Universität Lissabon visuelles Entwicklungssystem für verteilte Programme (PVM: message based) umfaßt: GRED: graphischer Editor DDBG: verteilter Debugger PROVE: Visualisierer (haupts. Performance)

GRED 3 Ebenen: Application Level Process Level Textual Code Level richtet Fokus auf die Teile des Programms, die Nachrichten versenden/empfangen

verteilter post-mortem Debugger ein Debugger pro Prozeß integriert in GRED DDBG (Distributed DeBuGger)

Behavior Window: Prozesse und Events Processor Window: Auslastung der Prozessoren Communication Window: Datentransferrate zwischen Prozessen Hosts Window: Datentransferrate zwischen Prozessoren PROVE

Behavior Window horizontale Streifen zeigen Prozesse in ihren verschiedenen Phasen Wait: roter Pfeil Send: grüner Pfeil

Zusammenfassung Visualisierung hilft bei Entwicklung, Debugging und Verständnis von parallelen Programmen Integration von visuellen Elementen in Systeme minimiert Aufwand für Programmierer Quellen: PARADE: http://www.cc.gatech.edu/gvu/softviz/parviz/ parviz.html GRADE: http://www.lpds.sztaki.hu/projects/grade/ grade.html