E16実験へのDAQ-Middlewareの応用 - kek

E16実験へのDAQ-Middlewareの応用
濱田英太郎, 田中真伸, 内田智久, 池野正弘, 千代浩司, 四日市悟A, 小沢恭一郎,
森野雄平A, 高橋智則A, 中井恒BA, 川間大介A, 小原裕貴B
KEK素核研, 理研A, 東大理B
2014/3/30
日本物理学会
1
目次
・E16実験について
・DAQ-Middlewareについて
・作成したプロトタイプの紹介
– 概要
– 2つの特徴
– DAQ性能
・まとめ
2014/3/30
日本物理学会
2
E16実験
• 茨城県東海村 J-PARCハドロン実験施設で開始予定
• ベクトル中間子の質量変化現象を高統計・高分解能で測定
2014/3/30
日本物理学会
3
自分の担当
~96000 ch (56000+40000)
GEM
CERN RD51 SRS
APV25-hybrd
Junction box
Tracker
HBD
Gas Cherenkov
TRG-ADTX
(ASD)
DAQ-Middlewareを用いて、
DTC-LINK
データ収集、保存、解析を行なう
SRS ADC+FEC
SRS SRU
ソフトウェアを作成
SRS CTF
Belle2 FTSW
or
alternative
TRG-MRG
(MUX, GTX)
Belle2 UT-3
Network
switch
DAQ
PC
450MB/s
Leadglass
EMCAL
LG-FEM
3“ PMT
SRS SRU
~1000 ch
Shaper + FADC
Discri + DRS4
2014/3/30
SRS CTF
Data flow
Trigger primitive
Global clock, global trigger
DTC-LINK
日本物理学会
4
DAQ-Middleware ネットワーク分散
ネットワーク分散
分散して配置されたノード同士が連携
して通信するネットワークを形成
PC2
PC1
PC3
PC4
Daq
Operator
2014/3/30
日本物理学会
5
E16実験 DAQソフトウェア開発状況
• PC1台を用いて構成されるプロトタイプを作成、評価
• プロトタイプを利用して、全体の構築を行なっていく
Daq
Operator
2014/3/30
日本物理学会
6
E16実験用プロトタイプ 概要
1リードアウトモジュール
から送られるデータ
PC
平均
・
・
・
Logger
Gatherer Dispatcher
1イベントあたりの
データサイズ
14kB
トリガーレート
1kHz
最大値
45kB
2kHz
Monitor
•
•
•
•
Gatherer
Dispacher
Logger
Monitor
2014/3/30
:複数のリードアウトモジュールからデータを読み込み
:Gathererから受け取ったデータを、LoggerとMonitorに送信
:全データをPCのハードディスクに保存
: 一定期間ごとにデータをモニタリング
日本物理学会
7
特徴1 リングバッファの拡大
①受信したデータは、
リングバッファに格納
②プログラムが
バッファから
データを取得
Loggerコンポーネントでリング
バッファが小さい場合
①ハードディスクの書き込みにレイ
テンシが発生するときがある
(しばらく書き込めない)
PC
・
・
・
②書きこめない間、処理が進まない
Logger
③リングバッファにデータが溜まっ
ていき、あふれてしまうことがある
Monitor
④ソフトウェア全体が適切に動作し
ない
Gatherer Dispatcher
リングバッファを大きくする(最新の追加機能)
HD書き込みのレイテンシの問題を解決
2014/3/30
日本物理学会
8
特徴2 コンポーネント間通信処理オーバヘッドの軽減
オーバヘッド
コンポーネント間でのデータのやり取りを行なう際の
転送以外の処理
多いとDAQ性能の低下につながる
Logger
Gatherer Dispatcher
影響を小さくする方法
 コンポーネント間のデータのやり取りを少なくする
 データをまとめる
1イベントごとに次の
1event コンポーネントへ送る
→オーバヘッド大きい
2014/3/30
Monitor
200KB 200KBたまったら次の
コンポーネントへ送る
→オーバヘッド小さい
日本物理学会
9
DAQ性能
PC
(DAQ PC)
テスト環境
PC
(エミュレータ)
CPU
Memory
OS
Intel(R) Xeon(R)
X5650 @ 2.67GHz
6コア
24GB
Scientific Linux 6.4
1リードアウトモジュール
から送られるデータ
平均
最大値
1イベントあたりの
データサイズ
14kB
45kB
トリガーレート
1kHz
2kHz
2014/3/30
DAQ-MW
テスト方法
エミュレータPCからDAQ PCにテストデータを送信
送ったデータの転送速度とプロトタイプの処理速
度を比較
日本物理学会
10
DAQ性能
PC
(DAQ PC)
テスト環境
PC
(エミュレータ)
CPU
Memory
OS
DAQ-MW
Intel(R) Xeon(R)
X5650 @ 2.67GHz
6コア
24GB
Scientific Linux 6.4
テスト結果
1リードアウトモジュール
から送られるデータ
平均
最大値
1イベントあたりの
データサイズ
14kB
45kB
トリガーレート
1kHz
2kHz
2kHzまで、プロトタイプは送られた
データ全てを処理している
2014/3/30
日本物理学会
11
DAQ性能
PC
(DAQ PC)
テスト環境
PC
(エミュレータ)
CPU
Memory
OS
DAQ-MW
Intel(R) Xeon(R)
X5650 @ 2.67GHz
6コア
24GB
Scientific Linux 6.4
テスト結果
1リードアウトモジュール
から送られるデータ
平均
最大値
1イベントあたりの
データサイズ
14kB
45kB
トリガーレート
1kHz
2kHz
2kHzまで、プロトタイプは送られた
データ全てを処理している
2014/3/30
日本物理学会
12
まとめ
• E16実験DAQのソフトウェアを開発
現在は、1PCで動くプロトタイプを作成
• E16実験用プロトタイプ
特徴
– リングバッファの拡大
– コンポーネント間通信処理オーバヘッドの軽減
性能
– リードアウトモジュール1台の場合、実験の想定された性能を満たしている
• 今後の予定
– 多くのエミュレータを用意した場合のテスト
– プロトタイプを用いて、システム全体の設計を行なっていく
2014/3/30
日本物理学会
13
Backup
2014/3/30
日本物理学会
14
DAQ性能
PC
(DAQ PC)
テスト環境
PC
(エミュレータ)
CPU
Memory
OS
Intel(R) Xeon(R)
X5650 @ 2.67GHz
6コア
24GB
Scientific Linux 6.4
PC
(エミュレータ)
DAQ PCに求められる性能
平均
最大値
1イベントあたりの
データサイズ
14kB
45kB
トリガーレート
1kHz
2kHz
DAQ-MW
スケーラブルの変化ではない
テスト結果
Gathererコンポーネントをが1
つのCPUコアで処理されている
から
2kHzまで、プロトタイプは送られた
データ全てを処理している
2014/3/30
日本物理学会
15
コンポーネントの考えている構成
考えている構成
PC
・
・
・
Logger
Gatherer Dispatcher
Gatherコンポーネントを1つのCPUコアで
処理を行なっている
(2つ以上のモジュールを読む場合でも)
Monitor
PC
今
Gatherコンポーネントを1つのCPUコアで
処理を行なっている
(2つ以上のモジュールを読む場合でも)
Logger
Dispatcher
Gatherer
2014/3/30
日本物理学会
Monitor
16
全テスト結果
2014/3/30
日本物理学会
17
PC使用率
TOPコマンドを用いて、Gathererコ
ンポーネントのCPU使用率を取得
1イベントあたりのデータ量が上
がるにつれてCPU使用率も上昇
CPU使用率[%]
trigger rateをあがるにつれてCPU
使用率も上昇
120
100
45kB x 1
80
14kB x 1
3.3kB x 1
60
14kB x 2
40
3.3kB x 2
20
0
0
2014/3/30
日本物理学会
1000
2000
3000
trigger rate [Hz]
4000
18
overhead 性能テスト
1イベントあたりの
データ量
14kBの場合
2014/3/30
日本物理学会
19
DAQ性能
テスト環境
PC
(エミュレータ)
PC
CPU
Memory
OS
Intel(R) Xeon(R)
X5650 @ 2.67GHz
6コア
24GB
Scientific Linux 6.4
•
1イベントのデータを16回かけて送信
•
実験では、1kHz~2kHz
この間では、問題ない
•
2modulesにすると、性能が落ちる
Gatherが1コアで処理を行なって
いるから
2014/3/30
日本物理学会
DAQ-MW
20
4components
SourceはDispacherに、データを送ります。
Dispacherは、exampleと変わっていません。2
つのSinkにデータを送ります。
Source,Sinkは千代さんが以前、性能テストで
使ったコンポーネントと同じことを行なっていま
す。
各BufferSizeを5分間測定したときの結果です。
(MB/s)
Source
Dispacher
Sink
Sink
の4つのコンポーネント
350
300
250
200
150
100
50
0
0
500
1000 1500 2000
Buffer size(kB)
2500
4components
SourceはDispacherに、データを送ります。
Dispacherは、exampleと変わっていません。2つの
Sinkにデータを送ります。
Source,Sinkは千代さんが以前、性能テストで使っ
たコンポーネントと同じことを行なっています。
各BufferSizeを30分間測定したときの結果です。
これを5回行ないました。
(色の違いは、何回目に測定したか、です)
30分測定こともあり、ほとんど色にばらつきはあり
ません
この結果より、このコンポーネントの組み合わせ
の場合、最大約340MB/sのスループットで処理で
きることが分かりました。
(MB/s)
Source
Dispacher
Sink
Sink
の4つのコンポーネント
340
320
300
280
260
240
220
200
0
200
400
Buffer size(kB)
600