(Dynamic Instrumentation, Monitoring and Steering of Parallel Programs) Diplomarbeit. zur Ereichung des Titels Diplom-Ingenieur in Informatik

Größe: px
Ab Seite anzeigen:

Download "(Dynamic Instrumentation, Monitoring and Steering of Parallel Programs) Diplomarbeit. zur Ereichung des Titels Diplom-Ingenieur in Informatik"

Transkript

1 1 Dynamische Instrumentierung, Überwachung und Steuerung von parallelen Programmen (Dynamic Instrumentation, Monitoring and Steering of Parallel Programs) Diplomarbeit CHRISTIAN GLASNER zur Ereichung des Titels Diplom-Ingenieur in Informatik eingereicht am Institut für Technische Informatik und Telematik Abteilung für Graphische und Parallele Datenverarbeitung Johannes Kepler Universität, Linz Betreuung o.univ.-prof. Dr. Jens Volkert mitbetreuender Assistent Dipl.-Ing. Dr. Dieter Kranzlmüller Hirschbach, August 2001

2 2

3 3 Danksagung An dieser Stelle möchte ich jenen danken, die durch ihre fachliche, finanzielle, direkte oder indirekte Unterstützung zu dieser Diplomarbeit beigetragen haben. Besonderer Dank gebührt meinen Eltern. Sie waren es, die mir das Studium und letztendlich auch diese Arbeit ermöglicht haben. Weiters bedanke ich mich bei Herrn o.univ.prof. Dr. Jens Volkert und Herrn Dipl.-Ing. Dr. Dieter Kranzlmüller für die Betreuung meiner Diplomarbeit und die zahlreichen wissenschaftlichen Ratschläge, welche stets zur Verbesserung der Arbeit beigetragen haben. Für das Korrekturlesen möchte ich meinem Vater, meiner Freundin Martina Ecker sowie Herrn Dipl.-Ing. Dr. Dieter Kranzlmüller danken. Besonders letzterer hat durch seine Erfahrungen im Verfassen wissenschaftlicher Arbeiten wesentlich zum Gelingen dieser Diplomarbeit beigetragen. Schließlich möchte ich mich noch bei meinen MoSt Teamkollegen Roland Hügl und Dipl.-Ing. Bernhard Reitinger, sowie bei meinem Kollegen Dipl.-Ing. Christian Schaubschläger bedanken. Sie haben mich während meiner Arbeit immer mit produktiven Vorschlägen und Ideen unterstützt.

4 4

5 5 Kurzfassung Viele Projekte der Wissenschaft und Forschung beschäftigen sich mit komplexen und zeitaufwendigen Problemen, zu deren Lösung Hochleistungsrechner benötigt werden. Diese werden meist durch parallele Systeme realisiert, um die gewünschte Rechenleistung zu erhalten. Der damit verbundene finanzielle Aufwand manifestiert sich jedoch nicht nur in Anschaffungskosten, sondern auch in der Wartung und im Einsatz. Die Kosten für Rechenzeiten sind vor allem bei Programmen mit langen Laufzeiten ein nicht zu unterschätzender Faktor. Aus diesem Grund ist es wünschenswert, die Programme während ihrer Ausführung zu überwachen und zu kontrollieren, um im Bedarfsfall korrigierend eingreifen zu können. Dabei sollte jedenfalls vermieden werden, dass laufende Anwendungen abgebrochen, verändert und danach wieder gestartet werden. Ein möglicher Lösungsansatz basiert auf Überwachungs- und Steuerungstechniken. Dazu wird ein Programm während der Ausführung überwacht, um Informationen zur Programmanalyse zu erhalten. Die gewonnenen Daten werden (meist grafisch) aufbereitet, um die Analyseaktivitäten durchzuführen bzw. um Entscheidungen für gezielte Manipulationen am Programmlauf zu ermitteln. Mögliche Aktionen sind das Ändern von Variablenwerten oder auch der Austausch von ganzen Berechnungsfunktionen. Ein prinzipielles Problem in diesem Zusammenhang stellt die Instrumentierung des Programms dar. Dies ist üblicherweise vor der Programmausführung nötig, um stetigen Zugriff auf das Programm zu erlauben. Es ist jedoch offensichtlich, dass diese Art der Manipulation Auswirkungen auf das laufende Programm hat, wodurch die Überwachung zu unerwünschten Effekten führen kann. Aus diesem Grund muss schon beim Sammeln der Daten darauf geachtet werden, möglichst wenig Einfluss auf das Programm auszuüben. Diese Arbeit beschäftigt sich mit dafür notwendigen Überwachungs- und Instrumentierungstechniken. Einerseits wird eine Möglichkeit zur dynamischen Instrumentierung von parallelen Programmes vorgestellt, mit deren Hilfe man laufende Prozesse verändern kann. Andererseits wird aufgezeigt, wie das Programmverhalten von laufenden Prozessen extrahiert werden kann, damit entsprechende Analysewerkzeuge die Informationen weiterbearbeiten können. Schließlich werden Möglichkeiten zur Veränderung von Speicherzellen - mit dem Ziel der Änderung des Programmverhaltens - beschrieben. Die oben erwähnten Techniken wurden in einem speziellen Software-Werkzeug umgesetzt, welches Teil einer Umgebung zur Überwachung und Steuerung paralleler Programme ist.

6 6

7 7 Abstract Many projects of science and engineering target complex and time-consuming problems. Their solutions require huge amounts of computing power, only provided by high performance computing systems. In most cases, these systems achieve the necessary computing performance through parallel and distributed architectures. The corresponding financial expenses are reflected not only by the initial costs, but also during operation and maintainance. Especially the costs per computing hour should not be underrated for programs with long execution times. For that reason it is often desirable to control a program's behavior during execution. If needed, modifications should be applicable without stopping the execution, modifying the application's code, and restarting it from the beginning. In this context, solutions are provided by monitoring and steering techniques. Such techniques observe a program during execution to obtain program analysis data. The extracted information is presented to the user (usually by means of graphics) in order to conduct analysis activities, and to determine possible manipulation tasks. Possible activities are modifications of variable values or even replacement of functions. A major problem is the instrumentation of the program, which usually has to be carried out before the code is started. While this traditional approach allows continuous observation of the program, it is also the reasons of unwanted perturbations. Therefore it is very important to keep the observation overhead as small as possible in order to minimize the influence on the target program. This work addresses corresponding techniques to instrument and observe a program's execution. On the one hand, dynamic instrumentation is used to attach to executing processes on the fly. On the other hand, operations are provided to extract program behavior data and forward it to corresponding analysis tools. Furthermore, some possibilities to manipulate the contents of program memory are described, which allow to change the program's behavior. These techniques are implemented in a dedicated software tool, which is part of a monitoring and steering environment for parallel programs.

8 8

9 9 Inhaltsverzeichnis Kapitel 1 - Einleitung und Überblick Motivation Überblick Kapitel 2 - Problembereich Grand Challenges Supercomputing Supercomputer Die 500 schnellsten Supercomputer Einteilung von Parallelrechnern Einteilung nach Flynn Erlanger Klassifikationsschema (ECS) Speicherorganisation Programmierparadigmen Kommunikation über Nachrichten Kommunikation über gemeinsame Datenbereiche Daten- und Aufgabenparallelität Zusammenfassung Kapitel 3 - Überwachung, Steuerung und Fehlersuche Einleitung Traditionelle Ansätze Überwachen von Anwendungen Überwachungseffekte Einsatzgebiete Arten von Monitoren Ziel der Überwachung Trends und künftige Entwicklungen Programmsteuerung Verwandte Arbeiten Kapitel 4 - MoSt - Monitoring and Steering Environment Strategie von MoSt Komponenten von MoSt PreMoSt MoSt MoSt-I MoSt-Vis

10 MoSt Kommunikationsnetzwerk UNIX Sockets Struktur Sockets in MoSt MoSt-Netzwerk Kommunikationsprotokoll Unterschied zu verwandten Projekten Kapitel 5 - Grundlagen von PreMoSt Ausgangslage Prozesse Virtueller Speicher Ausführen von Programmen Gewinnung der Information ELF - Aufbau von Objektdateien /proc dyninstapi Kapitel 6 - Realisierung von PreMoSt Aufbau Server Klient Basisfunktionen Module und Methoden Variablen und Felder Lesen und Schreiben von Variablen Erweiterte Funktionen Prüfsummenbildung Codepatching Programmsteuerung Techniken Probleme Zusammenfassung Kapitel 7 - Beispiele Überwachung der Kommunikation Funktionszähler Überwachung eines Poisson-Lösers Problemstellung Ansatz des Steering Ergebnisse Kapitel 8 - Zusammenfassung und Ausblick

11 11 Anhang A Klassenhierarchie der Kommunikation Anhang B Klassenhierarchie von PreMoSt Anhang C Beschreibung von PM_Cmd Anhang D Beschreibung von PM_ProgElement Bibliographie Index

12 12

13 13 Abbildungsverzeichnis Kapitel 1 - Einleitung und Überblick Kapitel 2 - Problembereich Abbildung 2-1. Entwicklung der Rechnerarchitekturen bis 6/2001 [16] Abbildung 2-2. von Neumann Rechner Abbildung 2-3. Vektorrechner Abbildung 2-4. Blockschaltbild eines MIMD-Systems Abbildung 2-5. Parallelrechner mit gemeinsamem Speicher Abbildung 2-6. Parallelrechner mit verteiltem Speicher Abbildung 2-7. Parallelrechner mit verteiltem gemeinsamen Speicher Kapitel 3 - Überwachung, Steuerung und Fehlersuche Abbildung 3-1. Ablaufdiagramme bei der Fehlersuche Abbildung 3-2. Darstellung von Kommunikationsereignissen [41] Abbildung 3-3. Kreislauf eines Steuerungsprozesses Abbildung 3-4. Strömungsdarstellung in CUMULVS Abbildung 3-5. Anzeigemodul von Paradyn Kapitel 4 - MoSt - Monitoring and Steering Environment Abbildung 4-1. Komponenten und Kommunikationsflüsse der MoSt Umgebung52 Abbildung 4-2. Ablaufdiagramm der MoSt-Umgebung Abbildung 4-3. Ausgabefenster von MoSt Abbildung 4-4. Aktivität zweier Speicherzellen Abbildung 4-5. Aufsummierte Aktivität zweier Speicherzellen Abbildung 4-6. Speicherdarstellung mittels Farbcodierung Abbildung 4-7. Tunnel mit 8 Prozessen und Kommunikationsereignissen [64]. 59 Abbildung 4-8. Feldbelegung eines Poissonlösers nach 512/2048 Iterationen.. 60 Abbildung 4-9. Komplettierung eines verteilten Datenfeldes in MoSt-Vis Abbildung Datenflusskonzept von MoSt-Vis Abbildung Client & Server Modell Abbildung Ablaufdiagramm bei Benutzung eines Sockets Abbildung Einsatz des Parsers Kapitel 5 - Grundlagen von PreMoSt Abbildung 5-1. Aufbau eines C-Übersetzers Abbildung 5-2. Organisation einer Objektdatei während ihrer Ausführung Abbildung 5-3. Abstraktionen in dyninstapi Abbildung 5-4. Einfügen eines Codefragments Kapitel 6 - Realisierung von PreMoSt Abbildung 6-1. Ablaufdiagramm PreMoSt-Server

14 14 Abbildung 6-2. Hierarchische Verfeinerung Abbildung 6-3. Ablauf einer dynamischen Instrumentierung Abbildung 6-4. Ablauf der Generierung eines Funktionsaufrufs Abbildung 6-5. Typischer Verlauf einer Programmsteuerung Kapitel 7 - Beispiele Abbildung 7-1. Überwachung der Kommunikationen paralleler Prozesse Abbildung 7-2. Datenaufteilung beim Poissonlöser Kapitel 8 - Zusammenfassung und Ausblick

15 15 Tabellenverzeichnis Kapitel 1 - Einleitung und Überblick Kapitel 2 - Problembereich Tabelle 2-1: Ausschnitt aus der TOP 500 Liste, 6/ Tabelle 2-2: Klassifizierung nach Flynn Tabelle 2-3: Unterscheidung der wichtigsten Programmierparadigmen paralleler Systeme [30] Kapitel 3 - Überwachung, Steuerung und Fehlersuche Tabelle 3-1: Vergleich des Funktionsumfangs verwandter Arbeiten Kapitel 4 - MoSt - Monitoring and Steering Environment Tabelle 4-1: Rollenverteilung der MoSt-Komponenten im Netzwerk Kapitel 5 - Grundlagen von PreMoSt Kapitel 6 - Realisierung von PreMoSt Tabelle 6-1: Befehle des PreMoSt-Servers Tabelle 6-2: Befehle der PreMoSt-Sonde Tabelle 6-3: statische Programminformationen Kapitel 7 - Beispiele Tabelle 7-1: Feldbelegungen bei unterschiedlichen Schwellwerten Kapitel 8 - Zusammenfassung und Ausblick

16 16

17 Einleitung und Überblick 17 1 Einleitung und Überblick 1.1 Motivation Viele Aufgabenstellungen in Wissenschaft und Forschung sind von einer derart hohen Komplexität, dass zu ihrer Lösung entsprechend leistungsfähige Computer erforderlich sind. Doch selbst bei Verfügbarkeit einer hoher Rechenleistung gibt es Berechnungen, die oft mehrere Tage oder Wochen dauern. Ein Problem bei Programmen mit langen Laufzeiten ist neben den Kosten für die Computerhardware und deren Betrieb, auch die Überwachung der Berechnungsfortschritte. Dies ist jedoch oft notwendig bzw. sinnvoll, um Zwischenergebnisse abzufragen oder um die Korrektheit des Programmlaufes zu verifizieren, denn wenn eine Überwachung zur Laufzeit nicht möglich ist, werden fehlerhafte Berechnung erst nach Programmende ersichtlich. Im schlimmsten Fall warten Benutzer auf das Programmergebnis, obwohl sich das Programm längst in einer Endlosschleife oder einem undefinierten Zustand befindet, aus dem es nicht zurückkehrt. Es gibt viele Gründe für Fehlerquellen in der Programmierung von Hochleistungsrechnern, weil solche Systeme meist als parallele oder verteilte Architekturen ausgeführt sind. In diesem Zusammenhang müssen bei der Programmanalyse u. a. folgende Aspekte berücksichtigt werden: Die Komplexität der Problemstellungen beeinflusst die Programmkomplexität. Die Analyse der Programme erfordert ein entsprechend hohes Programmverständnis der Benutzer. Die Verarbeitung von großen Datenmengen erfolgt über längere Zeiträume. Die Kommunikation und Synchronisation öffnen zusätzliche Fehlerquellen. Der zeitliche Druck des Marktes und der Konkurrenz beeinflusst die Programmqualität. Aus diesem Grund werden entsprechende Software-Werkzeuge entwickelt, die den Benutzer bei der Untersuchung von Programmen unterstützen. Die übliche Vorgehensweise dabei ist, eine Anwendung zu stoppen, die Zwischenergebnisse zu analysieren, mögliche Fehler zu korrigieren und danach das Programm erneut zu starten. Da dies jedoch wenig effizient ist,

18 18 Einleitung und Überblick wäre es wünscheswert, sämtliche Überwachungs- und Steuerungsaktivitäten am laufenden Programm durchzuführen. Hierzu wird das Programm während seiner Ausführung beobachtet, um interessante Daten und Parameter zu extrahieren. Mit Hilfe dieser Informationen kann man danach versuchen, das Programm auf den "richtigen Weg" (Programmpfad) zurückzubringen. Dieser Ansatz wird im Englischen als "Monitoring and Steering" oder auch als "Computational Steering" bezeichnet. Vereinfacht können folgende Aufgaben unterschieden werden: (1) Auslesen und Überwachen von Programmzuständen: "Profiling and Monitoring" (2) Darstellung und Analyse der gewonnenen Daten: "Visualization and Analysis" (3) Beeinflussung des Programmverhaltens durch Manipulation von Zuständen: "Steering" Im ersten Schritt - Profiling und Monitoring - sammelt das Software-Werkzeug Informationen über das laufende Programm. Um einen Eindruck über das Programmverhalten zu erhalten, ist diese Überwachung meist über eine gewisse Zeitspanne notwendig. Hierbei wird oft zwischen folgenden Ausprägungen unterschieden: Überwachung der Programmdaten (Variablen) Überwachung des Programmverhaltens (Kontrollfluss) Überwachung der Interaktionen (Kommunikation, Synchronisation) In jedem dieser Fälle ist es aber wichtig, dass die Beobachtungsmechanismen das Beobachtungsziel (Programm) so wenig wie möglich beeinflussen. Solche Einflüsse werden als "Überwachungseffekte" bezeichnet und treten als Verlangsamung der Programmabarbeitung oder auch als Veränderungen des Programmverhaltens auf. Dies ist natürlich für die Programmanalyse problematisch und sollte daher - wenn möglich - vermieden werden. Im zweiten Schritt - Visualisierung und Analyse - wird versucht, den Benutzern ein besseres Verständnis für die gewonnenen Informationen zu vermitteln. In den meisten Fällen werden dafür graphische Darstellungen eingesetzt, um die Komplexität des Programms zu vereinfachen bzw. eine höhere Abstraktionsstufe zu erhalten. Die Erkenntnisse aus dem zweiten Schritt stellen die Entscheidungsgrundlagen für die weitere Vorgehensweise dar. Ist ein Programmabbruch nicht notwendig, kann im dritten Schritt versucht werden, das Programmverhalten zur Laufzeit zu ändern. Dies erfolgt entweder durch Überschreiben der Werte von bestimmten Variablen (bzw. Parametern) oder aber auch durch die Veränderung des Programmcodes. Diese Arbeit präsentiert das Software-Werkzeug PreMoSt zur Überwachung und Steuerung von parallelen Anwendungen. Neben dem Extrahieren von Variablen- und Speicherbelegungen können auch Sonden oder neuer Programmcode in die Zielanwendung integriert werden. Die verantwortlichen Mechanismen zum Schreiben und Lesen der Daten werden mit Hilfe einer objektorientierten Bibliothek realisiert. Diese erlaubt auch das Verändern von Befehlsfolgen zur Laufzeit ohne einer Neuübersetzung des Quellcodes. Dadurch ist es möglich, das Programm sowohl zu überwachen als auch zu beeinflussen. Das Software-Werkzeug PreMoSt ist in das Programmpaket MoSt integriert. Für die Interaktion mit dem Benutzer wird eine Steuerzentrale zur Verfügung gestellt, die sowohl mit PreMoSt als auch den anderen Komponenten, z.b. zur Visualisierung der gewonnenen Daten,

19 Einleitung und Überblick 19 über ein spezielles Kommunikationsprotokoll verbunden ist. Um die Arbeitsweise von PreMoSt zu erläutern, werden die anderen Komponenten von MoSt kurz vorgestellt. 1.2 Überblick Diese Arbeit ist in folgende Abschnitte unterteilt: Um einen Einblick in den Problembereich zu bekommen und um zu definieren, welche genauen Aufgabenstellungen dieser Arbeit zugrundeliegen, behandelt Kapitel 2 die theoretischen Grundlagen. Der Sinn des Überwachens und Lenkens von Programmen wird in Kapitel 3 behandelt. Es wird erklärt, welche Arten der Überwachung und des Lenkens existieren und welche Programmelemente überwacht werden können. Zusätzlich werden verwandte Projekte vorgestellt und deren Unterschiede zu dem hier behandelten Ansatz beleuchtet. Anschließend wird in Kapitel 4 das Grundkonzept der Überwachungs- und Steuerungsumgebung, die einzelnen Komponenten und das Verbindungsnetzwerk beschrieben. Kapitel 5 beschäftigt sich mit den theoretischen Grundlagen von PreMoSt. Es werden das Verhalten von laufenden Programmen sowie Techniken zum Extrahieren von Informationen über laufende Programme beschrieben. Mit der Realisierung der Problemstellung beschäftigt sich Kapitel 6. Dabei werden der Aufbau von PreMoSt und seine Funktionen zum Überwachen und zum Steuern von Anwendungen vorgestellt. Kapitel 7 beschreibt den Einsatz von PreMoSt anhand einiger konkreter Beispiele. Im letzten Kapitel wird eine Zusammenfassung und ein Ausblick auf Verbesserungsmöglichkeiten und sinnvolle Erweiterungen präsentiert.

20 20 Einleitung und Überblick

21 Problembereich 21 2 Problembereich Dieses Kapitel gibt einen kurzen Überblick über Hochleistungsrechner im Allgemeinen und parallele Rechner im Speziellen. Nach der Vorstellung des Aufgabengebiets und einer Definition dieses Sachthemas wird eine Übersicht über die verschiedenen Typen und Architekturen von Parallelrechnern gegeben. Eine Beschreibung der Arten der Programmierung dieser Systeme schließt dieses Kapitel ab. 2.1 Grand Challenges Es gibt viele Probleme, die - wenn überhaupt - nur mit besonders leistungsfähigen Rechnern in einer vernünftigen Zeitspanne gelöst werden können. Dazu sind Simulationen notwendig, deren Überwachung und Analyse zu einem grundlegenden Teilgebiet der modernen Wissenschaften geworden sind. Um eine Simulation durchführen zu können, muss ein physikalisches Phänomen in ein entsprechendes Computerprogramm transformiert werden. Dieses berechnet mit Hilfe von gegebenen Eingabewerten die gesuchten Ergebnisse. Aufgrund der komplexen Problemstellungen werden hohe Rechenleistungen benötigt, die nur mehr von Parallelrechnern - bzw. von mehreren Parallelrechnern gemeinsam - geliefert werden können [4]. Die wichtigsten Probleme in den Bereichen Wissenschaft und Technik werden vom High Performance Computing and Communications Program (HPCC) als Grand Challenges tituliert. Definition 2-1: Grand Challenge Probleme [72] Als Grand Challenge Probleme werden jene Aufgabenstellungen bezeichnet, die mit den heutigen Rechnerkapazitäten in einem nicht zufriedenstellenden Zeitrahmen gelöst werden können.

22 22 Problembereich Diese Aufgabenstellungen sind in den verschiedensten Bereichen angesiedelt [4]: Meteorologie Modellierung von Strömungen Simulation und Entwicklung von Medikamenten Simulation und Analyse der Entstehung des Universums Berechnungen über die Entstehung und Entwicklung von Wirbelstürmen und Tornados Explorationen in der Seismik Der Grund für die Komplexität dieser Themengebiete wurzelt zum Teil in der Berechnung der zugrundeliegenden Gleichungen. Einige davon sind [38]: Newtons Gleichung Navier-Stokes Gleichungen Schrödingers Gleichung Diskrete Fouriertransformation Hitzeberechnungen Poissongleichungen Im Folgenden werden kurz zwei Grand Challenge Probleme vorgestellt: Simulation und Modellierung der Umwelt [10] Ein großes Problem bei der Überwachung der Luftverschmutzung ist, dass Wissenschaftler nicht alle Faktoren kennen, die zu den Schadstoffen führen. Zum Beispiel wird Ozon - ein Oxidationsmittel und Hauptbestandteil von Smog - nicht direkt freigesetzt. Es wird durch chemische Reaktionen mit organischen Gasen und Stickstoffmolekülen, deren Quellen vielfältig sind (Autos, Kraftwerke, Fabriken, Farbstoffe, etc.), erzeugt. Wind und andere Strömungen verteilen diese Schadstoffe über den Planeten. Um einen Algorithmus zu erstellen, muss man dieses Phänomen formalisieren. Dazu benötigt man komplexe mathematische Systeme. Zur Lösung derartiger mehrdimensionaler Modelle müssen mehrere Millionen nicht-lineare Differenzialgleichungen berechnet werden. Erst mit diesen Modellen und besonders leistungsfähigen Computern ist es möglich jene Experimente durchzuführen, die mit einer herkömmlichen Feldforschung nicht realisierbar wären. Berechnung des Weges einer Sonneneruption [68] Der äußere Kranz der sichtbaren Sonne ist die Sonnenkorona. Sie ist der Ursprung der Sonnenwinde. Diese bestehen aus ionisierten Gasen, die mit Geschwindigkeiten von mehr als einigen hundert Kilometern pro Sekunde ins Sonnensystem geschleudert werden und dort mit den Planeten interagieren. Durch die Solarwinde

23 Problembereich 23 werden koronale Masseneruptionen (CME, Coronal Mass Ejections ) hervorgerufen, die das Verhalten der äußeren Schicht der Atmosphäre der Erde direkt beeinflussen. Nur durch die Vorhersage dieser Eruptionen und der Einschlagstellen in der Erdatmosphäre ist es möglich, Schutzmaßnahmen zu treffen, um zum Beispiel Satelliten rechtzeitig in Sicherheit zu bringen. Wegen der zeitlichen und räumlichen Dimensionen, die diesem Phänomen zugrundeliegen, war es bisher unmöglich, CME s schnell genug zu berechnen. Durch die Parallelisierung der Algorithmen und durch den Einsatz eines Hochleistungsrechners konnte die Rechenzeit signifikant minimiert werden. Zur Berechnung dienen sowohl ein Cray T3E-1200 mit 1024 Prozessoren, dessen Knoten mit Nachrichten kommunizieren als auch ein Cray T3E-600 mit 512 Prozessoren. Damit konnten aussagekräftige Simulationen und Vorhersagen 16 mal schneller als Echtzeit ermittelt werden. Wie man anhand des letzten Beispiels erkennen kann, sind zur Berechnung komplexer Probleme leistungsfähige Rechner notwendig. Da diese Systeme meist spezielle Architekturen besitzen, um den gestellten Anforderungen zu entsprechen, spricht man von Supercomputern. 2.2 Supercomputing Supercomputing zu definieren ist problematisch. Wurde dieser Begriff früher von einigen wenigen Firmen - die teure Hardware, die sich in der Leistung stark von den Konkurrenten unterschied - benutzt, so wird diese Definition seit den 90er Jahren aufgrund der sich permanent ändernden Marktgegebenheiten in den verschiedensten Bereichen verwendet - oft auch nur zu Werbezwecken Supercomputer Bei der Einführung der ILLIAC IV in den 70er Jahren konnte man von einem Supercomputer sprechen. Ein weiteres Beispiel ist die Cray C-90 (1990). Neben einer hohen Rechenleistung verfügte diese über hohe Speicherkapazitäten und einen schnellen Speicherzugriff. Sie besaß über 16 Prozessoren, die Aufgaben parallel abarbeiten konnten. Es war sehr teuer, diese neue Technologie und die dazugehörige Software auf einer einheitlichen Plattform zu realisieren. Hinzu kamen noch Ausgaben, um eine ausgewogene Umgebung mit einer speziellen Kommunikation und Speichermöglichkeiten bereitzustellen [65]. In den späten 90er Jahren wurde es schwerer zu erkennen, was mit Supercomputing gemeint war. Man kann diesen Ausdruck für Anwendungen verwenden, die schnelle Prozessoren brauchen oder damit auch datenintensive Anwendungen meinen. Mohr schreibt:

24 24 Problembereich Definition 2-2: Supercomputer [56] Ein Supercomputer ist: 1. ein Rechner, der in die Gruppe extrem starker Großrechner fällt, die in der Lage sind, riesige Datenmengen in extrem kurzer Zeit zu verarbeiten. 2. ein Computer, der zu den größten, schnellsten und stärksten Vertretern in einer bestimmten Zeitperiode zählt. Der Begriff Supercomputing muss als weiteren Aspekt die Programme, die auf einem Hochleistungsrechner laufen, beinhalten - sich also auch mit dem Umfeld befassen. Im Allgemeinen ist es nicht möglich, eine derartige Umgebung komplett von einem Verkäufer zu erwerben. Alleine in der Entwicklung bedarf es der Kooperation zwischen den Erzeugern der Computerteile und den Spezialisten in der Programmierung solcher Systeme, um eine optimale Nutzung der Leistungsreserven zu ermöglichen. Eine Übersicht der schnellsten Computer der Welt, die sowohl Erzeuger, Installationsort, Aufgabengebiet als auch die Rechenleistung auflistet, wird periodisch seit dem Jahr 1993 erstellt Die 500 schnellsten Supercomputer Zweimal pro Jahr - Juni und November - wird von Jack Dongarra, Hans W. Meuer und Erich Strohmeier eine Liste mit den 500 schnellsten Rechnern der Welt veröffentlicht [14]. Die Geschwindigkeit jedes Rechners wird dabei mit dem Linpack Benchmark [15] gemessen. Dabei wird ein dichtes System von linearen Gleichungen verwendet, die das zu messende System abarbeiten muss. Es ist dem Benutzer dabei erlaubt, die Komplexität der Berechnungen frei zu wählen sowie das Programm für seine Plattform zu optimieren. Aus diesem Grund ist das Ergebnis immer ein Verhältnis der Geschwindigkeit R max zur Problemgröße N max. Tabelle 2-1 zeigt einen Auszug der Top 500 Liste. Neben der Anzahl der Prozessoren, des Namens des Computerherstellers und des Installationsortes wird die maximale Leistung R max bei gewählter Problemgröße N max aufgelistet. In der ursprünglichen Liste sind u. a. auch der theoretische Maximalwert R peak sowie die Leistung bei halber Problemgröße N 1/2 angeführt. Tabelle 2-1: Ausschnitt aus der TOP 500 Liste, 6/2001 Rang Hersteller/Computer Lokation Prozessoren R max N max 1 IBM ASCI White, SP Lawrence Livermore National Power3, 375 Mhz Laboratory, USA 2 SP Power3, 375 MHz, 16 way 3 Intel ASCI Red Sandia National Labs Albuquerque, USA 4 IMB ASCI Blue-Pacific SST, IBM SP 604e NERSC/LBNL Berkeley,USA Lawrence Livermore National Laboratory Hitachi, SR8000/MPP University of Tokyo, Japan

Gemeinsame Gestaltung und Entwicklung von Geschäftsprozessen und Unternehmenssoftware

Gemeinsame Gestaltung und Entwicklung von Geschäftsprozessen und Unternehmenssoftware Johannes Kepler Universität Linz Institut für Informationsverarbeitung und Mikroprozessortechnik Diplomarbeit Gemeinsame Gestaltung und Entwicklung von Geschäftsprozessen und Unternehmenssoftware mit besonderer

Mehr

Dialekte der Klimaforschung

Dialekte der Klimaforschung Dialekte der Klimaforschung Vom Fortran-Programm zum parallelen Programm Thomas Ludwig Inhalt Welche Dialekte werden transformiert? Welche Anforderungen stellen wir? Wozu diese Transformation? Wie ist

Mehr

Grundlagen der Parallelisierung

Grundlagen der Parallelisierung Grundlagen der Parallelisierung Philipp Kegel, Sergei Gorlatch AG Parallele und Verteilte Systeme Institut für Informatik Westfälische Wilhelms-Universität Münster 3. Juli 2009 Inhaltsverzeichnis 1 Einführung

Mehr

Visualisierung paralleler bzw. verteilter Programme

Visualisierung paralleler bzw. verteilter Programme 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

Mehr

2 Rechnerarchitekturen

2 Rechnerarchitekturen 2 Rechnerarchitekturen Rechnerarchitekturen Flynns Klassifikation Flynnsche Klassifikation (Flynn sche Taxonomie) 1966 entwickelt, einfaches Modell, bis heute genutzt Beschränkung der Beschreibung auf

Mehr

Parallelrechner (1) Anwendungen: Simulation von komplexen physikalischen oder biochemischen Vorgängen Entwurfsunterstützung virtuelle Realität

Parallelrechner (1) Anwendungen: Simulation von komplexen physikalischen oder biochemischen Vorgängen Entwurfsunterstützung virtuelle Realität Parallelrechner (1) Motivation: Bedarf für immer leistungsfähigere Rechner Leistungssteigerung eines einzelnen Rechners hat physikalische Grenzen: Geschwindigkeit von Materie Wärmeableitung Transistorgröße

Mehr

Protected User-Level DMA in SCI Shared Memory Umgebungen

Protected User-Level DMA in SCI Shared Memory Umgebungen Protected User-Level DMA in SCI Shared Memory Umgebungen Mario Trams University of Technology Chemnitz, Chair of Computer Architecture 6. Halle Chemnitz Seminar zu Parallelverarbeitung und Programmiersprachen

Mehr

U6-1 Organisatories. U6-2 Motivation von Threads. U6-3 Vergleich von Thread-Konzepten. Organisatorisches

U6-1 Organisatories. U6-2 Motivation von Threads. U6-3 Vergleich von Thread-Konzepten. Organisatorisches U6 6. Übung U6 6. Übung U6-1 Organisatories U6-1 Organisatories Organisatorisches Zusätzliche Tafelübung zur S1-Klaurvorbereitung Besprechung Aufgabe 5 (crawl) OSIX-Threads Motivation Thread-Konzepte am

Mehr

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

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant? Übersicht Aktuelle Themen zu Informatik der Systeme: Nebenläufige Programmierung: Praxis und Semantik Einleitung 1 2 der nebenläufigen Programmierung WS 2011/12 Stand der Folien: 18. Oktober 2011 1 TIDS

Mehr

Systeme 1: Architektur

Systeme 1: Architektur slide 1 Vorlesung Systeme 1: Architektur Prof. Dr. Ulrich Ultes-Nitsche Forschungsgruppe Departement für Informatik Universität Freiburg slide 2 Prüfung 18. Februar 2004 8h00-11h40 13h00-18h20 20 Minuten

Mehr

Diplomarbeit. Entwurf eines generischen Prozessleitstandes für Change Request Systeme

Diplomarbeit. Entwurf eines generischen Prozessleitstandes für Change Request Systeme Fakultät für Mathematik, Informatik und Naturwissenschaften Forschungsgruppe Softwarekonstruktion Diplomarbeit Entwurf eines generischen Prozessleitstandes für Change Request Systeme Development of a Generic

Mehr

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

Seminar Werkzeuggestütze. tze Softwareprüfung. fung. Slicing. Sebastian Meyer Seminar Werkzeuggestütze tze Softwareprüfung fung Slicing Sebastian Meyer Überblick Einführung und Begriffe Static Slicing Dynamic Slicing Erweiterte Slicing-Techniken Fazit 2 Was ist Slicing?? (I) Program

Mehr

Collaborative Virtual Environments

Collaborative Virtual Environments Collaborative Virtual Environments Stefan Lücking Projektgruppe Kreativität und Technik AG Domik WS 02/03 09.01.2003 1/35 Was sind CVE? Versuch einer Definition : Ein CVE ist ein Programm, das eine virtuelle

Mehr

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 8 10. Dezember 2002 www4.in.tum.de/~rumpe/se

Mehr

Projekt für Systemprogrammierung WS 06/07

Projekt für Systemprogrammierung WS 06/07 Dienstag 30.01.2007 Projekt für Systemprogrammierung WS 06/07 Von: Hassan Bellamin E-Mail: h_bellamin@web.de Gliederung: 1. Geschichte und Definition 2. Was ist Virtualisierung? 3. Welche Virtualisierungssoftware

Mehr

1 Einleitung. 1.1 Caching von Webanwendungen. 1.1.1 Clientseites Caching

1 Einleitung. 1.1 Caching von Webanwendungen. 1.1.1 Clientseites Caching 1.1 Caching von Webanwendungen In den vergangenen Jahren hat sich das Webumfeld sehr verändert. Nicht nur eine zunehmend größere Zahl an Benutzern sondern auch die Anforderungen in Bezug auf dynamischere

Mehr

Performance Monitoring Warum macht es Sinn?

Performance Monitoring Warum macht es Sinn? Performance Monitoring Warum macht es Sinn? achermann consulting ag Nicola Lardieri Network Engineer Luzern, 25.5.2011 Inhalt Definition Monitoring Warum Performance Monitoring? Performance Monitoring

Mehr

Software Engineering, SoSe 07, WSI, D. Huson, (Original Author: A. Zeller), 4. Juni 2007 45

Software Engineering, SoSe 07, WSI, D. Huson, (Original Author: A. Zeller), 4. Juni 2007 45 Software Engineering, SoSe 07, WSI, D. Huson, (Original Author: A. Zeller), 4. Juni 2007 45 7 Programmverstehen + Fehlersuche Nach einer Vorlesung von Prof. Andreas Zeller, Lehrstuhl Softwaretechnik Universität

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

Projektseminar Parallele Programmierung

Projektseminar Parallele Programmierung HTW Dresden WS 2014/2015 Organisatorisches Praktikum, 4 SWS Do. 15:00-18:20 Uhr, Z136c, 2 Doppelstunden o.g. Termin ist als Treffpunkt zu verstehen Labore Z 136c / Z 355 sind Montag und Donnerstag 15:00-18:20

Mehr

Intel 80x86 symmetrische Multiprozessorsysteme. Eine Präsentation im Rahmen des Seminars Parallele Rechnerarchitekturen von Bernhard Witte

Intel 80x86 symmetrische Multiprozessorsysteme. Eine Präsentation im Rahmen des Seminars Parallele Rechnerarchitekturen von Bernhard Witte Intel 80x86 symmetrische Multiprozessorsysteme Eine Präsentation im Rahmen des Seminars Parallele Rechnerarchitekturen von Bernhard Witte Gliederung I. Parallel Computing Einführung II.SMP Grundlagen III.Speicherzugriff

Mehr

Ein kleiner Einblick in die Welt der Supercomputer. Christian Krohn 07.12.2010 1

Ein kleiner Einblick in die Welt der Supercomputer. Christian Krohn 07.12.2010 1 Ein kleiner Einblick in die Welt der Supercomputer Christian Krohn 07.12.2010 1 Vorschub: FLOPS Entwicklung der Supercomputer Funktionsweisen von Supercomputern Zukunftsvisionen 2 Ein Top10 Supercomputer

Mehr

Hardware-Architekturen

Hardware-Architekturen Kapitel 3 Hardware-Architekturen Hardware-Architekturen Architekturkategorien Mehrprozessorsysteme Begriffsbildungen g Verbindungsnetze Cluster, Constellation, Grid Abgrenzungen Beispiele 1 Fragestellungen

Mehr

Computational Biology: Bioelektromagnetismus und Biomechanik

Computational Biology: Bioelektromagnetismus und Biomechanik Computational Biology: Bioelektromagnetismus und Biomechanik Implementierung Gliederung Wiederholung: Biomechanik III Statische Elastomechanik Finite Elemente Diskretisierung Finite Differenzen Diskretisierung

Mehr

Game Engine Architecture and Development. Platform Unabhängiger Code Multi Threading in Game Engines Profiling

Game Engine Architecture and Development. Platform Unabhängiger Code Multi Threading in Game Engines Profiling Game Engine Architecture and Development Platform Unabhängiger Code Multi Threading in Game Engines Profiling Folien Die Folien werden auf acagamics.de hochgeladen Das Passwort ist 60fps (ohne ) Rückblick:

Mehr

Software-Entwurfsmuster

Software-Entwurfsmuster Software-Entwurfsmuster Prinzip von Entwurfsmustern und einige elementare Beispiele Malte Spiess malte@mathematik.uni-ulm.de Seminar Bildanalyse und Simulation mit Java im WS 2003/2004 Universität Ulm

Mehr

An integrated total solution for automatic job scheduling without user interaction

An integrated total solution for automatic job scheduling without user interaction An integrated total solution for automatic job scheduling without user interaction Multifunktional Der Job-Scheduler ist ein multifunktionaler Taskplaner welcher die Steuerzentrale zur regelmässigen Ausführung

Mehr

Client/Server-Systeme

Client/Server-Systeme Frühjahrsemester 2011 CS104 Programmieren II / CS108 Programmier-Projekt Java-Projekt Kapitel 3: /Server-Architekturen H. Schuldt /Server-Systeme Ein zweischichtiges /Server-System ist die einfachste Variante

Mehr

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Jens Kohlmeyer 05. März 2007 Institut für Programmiermethodik und Compilerbau ActiveCharts Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Seite 2 Übersicht

Mehr

Kompilieren und Linken

Kompilieren und Linken Kapitel 2 Kompilieren und Linken Bevor wir uns auf C++ selbst stürzen, brauchen wir einiges Vorgeplänkel, wie man komfortabel ein größeres C++- kompilieren kann. Mit Java stellt sich der Kompiliervorgang

Mehr

Client/Server-Systeme

Client/Server-Systeme Fachbereich Informatik Projektgruppe KOSI Kooperative Spiele im Internet Client/Server-Systeme Vortragender Jan-Ole Janssen 26. November 2000 Übersicht Teil 1 Das Client/Server-Konzept Teil 2 Client/Server-Architekturen

Mehr

RTEMS- Echtzeitbetriebssystem

RTEMS- Echtzeitbetriebssystem RTEMS- Echtzeitbetriebssystem Name: Hussein Hammoud Matrikel- Nr.: 230768 Studiengang: Technische Informatik Fach: Projekt Eingebettete Kommunikation Technische Universität Berlin Sommersemester 2006 RTEMS-

Mehr

9 Multithreading. 1 Idee des Multithreading

9 Multithreading. 1 Idee des Multithreading 9 Multithreading Jörn Loviscach Versionsstand: 21. Juli 2015, 11:50 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work is licensed

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz Systeme I: Betriebssysteme Kapitel 4 Prozesse Maren Bennewitz Version 20.11.2013 1 Begrüßung Heute ist Tag der offenen Tür Willkommen allen Schülerinnen und Schülern! 2 Wdhlg.: Attributinformationen in

Mehr

Domänenmodell: Fadenkommunikation und -synchronisation

Domänenmodell: Fadenkommunikation und -synchronisation Domänenmodell: Fadenkommunikation und -synchronisation Alexander Humphreys, Reinhard Rösch, Fabian Scheler 15. Mai 2003 Inhaltsverzeichnis 1 Domänendefinition 1 2 Domänenlexikon 1 3 Konzeptmodelle 4 4

Mehr

Die Mikroprogrammebene eines Rechners

Die Mikroprogrammebene eines Rechners Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl holen Befehl dekodieren Operanden holen etc.

Mehr

2.2 Rechnerorganisation: Aufbau und Funktionsweise

2.2 Rechnerorganisation: Aufbau und Funktionsweise 2.2 Rechnerorganisation: Aufbau und Funktionsweise é Hardware, Software und Firmware é grober Aufbau eines von-neumann-rechners é Arbeitsspeicher, Speicherzelle, Bit, Byte é Prozessor é grobe Arbeitsweise

Mehr

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung Wintersemester 2009/10 Prof. Dr. Dr. h.c. Manfred Broy Unter Mitarbeit von Dr. K. Spies, Dr. M. Spichkova, L. Heinemann, P.

Mehr

Xcalibur-2 Alpha. Time. Christian Rempis University of Applied Sciences Bonn-Rhein-Sieg 17. Januar 2006 1

Xcalibur-2 Alpha. Time. Christian Rempis University of Applied Sciences Bonn-Rhein-Sieg 17. Januar 2006 1 Time Christian Rempis University of Applied Sciences Bonn-Rhein-Sieg 17. Januar 2006 1 Control and Command Environment for a Robotic Experimenter R&D 1 Examination Presentation by Christian Rempis Christian

Mehr

IBM Informix Tuning und Monitoring

IBM Informix Tuning und Monitoring Seminarunterlage Version: 11.01 Copyright Version 11.01 vom 25. Juli 2012 Dieses Dokument wird durch die veröffentlicht. Copyright. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen

Mehr

2.5. VERBINDUNGSNETZWERKE GESTALTUNGSKRITERIEN DER NETZWERKE TOPOLOGIE ALS GRAPH. Vorlesung 5 TOPOLOGIE: DEFINITIONEN : Sei G = (V, E) ein Graph mit:

2.5. VERBINDUNGSNETZWERKE GESTALTUNGSKRITERIEN DER NETZWERKE TOPOLOGIE ALS GRAPH. Vorlesung 5 TOPOLOGIE: DEFINITIONEN : Sei G = (V, E) ein Graph mit: Vorlesung 5.5. VERBINDUNGSNETZWERKE Kommunikation zwischen den einzelnen Komponenten eines arallelrechners wird i.d.r. über ein Netzwerk organisiert. Dabei unterscheidet man zwei Klassen der Rechner: TOOLOGIE:

Mehr

Verkürzung von Entwurfszeiten

Verkürzung von Entwurfszeiten Verkürzung von Entwurfszeiten durch Matlab-basiertes HPC R. Fink, S. Pawletta Übersicht aktuelle Situation im ingenieurtechnischen Bereich Multi-SCEs als Konzept zur Verkürzung von Entwurfszeiten Realisierung

Mehr

Einführung in Generatives Programmieren. Bastian Molkenthin

Einführung in Generatives Programmieren. Bastian Molkenthin Einführung in Generatives Programmieren Bastian Molkenthin Motivation Industrielle Entwicklung *!!*,(% % - #$% #!" + '( & )!* Softwareentwicklung Rückblick auf Objektorientierung Objektorientierte Softwareentwicklung

Mehr

Hochschule Darmstadt - Fachbereich Informatik - Fachschaft des Fachbereiches

Hochschule Darmstadt - Fachbereich Informatik - Fachschaft des Fachbereiches Hochschule Darmstadt - Fachbereich Informatik - Fachschaft des Fachbereiches Verwendung der bereitgestellten Virtuellen Maschinen»Einrichten einer Virtuellen Maschine mittels VirtualBox sowie Zugriff auf

Mehr

VORSTELLUNG DER DIPLOMARBEIT

VORSTELLUNG DER DIPLOMARBEIT 1 VORSTELLUNG DER DIPLOMARBEIT Thomas Werner Inhaltsverzeichnis 2 Thema Aufgabenstellung Anwendungsdebugging Threads Remote Debugging Implementierung Ausblick Quellen 3 Thema Untersuchung von Funktionsabläufen

Mehr

Paralleles Rechnen. (Architektur verteilter Systeme) von Thomas Offermann Philipp Tommek Dominik Pich

Paralleles Rechnen. (Architektur verteilter Systeme) von Thomas Offermann Philipp Tommek Dominik Pich Paralleles Rechnen (Architektur verteilter Systeme) von Thomas Offermann Philipp Tommek Dominik Pich Gliederung Motivation Anwendungsgebiete Warum paralleles Rechnen Flynn's Klassifikation Theorie: Parallel

Mehr

Trace- und Zeit-Zusicherungen beim Programmieren mit Vertrag

Trace- und Zeit-Zusicherungen beim Programmieren mit Vertrag Trace- und Zeit-Zusicherungen beim Programmieren mit Vertrag Mark Brörkens Universität Oldenburg, Fachbereich Informatik Email: Mark.Broerkens@informatik.uni-oldenburg.de Einleitung Programmieren mit Vertrag

Mehr

Softwaretechnik (WS 11/12)

Softwaretechnik (WS 11/12) Universität Augsburg, LSt. Softwaretechnik, K. Stenzel, H. Seebach, G. Anders Softwaretechnik (WS 11/12) Lösungsvorschlag 5 Aufgabe 1 (System Behavior: System Sequence Diagrams) (10/5 Punkte) a) Was sind

Mehr

Musterlösung Klausur SS 2004

Musterlösung Klausur SS 2004 Musterlösung Klausur SS 2004 Fachrichtung: Informatik Lehrveranstaltung: Verteilte Systeme Dozent: Prof. G. Bengel Tag: 15.6.04 Bearbeitungszeit: 90 Minuten Name:... Matr.Nr.:... Punkte:... Note:... Hilfsmittel:

Mehr

Centre of Excellence for High Performance Computing Erlangen Kompetenzgruppe für Supercomputer und Technisch-Wissenschaftliche Simulation

Centre of Excellence for High Performance Computing Erlangen Kompetenzgruppe für Supercomputer und Technisch-Wissenschaftliche Simulation 1 Centre of Excellence for High Performance Computing Erlangen Kompetenzgruppe für Supercomputer und Technisch-Wissenschaftliche Simulation Dr. G. Wellein, Regionales Rechenzentrum Erlangen Supercomputer

Mehr

Codesigned Virtual Machines

Codesigned Virtual Machines Codesigned Virtual Machines Seminar Virtualisierung Philipp Kirchhofer philipp.kirchhofer@student.kit.edu Institut für Technische Informatik Lehrstuhl für Rechnerarchitektur Universität Karlsruhe (TH)

Mehr

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44 Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 44 Die Idee Virtuelle Adressen Prozess 1 Speicherblock 0 Speicherblock 1 Speicherblock 2 Speicherblock 3 Speicherblock 4 Speicherblock

Mehr

KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 1/13. Dokumentation KREDITVERZEICHNIS. Teil 2. Konfiguration

KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 1/13. Dokumentation KREDITVERZEICHNIS. Teil 2. Konfiguration KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 1/13 Dokumentation KREDITVERZEICHNIS Teil 2 Konfiguration Stand 20.02.2013 KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 2/13 Inhalt 1. KONFIGURATION...

Mehr

CORBA. Systemprogrammierung WS 2006-2007

CORBA. Systemprogrammierung WS 2006-2007 CORBA Systemprogrammierung WS 2006-2007 Teilnehmer: Bahareh Akherattalab Babak Akherattalab Inhaltsverzeichnis: Verteilte Systeme Vergleich zwischen lokale und verteilte Systeme Verteilte Anwendungen CORBA

Mehr

Vorlesung "Verteilte Systeme" Sommersemester 1999. Verteilte Systeme. Adreßraum. Rechner. Verteilte Systeme, Sommersemester 1999 Folie 19.

Vorlesung Verteilte Systeme Sommersemester 1999. Verteilte Systeme. Adreßraum. Rechner. Verteilte Systeme, Sommersemester 1999 Folie 19. Verteilte Systeme 19. Distributed Shared Memory Sharing!! No Sharing! Sharing? Evolution der Berechnungsmodelle Vergangenheit Gemeinsamer Speicher Einzelrechner Gegenwart Nachrichtenkommunikation Verteilte

Mehr

Some Software Engineering Principles

Some Software Engineering Principles David L. Parnas: Some Software Engineering Principles Marco Oppel 30.06.2004 Seminar Software-Architektur Institut für Informatik Humboldt Universität zu Berlin 1 Problemstellung Software Engineering Multi-Personen

Mehr

MÖGLICHKEITEN UND GRENZEN IN DER DYNAMISCHEN CODEANALYSE VON C++ SOFTWARE. Von Matthias Neumann

MÖGLICHKEITEN UND GRENZEN IN DER DYNAMISCHEN CODEANALYSE VON C++ SOFTWARE. Von Matthias Neumann MÖGLICHKEITEN UND GRENZEN IN DER DYNAMISCHEN CODEANALYSE VON C++ SOFTWARE Von Matthias Neumann 19.01.2015 2/35 Inhaltsangabe Einleitung Ausprägungen der dynamischen Codeanalyse Debugging Logging Testing

Mehr

Proseminar Rechnerarchitekturen. Parallelcomputer: Multiprozessorsysteme

Proseminar Rechnerarchitekturen. Parallelcomputer: Multiprozessorsysteme wwwnet-texde Proseminar Rechnerarchitekturen Parallelcomputer: Multiprozessorsysteme Stefan Schumacher, , PGP Key http://wwwnet-texde/uni Id: mps-folientex,v

Mehr

Prototypvortrag. Exploiting Cloud and Infrastructure as a Service (IaaS) Solutions for Online Game Service Provisioning. Projektseminar WS 2009/10

Prototypvortrag. Exploiting Cloud and Infrastructure as a Service (IaaS) Solutions for Online Game Service Provisioning. Projektseminar WS 2009/10 Prototypvortrag Exploiting Cloud and Infrastructure as a Service (IaaS) Solutions for Online Game Service Provisioning Projektseminar WS 2009/10 Eugen Fot, Sebastian Kenter, Michael Surmann AG Parallele

Mehr

Kurz: Stimme meinen Vorrednern zu: Angenehme Atmosphäre. Eher ein Fachgespräch als eine Prüfung. Eindeutig zu empfehlen

Kurz: Stimme meinen Vorrednern zu: Angenehme Atmosphäre. Eher ein Fachgespräch als eine Prüfung. Eindeutig zu empfehlen Kursversion WS: 10/11 02.2012 Kurs 1727 Kurz: Stimme meinen Vorrednern zu: Angenehme Atmosphäre. Eher ein Fachgespräch als eine Prüfung. Eindeutig zu empfehlen Grundlagen Parallele Programmierung? Was

Mehr

Echtzeitverhalten durch die Verwendung von CPU Stubs: Eine Erweiterung von Dynamic Performance Stubs. Echtzeit 2009

Echtzeitverhalten durch die Verwendung von CPU Stubs: Eine Erweiterung von Dynamic Performance Stubs. Echtzeit 2009 Echtzeitverhalten durch die Verwendung von CPU Stubs: Eine Erweiterung von Dynamic Performance Stubs Echtzeit 2009 Peter Trapp, 20.11.2009 Übersicht 1 Einleitung 2 (Übersicht) 3 (Framework) 4 Methodik

Mehr

Besprechung Aufgabe 5 (crawl) POSIX-Threads. Problem: UNIX-Prozesskonzept ist für viele heutige Anwendungen unzureichend

Besprechung Aufgabe 5 (crawl) POSIX-Threads. Problem: UNIX-Prozesskonzept ist für viele heutige Anwendungen unzureichend U7 6. Übung U7 6. Übung U7-1 Motivation von Threads U7-1 Motivation von Threads Besprechung Aufgabe 5 (crawl) OSIX-Threads Motivation Thread-Konzepte pthread-ai Koordinierung UNIX-rozesskonzept: eine Ausführungsumgebung

Mehr

Operating System Kernels

Operating System Kernels Operating System Kernels von Patrick Bitterling 1 Themenübersicht -Eine Einleitung über Kernel -Begriffserklärung, Architekturen -Kernel Subsysteme -Prozess-Scheduling, Speichermanagement,... -Der Networking

Mehr

Zweite Umfrage zur Bedarfsermittlung von Ressourcen zum wissenschaftlichen Rechnen an der TU Dortmund

Zweite Umfrage zur Bedarfsermittlung von Ressourcen zum wissenschaftlichen Rechnen an der TU Dortmund Zweite Umfrage zur Bedarfsermittlung von Ressourcen zum wissenschaftlichen Rechnen an der TU Dortmund Das Wissenschaftlichen Rechnen hat sich in Forschung und Lehre in den letzten Jahren zu einem wichtigen

Mehr

Probeklausur. Lenz Belzner. January 26, 2015. Lenz Belzner Probeklausur January 26, 2015 1 / 16

Probeklausur. Lenz Belzner. January 26, 2015. Lenz Belzner Probeklausur January 26, 2015 1 / 16 Probeklausur Lenz Belzner January 26, 2015 Lenz Belzner Probeklausur January 26, 2015 1 / 16 Definieren Sie Software Engineering in Abgrenzung zu Individual Programming. Ingenieursdisziplin professionelle

Mehr

Überblick. 2 Bestandsaufnahme 2.1 Beispiele von verteilten Systemen 2.2 Anwendungsszenarien 2.3 Vorteile 2.4 Problembereiche

Überblick. 2 Bestandsaufnahme 2.1 Beispiele von verteilten Systemen 2.2 Anwendungsszenarien 2.3 Vorteile 2.4 Problembereiche Überblick 2 Bestandsaufnahme 2.1 Beispiele von verteilten Systemen 2.2 Anwendungsszenarien 2.3 Vorteile 2.4 Problembereiche c rk,wosch,jk VS (SS 2015) 2 Bestandsaufnahme 2 1 Prozessorfarm @Google c rk,wosch,jk

Mehr

Technische Fachhochschule Berlin University of Applied Sciences

Technische Fachhochschule Berlin University of Applied Sciences Technische Fachhochschule Berlin University of Applied Sciences Fachbereich II Mathematik - Physik Chemie Masterarbeit von Dipl.-Ing. Ingrid Maus zur Erlangung des Grades Master of Computational Engineering

Mehr

Rechnernutzung in der Physik. Betriebssysteme

Rechnernutzung in der Physik. Betriebssysteme Rechnernutzung in der Physik Betriebssysteme 1 Betriebssysteme Anwendungsprogramme Betriebssystem Treiber BIOS Direkter Zugriff von Anwenderprogrammen auf Hardware nur in Ausnahmefällen sinnvoll / möglich:

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

Systeme 1. Kapitel 10. Virtualisierung

Systeme 1. Kapitel 10. Virtualisierung Systeme 1 Kapitel 10 Virtualisierung Virtualisierung Virtualisierung: Definition: Der Begriff Virtualisierung beschreibt eine Abstraktion von Computerhardware hin zu einer virtuellen Maschine. Tatsächlich

Mehr

20. Algorithmus der Woche Online-Algorithmen: Was ist es wert, die Zukunft zu kennen? Das Ski-Problem

20. Algorithmus der Woche Online-Algorithmen: Was ist es wert, die Zukunft zu kennen? Das Ski-Problem 20. Algorithmus der Woche Online-Algorithmen: Was ist es wert, die Zukunft zu kennen? Das Ski-Problem Autor Susanne Albers, Universität Freiburg Swen Schmelzer, Universität Freiburg In diesem Jahr möchte

Mehr

Komponenten- und ereignisorientierte Softwareentwicklung am Beispiel von Borland-Delphi

Komponenten- und ereignisorientierte Softwareentwicklung am Beispiel von Borland-Delphi Komponenten- und ereignisorientierte Softwareentwicklung am Beispiel von Borland-Delphi Dr. Henry Herper Otto-von-Guericke-Universität Magdeburg Institut für Simulation und Graphik Lisa-Weiterbildung -

Mehr

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige

Mehr

Hardware/Software-Codesign

Hardware/Software-Codesign Klausur zur Lehrveranstaltung Hardware/Software-Codesign Dr. Christian Plessl Paderborn Center for Parallel Computing Universität Paderborn 8.10.2009 Die Bearbeitungsdauer beträgt 75 Minuten. Es sind keine

Mehr

Das Handbuch zu KSystemLog. Nicolas Ternisien

Das Handbuch zu KSystemLog. Nicolas Ternisien Nicolas Ternisien 2 Inhaltsverzeichnis 1 KSystemLog verwenden 5 1.1 Einführung.......................................... 5 1.1.1 Was ist KSystemLog?................................ 5 1.1.2 Funktionen.....................................

Mehr

Entwicklung eines COW auf Basis einer SGE

Entwicklung eines COW auf Basis einer SGE Entwicklung eines COW auf Basis einer SGE B. Sc. Michael Schmidt HTWK Leipzig 14. Juni 2011 Inhalt 1 Einführung 2 Masterarbeit 3 Schluss Überblick 1 Einführung 2 Masterarbeit 3 Schluss Definition Cluster

Mehr

Zustandsgebundene Webservices

Zustandsgebundene Webservices Zustandsgebundene Webservices Präsentation ausgewählter Problemstellungen der Informatik Markus Oertel oer@uni-paderborn.de Universität Paderborn 25. September 2005 Zustandsgebundene Webservices Seite

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen in C. Prof. Dr. Margarita Esponda Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.

Mehr

4 Planung von Anwendungsund

4 Planung von Anwendungsund Einführung 4 Planung von Anwendungsund Datenbereitstellung Prüfungsanforderungen von Microsoft: Planning Application and Data Provisioning o Provision applications o Provision data Lernziele: Anwendungen

Mehr

Einrichten der Outlook-Synchronisation

Einrichten der Outlook-Synchronisation Das will ich auch wissen! - Kapitel 3 Einrichten der Outlook-Synchronisation Inhaltsverzeichnis Überblick über dieses Dokument... 2 Diese Kenntnisse möchten wir Ihnen vermitteln... 2 Diese Kenntnisse empfehlen

Mehr

Proseminar Nichtsequentielle Programmiersprachen - alt und neu Einführung

Proseminar Nichtsequentielle Programmiersprachen - alt und neu Einführung Proseminar Nichtsequentielle Programmiersprachen - alt und neu Einführung Peter Löhr Nichtsequentielle Programme Nichtsequentielle Programme (concurrent programs): Prozesse, Threads, Tasks,... sind eigenständige

Mehr

Was ist Software-Architektur?

Was ist Software-Architektur? Was ist Software-Architektur? Stephan Schulze Martin Knobloch 28.04.2004 Seminar: Software-Architektur Humboldt Universität zu Berlin sschulze knobloch@informatik.hu-berlin.de Gliederung Begriffsbestimmung

Mehr

Inkonsistenzen in der Modellierung

Inkonsistenzen in der Modellierung Inkonsistenzen in der Modellierung Software Group Claudio Grolimund: Inkonsistenzen in Modellen sollten schnell erkannt und behoben werden. Im Rahmen der Rational Software Developer Platform 2009 stellte

Mehr

Jump Project. Softwarelösungen für professionelles Projektmanagement

Jump Project. Softwarelösungen für professionelles Projektmanagement Jump Project Softwarelösungen für professionelles Projektmanagement Jump Project Office Übersichtliche Dokumentenstruktur und schneller Zugriff auf alle wichtigen Funktionen. Steuern Sie Ihre Projekte

Mehr

7 SharePoint Online und Office Web Apps verwenden

7 SharePoint Online und Office Web Apps verwenden 7 SharePoint Online und Office Web Apps verwenden Wenn Sie in Ihrem Office 365-Paket auch die SharePoint-Dienste integriert haben, so können Sie auf die Standard-Teamsite, die automatisch eingerichtet

Mehr

EXPANDIT. ExpandIT Client Control Kurzanleitung. utilities. be prepared speed up go mobile. Stand 14.11.07

EXPANDIT. ExpandIT Client Control Kurzanleitung. utilities. be prepared speed up go mobile. Stand 14.11.07 ExpandIT Client Control Kurzanleitung Stand 14.11.07 Inhaltsverzeichnis ExpandIT Client Control 3 Installationshinweise 3 System-Voraussetzungen 3 Installation 3 Programm starten 6 Programm konfigurieren

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Teil D Objektorientierte Programmierung Kapitel D 2001 Prof. Dr. Rainer Manthey Informatik I 1 Teil D Grundlagen der objektorientierten Programmierung 2001 Prof. Dr. Rainer Manthey Informatik I 2 Objektorientierung

Mehr

Entwicklung eines Mac OS X Treibers für eine PCI-VME Interface Karte

Entwicklung eines Mac OS X Treibers für eine PCI-VME Interface Karte Entwicklung eines Mac OS X Treibers für eine PCI-VME Interface Karte Matthias Lange Informatikstudent, TU-Dresden 27. September 2005 http://www.matze-lange.de Warum entwickelt jemand einen Treiber für

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Eigene Entwicklungen Datenstrukturen Elementare Datentypen Abstrakte Datentypen Elementare

Mehr

Infrastructure as a Service (IaaS) Solutions for Online Game Service Provision

Infrastructure as a Service (IaaS) Solutions for Online Game Service Provision Infrastructure as a Service (IaaS) Solutions for Online Game Service Provision Zielsetzung: System Verwendung von Cloud-Systemen für das Hosting von online Spielen (IaaS) Reservieren/Buchen von Resources

Mehr

IBM SPSS Data Access Pack Installationsanweisung für Windows

IBM SPSS Data Access Pack Installationsanweisung für Windows IBM SPSS Data Access Pack Installationsanweisung für Windows Inhaltsverzeichnis Kapitel 1. Übersicht.......... 1 Einführung............... 1 Bereitstellen einer Datenzugriffstechnologie.... 1 ODBC-Datenquellen...........

Mehr

Softwarelösungen: Versuch 4

Softwarelösungen: Versuch 4 Softwarelösungen: Versuch 4 Nichtstun in Schleife wird ersetzt durch zeitweilige Zurücknahme der Anforderung, um es anderen Prozessen zu erlauben, die Ressource zu belegen: /* Prozess 0 */ wiederhole flag[0]

Mehr

Task A Zündung. Task B Einspritzung. Task C Erfassung Pedalwert. J. Schäuffele, Th. Zurawka: Automotive Software Engineering, Vieweg, 2003

Task A Zündung. Task B Einspritzung. Task C Erfassung Pedalwert. J. Schäuffele, Th. Zurawka: Automotive Software Engineering, Vieweg, 2003 Task! evt. parallel zu bearbeitende Ausführungseinheit! Beispiel: Task A Zündung Task B Einspritzung Task C Erfassung Pedalwert Zeit t J. Schäuffele, Th. Zurawka:, Vieweg, 2003 Echtzeitbetriebssysteme

Mehr

Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition)

Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition) Ein Prozess kann unmittelbar vom Zustand 1. Running in den Zustand Ready 2. Running in den Zustand Blocked 3. Ready in den Zustand Running Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition) Der Adressraum

Mehr

Instruktionssatz-Architektur

Instruktionssatz-Architektur Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2005/2006 Übersicht 1 Einleitung 2 Bestandteile der ISA 3 CISC / RISC Übersicht 1 Einleitung 2 Bestandteile

Mehr

Grid-Systeme. Betrachtung verschiedener Softwareplattformen zur Realisierung von Grids und Vorstellung des Globus Toolkit. 07.06.2002 Grid Systeme 1

Grid-Systeme. Betrachtung verschiedener Softwareplattformen zur Realisierung von Grids und Vorstellung des Globus Toolkit. 07.06.2002 Grid Systeme 1 Grid-Systeme Betrachtung verschiedener Softwareplattformen zur Realisierung von Grids und Vorstellung des Globus Toolkit 07.06.2002 Grid Systeme 1 Gliederung Vorstellung verschiedener Plattformen Globus

Mehr

Dr. Nicholas Merriam Rapita Systems Ltd., IT Centre, York Science Park, Heslington, York, YO10 5DG (UK) nick.merriam@rapitasystems.

Dr. Nicholas Merriam Rapita Systems Ltd., IT Centre, York Science Park, Heslington, York, YO10 5DG (UK) nick.merriam@rapitasystems. Das zeitliche Verhalten von Echtzeitsoftware zu analysieren und sicher zu stellen, dass die Anforderungen an das Echtzeitverhalten erfüllt werden kann sehr aufwendig und teuer sein. In diesem Artikel sollen

Mehr

WI EDI Solution. Stand 17.02.2012

WI EDI Solution. Stand 17.02.2012 WI EDI Solution Stand 17.02.2012 WIAG Überblick 2011 - SAP, SAP BW, SAP SEM/BPS, SAP BPC, SAP R/3, ABAP, Netweaver sind eingetragene Warenzeichen der SAP AG, Walldorf Folie 1 Inhalt Was ist WIEDIS? IDOC

Mehr