Architektur von Informationssystemen Flashcards

Parallele und Verteilte Systeme

1
Q

Was sind parallele und verteilte Systeme?

A

Parallele Systeme: Führen viele Berechnungen gleichzeitig aus, indem Aufgaben auf mehrere Prozessoren (Kerne, GPUs, etc.) verteilt werden. Verteilte Systeme: Ein Verbund unabhängiger Computer, die sich als ein einziges System präsentieren, kommunizieren über Nachrichten, kein gemeinsamer Speicher.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was ist die Flynn’sche Taxonomie und welche Kategorien gibt es?

A

Klassifikation von Computersystemen nach Befehl- und Datenströmen:
SISD: Single Instruction, Single Data;
SIMD: Single Instruction, Multiple Data;
MISD: Multiple Instruction, Single Data;
MIMD: Multiple Instruction, Multiple Data.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Welche Arten von Parallelismus gibt es und wie unterscheiden sie sich?

A

Instruction-Level Parallelism (ILP):
Gleichzeitige Bearbeitung mehrerer Instruktionen in einem Kern.

Data Parallelism:
Verteilung von Daten auf mehrere Knoten zur parallelen Verarbeitung.

Task Parallelism:
Verteilung verschiedener Aufgaben auf mehrere Knoten zur parallelen Bearbeitung.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was ist Symmetric Multiprocessing (SMP) und welche Probleme treten dabei auf?

A

SMP:
Mehrere Prozessoren greifen über denselben Bus auf den Speicher zu.

Problem: Skalierungsprobleme, da sich die Prozessoren die Busbandbreite teilen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was ist Non-Uniform Memory Access (NUMA)?

A

Der Speicher wird auf mehrere Prozessoren aufgeteilt.
Jeder Prozessor hat einen direkt angebundenen Speicherbereich, auf den er schneller zugreifen kann als auf Speicher anderer Prozessoren.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was ist SIMD und wie funktioniert es?

A

SIMD: Single Instruction, Multiple Data – Eine Instruktion wird gleichzeitig auf mehrere Daten angewendet, wie z.B. bei der Vektoraddition.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was ist ein Computer-Cluster und wofür wird er verwendet?

A

Ein Cluster ist ein Verbund mehrerer Knoten (Computer), die über ein Netzwerk verbunden sind und zusammenarbeiten. Sie werden für rechenintensive Aufgaben oder zur Lastverteilung (Load Balancing) verwendet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was ist das Fork-Join-Pattern?

A

Eine Programmierstruktur, bei der Aufgaben
parallelisiert (Fork) und am Ende wieder zusammengeführt (Join) werden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wie wird der Speedup berechnet und was beschreibt die Effizienz?

A

Speedup:
Verhältnis der seriellen Ausführungszeit zur parallelen Ausführungszeit.

Effizienz: Gibt an, wie nah der reale Speedup am idealen Speedup ist.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Was besagt Amdahl’s Law?

A

Amdahl’s Law besagt, dass der Speedup eines Programms durch den sequentiellen Anteil begrenzt ist. Selbst bei unendlich vielen Prozessoren bleibt der serielle Anteil konstant.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Was ist Gustafson’s Law?

A

Gustafson’s Law besagt, dass der parallele Anteil eines Programms mit steigender Prozessoranzahl wächst und somit ein linearer Speedup möglich ist, wenn das Problem ausreichend groß ist.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was ist ein Enterprise Service Bus (ESB)?

A

Ein ESB dient der Integration von Diensten in einem Unternehmensnetzwerk und ermöglicht lose gekoppelte Kommunikation über einen gemeinsamen Datenbus.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was ist das OSGi-Framework?

A

Eine modulare, serviceorientierte Plattform zur Entwicklung von Java-basierten Anwendungen, die dynamisches Lifecycle-Management und Service Discovery unterstützt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was ist Message Passing und wo wird es verwendet?

A

Kommunikation in verteilten Systemen durch das Senden und Empfangen von Nachrichten, oft in Systemen ohne gemeinsamen Speicher verwendet (z.B. MPI).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Wesentlicher Unterschied paralleler und verteilter Systeme?

A

Paralleles System:
Ein eng-gekoppeltes, in sich geschlossenes System

Verteiltes System:
Ein lose-gekoppelter Verbund von mehreren in sich geschlossenes Systemen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was versteht man unter Instruction-Level Parallelism (ILP) und welche Techniken werden dabei verwendet?

A

Pipelining: Überlappende Verarbeitung von Instruktionen im Prozessorkern.

Superskalarität: Gleichzeitige Ausführung mehrerer Instruktionen durch mehrfach vorhandene Funktionseinheiten im Prozessorkern.

Out-of-Order Execution: Umsortieren der Reihenfolge von Instruktionen, um Abhängigkeiten zu reduzieren.

Der Programmierer muss sich nicht explizit darum kümmern, da dies von der Hardware oder dem Compiler automatisch vorgenommen wird.

17
Q

Was ist Data Parallelism und welche Techniken werden dabei verwendet?

A

Data Parallelism bedeutet, dass zu bearbeitende Daten auf mehrere Knoten verteilt werden, die die ihnen zugewiesenen Datenpartitionen parallel verarbeiten. Beispiele:

Matrixmultiplikation: Die Matrizen werden in Partitionen (Zeilen- oder Spaltenweise) zerteilt und auf die Kerne verteilt. Jeder Kern berechnet ein Teilergebnis, und die Teilergebnisse werden zum Gesamtergebnis zusammengeführt.

SIMD/SPMD: Dies sind klassische Formen des Datenparallelismus. Der Programmierer muss sich in der Regel explizit um die Partitionierung der Daten kümmern.

18
Q

Welche Arten der Synchronisation gibt es?

A

Fine-grained Parallelism: Hohe Abstimmung und viel Kommunikation nötig.

Coarse-grained Parallelism: Wenig Abstimmung und Kommunikation.

Embarassing Parallelism: Keine Abstimmung oder Kommunikation nötig.

Feiner-granular bedeutet höheren Overhead. Die Grenzen zwischen den Arten sind fließend.

19
Q

Welche Arten von Skalierbarkeit gibt es?

A

Lastskalierbarkeit: Anpassung des Systems an wechselnde Lastverhältnisse.

Räumliche Skalierbarkeit: Möglichkeit, das System zu vergrößern.

Zeitliche Skalierbarkeit: Einfluss des Wachstums auf die Performance.

Strukturelle Skalierbarkeit: Erweiterbarkeit des Systems um neue Funktionalitäten.

20
Q

Welche Metriken werden zur Messung von Skalierbarkeit verwendet?

A

Komplexität (O-Notation): Theoretische Vorhersage, wie sich ein System bei Größenänderung verhält, z.B. O(n²) bedeutet, dass sich die Laufzeit bei Verdoppelung der Eingangsgröße vervierfacht.

Speedup (Skalierungsfaktor): Praktische Messung, wie sich eine messbare Systemgröße bei Größenänderung konkret verändert.

21
Q

Was ist Speedup in der klassischen Definition?

A

Speedup (Sp) beschreibt das Verhältnis zwischen der Zeit, die ein Programm seriell benötigt, und der Zeit, die es parallel benötigt. Es zeigt, wie viel schneller ein Programm durch Parallelisierung wird.

22
Q

Was ist Efficiency in der klassischen Definition?

A

Efficiency (η) misst, wie nah der tatsächliche Speedup an dem idealen Speedup ist. Es zeigt, wie effizient die Parallelisierung eines Programms im Vergleich zur idealen Beschleunigung ist.

23
Q

Welche Speicher-Architekturen gibt es?

A

Shared-Memory Computer: Mehrere Prozessoren greifen auf denselben Speicher zu.

Distributed-Memory Computer: Jeder Prozessor hat seinen eigenen, getrennten Speicher.

Distributed-Shared-Memory Computer: Eine Kombination aus beiden, bei der Speicher logisch geteilt, aber physisch verteilt ist.