Linac BPMのためのshot-by-shot データ収集システムBPM 3...

Preview:

Citation preview

Linac Linac BPMBPMのためののためのshot-by-shotshot-by-shotデータ収集システムデータ収集システム

SPring-8SPring-8 増田剛正増田剛正

BPM 2

outlineoutline•• データ収集システムへの要求データ収集システムへの要求•• システムの設計システムの設計方針方針•• システム構成システム構成(H/W(H/W、、S/WS/W))•• パフォーマンスパフォーマンス((@@1Hz1Hz、@、@10Hz)10Hz)•• システムの改善システムの改善((割込割込のの利用、利用、CPUCPU高速化高速化))•• 改善後の改善後のパフォーマンスパフォーマンス((@@1Hz1Hz、@、@10Hz)10Hz)•• まとめまとめ•• 今後の予定今後の予定

BPM 3

データ収集システムデータ収集システムへのへの要求要求•• BTBT系を系を含む含む全全47 BPM47 BPMからショット毎に同期したデーからショット毎に同期したデー

タが取得可能タが取得可能

•• 10pps10ppsでの繰り返し運転に対応での繰り返し運転に対応最終目標は最終目標は60Hz60Hzでのデータ収集でのデータ収集

•• 取得データを全てデータベースへ格納取得データを全てデータベースへ格納軌道補正、オフライン解析で軌道補正、オフライン解析で利用利用

BPM 4

システムのシステムの設計設計方針方針•• 共有メモリネットワークの導入共有メモリネットワークの導入

データの高速実時間転送データの高速実時間転送•• 光リンクリモート光リンクリモートI/OI/Oシステムの開発・導入システムの開発・導入

BPMBPM処理回路処理回路→→VMEVMEへの信号の集約への信号の集約必要な必要な実実時間性の確保時間性の確保

•• MADOCAMADOCAフレームワークフレームワークをを拡張拡張親和性、親和性、拡張拡張性を重視性を重視イベント駆動型ソフトウェアの新規開発イベント駆動型ソフトウェアの新規開発

•• 分散データベースの導入分散データベースの導入高速インサーションの実現高速インサーションの実現負荷分散負荷分散

BPM 5

H/WH/Wシステムシステム構成構成

信号処理回路出力信号処理回路出力••ADCADC出力出力16bit + 16bit + Inh Inh OutOut(1電極(1電極当たり)当たり)••TTLTTLレベルレベル

耐ノイズ性を考慮する必要耐ノイズ性を考慮する必要あありり

光伝送ボード光伝送ボード••スレーブ(スレーブ(OPT-RMTOPT-RMT))

••(16bit DI+1 strobe)(16bit DI+1 strobe)××44••2020μμsecsec周期でデータをマス周期でデータをマスターターへへ転送転送

••マスター(マスター(OPT-VMEOPT-VME))最大最大4スレーブを制御4スレーブを制御可能可能

スレーブボード マスターボード

VME

光ファイバ

BPM 6

H/WH/Wシステム構成システム構成

..........

VME

..........

OPT-VME board(HIMV-658A)

OPT-RMT board(HIMV-615)

VME CPU board(Advme8001)

shared memory board(Advme1522A)

output signal of BPM detector module

shared memory network

shared memory board

(Adpci1523A)

optical fibers

PCServer

EthernetVMEVME

CPU:Pentium III 600MHzCPU:Pentium III 600MHz

OS:OS: Solaris 7Solaris 7

PCPC

CPU:Pentium III 850MHzCPU:Pentium III 850MHz

OS:OS: Linux2.2 (Linux2.2 (RedHat RedHat 6.2)6.2)

I/OI/O

OPT-RMT TTL DIOPT-RMT TTL DI2020μμsecsec

BPM 7

共有メモリ共有メモリネットワークネットワークAdvme1522AAdvme1522A、、Adpci1523AAdpci1523Aボードボード

•• ファイバチャンネルによる通信ファイバチャンネルによる通信通信通信速度:速度:250Mbps250Mbps実効実効データ通信速度:データ通信速度:4MB/sec4MB/sec5050μμm/125m/125μμmmマルチモード光ファイバマルチモード光ファイバ

•• 通信制御通信制御ををH/WH/Wで実現で実現ソフトウェアのオーバーヘッドなしソフトウェアのオーバーヘッドなし→→ 優れたリアルタイム性(遅延 優れたリアルタイム性(遅延時間時間::̃1.5̃1.5μμsec/1sec/1ノード)ノード)

•• 全ボード全ボード//特定ボードに割込発生可能特定ボードに割込発生可能4ビット付加情報を同時に送信可能4ビット付加情報を同時に送信可能→→ イベントの識別に利用 イベントの識別に利用

•• メモリサイズ:メモリサイズ:8MB8MB((最大)最大)

BPM 8

S/WS/Wシステム構成システム構成

BPM 9

S/WS/Wシステム構成システム構成•• 異なる異なるVMEVME上のプロセス間の同期上のプロセス間の同期共有メモリネットワーク共有メモリネットワークのの割込機能を利用割込機能を利用

マスターマスターEVGENEVGEN::ADAD変換終了をポーリングにて検知変換終了をポーリングにて検知  →→全ノードへ割込全ノードへ割込

スレーブスレーブEVGENEVGEN:共有メモリネットワークからの割込を検知:共有メモリネットワークからの割込を検知

•• 同一イベントの識別同一イベントの識別1.1. イベント番号イベント番号

各各EVGENEVGENでイベント番号を管理でイベント番号を管理収集開始時に収集開始時に00クリアクリアし、し、イベント検知時にインクリメントイベント検知時にインクリメントプロセス間同期のための共有メモリネットワーク割込時に、マスプロセス間同期のための共有メモリネットワーク割込時に、マスターターEVGENEVGENが管理しているイベント番号のが管理しているイベント番号の下位4下位4ビットを付加ビットを付加スレーブスレーブEVGENEVGENは自身のイベント番号をは自身のイベント番号を補正補正

2.2. タイムスタンプタイムスタンプ各各VMEVMEの時刻の時刻ははNTPNTPでで同期同期

BPM 10

共有メモリの共有メモリのデータ構造データ構造

••各各EMA-EVEMA-EV毎に専用エリアを毎に専用エリアを用意用意同一アドレスに対して、別の同一アドレスに対して、別のプロセスが同時に書き込まなプロセスが同時に書き込まないようにするいようにする

••EMA-EVEMA-EVははレコードレコード(=(=ショッショット)単位でデータを書き込むト)単位でデータを書き込む最新の書き込みイベント番号最新の書き込みイベント番号をセットをセット

••FillerFillerは、最新読み込みイベは、最新読み込みイベント番号ント番号+1+1から最新の書き込から最新の書き込みイベント番号までのデータみイベント番号までのデータを読み込み、を読み込み、DBDBへ書き込むへ書き込む

project ID (4byte)header page number (4byte)

page size (4byte)

Filler ID (4byte)SHM-board ID (4byte)hostname (16 byte)process ID (4byte)

control flag (4byte) : not usednumber of EMA-EVs (4byte)

record size (4byte)newest read record number (4byte)

newest read time : sec (4byte)newest read time : mess (4byte)

EMA-EV ID (4byte)control flag (4byte) : not used

number of signals (4byte)page size (4byte)

header page number (4byte)

record header record number (4byte)signal #1 data written time : sec (4byte)signal #2 data written time : msec (4byte)

………. reserve (4byte)record headersignal #1 data signal ID (4byte)signal #2 data data type (4byte)

………. data kind (4byte)data (4byte)

EMA-EV ID (4byte)SHM-board ID (4byte)

record header hostname(16 byte)signal #1 data process ID (4byte)signal #2 data newest written record number (4byte

………. newest written time: sec (4byte)record header newest written time: msec (4byte)signal #1 data reserve (4byte)signal #2 data

……….

EMA-EV #1

reserve(to 4kB boundary)

project #1

reserve(to 4kB boundary)

……….

record #n

record #(n+1)

………reserve(to 4kB boundary)

reserve(to 4kB boundary)

project management

Filler table

EMA-EV #1:EMA-EV table

project #1: project tableproject #2: project table

……….project #N: project table

………

EMA-EV #2

……….

EMA-EV #2:EMA-EV table

EMA-EV #M:EMA-EV table

Filler

EMA-EV header

record #n

record #(n+1)

EMA-EV header

BPM 11

分散分散データベースデータベース専用専用DBDBを用意を用意

•• メインメインDBDBに負荷を掛けなに負荷を掛けないい

•• 見かけ上見かけ上ははメインメインDBDBへのへのアクセスと同一アクセスと同一

•• 高速インサー高速インサーションションの実の実現現

実数配列実数配列カラムカラムの代わりの代わりに、に、

•• 1つの文字列カラム1つの文字列カラム•• 文字列のバルクコピー文字列のバルクコピー

等を用いることで等を用いることで60Hz60Hz以上のインサーション以上のインサーション・・スピードスピードを達成を達成

276.5276.5Bulk insert textBulk insert text62.562.5Insert textInsert text

17.517.5Insert real arrayInsert real arrayInsertion speed (Hz)Insertion speed (Hz)MethodMethod

400400個の実数データのインサー個の実数データのインサーション・スピードション・スピード・・ Sybase ASESybase ASE・・ 2.0GHz Intel Xeon2.0GHz Intel Xeonサーバサーバマシンマシン

BPM 12

収集データ収集データ••11BPMBPM当たり8点当たり8点

(各電極出力電圧、ビーム位置(各電極出力電圧、ビーム位置X, YX, Y、平均電圧、エラー)、平均電圧、エラー)

〃〃

〃〃

〃〃

〃〃

〃〃

Advme8001-P3Advme8001-P3((Pentium III 600MHz)Pentium III 600MHz)

CPU boardCPU board

565677L4BTL4BT

3763764747計計

646488L3BTL3BT

96961212M20M20

484866M6M6

80801010H5H5

323244H0H0

取得データ取得データ数数BPMBPM数数VMEVME

••タイムスタンプタイムスタンプ••イベント識別番号イベント識別番号

を1を1ショットショット376376点のデータと共に取得点のデータと共に取得

BPM 13

取得データ取得データ••ウェブクライアント、ウェブクライアント、CC関数等から関数等から読み出し可能読み出し可能

BPM 14

取得データの取得データの例例(1)(1)••同一ショットのビーム軌道同一ショットのビーム軌道(X,Y)(X,Y)

BPM 15

取得データの例取得データの例(2)(2)••あるあるBPMBPMでのビーム位置でのビーム位置時間変動時間変動

BPM 16

パフォーマンスパフォーマンス測定測定@@1pps1pps

••1pps1pps連続連続運転中の取得データの時間差を集計運転中の取得データの時間差を集計→→ 取りこぼしが無ければ全て運転周期と同一となるはず 取りこぼしが無ければ全て運転周期と同一となるはず

H0: EVGEN VME M20: 96 VME

••8,0448,044イベントイベント中中8,0368,036イベント取得イベント取得(取得率(取得率99.999.9%%))••H0H0、、M20M20で同一イベントをロストで同一イベントをロスト

BPM 17

パフォーマンスパフォーマンス測定測定@@10pps10pps

••4,6834,683イベント中イベント中4,6794,679イベント取得イベント取得(取得率(取得率99.999.9%%))••H0H0、、M20M20で同一イベントをロストで同一イベントをロスト

→→ マスターマスターEVGENEVGENでの取りこぼしと推測での取りこぼしと推測→→ ポーリングによるポーリングによるADAD変換終了の検知ミス?変換終了の検知ミス?

M20: 96 VMEH0: EVGEN VME

••10pps10pps連続運転中の取得データの時間差を集計連続運転中の取得データの時間差を集計

BPM 18

システムの改善システムの改善(1)(1)1.1. マスターマスターEVGENEVGENのイベント監視方法ののイベント監視方法の変更変更

•• Inh Inh OutOut信号信号00→→11→→00変化を変化をEVGENEVGENががポーリングで監視ポーリングで監視•• 他プロセスにタスク・スイッチされることで、他プロセスにタスク・スイッチされることで、600600μμsecsec

ののInh Inh OutOut信号を信号を検知できず検知できず??→→•• Inh Inh OutOut信号信号ののfalling edgefalling edgeででVME CPUVME CPUボードに割込を発ボードに割込を発

生するよう構成生するよう構成をを変更変更•• マスターマスターEVGENEVGENは割込待ちは割込待ち

Trig in

Inh Out

ADC Out

600μsec

BPM 19

システムの改善システムの改善(2)(2)2.2. VME CPUVME CPUの高速化の高速化

9696点データの点データの60Hz60Hz取得を行うためには、取得を行うためには、 Pentium III Pentium III600MHz600MHzでは能力不足では能力不足•• 主に主にMADOCAMADOCAフレームワークの処理に時間が掛かっていフレームワークの処理に時間が掛かってい

•• フレームワークの処理がフレームワークの処理が××9696で効いてくるで効いてくる•• 60Hz60Hzをを達成するためには達成するためには2倍近い2倍近い処理能力の処理能力のCPUCPUが必要が必要

→→ Pentium M 1.8GHz Pentium M 1.8GHz((SVA041-185TSVA041-185T)へ)へ処理能力:実質的に処理能力:実質的に33倍倍強強程度の向上程度の向上

•• gccgccコンパイラのバージョンコンパイラのバージョン•• gccgccコンパイラの最適化オプションコンパイラの最適化オプションを調整を調整すすることで、より高速になる可能性ありることで、より高速になる可能性あり

BPM 20

改善後のパフォーマンス改善後のパフォーマンス@@1Hz1Hz

••13,27313,273イベント中イベント中13,27313,273イベント取得イベント取得(取得率(取得率100100%%))

0.1

1

10

100

1000

10000

100000

0.0 1.0 2.0 3.0

interval(sec)

frequency

H0: EVGEN VME

0.1

1

10

100

1000

10000

100000

0.0 1.0 2.0 3.0

interval(sec)

frequency

M20: 96 VME

••1pps1pps連続運転中の取得データの時間差を集計連続運転中の取得データの時間差を集計

BPM 21

改善後のパフォーマンス改善後のパフォーマンス@@10Hz10Hz

••6,3716,371イベント中イベント中6,3716,371イベント取得イベント取得(取得率(取得率100100%%))

0.1

1

10

100

1000

10000

100000

0.0 1.0 2.0 3.0

interval(sec)

frequency

H0: EVGEN VME

0.1

1

10

100

1000

10000

100000

0.0 1.0 2.0 3.0

interval(sec)

frequency

M20: 96 VME

••10pps10pps連続運転中の取得データの時間差を集計連続運転中の取得データの時間差を集計

BPM 22

60Hz60Hzでのデータ収集でのデータ収集•• VMEVME側側は、は、全ての全てのVMEVMEにについてついて60Hz60Hzでのデータ収集が出来てでのデータ収集が出来て

いることは確認済みいることは確認済み(どの程度の取得率が実現できるのかは(どの程度の取得率が実現できるのかは要確認)要確認)

•• DBDBもも100Hz100Hz程度のインサーション・スピードに対応可能(試程度のインサーション・スピードに対応可能(試験済み)験済み)

→→•• Filler PCFiller PCの能力について要確認の能力について要確認

もしもし現状の現状のCPUCPUで処理が間に合わないようであれば、よりで処理が間に合わないようであれば、より高速な高速なCPUCPUをを持つ持つPCPCへ置き換ることで十分対応可能であると考えられるへ置き換ることで十分対応可能であると考えられる

BPM 23

まとめまとめ•• リナックリナックBPMBPMのためのデータ収集システムを構築し、全のためのデータ収集システムを構築し、全376376点点

のデータについてのデータについて10Hz10Hzまでのまでのshot-by-shotshot-by-shotデータ収集に成功データ収集に成功したした。。

•• 収集したデータは全てデータベースに格納されており、ウェブ収集したデータは全てデータベースに格納されており、ウェブクライアントクライアントややCC関数を用いて任意のデータを抽出可能。関数を用いて任意のデータを抽出可能。

•• VME CPUVME CPUボードをより高速なものにボードをより高速なものに交換し、また交換し、またADAD変換終了変換終了イベントを割り込みでイベントを割り込みで検知することで、ほぼ検知することで、ほぼ100%100%のイベントのイベント取得率に取得率に向上向上出来た(出来た(10Hz10Hzまで確認まで確認済み済み)。)。

BPM 24

今後の今後の予定予定•• 割り込み検知方式でより多くのイベントを割り込み検知方式でより多くのイベントをためて、ためて、どの程度のどの程度の

取得率が達成出来ているのか確認する。取得率が達成出来ているのか確認する。((→→  6/146/14運転開始運転開始~~6/206/20 12:0012:00まで まで 31,571/31,57331,571/31,573イベントイベント取得)取得)

•• 60Hz60Hzでのデータ収集試験をでのデータ収集試験を行う行う。。

•• コンパイラ依存性についてコンパイラ依存性について確認する。確認する。必要ならばチューニング必要ならばチューニングをを行う行う。。

•• Real-timeReal-timeスケジューリングスケジューリング・クラス・クラス、、またはまたはSolaris9Solaris9よりより導導入された入されたfixed priorityfixed priorityのスケジューリング・クラスを用いたのスケジューリング・クラスを用いたプロセス制御を適用してみる。プロセス制御を適用してみる。

•• 共有メモリネットワークの共有メモリネットワークの代わりに代わりに、より高速でメモリ容量の、より高速でメモリ容量の大きな大きなreflective memoryreflective memoryをを適用してみる。適用してみる。