35
Nöthnitzer Straße 46 Informatik, Raum 1027 Tel. +49 351 - 463 - 38537 Daniel Hackenberg ([email protected]) Zentrum für Informationsdienste und Hochleistungsrechnen (ZIH) Über die Cell/B.E.-Architektur: Optionen zur Generierung von Programm-Traces Verantwortlicher Hochschullehrer: Prof. Dr. Wolfgang E. Nagel Betreuer: Dr. Holger Brunst Diplomverteidigung

Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

  • Upload
    hathuan

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Nöthnitzer Straße 46

Informatik, Raum 1027

Tel. +49 351 - 463 - 38537

Daniel Hackenberg ([email protected])

Zentrum für Informationsdienste und Hochleistungsrechnen (ZIH)

Über die Cell/B.E.-Architektur:Optionen zur Generierung von Programm-Traces

Verantwortlicher Hochschullehrer:

Prof. Dr. Wolfgang E. Nagel

Betreuer: Dr. Holger Brunst

Diplomverteidigung

Page 2: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 2

Gliederung

Einleitung

Software-Tracing auf Cell-Prozessoren

Implementierung und Funktionalität

Ergebnisse und Overhead-Betrachtung

Zusammenfassung und Ausblick

Page 3: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 3

Einleitung

Software-Tracing auf Cell-Prozessoren

Implementierung und Funktionalität

Ergebnisse und Overhead-Betrachtung

Zusammenfassung und Ausblick

Page 4: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 4

Cell Broadband Engine

PowerPC Processor Element (PPE)

SPE

PowerPC Core

SPU

Element Interconnect Bus (EIB)

Memory Interface Controller (MIC)

LS

SPU

LS

SPU

LS

SPU

LS

SPU

LS

SPU

LS

SPU

LS

SPU

LS

L1L2Bus Interface Controller

(BIC)

Dual XDR FlexIO

SPE: Synergistic Processor Element

LS: Local Store

Page 5: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 5

Cell Broadband Engine

Prozessor stellt erhebliche Ressourcen bereit

– SPEs: SIMD-Kerne für schnelle Berechnungen, 256 KB lokaler Speicher (LS) unter Software-Kontrolle, dedizierter DMA-Controller (MFC)

– PPE: sehr einfacher Kern für Betriebssystem (Linux) und Kontroll-Tasks

– Kohärente SMP-Konfiguration mit zwei CPUs möglich: 2 PPEs und 16 SPEs

Komplexe Architektur bedingt aufwendige Programmierung

– Verschiedene Compiler und Programme für PPE und SPEs

– SPEs greifen mit DMA-Kommandos auf Hauptspeicher oder lokalen Speicher anderer SPEs zu, asynchrone Bearbeitung durch MFC

– Mailbox-Kommunikation zwischen PPE and SPEs möglich

Erleichterung der Software-Entwicklung durch geeignete Werkzeuge notwendig

Page 6: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 6

Software-Tracing

Bewährte Methode zur Analyse komplexer Programme

Modifizierte Anwendung erzeugt zur Laufzeit Ereignisse mit Zeitstempel

Typische Ereignisse:

– Ein-/Austritt von Funktionen bzw. Regionen

– Nachrichten zwischen parallelen Prozessen, z. B. durch MPI

– andere Monitoring-Daten, z. B. aus Performance-Countern

Ereignisse werden in „Traces“ gespeichert

Auswertung der Traces z. B. durch Visualisierung

Page 7: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 7

Vampir

VampirTrace: freies Trace-Werkzeug

– Unterstützt u.a. MPI, OpenMP, Regionen, Hardware-Counter

– Erzeugt Programm-Traces im Open Trace Format (OTF)

– Trace-Analyse mit Vampir möglich

Vampir: Visualisierung und Auswertung von Trace-Daten

– Verschiedene Displays (z. B. Timelines)

– Verschiedene statistische Auswertungen

– Analyse der Effizienz von Berechnungen und Kommunikation

– Parallele Version unterstützt extrem große Programm-Traces

Page 8: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 8

Einleitung

Software-Tracing auf Cell-Prozessoren

Implementierung und Funktionalität

Ergebnisse und Overhead-Betrachtung

Zusammenfassung und Ausblick

Page 9: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 9

Software-Tracing auf Cell-Prozessoren

PPE-seitig

– Bewährte Werkzeuge mit PowerPC-Unterstützung voll lauffähig

– Modifikationen zur Unterstützung von SPE-Threads notwendig

SPE-seitig

– Neues Konzept benötigt, passend zur Architektur

– Geeignete Instrumentierung erzeugt Ereignisse

– Lokaler Speicher zu klein, nur Zwischenspeicherung der Ereignisse

– Übertragung der Daten in den Hauptspeicher per DMA möglich

Page 10: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 10

Trace-Konzept für die Cell-Architektur

Haupt-

Speicher

PPE

SPE 0

Element Interconnect Bus

Local Store

SPU 0

Buf 1

Buf 1/0

Buf 2/0

Buf 3/0

Buf m/0

...Herkömmliches Monitoring-

Werkzeug; erweitert, um u.a.

Mailbox-Kommunikation mit

SPEs zu erfassen

Instrumentiertes

SPE-Programm

Instrumentiertes

PPE-Programm

SPE-Programm

schreibt Trace-

Ereignisse in

kleine Trace-

Puffer

I/O System

Trace-Datei PPE

Trace-Datei SPE 0

Trace-Datei SPE 0

... PPE

verarbeitet

Trace-Puffer

der SPEs

(post mortem)

und schreibt

Ereignisse in

Trace-Dateien

DMA-Transfer

der vollen Trace-

Puffer in den

Hauptspeicher,

SPE-Programm

läuft weiter

Buf 1/n

Buf 2/n

Buf 3/n

Buf m/n

...

*

SPE n

Local Store

SPU n

Buf 1

Buf 2Buf 2

...

Puffer wechseln, sobald der

aktuelle Trace-Puffer voll ist*

Instrumentiertes

SPE-Programm

Page 11: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 11

Trace-Visualisierung für die Cell-Architektur (1)

Instanz

Klassische Timeline-Darstellung von parallelen Programmen

Page 12: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 12

Trace-Visualisierung für die Cell-Architektur (2)

Instanz

Darstellung der SPE-Threads als „Kinder“ des PPE-Prozesses

Page 13: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 13

Trace-Visualisierung für die Cell-Architektur (3)

Instanz

Darstellung von Mailbox-Übertragungen

Klassische zweiseitige Kommunikation (send/receive)

Analog zu MPI-Nachrichten durch Linien/Pfeile abgebildet

Page 14: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 14

Trace-Visualisierung für die Cell-Architektur (4)

Instanz

Darstellung von DMA-Zugriffen der SPEs auf den Hauptspeicher

Virtueller Prozess-Balken repräsentiert den Hauptspeicher

Spezielle Markierung der Hauptspeicherzugriffe möglich

Page 15: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 15

Trace-Visualisierung für die Cell-Architektur (5)

Instanz

DMA-Transfers zwischen SPEs

Klassische Send/Receive-Darstellung ungeeignet

Zusätzliche Linie ermöglicht Unterscheidung von aktivem und passivem Partner

Instanz

DMA get DMA put

Page 16: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 16

Instanz

Trace-Visualisierung für die Cell-Architektur (6)

t_0 = get_timestamp();

mfc_get();

[...]

t_1 = get_timestamp();

wait_for_dma_tag();

t_2 = get_timestamp();

Warte-Operation bei DMA-Transferserzeugt zwei Ereignisse (bei t1 und t2)

Ermöglicht Markierung der Wartezeit

Analoge Vorgehensweise bei Mailbox-Nachrichten

Page 17: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 17

Einleitung

Software-Tracing auf Cell-Prozessoren

Implementierung und Funktionalität

Ergebnisse und Overhead-Betrachtung

Zusammenfassung und Ausblick

Page 18: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 18

Implementierung (1)

Beispielhafte Implementierung des Konzepts basiert auf VampirTrace (VT)

VT-Modifikationen erforderlich, beispielsweise:

– Schnittstellen zur SPE-Thread-Erzeugung und Initialisierung

– Schnittstellen für PPE-seitige Mailbox-Kommunikation

– Infrastruktur zur Auswertung der SPE-Ereignisdaten und Erzeugung der Trace-Files

Keine Abhängigkeiten zum Cell-SDK

Initialisierung erfolgt vor Start der SPE-Threads, Auswertung nach Ende der SPE-Threads � Vermeidung von PPE-Overhead zur SPE-Laufzeit

Page 19: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 19

Implementierung (2)

Zusätzliches Werkzeug: CellTrace

Header-Dateien für PPE- und SPE-Programme: Instrumentierung von Inline-Funktionen der Header-Dateien aus dem Cell-SDK

Bibliothek für PPE-Programme

– Enthält alle Cell-spezifischen Funktionen für das Tracing

– Modifikation des PPE-Programms: Makro nach Erzeugung der SPE-Threads aufrufen

Bibliothek für SPE-Programme

– Erzeugt SPE-Ereignisse im lokalen Speicher

– Verwaltet Trace-Puffer im lokalen Speicher

– Modifikation des SPE-Programms: Makro zu Beginn von main() aufrufen

– Manuelle Instrumentierung von SPE-Funktionen

Page 20: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 20

Implementierung (3)

Programm-Übersetzung mit CellTrace und VampirTrace

Page 21: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 21

Trace-Visualisierung mit Vampir (1)

Erzeugte OTF-Traces können mit Vampir analysiert werden

Keine Vampir-Modifikation erfolgt, bestehende Funktionen zur Darstellung von MPI-Kommunikation werden genutzt

Page 22: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 22

Trace-Visualisierung mit Vampir (2)

Page 23: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 23

Einleitung

Software-Tracing auf Cell-Prozessoren

Implementierung und Funktionalität

Ergebnisse und Overhead-Betrachtung

Zusammenfassung und Ausblick

Page 24: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 24

Komplexe Cell-Anwendungen: FFT (1)

FFT an Synchronisationspunktacht SPEs, 64 KByte Seitengröße, 11,9 GFLOPS

Page 25: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 25

Komplexe Cell-Anwendungen: FFT (2)

FFT an Synchronisationspunktacht SPEs, 16 MByte Seitengröße, 42,9 GFLOPS

Page 26: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 26

Komplexe Cell-Anwendungen: RAxML (1)

RAxML (Randomized Accelerated Maximum Likelihood)mit acht SPEs, Startphase

Page 27: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 27

Komplexe Cell-Anwendungen: RAxML (2)

RAxML mit acht SPEs, 4000ns FensterVergrößerung einer kurzen Schleife

versetzter Start, gleichmäßige Laufzeit

Page 28: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 28

Komplexe Cell-Anwendungen: RAxML (3)

RAxML mit acht SPEs, 4000ns FensterVergrößerung einer kurzen Schleife (modifiziert)synchroner Start, Konkurrenz um Hauptspeicher

Page 29: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 29

Komplexe Cell-Anwendungen: RAxML (4)

RAxML mit 16 SPEs, Lastverteilungsproblem

Page 30: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 30

Hybride Cell/MPI-Anwendungen: PBPI

PBPI (Parallel Bayesian Phylogenetic Inference)auf drei QS21-Blades (sechs Cell-Prozessoren)

Page 31: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 31

CellTrace-Overhead

Overhead-Ursachen

– Erzeugen der Ereignisse

– Übertragen der Ereignisdaten aus dem lokalen Speicher der SPEs in den Hauptspeicher

– Belegung von Speicherplatz im lokalen Speicher (Trace-Puffer und Trace-Bibliothek), unter 12 KByte

Praktische Overhead-Messungen (QS21, 8 SPEs)

1,7 %5,645,73Cholesky, STRSM

9,2 % (*)4,104,48Cholesky, DGEMM

2,8 %139,32143,17Cholesky, SPOTRF

0,7 %11,8511,93FFT

1,3 %200,73203,25SGEMM

OverheadTracing (GFLOPS)Original (GFLOPS)

(*) Erhöhter Overhead durch intensive Nutzung von DMA-ListenTrace-Overhead ohne DMAs: 1,4 %

Page 32: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 32

Einleitung

Software-Tracing auf Cell-Prozessoren

Implementierung und Funktionalität

Ergebnisse und Overhead-Betrachtung

Zusammenfassung und Ausblick

Page 33: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 33

Zusammenfassung

Konzept für Software-Tracing auf der Cell-Architektur vorgestellt

Prototypische Implementierung: CellTrace

– Ermöglicht Aufzeichnung von Cell-spezifischen Ereignissen

– Trace-Overhead typischerweise unter fünf Prozent

Visualisierung der Ereignisdaten mit Vampir möglich

– Wertvolle Einblicke in Laufzeitverhalten von Cell-Anwendungen

– Intuitive Performance-Analyse und –Optimierung

– Begleitende Nutzung bei Software-Entwicklung möglich

Unterstützung für große, hybride Cell/MPI-Anwendung

Page 34: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 34

Ausblick

Mögliche Verbesserungen beim Tracing:

– Vollständige Integration in VampirTrace

– Effizientere Erzeugung der SPE-Traces möglich, erfordert Unterstützung von einseitiger Kommunikation durch OTF und Vampir

– Nutzung zusätzlicher Analysemöglichkeiten wie Alignment-Checks

Mögliche Verbesserungen bei der Visualisierung:

– Anzeige der Kommunikator-Namen

– Einfärbung von DMA-Nachrichten nach DMA-Tag, Größe oder Bandbreite

– Darstellung der Intensität von Hauptspeicher-Zugriffen auf Basis der Bandbreiten

Page 35: Über die Cell/B.E.-Architektur: Optionen zur Generierung ... · – Kohärente SMP-Konfigurationmit zwei CPUs möglich: 2 PPEsund 16 SPEs Komplexe Architektur bedingt aufwendige

Daniel Hackenberg 35

Literatur (Auszug)

BRUNST, Holger; NAGEL, Wolfgang E.: Scalable Performance Analysis of Parallel Systems: Concepts and Experiences. ParCo 2003

BLAGOJEVIC et. al.: Scheduling Asymmetric Parallelism on a PlayStation3 Cluster. To appear in ISCCG 2008

BLAGOJEVIC et. al.: Dynamic multigrain parallelization on the Cell Broadband Engine. ACM SIGPLAN 2007

Hermanns, M.-A.; Mohr, B.; Wolf, F.: Event-Based Measurement and Analysis of One-Sided Communication. Euro-Par 2005

KURZAK, Jakub; BUTTARI, Alfredo; DONGARRA, Jack: Solving Systems of Linear Equations on the CELL Processor Using Cholesky Factorization. IEEE Transactions on Parallel and Distributed Systems 2007

JURENZ, Matthias: VampirTrace Software and Documentation. ZIH, TU-Dresden. 2007

KNÜPFER et. al.: Introducing the Open Trace Format (OTF). ICCS 2006

IBM, SCEI, Toshiba: Cell Broadband Engine Architecture. 2005

IBM, Sony, Toshiba: Cell Broadband Engine Programming Handbook. 2007

EICHENBERGER et. al.: Using advanced compiler technology to exploit the performance of the Cell Broadband Engine architecture. IBM Systems Journal 45, 2006

CHOW, Alex C.; FOSSUM, Gordon C.; BROKENSHIRE, Daniel A.: A Programming Example: Large FFT on the Cell Broadband Engine. 2005

HACKENBERG, Daniel: Einsatz und Leistungsanalyse der Cell Broadband Engine. ZIH, TU-Dresden. 2007