DAQ-Middleware Core Meeting

Slides:



Advertisements
Similar presentations
G ゼミ 2010/5/14 渡辺健人. パフォーマンスの測定 CUDA Visual Profiler CUDA の SDK に標準でついているパフォーマン ス測定用のツール 使い方: exe ファイルのパスと作業ディレクトリ指定して実 行するだけ 注意点 : GPU のコード実行後にプログラム終了前に,
Advertisements

DAQ-Middleware の現状報告 千代浩司 A,F 、仲吉一男 A,F 、安芳次 A,F 、 井上栄二 A,F 、長坂康史 B,F 、味村周平 C,F 、神徳徹雄 D,F 、安藤慶昭 D,F 、和田 正樹 E 高エネルギー加速器研究機構素粒子原子核研究所 A 広島工業大学 B 大坂大学 C 産業技術総合研究所.
実習環境整備 高エネルギー加速器研究機構 素粒子原子核研究所 千代浩司. DAQ-Middleware 配布物 ソース Scientific Linux 5.9 上で作った RPM
Localized hole on Carbon acceptors in an n-type doped quantum wire. Toshiyuki Ihara ’05 11/29 For Akiyama Group members 11/29 this second version (latest)
だい六か – クリスマスとお正月 ぶんぽう. て form review ► Group 1 Verbs ► Have two or more ひらがな in the verb stem AND ► The final sound of the verb stem is from the い row.
Essay writing rules for Japanese!!. * First ・ There are two directions you can write. ・よこがき / 横書き (same as we write English) ・たてがき / 縦書き (from right to.
VE 01 え form What is え form? え? You can do that many things with え form?
SS2-15:A Study on Image Recognition and Understanding
高エネルギー加速器研究機構 素粒子原子核研究所 濱田 英太郎
情報実験:ネットワークコンピューティング入門
高エネルギー加速器研究機構 素粒子原子核研究所 千代浩司
高エネルギー加速器研究機構 素粒子原子核研究所 千代浩司
高エネルギー加速器研究機構 素粒子原子核研究所 千代浩司
読んだもの P0254R0: Integrating std::string_view and std::string およびその関連スレッド 稲葉 一浩.
The authors have no actual or potential declaration to make.
第1回レポートの課題 6月15日出題 今回の課題は1問のみ 第2回レポートと併せて本科目の単位を認定 第2回は7月に出題予定
SharePoint Server において 構成ウィザードが失敗する場合の トラブルシューティング
日本語... ジェパディー! This is a template for you to use in your classroom.
3月6日(金曜日) 漢字 #6-10 Verbs! (continued) Particles Time References
COPPER/FINESSE System構築
Windows Summit /13/2017 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
What did you do, mate? Plain-Past
KEK エレクトロニクスシステムグループでの 開発状況 KEK e-sys 庄子 正剛.
データはお客様に属し、かつ、コントロール可能
日本人の英語文章の中で「ENJOY」はどういうふうに使われているのか
Noun の 間(に) + Adjective Verb てform + いる間(に) during/while.
DAQ-Middlewareの開発環境と 適用事例
千代浩司 高エネルギー加速器研究機構 素粒子原子核研究所
輪講: 詳解TCP/IP ACE B3 suzuk.
USB2.0対応PICを用いたデータロガーの製作
複数CPU間のための共有メモリ 小島 隆史(中央大学大学院理工学研究科 國井研究室)
Tohoku University Kyo Tsukada
Windows Summit /8/2017 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
DAQ-Middlewareトレーニングコース 実習
DAQ-Middlewareトレーニングコース 実習
にほんご JPN101 Sep. 23, 2009 (Wednesday).
Chapter 4 Quiz #2 Verbs Particles を、に、で
“You Should Go To Kyoto”
DAQ-Middleware トレーニングコース 実習
DAQ-Middleware の新機能 コンポーネント制御機能
ストップウォッチの カード ストップウォッチの カード
高エネルギー加速器研究機構 素粒子原子核研究所 千代浩司
ISO 9001:2015 The process approach
読み出し回路のアップグレードに向けた研究
NTTPCCommunications,Inc. 波多浩昭
E16実験へのDAQ-Middlewareの応用
GEM検出器用DAQ-Middleware
DAQ-Middlewareへの 機器制御機能の実装と性能評価
Microsoft Visual Studio 2005 Tools for
千代浩司 高エネルギー加速器研究機構 素粒子原子核研究所
千代浩司 高エネルギー加速器研究機構 素粒子原子核研究所
My Favorite Movie I will introduce my favorite movie.
Windows Summit /24/2019 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
Part time jobs in restaurant
DAQ-Middlewareの新機能と 実験への展開
研究会 「LHCが切り拓く新しい素粒子物理学」
J-PARC E16実験におけるDAQ-Middleware を用いたDAQソフトウェアの開発
22 物理パラメータに陽に依存する補償器を用いた低剛性二慣性系の速度制御実験 高山誠 指導教員 小林泰秀
M. Uchida, Kyoto University
Windows Summit 2010 © 2010 Microsoft Corporation.All rights reserved.Microsoft、Windows、Windows Vista およびその他の製品名は、米国 Microsoft Corporation の米国およびその他の国における登録商標または商標です。
千代浩司 高エネルギー加速器研究機構 素粒子原子核研究所
千代浩司 高エネルギー加速器研究機構 素粒子原子核研究所
Created by L. Whittingham
Cluster EG Face To Face meeting
Grammar Point 2: Describing the locations of objects
KEK素核研 エレクトロニクスシステムGr. 仲吉一男
目的とするユーザーコードを 作成するために
千代浩司 高エネルギー加速器研究機構 素粒子原子核研究所
アノテーションガイドラインの管理を行う アノテーションシステムの提案
千代浩司 高エネルギー加速器研究機構 素粒子原子核研究所
Presentation transcript:

DAQ-Middleware Core Meeting 千代浩司 大学共同利用機関法人 高エネルギー加速器研究機構 2013-03-18

もくじ 報告 redmine: https://daqmw.kek.jp/redmine/issues/130 産総研 KEK 共同研究 延長 BBTとの共同研究(継続) J-PARC hadron E16 (High Pt) 2012(平成24)年度活動予定と結果(2012-12-14に報告済み、再掲) 2013年度計画 タイムアウトにまつわるバグフィックス redmine: https://daqmw.kek.jp/redmine/issues/130 2013-03-18

産総研 KEK 共同研究 延長 2.研究題目 次世代高エネルギー加速器データ収集・制御システムに関する研究 3.研究目的   3.研究目的 複数の先端計測・制御機器をネットワーク接続して運用する、データ収集のための計測・制御系の共通の枠組みを提供することで、実験系のニーズに応じたシステム化が容易になるとともに、データ収集やデータ解析の効率化を図る。 4.内容及び目標 産総研が研究・開発をおこなっているロボット用ミドルウエア技術(OpenRTM-aist)やFPGAハードウエア技術を活用して、次世代高エネルギー加速器実験を効率的に実施出来る先端計測・制御システムのフレームワークを構築する。 産総研 神徳 徹雄、安藤 慶昭、関山  守、谷川 民生、小島 一浩、鈴木 良一、大島 永康、原 功 KEK 内田、田中、千代 2013-03-18

BBTとの共同研究(継続) 研究題目 DAQミドルウェアによる多チャンネル高速データ読出システムの研究開発 25年度は、エラー発生時の動作安定化や原因特定のための機能を強化しつつ、実験に係る周辺デバイスの監視・制御について調査、検討する予定である。 BBT: 和田正樹、間中祐介、渡辺利行 KEK: 千代 2013-03-18

J-PARC hadron E16 2年後に実験開始 読み出しシステムの検討 読み出しソフト 今週の予定 SiTCP VMEを使って、読み出しテストを行う。 SiTCP VME MasterモジュールはJ-PARC MLF中性子 BL 03 (iBIX, 茨城県生物)の方からお借りした。 SiTCP VME Masterモジュールを読むコードの使用許可もいただいた。 2013-03-18

2012-03-15 DAQ-Middleware Core Meeting (赤文字は今回追加したもの) 来年度の予定 (1) (株)BBTとの共同研究は研究代表者が千代にかわり2012年度も行うことになりました(ありがとうございます)。和田さんの他に間中さん、渡辺さんが参加されます。 トレーニングコース KEK以外での開催 (RCNPで開催できた) DAQセミナー (京都大学で開催され、1日ソフト関連の日で講義を行った) 2012-3-15

来年度の予定 (2) Scientific Linux 6.2への対応 すでに判明している改修しなければならない点 2012-03-15 DAQ-Middleware Core Meeting (赤文字は今回追加したもの) 来年度の予定 (2) Scientific Linux 6.2への対応 すでに判明している改修しなければならない点 SL 6.2に入っているもので mod_python → mod_wsgi の変更 (パッケージ名としてmod_pythonも使えるが中身はmod_wsgi) xerces-c 3.0が含まれるようになった(SL 5.x用DAQ-Middlewareでは xerces-c 2.7を使っていた)。2.7 → 3.0でAPIが変わったのでコードを変更する必要がある。 mod_python, xerces-c 2.7のままでよいということであれば動くがデプロイ上問題があるか? (毎日実行されているyum updateでxerces-c 2.7 → 3.0 にいつのまにかアップデートされるなど) DAQ-Middleware 1.2.0で xerces-3.x対応済。各種linux distribution対応用枠組み を入れた。 2012-3-15

来年度の予定 (3) 2012-03-15 DAQ-Middleware Core Meeting (赤文字は今回追加したもの) Debian, Ubuntu系への対応 debパッケージの作成とネットワーク経由セットアップスクリプトの作成 (井上さんの作業。報告) GUI WebUI以外のパネル (安さん作のものができた。一部問題あり。回避案あり。) config.xml作成GUI (仲吉さん作成のものをベースに拡張する) (配布物にまだ入れていない。仲吉さん作のもので問題はない) DAQ-Middleware自体のテストシステム 昨年DaqOpeartorのメモリーリーク等があったのでリリース前にリグレッションが無いかテストすることができれば便利かと思う。 (手つかず) ホームページ改装 日本語と英語 (ホームページは未対応。「開発マニュアル」英訳は会社に発注した。2013年1月末に納品。品質はかなりよい模様。 http://daqmw.kek.jp/docs/daqmw-eng.doc に置いてある) 2012-3-15

2013(平成25)年度行事予定 トレーニングコース 2013年9月上旬 広島工業大学 KEK停電 2013/08/05(月)~07(水) 広工大で講演会(1日)+トレーニングコース1(DAQ-Middleware、2日) + トレーニングコース2(FPGA、2日) の予定 KEK停電 2013/08/05(月)~07(水) 8/19の週あたり 阪大? 2013 08 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 2013 09 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 2013-03-18

2013(平成25)年度活動予定 GUI (config.xml作成、操作パネル)をソースツリーへ その他まだソースに反映されていない修正など(redmineを見よ) エラー発生時の動作安定化や原因特定のための機能を強化 制御系準備 2013-03-18

タイムアウトのバグフィックス(1) コンポーネントのデータバッファ 現在InPortのみリングバッファを使っている タイムアウト付きブロックリード 読むデータがなくタイムアウトしたあとは通常どおり一度daq_run()を終了して、またdaq_run()を始める タイムアウトの指定はDaqOperatorがコンポーネント接続時に指定 現在は100msでハードコーディング 100ms !! (といえば) (次のスライド) 2013-03-18

A B 転送速度が突如変動する問題 DAQ-Middleware Core Meeting 2012-03-15 (1年前) Source Sink 256kB送る場合 16384 : 28 GIOP Fragment 16 ackのみ A GIOP reply 28 B GIOP request 60 16384 16384 2013-03-18

ズームすると1秒おき100ミリ秒だけはやくなっている。 DAQ-Middleware Core Meeting 2012-03-15 (1年前) ズームすると1秒おき100ミリ秒だけはやくなっている。 100ミリ秒といえばスケジューラ? (2013-03追記) 違いました。 タイムアウトを200msにすると左図で小さくなっている時間が100ms→200msに連動した この断層は今回はとりあげません(未解決)(2013-03) 2013-03-18

タイムアウト調査 (1) Sourceから300ms置きにデータを送ってSink側でInPortのread()にかかる時間を測定 100msのタイムアウトなので連続してread()に100msかかるはず 2013-03-18

タイムアウト調査 (2) 2013-03-18

タイムアウト調査 (3) 2013-03-18

タイムアウト調査 (4) 絶対時刻で最初の整数秒からの読み取りのみ正常に100msかかっている。よく見ると: 0.04+0.06で100ms 2013-03-18

タイムアウト調査 (5) InPort read()のタイムアウト設定コードはOpenRTM-aistの src/lib/coil/posix/coil/Condition.h 。 1秒以下のタイムアウトはうまく設定されない bool wait(long second, long nano_second = 0) { timespec abstime; abstime.tv_sec = std::time(0) + second; abstime.tv_nsec = nano_second; return 0 == ::pthread_cond_timedwait(&m_cond, &m_mutex.mutex_, &abstime); } 2013-03-18

タイムアウト調査 (6) pthread_cond_timedwait()はタイムアウトを絶対時刻で指定する: int pthread_cond_timedwait(pthread_cond_t *restrict cond, pthread_mutex_t *restrict mutex, const struct timespec *restrict abstime); 2013-03-18

pthread_cond_timedwait() RATIONALE man 3p pthread_cond_timedwait Timed Wait Semantics An absolute time measure was chosen for specifying the timeout parame- ter for two reasons. First, a relative time measure can be easily implemented on top of a function that specifies absolute time, but there is a race condition associated with specifying an absolute time- out on top of a function that specifies relative timeouts. For exam- ple, assume that clock_gettime() returns the current time and cond_rel- ative_timed_wait() uses relative timeouts: clock_gettime(CLOCK_REALTIME, &now) reltime = sleep_til_this_absolute_time -now; cond_relative_timed_wait(c, m, &reltime); If the thread is preempted between the first statement and the last statement, the thread blocks for too long. Blocking, however, is irrel- evant if an absolute timeout is used. An absolute timeout also need not be recomputed if it is used multiple times in a loop, such as that enclosing a condition wait. For cases when the system clock is advanced discontinuously by an oper- ator, it is expected that implementations process any timed wait expir- ing at an intervening time as if that time had actually occurred. 2013-03-18

タイムアウト調査 (7) ミリ秒程度のタイムアウトを許す修正案 bool wait(long second, long nano_second = 0) { struct timeval tv; timespec abstime; ::gettimeofday(&tv, NULL); abstime.tv_sec = tv.tv_sec + second; abstime.tv_nsec = tv.tv_usec*1000 + nano_second; if (abstime.tv_nsec >= 1000000000) { abstime.tv_nsec -= 1000000000; abstime.tv_sec ++; } return 0 == ::pthread_cond_timedwait(&m_cond, &m_mutex.mutex_, &abstime); 2013-03-18

タイムアウト調査 (8) Sourceから350ms間隔でデータを送る +50msはスリープから解除されるのを確認するため Source Sink Sourceから350ms間隔でデータを送る +50msはスリープから解除されるのを確認するため 2013-03-18

タイムアウト調査 (9) 修正案で修正後のテスト。 3回100msでタイムアウトし、次は50msまってデータがきたので読んでいる。 2013-03-18

A B 転送速度が突如変動する問題 DAQ-Middleware Core Meeting 2012-03-15 (1年前) Source Sink 256kB送る場合 16384 : 28 GIOP Fragment 16 ackのみ A GIOP reply 28 B GIOP request 60 16384 16384 2013-03-18

修正前後のリプライ時間差 (1) 修正前の確認(計算機がかわったので)。前のスライドでAの時間 ぴょんぴょんはねているのは50ms間隔(あとで説明) Source - Sink taskset -c 1 Source taskset -c 2,3 Sink Sourceは一度に256kB送る 100us付近の拡大図は次のスライド タイムアウト修正前 2013-03-18

修正前後のリプライ時間差 (2) 前ページの図、縦軸100us付近の拡大図。 タイムアウト修正前 Source - Sink taskset -c 1 Source taskset -c 2,3 Sink Sourceは一度に256kB送る タイムアウト修正前 2013-03-18

修正前後のリプライ時間差 (3) タイムアウト修正後 Source - Sink taskset -c 1 Source taskset -c 2,3 Sink Sourceは一度に256kB送る 100us付近の拡大図は次のスライド 2013-03-18

修正前後のリプライ時間差 (4) タイムアウト修正後 前のスライドの100us付近のズーム。 1秒間隔で、100msだけ小さくなることはなくなった(あるいは900msだけ大きくなることはなくなった)。 大きさはタイムアウトパッチを当てるまえの100msだけの小さいほうのレベル(80us)にあっている。 2013-03-18

50ms間隔とはなにか とても正確に50ms間隔なので、適当に大きくなっているわけではなさそう。 omniORBの設定ファイルのサンプルを見る。 ############################################################################ # connectionWatchPeriod # # For each endpoint, the ORB allocates a thread to watch for new # connections and to monitor existing connections for calls that # should be handed by the thread pool. The thread blocks in select() # or similar for a period, after which it re-scans the lists of # connections it should watch. This parameter is specified in # microseconds. # Valid values = (n >= 0 in microseconds) connectionWatchPeriod = 50000 2013-03-18

connectionWatchPeriod = 200ms /etc/omniORB.cfg InitRef = NameService=corbaname::127.0.0.1:2809 supportBootstrapAgent = 1 connectionWatchPeriod = 200000 # 200 ms 200ms間隔になったのでこれであろう。 2013-03-18

taskset -c 2,3 for SinkComp taskset: そのプロセス(あるいはそこから発生するスレッド)が動作するCPUコアを指定するコマンド。 いままのでテストでは CPU #1にSourceComp CPU #2, #3にSinkComp (註)DAQ-Middleware配布物にはこのようにセットしているところはない。 ラン中にCPUコアが移動し、L2キャッシュの効き具合がかわるのを防ぐためにtasksetして計測していた SinkCompはメインスレッドとInPortスレッドでCPUを1個以上消費することがあるので2個指定している。 2013-03-18

taskset -c 2,3,4 for SinkComp taskset -c 2,3,4 SinkComp /etc/omniORB.cfg InitRef = NameService=corbaname::127.0.0.1:2809 supportBootstrapAgent = 1 connectionWatchPeriod = 200000 # 200 ms 2013-03-18

tasksetせず tasksetで走るCPUコアを指定しないで走らせた場合。 2013-03-18 /etc/omniORB.cfg InitRef = NameService=corbaname::127.0.0.1:2809 supportBootstrapAgent = 1 connectionWatchPeriod = 200000 # 200 ms 2013-03-18

タイムアウトまとめ src/lib/coil/posix/coil/Condition.hの修正案で十分かどうか確認 connectionWatchPeriodの値を大きくするか検討。 2013-03-18