(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

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

Hardware-Architekturen

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

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

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

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

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

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008 Name: Matrikel-Nr: Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008 Bitte schreiben Sie leserlich und antworten Sie kurz und präzise. 1. Zeichnen Sie das Schichten-Modell eines Computersystems und markieren

Mehr

Architektur Verteilter Systeme Teil 6: Interprozess-Kommunikation

Architektur Verteilter Systeme Teil 6: Interprozess-Kommunikation Architektur Verteilter Systeme Teil 6: Interprozess-Kommunikation 09.05.15 1 Literatur [6-1] http://php.net/manual/de/book.sockets.php [6-2] http://de.wikipedia.org/wiki/socket_(software) [6-3] http://php.net/manual/de/book.network.php

Mehr

Cluster Operating Systems

Cluster Operating Systems Lehrstuhl für Rechnerarchitektur, Professor Brüning Cluster Operating Systems Seminarvortrag im Wintersemester 2003/04 von Frank Ueltzhöffer 1. Einführung und Motivation 2. Charakterisierung 3. Herausforderungen

Mehr

Multicore Herausforderungen an das Software-Engineering. Prof. Dr.-Ing. Michael Uelschen Hochschule Osnabrück 15.09.2010

Multicore Herausforderungen an das Software-Engineering. Prof. Dr.-Ing. Michael Uelschen Hochschule Osnabrück 15.09.2010 Multicore Herausforderungen an das Software-Engineering Prof. Dr.-Ing. Michael Uelschen Hochschule Osnabrück 15.09.2010 Inhalt _ Motivation _ Herausforderung 1: Hardware _ Herausforderung 2: Software-Partitionierung

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

Grundlagen der Programmierung 2. Parallele Verarbeitung

Grundlagen der Programmierung 2. Parallele Verarbeitung Grundlagen der Programmierung 2 Parallele Verarbeitung Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 27. Mai 2009 Parallele Algorithmen und Ressourcenbedarf Themen: Nebenläufigkeit,

Mehr

Rechnerarchitektur und Betriebssysteme (CS201): Semaphor, Monitor, Deadlocks, Re-Entrance

Rechnerarchitektur und Betriebssysteme (CS201): Semaphor, Monitor, Deadlocks, Re-Entrance Rechnerarchitektur und Betriebssysteme (CS201): Semaphor, Monitor, Deadlocks, Re-Entrance 5. November 2013 Prof. Dr. Christian Tschudin Departement Mathematik und Informatik, Universität Basel Repetition

Mehr

White Paper. Embedded Treiberframework. Einführung

White Paper. Embedded Treiberframework. Einführung Embedded Treiberframework Einführung White Paper Dieses White Paper beschreibt die Architektur einer Laufzeitumgebung für Gerätetreiber im embedded Umfeld. Dieses Treiberframework ist dabei auf jede embedded

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

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

COMPUTERKLASSEN MULTICOMPUTER und SPEZIALANWENDUNGSSYSTEME

COMPUTERKLASSEN MULTICOMPUTER und SPEZIALANWENDUNGSSYSTEME D - CA - XIX - CC,M&SPC - 1 HUMBOLDT-UNIVERSITÄT ZU BERLIN INSTITUT FÜR INFORMATIK Vorlesung 19 COMPUTERKLASSEN MULTICOMPUTER und SPEZIALANWENDUNGSSYSTEME Sommersemester 2003 Leitung: Prof. Dr. Miroslaw

Mehr

Rapid I/O Toolkit. http://projects.spamt.net/riot. Alexander Bernauer alex@copton.net 08.12.08

Rapid I/O Toolkit. http://projects.spamt.net/riot. Alexander Bernauer alex@copton.net 08.12.08 Rapid I/O Toolkit http://projects.spamt.net/riot Alexander Bernauer alex@copton.net 08.12.08 Inhalt Motivation Architektur Beispiel I/O Features Ausblick Motivation Problemstellung Vorgaben Datenverarbeitung

Mehr

Lösung Verteilte Systeme WS 2011/12 Teil 1

Lösung Verteilte Systeme WS 2011/12 Teil 1 Seite 1 von 5 Lösung Verteilte Systeme WS 2011/12 Teil 1 2.02.2012 1. Aufgabe (5) Sie fahren in Ihrem Privatfahrzeug auf einer Autobahn und hinter Ihnen fährt ein Polizeifahrzeug. 1.1 Nennen Sie ein Szenario,

Mehr

6. Tutorium zu Softwaretechnik I

6. Tutorium zu Softwaretechnik I 6. Tutorium zu Softwaretechnik I Parallelität und Testen Michael Hoff 01.07.2014 INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum

Mehr

IT für Führungskräfte. Zentraleinheiten. 11.04.2002 Gruppe 2 - CPU 1

IT für Führungskräfte. Zentraleinheiten. 11.04.2002 Gruppe 2 - CPU 1 IT für Führungskräfte Zentraleinheiten 11.04.2002 Gruppe 2 - CPU 1 CPU DAS TEAM CPU heißt Central Processing Unit! Björn Heppner (Folien 1-4, 15-20, Rollenspielpräsentation 1-4) Harald Grabner (Folien

Mehr

Orientierungsveranstaltungen 2009 Informatikstudien der Universität Wien

Orientierungsveranstaltungen 2009 Informatikstudien der Universität Wien Orientierungsveranstaltungen 2009 Informatikstudien der Universität Wien Scientific Computing 07. Oktober 2009 Siegfried Benkner Wilfried Gansterer Fakultät für Informatik Universität Wien www.cs.univie.ac.at

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

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

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

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

Leistungs- und Geschwindigkeitssteigerung. Dipl.-Ing. Sebastian F. Kleinau Applikationsingenieur

Leistungs- und Geschwindigkeitssteigerung. Dipl.-Ing. Sebastian F. Kleinau Applikationsingenieur Leistungs- und Geschwindigkeitssteigerung von LabVIEW-Projekten Dipl.-Ing. Sebastian F. Kleinau Applikationsingenieur Agenda 1. Einführung 2. Hilfreiche Werkzeuge zur Codeanalyse 3. Benchmarks für LabVIEW-VIs

Mehr

Prozesse und Scheduling

Prozesse und Scheduling Betriebssysteme für Wirtschaftsinformatiker SS04 KLAUSUR Vorbereitung mit Lösungen / Blatt 1 Prozesse und Scheduling Aufgabe 1 : Scheduling Gegeben seien die folgenden Prozesse und die Längen des jeweiligen

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

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

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

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

Im Original veränderbare Word-Dateien

Im Original veränderbare Word-Dateien Das Von-Neumann-Prinzip Prinzipien der Datenverarbeitung Fast alle modernen Computer funktionieren nach dem Von- Neumann-Prinzip. Der Erfinder dieses Konzeptes John von Neumann (1903-1957) war ein in den

Mehr

RAID. Name: Artur Neumann

RAID. Name: Artur Neumann Name: Inhaltsverzeichnis 1 Was ist RAID 3 1.1 RAID-Level... 3 2 Wozu RAID 3 3 Wie werden RAID Gruppen verwaltet 3 3.1 Software RAID... 3 3.2 Hardware RAID... 4 4 Die Verschiedenen RAID-Level 4 4.1 RAID

Mehr

Enterprise Computing

Enterprise Computing Enterprise Computing Prof. Dr.-Ing. Wilhelm G. Spruth Teil 6 Partitionierung NUMA Sharing Disk Storage HP Superdome Cell Board 4 Itanium 2 CPU Chips 32 128 Gbyte I/O Bus mit Kühlern Hauptspeicher Anschlüsse

Mehr

Programmieren. Wie entsteht ein Programm

Programmieren. Wie entsteht ein Programm Wie entsteht ein Programm 1/9 1. Schritt: Programmentwurf Der wichtigste Teil beim Erstellen eines Programms ist der Programmentwurf. Dabei wird das vorgegebene Problem analysiert, es wird ermittelt, welche

Mehr

Ausarbeitung Seminarvortrag High-Performance-Computing WS 2011/2012

Ausarbeitung Seminarvortrag High-Performance-Computing WS 2011/2012 Ausarbeitung Seminarvortrag High-Performance-Computing WS 2011/2012 Matthias Bott 9. Januar 2012 2 VOM PC ZUM HPC 2 1 Movtivation Auf die Frage, wofür Computer in der Kernphysik benötigt werden, gibt es

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr

5 Speicherverwaltung. bs-5.1 1

5 Speicherverwaltung. bs-5.1 1 5 Speicherverwaltung bs-5.1 1 Pufferspeicher (cache) realer Speicher Primärspeicher/Arbeitsspeicher (memory) Sekundärspeicher/Hintergrundspeicher (backing store) (Tertiärspeicher/Archivspeicher) versus

Mehr

B.4. B.4 Betriebssysteme. 2002 Prof. Dr. Rainer Manthey Informatik II 1

B.4. B.4 Betriebssysteme. 2002 Prof. Dr. Rainer Manthey Informatik II 1 Betriebssysteme Betriebssysteme 2002 Prof. Dr. Rainer Manthey Informatik II 1 Bekannte Betriebssysteme Windows 2000 CMS UNIX MS-DOS OS/2 VM/SP BS 2000 MVS Windows NT Solaris Linux 2002 Prof. Dr. Rainer

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

internationalen Verbund

internationalen Verbund University of Applied Sciences 1 zur Optimierung der Wertschöpfungsketten Hochleistungsrechnen für Wissenschaft und Wirtschaft im internationalen Verbund Prof. Dr. rer. nat. Christian Schröder stellv.

Mehr

High Performance Computing

High Performance Computing High Performance Computing SS 2004 PD Dr. A. Strey Abteilung Neuroinformatik, Universität Ulm Email: strey@informatik.uni-ulm.de Inhalt Einführung hohe Leistung durch Parallelität! kurze Historie des High

Mehr

Grid Computing. Einführung. Marc Lechtenfeld. Seminar Grid Computing Sommersemester 2004 Universität Duisburg-Essen

Grid Computing. Einführung. Marc Lechtenfeld. Seminar Grid Computing Sommersemester 2004 Universität Duisburg-Essen * Grid Computing Einführung Marc Lechtenfeld Seminar Grid Computing Sommersemester 2004 Universität Duisburg-Essen Übersicht 1 Problematik 2 Systemanforderungen 3 Architektur 4 Implementation 5 Projekte

Mehr

1.7 Assembler Programmierung

1.7 Assembler Programmierung 1.7 Assembler Programmierung Die nach außen sichtbare Programmierschnittstelle eines Prozessors ist der Befehlscode. Dies ist eine binäre Dateninformation, die vom Prozessor Byte für Byte abgearbeitet

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

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

Grundlagen zur nebenläufigen Programmierung in Java

Grundlagen zur nebenläufigen Programmierung in Java Grundlagen zur nebenläufigen Programmierung in Java Karlsruher Entwicklertag 2013 5. Juni 2013 Referent: Christian Kumpe Inhalt des Vortrags Was zeigt dieser Vortrag? Ein einfaches Beispiel mit allerlei

Mehr

Effizientes Memory Debugging in C/C++

Effizientes Memory Debugging in C/C++ Effizientes Memory Debugging in C/C++ Adam Szalkowski Embedded Computing Conference 2014 Ursachen/ Symptome Debugging Tools Ursachen / Symptome Was habe ich falsch gemacht? Was kann denn passieren im schlimmsten

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

Objektorientiertes Programmieren für Ingenieure

Objektorientiertes Programmieren für Ingenieure Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen

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

Business Process Execution Language. Christian Vollmer Oliver Garbe

Business Process Execution Language. Christian Vollmer <christian.vollmer@udo.edu> Oliver Garbe <oliver.garbe@udo.edu> Business Process Execution Language Christian Vollmer Oliver Garbe Aufbau Was ist BPEL? Wofür ist BPEL gut? Wie funktioniert BPEL? Wie sieht BPEL aus?

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

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

Kybernetik Das Kybernetische Modell

Kybernetik Das Kybernetische Modell Kybernetik Das Kybernetische Modell Mohamed Oubbati Institut für Neuroinformatik Tel.: (+49) 731 / 50 24153 mohamed.oubbati@uni-ulm.de 05. 06. 2012 Das Modell Das Modell Was ist ein Modell? Ein Modell

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

Redwood Cronacle und REALTECH theguard! Integration

Redwood Cronacle und REALTECH theguard! Integration Redwood Cronacle und REALTECH theguard! Integration Einleitung Redwood Software und REALTECH haben gemeinsam eine Lösung entwickelt, die die Systemverfügbarkeit von SAP und mysap Systemen signifikant erhöht.

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

Prozeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen

Prozeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen Seite 8 A UFGABE 11 INTERP ROZEßKOMMUNIKATION Das folgende Petrinetz zeigt zwei verkoppelte Prozesse P1 und P2. Die Transitionen a und b beschreiben Aktionen von P1, die Transitionen c und d Aktionen von

Mehr

Aktuelle Trends und Herausforderungen in der Finite-Elemente-Simulation

Aktuelle Trends und Herausforderungen in der Finite-Elemente-Simulation Aktuelle Trends und Herausforderungen in der Finite-Elemente-Simulation Kai Diethelm GNS Gesellschaft für numerische Simulation mbh Braunschweig engineering software development Folie 1 Überblick Vorstellung

Mehr

Military Air Systems

Military Air Systems Trennung von Applikationen unterschiedlicher Kritikalität in der Luftfahrt durch Software en am Beispiel des Real-time Operating Systems PikeOS Dr. Bert Feldmann DGLR Workshop Garching, 09.10.2007 Seite

Mehr

Modulbeschreibung. The course is principally designed to impart: technical skills 50%, method skills 40%, system skills 10%, social skills 0%.

Modulbeschreibung. The course is principally designed to impart: technical skills 50%, method skills 40%, system skills 10%, social skills 0%. Titel des Moduls: Parallel Systems Dt.: Parallele Systeme Verantwortlich für das Modul: Heiß, Hans-Ulrich E-Mail: lehre@kbs.tu-berlin.de URL: http://www.kbs.tu-berlin.de/ Modulnr.: 866 (Version 2) - Status:

Mehr

Oracle GridControl Tuning Pack. best Open Systems Day April 2010. Unterföhring. Marco Kühn best Systeme GmbH marco.kuehn@best.de

Oracle GridControl Tuning Pack. best Open Systems Day April 2010. Unterföhring. Marco Kühn best Systeme GmbH marco.kuehn@best.de Oracle GridControl Tuning Pack best Open Systems Day April 2010 Unterföhring Marco Kühn best Systeme GmbH marco.kuehn@best.de Agenda GridControl Overview Tuning Pack 4/26/10 Seite 2 Overview Grid Control

Mehr

Programmentwicklung ohne BlueJ

Programmentwicklung ohne BlueJ Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie

Mehr

Distributed testing. Demo Video

Distributed testing. Demo Video distributed testing Das intunify Team An der Entwicklung der Testsystem-Software arbeiten wir als Team von Software-Spezialisten und Designern der soft2tec GmbH in Kooperation mit der Universität Osnabrück.

Mehr

Dynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org)

Dynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Dynamische Plug-ins mit Eclipse 3 Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Überblick Die Ausgangslage Dynamische Plug-ins Warum? Eclipse 3 Die OSGi-basierte

Mehr

Embedded OS für ARM Cortex Microcontroller

Embedded OS für ARM Cortex Microcontroller Embedded OS für ARM Cortex Microcontroller RTOS Design, Timinganalyse und Test mit Core Simulation und Hardware Debugger Entscheidende Fragen für oder gegen RTOS Lohnt sich der Einsatz eines RTOS auch

Mehr

1.4.12 Sin-Funktion vgl. Cos-Funktion

1.4.12 Sin-Funktion vgl. Cos-Funktion .4. Sgn-Funktion Informatik. Semester 36 36.4.2 Sin-Funktion vgl. Cos-Funktion Informatik. Semester 37 37 .4.3 Sqr-Funktion Informatik. Semester 38 38.4.4 Tan-Funktion Informatik. Semester 39 39 .5 Konstanten

Mehr

Brückenkurs / Computer

Brückenkurs / Computer Brückenkurs / Computer Sebastian Stabinger IIS 23 September 2013 Sebastian Stabinger (IIS) Brückenkurs / Computer 23 September 2013 1 / 20 Content 1 Allgemeines zum Studium 2 Was ist ein Computer? 3 Geschichte

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 1 17. Oktober 2002 www4.in.tum.de/~rumpe/se

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

Echtzeitbetriebssysteme (am Beispiel QNX) Dr. Stefan Enderle HS Esslingen

Echtzeitbetriebssysteme (am Beispiel QNX) Dr. Stefan Enderle HS Esslingen Echtzeitbetriebssysteme (am Beispiel QNX) Dr. Stefan Enderle HS Esslingen 1. Einführung 1.1 Embedded Systeme Embedded Systeme besitzen / benutzen einen Mikrocontroller Embedded Systeme erfüllen meist eine

Mehr

Perzentile mit Hadoop ermitteln

Perzentile mit Hadoop ermitteln Perzentile mit Hadoop ermitteln Ausgangspunkt Ziel dieses Projektes war, einen Hadoop Job zu entwickeln, der mit Hilfe gegebener Parameter Simulationen durchführt und aus den Ergebnissen die Perzentile

Mehr

Messdaten auswerten und visualisieren 5 Tipps, die passende Darstellungstechnik für ein Messsystem zu finden

Messdaten auswerten und visualisieren 5 Tipps, die passende Darstellungstechnik für ein Messsystem zu finden Messdaten auswerten und visualisieren 5 Tipps, die passende Darstellungstechnik für ein Messsystem zu finden 27.05.13 Autor / Redakteur: Nach Unterlagen von National Instruments / Hendrik Härter Messdaten

Mehr

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 Software Testing Automatisiert Manuell 100% 70% 1 Überwiegender Teil der Testing Tools fokusiert auf automatisiertes Testen Microsoft

Mehr

Softwarewiederverwendung und Patterns

Softwarewiederverwendung und Patterns Begrifflichkeiten und Beschreibungssystematik Begriffe Literatur zu Patterns Übersicht über die behandelten Konzepte Beschreibungsschema 97 Begriffe Glossar Patterns (Muster) sind ein Mittel der Wiederverwendung

Mehr

http://www.stud.uni-potsdam.de/~hoeffi/gdb.html#wozu

http://www.stud.uni-potsdam.de/~hoeffi/gdb.html#wozu gdb: debugging code In der Vorlesung hatte ich Teile von http://www.stud.uni-potsdam.de/~hoeffi/gdb.html#wozu und ein eigenes Beispiel diskutiert. Ein Debugger soll helfen Fehler im Programm, die sich

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

Browserbasiertes, kollaboratives Whiteboard

Browserbasiertes, kollaboratives Whiteboard WS 2011/12 Bachelorarbeit Browserbasiertes, kollaboratives Whiteboard Sebastian Dorn 1 von 21 Inhalt 1. Motivation 2. Analyse 3. Design 4. Evaluation 5. Fazit Inhalt 2 von 21 Motivation Zusammenarbeit

Mehr

Einführung Arten von Softwaretests Prinzipien Continuous Integration Tests in FLOSS-Projekten Quellen. Softwaretests. Christoph Betschart

Einführung Arten von Softwaretests Prinzipien Continuous Integration Tests in FLOSS-Projekten Quellen. Softwaretests. Christoph Betschart Softwaretests Christoph Betschart 27. Oktober 2014 Inhaltsverzeichnis Einführung Arten von Softwaretests Prinzipien Seven Principles of Software Testing Continuous Integration Tests in FLOSS-Projekten

Mehr

Betriebssystembau (BSB)

Betriebssystembau (BSB) Betriebssystembau (BSB) 6. Übung http://ess.cs.tu-.de/de/teaching/ws2013/bsb/ Olaf Spinczyk olaf.spinczyk@tu-.de http://ess.cs.tu-.de/~os AG Eingebettete System Informatik 12, TU Dortmund Agenda Vorstellung

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

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

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Insitut für Informatik Prof. Dr. Bernhard Bauer Wolf Fischer Christian Saad Wintersemester 08/09 Übungsblatt 5 26.11.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1: Erläutern

Mehr

Steffen Heinzl Markus Mathes. Middleware in Java

Steffen Heinzl Markus Mathes. Middleware in Java Steffen Heinzl Markus Mathes Middleware in Java Leitfaden zum Entwurf verteilter Anwendungen - Implementierung von verteilten Systemen über JMS - Verteilte Objekte über RMI und CORBA Mit 50 Abbildungen

Mehr

1 Proseminar: Konzepte von Betriebssystem-Komponenten. Thema: Server OS AS/400 Referend: Sand Rainer. Server OS - AS/400

1 Proseminar: Konzepte von Betriebssystem-Komponenten. Thema: Server OS AS/400 Referend: Sand Rainer. Server OS - AS/400 1 Proseminar: Konzepte von Betriebssystem-Komponenten Server OS - AS/400 Gliederung Was ist eine AS/400? Wie ist OS/400 aufgebaut? Was kann eine AS/400? Bsp.: Logische Partitionierung 2 Proseminar: Konzepte

Mehr

Grundlagen der Programmierung UE

Grundlagen der Programmierung UE Grundlagen der Programmierung UE Research and teaching network GdP UE H. Prähofer, R. Wolfinger 1 Vortragende Dr. Herbert Praehofer (G1 u. G2) Mag. Reinhard Wolfinger (G3 u. G4) Institute for System Software

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

ALM mit Visual Studio Online. Philip Gossweiler Noser Engineering AG

ALM mit Visual Studio Online. Philip Gossweiler Noser Engineering AG ALM mit Visual Studio Online Philip Gossweiler Noser Engineering AG Was ist Visual Studio Online? Visual Studio Online hiess bis November 2013 Team Foundation Service Kernstück von Visual Studio Online

Mehr

Das Knowledge Grid. Eine Architektur für verteiltes Data Mining

Das Knowledge Grid. Eine Architektur für verteiltes Data Mining Das Knowledge Grid Eine Architektur für verteiltes Data Mining 1 Gliederung 1. Motivation 2. KDD und PDKD Systeme 3. Knowledge Grid Services 4. TeraGrid Projekt 5. Das Semantic Web 2 Motivation Rapide

Mehr

Datenbanksystem. System Global Area. Hintergrundprozesse. Dr. Frank Haney 1

Datenbanksystem. System Global Area. Hintergrundprozesse. Dr. Frank Haney 1 Datenbanksystem System Global Area Hintergrundprozesse Dr. Frank Haney 1 Komponenten des Datenbanksystems System Global Area Program Global Area Hintergrundprozesse Dr. Frank Haney 2 System Global Area

Mehr

Agilo [1] ist ein auf Trac [2] basierendes Scrum [3] Tool. Im Folgenden soll eine kurze Überischt gegeben werden, wie Agilo benutzt wird.

Agilo [1] ist ein auf Trac [2] basierendes Scrum [3] Tool. Im Folgenden soll eine kurze Überischt gegeben werden, wie Agilo benutzt wird. AGILO HOWTO Agilo [1] ist ein auf Trac [2] basierendes Scrum [3] Tool. Im Folgenden soll eine kurze Überischt gegeben werden, wie Agilo benutzt wird. ROLLEN IM TEAM In Scrum hat jedes Teammitglied eine

Mehr

Inhaltsverzeichnis. Teil 1 Node.js... 1

Inhaltsverzeichnis. Teil 1 Node.js... 1 xiii Teil 1 Node.js... 1 1 Was ist Node.js? 3 1.1 Die Zeitalter des Webs................................... 3 1.1.1 1990 bis 2000: Das Web 1.0....................... 3 1.1.2 2000 bis 2010: Das Web 2.0.......................

Mehr

Der Entwicklungsprozess. Oder wie entwickle ich ein eingebettetes System?

Der Entwicklungsprozess. Oder wie entwickle ich ein eingebettetes System? Der Entwicklungsprozess Oder wie entwickle ich ein eingebettetes System? Einleitung Problemstellung erläutern, Eine Entwicklungsprozess ist ein Prozess, der beschreibt, wie man eine Entwicklung anzugehen

Mehr

Power-Efficient Server Utilization in Compute Clouds

Power-Efficient Server Utilization in Compute Clouds Power-Efficient Server Utilization in Compute Clouds 1/14 Overview 1. Motivation 2. SPECpower benchmark 3. Load distribution strategies 4. Cloud configuration 5. Results 6. Conclusion 2/14 1. Motivation

Mehr

Simulation der SW-Systemzuverlässigkeit in Automatisierungssystemen auf Grundlage von SW-Komponenten

Simulation der SW-Systemzuverlässigkeit in Automatisierungssystemen auf Grundlage von SW-Komponenten Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner Simulation der SW-Systemzuverlässigkeit in Automatisierungssystemen auf Grundlage von SW-Komponenten

Mehr

Softwaretechnik (Medieninformatik) Überblick: 6. Objektorientiertes Design

Softwaretechnik (Medieninformatik) Überblick: 6. Objektorientiertes Design Softwaretechnik (Medieninformatik) Überblick: 6.1 Einleitung 6.2 Verfeinerung des Klassenmodells 6.3 Sequenzdiagramme 6.4 Umsetzung der Analysekonstrukte in das Design 6.5 Fallstudie 6.6 Software Kontrakte

Mehr

Projekt im Sommersemester 2008. Complex and Distributed IT-Systems TU Berlin

Projekt im Sommersemester 2008. Complex and Distributed IT-Systems TU Berlin Virtuelle Systeme Projekt im Sommersemester 2008 Complex and Distributed IT-Systems TU Berlin Beispiel: VMWare 24.10.2007 CIT, Einführung Projekt Virtualisierung 2 Virtualisierung 24.10.2007 CIT, Einführung

Mehr