受賞講演のスライド - DAQ-Middleware
Download
Report
Transcript 受賞講演のスライド - DAQ-Middleware
DAQ-Middlewareの高度化と
素粒子原子核・物質生命科学分野への
普及活動
千代浩司
高エネルギー加速器研究機構
素粒子原子核研究所
Who am I
• 千代浩司 (せんだいひろし)
• 1964(昭和39)年生まれ
• 1989(平成元)年 高エネルギー物理学研究所
物理研究部 着任
• TRISTAN VENUS 液体アルゴン検出器運用
• ILC 計算機環境インフラエンジニアリング
• DAQ-Middleware
2015-01-14
2
受賞対象
• DAQ-Middleware
– 実験データ収集システムを作るためのフレームワーク
– 中小規模実験、センサーテストがターゲット
• 受賞対象:DAQ-Middlewareの改善および普及活動
– 中小規模といっても数100MB/sのデータ流
→ デッドタイムの最小化
– できるだけ多くのデータをモニターしたいという要望
→ CPUリソースの最適化
– 実験グループが開発にさける人的、時間的リソースが少
ない
→ 開発支援と普及活動
2015-01-14
3
もくじ
• 単語説明:DAQ 、Middleware
• DAQ-Middleware
– 概要
• 技術賞受賞対象事項
– デッドタイムの最小化
– CPUリソースの最適化
– 開発支援と普及活動
2015-01-14
4
DAQ
DAQ: Data Acquisitionデータ収集
データ収集システム
検出器 (センサー)
粒子
粒子
電気信号
デジタル値
X
2015-01-14
5
Middleware
• Middleware
ミドルウェア(英: Middleware)は、コンピュー
タの分野で、コンピュータの基本的な制御を
行うオペレーティングシステム(OS)と、各業務
処理を行うアプリケーションソフトウェアとの
中間に入るソフトウェアのこと。
アプリケーション
ミドルウェア
OS
http://ja.wikipedia.org/wiki/%E3%83%9F%E3
%83%89%E3%83%AB%E3%82%A6%E3%82%A
7%E3%82%A2
2015-01-14
6
DAQ-Middleware (1)
汎用ネットワークベースデータ収集(DAQ)
ソフトウェアフレームワーク
再利用性を考慮
DAQコンポーネントでいろいろな状況に対応
全体の枠組は統一されている(フレームワーク)
ターゲット
中小規模実験
テストベッド (センサー、読み出しモジュール)
2015-01-14
7
DAQ-Middleware (2)
•使用するコンポーネントを指定
• コンポーネント間接続情報
• パラメータ
User Interface
PC
XML
• 装置パラメータ
• オンラインモニタパラ
メータ
System Configuration
Daq
Operator
XML/JSON
HTTP
Server
Command/Status
mod_python
mod_wsgi
•Control Panel on Web browser
(javascript, ajax)
•Python GUI
•Command line program
Device Condition/
Online analysis
PC
Logger
・
・
・
Online histograms
on Web browser
Gatherer
Dispatcher
Monitor
Detectors
2015-01-14
Read-out
modules
Online histograms
using ROOT
8
DAQ-Middleware (3)
DAQ-Middlewareが提供するもの
• データ収集パス
• コントロール(スタート、ストップ、ポーズ、レジューム)
Service Port
Service Port
(command/status)
(command/status)
Data
InPort
OutPort
コンポーネント間通信部分
はDAQ-Middlewareが提供
+
Logics
=
Data
(for data handling)
デバイス、サイエンス依存
の部分はユーザーが書く
OutPort
InPort
Logics
(for data handling)
• ユーザーはデバイス、サイエンス依存部分をかけばよい
2015-01-14
9
DAQ-Middlewareで提供するもの
DAQコンポーネント特徴のまとめ
Service Port
(command/status)
READOUT
Data
READOUT
OutPort
InPort
Logics
(for data handling)
Network
READOUT
Development
READOUT
Reuse
READOUT
User A
READOUT
Repository
User B
2015-01-14
10
適用事例
赤:トレーニングコース成果、 青:個別指導、 黒: DAQ-Middleware開発者
KEK素核研
KEK内
国内素核
コミュニティ
国外
2015-01-14
• J-PARC ハドロン E16 (High P)
• J-PARC ニュートリノ液体アルゴンTPC
• ILC FPCCD
• NMEM
• STRIPIX
• J-PARC MLF 中性子 (14ビームライン)、ミュオン
• PF-BL-16A
• 測定器開発室GEM
• 測定器開発室SOI
• CANDLES (神岡地下実験室)
• J-PARCハドロン COMET CDC
• SuperNEMO
11
DAQ-Middlewareの歴史
Open-It
http://openit.kek.jp/
KEK測定器開発室
次世代DAQプロジェクト
Project
starts
2006
First Beam
at MLF
2007
2008
2009
Open-It
Start
2010
2011
2012
2013
2014
2015
MLF Pkgs
MLF
Pkg
DAQ-Middleware
1.0-RC1
CHEP06
International Conference on Computing in High Energy and
Nuclear Physics
2015-01-14
DAQ-Middleware
DAQ-Middleware
1.0.0
1.2.2
DAQ-Middleware
DAQ-Middleware
1.1.0
1.3.0
DAQ-Middleware
DAQ-Middleware
1.2.1
1.3.1
12
解決すべき問題の発見
ReadOut
Module
Gatherer
Logger
disk
write
logic
バッファ(固定長)
• 性能について2点
– バッファを100%使っているのを発見
• データ上書きを防ぐためバッファを全部使っているとデータを送らな
いようにしている(しばらく待ってから再送) → デッドタイムの発生
– 10MB/s程度でも CPU消費量 ~ 100%
• 過去のトレーニングコース
– セットアップで手順書のコマンドを打ち間違い
– バイナリファイルを読んだことがない
– バイナリをデコードしたことがない
2015-01-14
13
従来技術からの改善(1) - デッドタイムの最小化 (1/2)
ハードディスク
ハードディスク書き込み時間の測定
DAQ-Middlewareではなく普通のCで書いたプ
ログラムで測定
100ms
1ms
• 最大スループット120MB/s のハードディスクを使用。
• 32kB書いて360us sleepするワークロードを定義。 100us
• スループット88MB/sで10GB分書く。
• おのおの32kB書くのに要した時間を測定
(10GB/32kB = 327680回)
2015-01-14
14
2015-01-14
15
2015-01-14
16
従来技術からの改善(1) - デッドタイムの最小化 (1/2)
ハードディスク書き込み時間の測定
DAQ-Middlewareではなく普通のCで書いたプ
ログラムで測定
100ms
ハードディスク
1ms
• 32kB書いて360us sleepするワークロードを定義。
• 最大スループット120MB/s のハードディスクを使用。
• スループット88MB/sで10GB分書く。
• おのおの32kB書くのに要した時間を測定
(10GB/32kB = 327680回)
100ms
SSD
1ms
2015-01-14
17
Gatherer
従来技術からの改善(1)
デッドタイムの最小化 (2/2)
Logger
disk
write
logic
OutPort
InPort
• もともとバッファがあり遅延を吸収
• 従来はバッファサイズをハードコー
ディングしていた
• 無駄に大きくするとメモリーの無駄
使い。
• 設定ファイルでサイズを変更可能に
した
<inPort from="SampleReader0:samplereader_out"
buffer_length="4096">samplemonitor_in
</inPort>
2015-01-14
18
従来技術からの改善(2)
CPUリソースの最適化
DAQ-Middlewareが使っているRT-Middleware部
分に起因するCPUリソースの使いすぎを発見
(読むデータがない場合、少し待つという機構の
動作不良)。
改良案を提案、とりいれられた。
余剰CPUはモニターに回せるようになった。
DAQ-Middleware
Data Transfer
Function
Run Control
Function
DAQ-DAQ-DAQComponent
Component
Component
System
Configuration
function
DAQOperator
Web
Interface
RT-Middleware
改良前
Gatherer
Logger
disk
write
logic
改良後 OutPort InPort
2015-01-14
19
開発支援、普及活動 (1)
DAQ-Middleware トレーニングコース
• 2009年から毎年夏に開催。
• 実習こみで3日間(前半講義、後半実習)
• DAQ-Middleware以外に以下の解説も行う
• バイナリファイルの読み方
• デコード方法
• ネットワークプログラミング
年度
参加者数
2010 (KEK)
18
2011 (KEK)
12
2012 (KEK)
12
2012 (阪大RCNP)
15
2013 (KEK)
8
2013 (広工大)
8
2014 (KEK)
7
2015-01-14
実習での到達目標:
SiTCP機器からデータを読んでヒストグラム
を書くシステムを作る
20
開発支援、普及活動(2)
個別開発指導での工程例
1日目
•
•
センサーテストでの例
修士課程の学生氏が担当
– ROOTは使える
– バイナリデータをデコードしたことがない
•
•
KEKにきていただいて作業
作業工程
– 1日目
•
•
•
DAQ-Middlewareの説明
Gatherer – Logger の組み合わせでデータをファイ
ルに保存
保存したバイナリファイルをデコードし、ヒストグラ
ムを作るC++プログラムを作成
– 2日目
•
デコードルーチンをモニターコンポーネントにくみ
こみ
Gatherer
Read-out modules
Logger
(標準品)
2日目
Gatherer
Read-out modules
2.5~3日目
Monitor
Logger (標準品)
– 2.5~3日目
•
•
•
2015-01-14
モニターコンポーネント完成
Dispatcher, Loggerを追加しシステム完成
必要ならヒストグラムなどの追加を行う
Gatherer Dispatcher
(標準品)
Monitor
21
発表
• 発表
–
–
–
–
–
イノベーションジャパン2010
技術総合雑誌 OHM 2011年9月号
日本物理学会「DAQ-Middlewareの性能測定」 2009年9月
日本物理学会「DAQ-Middlewareの現状」2012年3月
日本物理学会「DAQ-Middlewareの新機能と実験への展
開」2014年3月
– CHEP 2011 「Performance Mesurement of DAQMiddleware」2011年11月
• 情報集積場所
– http://daqmw.kek.jp/
2015-01-14
22
サマリー
• DAQ-Middleware
– 実験データ収集システムを作るためのフレームワーク
– 中小規模実験、センサーテストがターゲット
• 改善および伝承活動
– 中小規模といっても数100MB/sのデータ流
→ デッドタイムの最小化
– できるだけ多くのデータをモニターしたいという要望
→ CPUリソースの最適化
– 実験グループが開発にさける人的、時間的リソースが少
ない
→ 開発支援と普及活動
2015-01-14
23