A modular and fault-tolerant data transport framework [Elektronische Ressource] / presented by Timm Morten Steinbeck

Dissertationsubmitted to theJoint Faculties for Natural Sciences and Mathematicsof the Ruperto Carola University ofHeidelberg, Germany,for the degree ofDoctor of Natural SciencesA Modularand Fault-TolerantData TransportFrameworkpresented byDiplom Physiker: Timm Morten Steinbeckborn in: AachenHeidelberg,Referees: Prof. Dr. Volker LindenstruthProf. Dr. Peter BastianEin modulares und fehlertolerantes Daten-Transport Software-Gerust¤Das High Level Trigger (HLT) System des zukunftigen¤ Schwerionen-Experiments ALICE muss sei-ne Eingangsdatenrate von bis zu 25 GB/s zur Ausgabe auf hochstens¤ 1.25 GB/s reduzieren bevordie Daten gespeichert werden. Zur Handhabung dieser Datenraten ist ein gro er PC Cluster geplant,der bis zu mehreren tausend Knoten skalieren soll, die uber¤ ein schnelles Netzwerk verbunden sind.Fur¤ die Software, die auf diesem System eingesetzt werden soll, wurde ein exibles Software-Gerust¤zum Transport der Daten entwickelt, das in dieser Arbeit beschrieben wird. Es besteht aus einerReihe separater Komponenten, die uber¤ eine gemeinsame Schnittstelle verbunden werden konnen.¤Auf diese Weise konnen¤ verschiedene Kon gurationen fur¤ das System einfach erstellt werden, diesogar zur Laufzeit geandert¤ werden konnen.¤ Um ein fehlertolerantes Arbeiten des HLT Systems zugewahrleisten,¤ enthalt¤ die Software einen einfachen Reparatur-Mechanismus, der es erlaubt ganzeKnoten nach einem Fehler zu ersetzen.
Publié le : jeudi 1 janvier 2004
Lecture(s) : 33
Tags :
Source : ARCHIV.UB.UNI-HEIDELBERG.DE/VOLLTEXTSERVER/VOLLTEXTE/2004/4575/PDF/DISSERTATION-STEINBECK.PDF
Nombre de pages : 251
Voir plus Voir moins

Dissertation
submitted to the
Joint Faculties for Natural Sciences and Mathematics
of the Ruperto Carola University of
Heidelberg, Germany,
for the degree of
Doctor of Natural Sciences
A Modular
and Fault-Tolerant
Data Transport
Framework
presented by
Diplom Physiker: Timm Morten Steinbeck
born in: Aachen
Heidelberg,
Referees: Prof. Dr. Volker Lindenstruth
Prof. Dr. Peter BastianEin modulares und fehlertolerantes Daten-Transport Software-Gerust¤
Das High Level Trigger (HLT) System des zukunftigen¤ Schwerionen-Experiments ALICE muss sei-
ne Eingangsdatenrate von bis zu 25 GB/s zur Ausgabe auf hochstens¤ 1.25 GB/s reduzieren bevor
die Daten gespeichert werden. Zur Handhabung dieser Datenraten ist ein gro er PC Cluster geplant,
der bis zu mehreren tausend Knoten skalieren soll, die uber¤ ein schnelles Netzwerk verbunden sind.
Fur¤ die Software, die auf diesem System eingesetzt werden soll, wurde ein exibles Software-Gerust¤
zum Transport der Daten entwickelt, das in dieser Arbeit beschrieben wird. Es besteht aus einer
Reihe separater Komponenten, die uber¤ eine gemeinsame Schnittstelle verbunden werden konnen.¤
Auf diese Weise konnen¤ verschiedene Kon gurationen fur¤ das System einfach erstellt werden, die
sogar zur Laufzeit geandert¤ werden konnen.¤ Um ein fehlertolerantes Arbeiten des HLT Systems zu
gewahrleisten,¤ enthalt¤ die Software einen einfachen Reparatur-Mechanismus, der es erlaubt ganze
Knoten nach einem Fehler zu ersetzen. Dieser Mechanismus wird in Zukunft unter Ausnutzung der
dynamischen Rekon gurierbarkeit des Systems weiter ausgebaut werden. Zur Verbindung der ein-
zelnen Knoten wird eine Kommunikationsklassenbibliothek benutzt, die von den spezi schen Netz-
werkeigenschaften, wie Hardware und Protokoll, abstrahiert. Sie erlaubt es, dass eine Entscheidung
fur¤ eine bestimmte Technologie erst zu einem spateren¤ Zeitpunkt getroffen werden muss. Die Biblio-
thek enthalt¤ bereits funktionierende Prototypen fur¤ das TCP-Protokoll sowie SCI Netzwerkkarten.
Erweiterungen konnen¤ hinzugefugt¤ werden, ohne dass andere Teile des Systems geandert¤ werden
mussen.¤ Mit dem Software-Gerust¤ wurden ausfuhrliche¤ Tests und Messungen durchgefuhrt.¤ Ihre Er-
gebnisse sowie aus ihnen gezogene Schlussfolgerungen werden ebenfalls in dieser Arbeit vorgestellt.
Messungen zeigen fur¤ das System sehr vielversprechende Ergebnisse, die deutlich machen, dass es
beim Transport von Daten eine ausreichende Leistung erreicht, um die durch ALICE gestellten An-
forderungen zu erfullen.¤
A Modular and Fault-Tolerant Data Transport Framework
The High Level Trigger (HLT) of the future ALICE heavy-ion experiment has to reduce its input
data rate of up to 25 GB/s to at most 1.25 GB/s for output before the data is written to permanent
storage. To cope with these data rates a large PC cluster system is being designed to scale to several
1000 nodes, connected by a fast network. For the software that will run on these nodes a exible
data transport and distribution software framework, described in this thesis, has been developed. The
framework consists of a set of separate components, that can be connected via a common interface.
This allows to construct different con gurations for the HLT, that are even changeable at runtime. To
ensure a fault-tolerant operation of the HLT, the framework includes a basic fail-over mechanism that
allows to replace whole nodes after a failure. The mechanism will be further expanded in the future,
utilizing the runtime reconnection feature of the framework’s component interface. To connect cluster
nodes a communication class library is used that abstracts from the actual network technology and
protocol used to retain exibility in the hardware choice. It contains already two working prototype
versions for the TCP protocol as well as SCI network adapters. Extensions can be added to the
library without modi cations to other parts of the framework. Extensive tests and measurements
have been performed with the framework. Their results as well as conclusions drawn from them are
also presented in this thesis. Performance tests show very promising results for the system, indicating
that it can ful ll ALICE’s requirements concerning the data transport.Contents
1 Introduction 15
2 Background 17
2.1 Computing Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2 Applications for a Data Transport Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.1 High-Energy and Heavy-Ion Physics Experiment Trigger Systems . . . . . . . . . . . . . . . . . 20
2.2.2 The ALICE Detector and the ALICE High Level Trigger . . . . . . . . . . . . . . . . . . . . . . 20
2.2.3 CBM Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.2.4 PANDA Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.2.5 Relation To Other Experiments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2.6 Online Video Processing & Image Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3 Overview of the Framework 31
3.1 Introduction to the Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2 Framework Design Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.3 Components Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.4 Software Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4 Utility Software 37
4.1 PCI and Shared Memory Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2 The Utility Class Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2.1 Function Encapsulation Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2.2 Functionality Replacement Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5 The Communication Class Library 49
5.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.2 Paradigms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.2.1 General Design Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.2.2 Message Communication Design Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.2.3 Blob Design Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.3 Auxiliary Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.3.1 Data Format Translation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.3.2 Address Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.3.3 Message Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.3.4 Error Callbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.3.5 Address URL Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.4 Communication Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.4.1 The Basic Interface Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.4.2 The TCP Communication Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.4.3 The SCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6 The Publisher-Subscriber Framework Interface 75
6.1 The Publisher Interface Principle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
6.2 Auxiliary Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.2.1 Flat Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.2.2 Structure Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
6.3 The Interface De nition Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
56 CONTENTS
6.3.1 The Publisher Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
6.3.2 The Subscriber Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
6.4 The Proxy Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
6.4.1 The Pipe Proxy Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
6.4.2 The Shared Memory Proxy Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.4.3 The Subscription Loop Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.5 The Publisher Implementation Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.5.1 The Sample Publisher Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.5.2 The Detector Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
6.5.3 The RePublisher Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.5.4 The Processing Component Publisher Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.5.5 The Publisher Bridge Head Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.6 The Subscriber Implementation Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.6.1 The Detector Subscriber Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.6.2 The Processing Component Subscriber Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.6.3 The Subscriber Bridge Head Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
7 The Framework Components 97
7.1 Data Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
7.1.1 Event Merger Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
7.1.2 Event Scatterer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
7.1.3 Event Gatherer Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
7.1.4 Bridge Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
7.1.5 Trigger Filter Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
7.2 Application Component Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
7.2.1 Data Source Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
7.2.2 Data Processor Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
7.2.3 Data Sink Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
7.3 Generic Worker Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
7.3.1 Random Trigger Decision Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
7.3.2 Block Comparer Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
7.3.3 Event Dropper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
7.3.4 Event Keeper Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.3.5 Event Supervisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.3.6 File Publisher Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.3.7 Dummy Load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.3.8 Data Writer Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.3.9 Event Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.4 TPC Analysis Components for the ALICE High Level Trigger . . . . . . . . . . . . . . . . . . . . . . . 112
7.4.1 The ADC Unpacker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
7.4.2 The Cluster Finder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
7.4.3 The Vertex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
7.4.4 The Tracker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
7.4.5 The Patch Internal Track Merger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
7.4.6 The Patch Track Merger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
7.4.7 The Slice Track Merger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
7.4.8 Future Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
7.4.9 The Whole Chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
7.5 Fault Tolerance Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
7.5.1 Framework Fault Tolerance Concept Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
7.5.2 Control and Monitoring Communication Classes . . . . . . . . . . . . . . . . . . . . . . . . . . 116
7.5.3 Fault Tolerance Detection Subscriber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
7.5.4 Fault T Supervisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
7.5.5 Bridge Fault Tolerance Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
7.5.6 Fault Tolerant Event Scatterer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
7.5.7 Fault T Event Gatherer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
7.5.8 Fault Tolerant Bridge Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125CONTENTS 7
8 Benchmarks and System Tests 129
8.1 Micro-Benchmarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
8.1.1 Logging Overhead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
8.1.2 Cache and Memory Reference Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
8.2 CPU Usage Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
8.3 Network Reference Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
8.3.1 TCP Network Reference Throughput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
8.3.2 TCP Network Latency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
8.3.3 Network Reference Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
8.4 Communication Class Benchmarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
8.4.1 TCP Message Class Throughput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
8.4.2 TCP Class Latency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
8.4.3 TCP Message Benchmark Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
8.4.4 TCP Blob Class Throughput with On-Demand Allocation . . . . . . . . . . . . . . . . . . . . . 152
8.4.5 TCP Blob Class with Preallocation . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
8.4.6 TCP Blob Class Latency with On-Demand Allocation . . . . . . . . . . . . . . . . . . . . . . . 165
8.4.7 TCP Blob Classy with Preallocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
8.4.8 TCP Blob Benchmark Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
8.4.9 TCP Communication Class Benchmark Summary . . . . . . . . . . . . . . . . . . . . . . . . . . 170
8.5 Publisher-Subscriber Interface Benchmarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
8.5.1 Timing Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
8.5.2 Scaling Behaviour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
8.5.3 Future Optimization Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
8.6 Framework System Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
8.6.1 ALICE HLT Proton-Proton Performance Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
8.6.2 Framework Fault Tolerance Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
8.6.3 System Tests Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
9 Conclusion and Outlook 181
A Benchmark Supplement 183
A.1 Microbenchmark Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
A.1.1 Logging Overhead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
A.2 Minimal Benchmark Process List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
B Benchmark Result Tables 187
B.1 Micro-Benchmarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
B.1.1 Cache and Memory Reference Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
B.2 Network Reference Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
B.2.1 TCP Network Reference Throughput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
B.2.2 TCP Network Latency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
B.3 Communication Class Benchmarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
B.3.1 TCP Message Class Throughput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
B.3.2 TCP Class Latency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
B.3.3 TCP Blob Class Throughput with On-Demand Allocation . . . . . . . . . . . . . . . . . . . . . 216
B.3.4 TCP Blob Class with Preallocation . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
B.3.5 TCP Blob Class Latency with On-Demand Allocation . . . . . . . . . . . . . . . . . . . . . . . 234
B.3.6 TCP Blob Classy with Preallocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
B.4 Publisher-Subscriber Interface Benchmarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
B.4.1 Scaling Behaviour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
C Obsolete Framework Components 237
C.1 ALICE DAQ Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
C.1.1 The DATE Subscriber Base Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
C.1.2 The Direct DATE Subscriber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
C.1.3 The Triggered DATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
D Glossar 2398 CONTENTSList of Figures
2.1 The ALICE experiment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2 Sample architecture and topology of the HLT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.3 The CBM Detector. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.1 Principle of a data driven architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2 Example of persistent and transient subscribers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.3 Sample HLT Component Con guration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.4 The modules making up the framework and their dependencies. . . . . . . . . . . . . . . . . . . . . . . . 35
4.1 The virtual device tree structure of the PSI driver. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.2 The strings for the PSI driver region types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.3 A sample usage of the logging system. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.4 The de nition of the main logging macro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.5 Processor instructions generated for the log severity level test. . . . . . . . . . . . . . . . . . . . . . . . 41
4.6 The classes used in the logging system. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.7 Sample sequence of calls in the logging system. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.8 Dispatching principle in the fault tolerance handler class. . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.9 Event distributions of the fault handler class. . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.1 Sample data type declaration using the BCL type de nition language. . . . . . . . . . . . . . . . . . . . 53
5.2 Data structure generated from the sample vstdl data type. . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.3 A sample UML hierarchy of data types for data transformation. . . . . . . . . . . . . . . . . . . . . . . . 54
5.4 vstdl types for basic, SCI, and TCP addresses. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.5 The vstdl type de ning the basic message header. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.6 UML diagram of the BCLErrorCallback class. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.7 The three error callback classes in the library. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.8 TCP and SCI address URL format. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.9 The UML class hierarchy of the primary communication class. . . . . . . . . . . . . . . . . . . . . . . . 56
5.10 UML class diagram of BCLCommunication’s main features. . . . . . . . . . . . . . . . . . . . . . . . . 57
5.11 UML class of BCLMsgCommunication’s main features. . . . . . . . . . . . . . . . . . . . . . . 59
5.12 UML class diagram of BCLBlobCommunication’s main . . . . . . . . . . . . . . . . . . . . . . 59
6.1 Hierarchy of the classes making up the publisher-subscriber interface. . . . . . . . . . . . . . . . . . . . 75
6.2 Publisher-subscriber principle of communication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
6.3 of communication UML sequence diagram. . . . . . . . . . . . . . . . . . 77
6.4 De nition of theAliHLTSubEventDataBlockDescriptor datatype. . . . . . . . . . . . . . . . . 79
6.5 of theAliHLTSubEventDataDescriptor datatype. . . . . . . . . . . . . . . . . . . . . 79
6.6 UML class diagram ofAliHLTPublisherInterface. . . . . . . . . . . . . . . . . . . . . . . . . . 80
6.7 UML class ofAliHLTSubscriberInterface. . . . . . . . . . . . . . . . . . . . . . . . . 81
6.8 UML class diagram of the two proxy interface classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
6.9 The memory block read and write functions of the pipe communication class. . . . . . . . . . . . . . . . 83
6.10 The header structure read and write of the pipe class. . . . . . . . . . . . . . . 83
6.11 Publisher pipe proxy interface and pipe communication class UML diagram. . . . . . . . . . . . . . . . . 84
6.12 Subscriber pipe proxy interface and pipe class UML . . . . . . . . . . . . . . . 85
6.13 The memory block interface of the shared memory communication class. . . . . . . . . . . . . . . . . . 86
6.14 The block header read interface of the shared memory class. . . . . . . . . . . . . . . . . 86
6.15 The direct access interface of the shared memory class. . . . . . . . . . . . . . . . . . . 86
910 LIST OF FIGURES
6.16 Shared memory publisher proxy and communication classes UML diagram. . . . . . . . . . . . . . . . . 87
6.17 subscriber proxy and UML . . . . . . . . . . . . . . . 88
6.18 UML class diagram of the publisher implementation classes. . . . . . . . . . . . . . . . . . . . . . . . . 89
6.19 AliHLTSamplePublisher external API functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6.20 con gurable . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.21 callback functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.22 AliHLTDetectorPublisher abstract callback functions. . . . . . . . . . . . . . . . . . . . . . . . 92
6.23 Sample calling sequence for the processing subscriber and republisher classes. . . . . . . . . . . . . . . . 93
6.24 UML class diagram of the subscriber implementation classes. . . . . . . . . . . . . . . . . . . . . . . . . 94
6.25 Processing subscriber object event done sequence 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.26 Processing subscriber object event done sequence 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
7.1 The relation of the different classes in theEventMerger component. . . . . . . . . . . . . . . . . . . . 98
7.2 A sample calling sequence for the different classes in theEventMerger component. . . . . . . . . . . 98
7.3 The relation of the different classes in theEventScatterer component. . . . . . . . . . . . . . . . . 99
7.4 A sample calling sequence for the different classes in theEventScatterer component. . . . . . . . . 100
7.5 Interface functions provided by theAliHLTEventScatterer class. . . . . . . . . . . . . . . . . . . 100
7.6 The relation of the different classes in theEventGatherer component. . . . . . . . . . . . . . . . . . 101
7.7 A sample calling sequence for the different classes in theEventGatherer component. . . . . . . . . . 101
7.8 AliHLTBaseEventGatherer functions andEventGathererData structure. . . . . . . . . . . . 102
7.9 The classes in the bridge components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
7.10 Calling sequence in the bridge components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
7.11 Sequence diagram for aTriggeredFilter component. . . . . . . . . . . . . . . . . . . . . . . . . . 106
7.12 The classes in the trigger lter component. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
7.13 The three application component template types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
7.14 BlockComparer sample setup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
7.15 TPC analysis component sequence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
7.16 Sample fault tolerance component setup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
7.17 The six main classes for monitoring and control of components. . . . . . . . . . . . . . . . . . . . . . . 116
7.18 The main classes used in theEventScatterer component. . . . . . . . . . . . . . . . . . . . . . . . 123
7.19 The main used in theEventGatherer . . . . . . . . . . . . . . . . . . . . . . . . 124
8.1 733 MHz cache and memory subsystem measurement plots. . . . . . . . . . . . . . . . . . . . . . . . . 131
8.2 800 MHz cache and plots. . . . . . . . . . . . . . . . . . . . . . . . . 132
8.3 933 MHz cache and memory subsystem plots. . . . . . . . . . . . . . . . . . . . . . . . . 133
8.4 The measured network reference sending rates as a function of the block count. . . . . . . . . . . . . . . 135
8.5 The network rates (plateau). . . . . . . . . . . . . . . . . . . . . . . . . . . 136
8.6 The application level network reference throughput (plateau). . . . . . . . . . . . . . . . . . . . . . . . . 136
8.7 CPU usage during TCP reference sending (plateau). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
8.8 CPU usage divided by the sending rate during TCP reference sending (plateau). . . . . . . . . . . . . . . 137
8.9 CPU usage per MB/s network throughput during TCP sending . . . . . . . . . . . . 138
8.10 The measured network reference sending rates (peak). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
8.11 The application level network reference throughput for TCP sending (peak). . . . . . . . . . . . . . . . . 139
8.12 CPU usage during TCP reference sending (peak). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
8.13 CPU usage divided by the sending rate during TCP reference sending (peak). . . . . . . . . . . . . . . . 141
8.14 CPU usage per MB/s network throughput during TCP reference sending (peak). . . . . . . . . . . . . . . 141
8.15 Network reference average latency measurements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
8.16 The measured message sending rates as a function of the message count. . . . . . . . . . . . . . . . . . . 144
8.17 The rates (plateau). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
8.18 The application level network throughput for TCP message sending (plateau). . . . . . . . . . . . . . . . 145
8.19 CPU usage during TCP message sending (plateau). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
8.20 CPU usage divided by the sending rate during TCP message sending (plateau). . . . . . . . . . . . . . . 146
8.21 CPU usage per MB/s network throughput during TCP message sending (plateau). . . . . . . . . . . . . . 146
8.22 The measured message sending rates (peak). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
8.23 The application level network throughput for TCP message sending (peak). . . . . . . . . . . . . . . . . 148
8.24 CPU usage during TCP message sending (peak). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
8.25 CPU usage divided by the sending rate during TCP message sending (peak). . . . . . . . . . . . . . . . . 149
8.26 CPU usage per MB/s network throughput during TCP sending (peak). . . . . . . . . . . . . . . 149
8.27 Message latency measurements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

Soyez le premier à déposer un commentaire !

17/1000 caractères maximum.