TopSE並行システム はじめに

Similar documents
CSPの紹介

CONPASU-tool

ビッグデータ分析を高速化する 分散処理技術を開発 日本電気株式会社

計算機アーキテクチャ

Pervasive PSQL v11 のベンチマーク パフォーマンスの結果

スキル領域 職種 : ソフトウェアデベロップメント スキル領域と SWD 経済産業省, 独立行政法人情報処理推進機構

ジョブ管理ソフトウェア LoadStar Scheduler ご紹介資料 ~ システム運用品質の向上とコスト削減を実現 ~

POSIXスレッド

製品開発の現場では 各種のセンサーや測定環境を利用したデータ解析が行われ シミュレーションや動作検証等に役立てられています しかし 日々収集されるデータ量は増加し 解析も複雑化しており データ解析の負荷は徐々に重くなっています 例えば自動車の車両計測データを解析する場合 取得したデータをそのまま解析

memcached 方式 (No Replication) 認証情報は ログインした tomcat と設定された各 memcached サーバーに認証情報を分割し振り分けて保管する memcached の方系がダウンした場合は ログインしたことのあるサーバーへのアクセスでは tomcat に認証情報

ERDAS IMAGINE における処理速度の向上 株式会社ベストシステムズ PASCO CORPORATION 2015

<4D F736F F D208AC888D B836A F C91808DEC837D836A B81698AC7979D8ED A E646F6

並列計算導入.pptx

並列計算

回路 7 レジスタ ( 同期イネーブル及び非同期リセット付 ) 入力データを保持するのに用いる記憶素子 使用用途として, マイクロプロセッサ内部で演算や実行状態の保持に用いられる Fig4-2 のレジスタは, クロック信号の立ち上がり時かつ 信号が 1 のときに外部からの 1 ビットデータ R をレ

各種パスワードについて マイナンバー管理票では 3 種のパスワードを使用します (1) 読み取りパスワード Excel 機能の読み取りパスワードです 任意に設定可能です (2) 管理者パスワード マイナンバー管理表 の管理者のパスワードです 管理者パスワード はパスワードの流出を防ぐ目的で この操作

Linkexpress トラブル初期調査資料 採取コマンド使用手引書

スクールCOBOL2002

Using VectorCAST/C++ with Test Driven Development

ic3_cf_p1-70_1018.indd

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

040402.ユニットテスト

Developer Camp

Slides: TimeGraph: GPU Scheduling for Real-Time Multi-Tasking Environments

PHP 開発ツール Zend Studio PHP アフ リケーションサーハ ー Zend Server OSC Tokyo/Spring /02/28 株式会社イグアスソリューション事業部

RTC_STM32F4 の説明 2013/10/20 STM32F4 内蔵 RTC の日付 時刻の設定および読み込みを行うプログラムです UART2( 非同期シリアル通信ポート 2) を使用して RTC の設定および読み込みを行います 無料の開発ツール Atollic TrueSTUDIO for

Code_Aster / Salome-Meca 中級者への道 2015年5月31日

機能検証トレーニング コース一覧

第3部:プログラミング実習

メール全文検索アプリケーション Sylph-Searcher のご紹介 SRA OSS, Inc. 日本支社技術部チーフエンジニア Sylpheed 開発者 山本博之 Copyright 2007 SRA OSS, Inc. Japan All right

エンジニアリングトータルソリューション「ACROVA GMM」の2次元CADソフトウェアプロダクト3製品をバージョンアップ

Rmenuフレームワーク

- VHDL 演習 ( 組み合せ論理回路 ) 回路 半加算器 (half adder,fig.-) 全加算器を構成する要素である半加算器を作成する i) リスト - のコードを理解してから, コンパイル, ダウンロードする ii) 実験基板上のスイッチ W, が, の入力,LED, が, の出力とな

1. A/D 入力について分解能 12bit の A/D コンバータ入力です A/D 入力電圧とディジタル値との対応は理論上 入力電圧 0V : 0 入力電圧 +3V : 4095 です 実際はオフセットと傾きがあり ぴったりこの数値にはなりません 2. A/D 入力に使用する信号 STM32L_A

untitled

組込みシステムにおける UMLモデルカタログの実践研究

EnSightのご紹介

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf

D5-2_S _003.pptx

COMET II のプログラミング ここでは機械語レベルプログラミングを学びます 1

Microsoft Word - 実験4_FPGA実験2_2015

<4D F736F F F696E74202D D4C82F08A B582BD A A F2E707074>

Managing and Sharing MATLAB Code

スライド 1

ITdumpsFree Get free valid exam dumps and pass your exam test with confidence

Insert your Title here

TF Series with Tio1608-D System Setup Guide

PowerPoint プレゼンテーション

Microsoft PowerPoint - 01_Vengineer.ppt

XMLとXSLT

Transcription:

はじめに 平成 23 年 9 月 1 日 トップエスイープロジェクト 磯部祥尚 ( 産業技術総合研究所 )

2 本講座の背景と目標 背景 : マルチコア CPU やクラウドコンピューティング等 並列 / 分散処理環境が身近なものになっている 複数のプロセス ( プログラム ) を同時に実行可能 通信等により複数のプロセスが協調可能 並行システムの構築 並行システム 通信 Proc2 プロセス ( プログラム ) 通信 並行システムの長所と短所 : 長所 : 協調動作による処理の高速化 分散化 Proc1 通信 Proc3 短所 : 協調動作による設計の複雑化 システムの信頼性の低下 ( デッドロック リソース競合等 ) 本講座の目標 : 並行システムの検証と実装方法を習得する ( 信頼性の高い並行システムを構築するため ) 例 : 6 コア CPU Core i7-980x ([1] より写真を転載 ) [1] http://journal.mycom.co.jp/special/2010/gulftown/index.html

3 はじめに 並行システムの概論 JCSP, FDR, CSP とは 本講座の特長

4 並行システムの特徴 ( 並行処理 ) 入力処理プロセスで常に入力を受け付けつつ 内部処理プロセスで入力操作に応じて内部処理を実行し 出力処理プロセスで内部処理中にその進捗状況を表示する プロセス 1 プロセス 3 プロセス 1 入力処理 時間軸 入力処理 出力処理 プロセス 2 start menu 内部処理 内部処理 時間軸 内部処理プロセス2 プロセス 3 data 出力処理 出力処理 時間軸

5 並行システムの特徴 ( 高速処理 ) A, B: 互いに依存関係があり 同時に実行する必要のない 2 つの処理 逐次処理 in in プロセス out プロセス 処理 A 処理 B 処理 A 処理 B out 時間軸 並列処理 in in 並列化による処理時間の短縮 プロセス1 fw bk プロセス 1 処理 A fw bk 処理 A fw fw 時間軸 プロセス2 out プロセス 2 処理 B 処理 B out 時間軸

6 並列処理 と 並行処理 の違い 並列処理 : 複数の処理を同時に実行すること 疑似並列処理 : 複数の処理を時分割で実行すること 並行処理 : 複数の処理を時間的重なりをもって実行すること 複数処理装置による並列処理 プロセッサ 1 入出力処理 計算中 :73% 計算 プロセッサ 2 計算 計算 ユーザインターフェース 1 つの処理装置による疑似並列処理 ( 時分割 ) プロセッサ 1 並行処理の意味は並列処理と疑似並列処理の両方を含む

7 2 つの通信方式 共有メモリ通信方式 : 共有メモリ上でメッセージを交換 処理が軽い ( 早い ) メッセージパッシング通信方式 : チャネルを通してメッセージを送受信 動作が分かりやすい 共有メモリ通信方式 共有リソース メッセージパッシング通信方式 チャネル プロセス 1 z プロセス 3 プロセス 1 ch31 プロセス 3 x 共有メモリ y ch12 ch21 ch23 プロセス 2 プロセス 2

8 メッセージパッシング通信方式 非同期型 : 送信と受信は別々に起きる 処理が軽い ( 早い ) 同期型 : 送信と受信は同時に起きる メッセージの取りこぼしがない 非同期型 同期型 ( ランデブー方式 ) 送信プロセス 受信プロセス 送信プロセス 受信プロセス 送信 1 1 受信 送信 1 受信 送信 送信 2 3 3 受信 取りこぼし 送信 送信 2 3 受信 受信

9 はじめに 並行システムの概論 JCSP, FDR, CSP とは 本講座の特長

10 Java ライブラリ : JCSP JCSP: Java で同期型メッセージパッシング通信を実装するためのライブラリ JCSP プログラミング 新しい言語を覚えなくてよい ( 敷居が低い ) Java Program ch31 Java Program 比較的その動作を予測しやすい ( 信頼性を高められる ) ch12 ch21 ch23 信頼性の高い並行システムを構築できる! Java Program

11 モデル検査器 : FDR FDR: JCSP の同期型メッセージパッシング通信を検証できるツール FDR による検証画面 並行動作の正しさを判定できる ( 期待通りに動作するか ) さらに信頼性の高い並行システムを構築できる!!

12 プロセス代数 : CSP なぜ JCSP の同期型メッセージパッシング通信を FDR で検証できるのか? JCSP FDR : プロセス代数 CSP のモデルを実装するための Java ライブラリ : プロセス代数 CSP のモデルを検査するためのモデル検査器 CSP: 同期型メッセージパッシング通信方式を採用しているプロセス代数 プロセス代数 : 並行システムを形式的に記述し 解析するための理論 プロセス代数 CSP でモデル化し モデル検査器 FDR で検証し Java ライブラリで実装することによって 理論的に検証された高信頼な並行システムを実装できる!!!

13 はじめに 並行システムの概論 JCSP, FDR, CSP とは 本講座の特長

14 本講座の 3 つのキーワード 理論 CSP 検証 FDR 実装 JCSP Communicating Sequential Processes, Hoare, 1985 プロセス代数 CSP: 並行システムを記述 解析するための理論 モデル検査器 FDR: CSP モデルの詳細化関係を検証するツール Oxford 大学 Formal Systems ( アカデミックライセンスは無料 ) Java ライブラリ JCSP: CSP モデルを Java で実装するためのライブラリ Kent 大学 (2006 年秋からオープンソース ) CSP モデルシステムの CSP 記述 ( 形式的な記述 ) FDR スクリプト FDR で読込み可能な記述 (FDR 入力言語 ) JCSP プログラム JCSP を利用している Java プログラム

15 本講座の構成 概要レベル1 第 1 章 CSP, FDR, JCSP 概論 CSP FDR JCSP 講義予定 1,2 入門 レベル 2 第 2 章 CSP 入門 第 3 章 FDR 入門 CSP FDR 3,4 5 第 4 章 JCSP 入門 JCSP 6,7 基礎レベル3 応用レベル4 第 5 章 CSP 理論 ( 動作表現 ) 第 6 章 CSP 理論 ( 動作解析 ) 第 7 章 FDR 検証第 8 章 JCSP 実装第 9 章 CSP, FDR, JCSP 応用第 10 章 CSP, FDR, JCSP 実践 CSP CSP FDR JCSP CSP FDR JCSP CSP FDR JCSP 8 9 10 11 12 13-15 グループ 実習

16 習得する知識 & 技術 プロセス代数 CSP の基礎知識 : CSP によるモデル化 FDR による検証 JCSP による実装の方法を正しく理解するために必要な基礎知識の学習 モデル検査器 FDR による検証技術 : オートマトン ( クリプキ構造 ) と時相論理に基づくモデル検査器 (SPIN, SMV 等 ) とは一味違った プロセス代数に基づくモデル検査器 FDR による検証方法の習得 ライブラリ JCSP による並行プログラミング技術 : CSP モデルに基づく並行プログラミング ( 分散プログラミングを含む ) 技術の習得 CSP 理論 FDR 検証 JCSP 実装 ( 実装を意識したモデル化が重要 検証には理論の基礎知識が必要 )

Java 以外にも有効 JCSP (Java) 以外にも CSP モデルを実装するためのライブラリがある 基本的な考え方は同じで 本講座で習得する実装技術は他のプログラミング言語にも有効である ライブラリ言語研究開発元 JCSP Java ケント大学 (QuickStone) C++CSP C++ ケント大学 CHP Haskell ケント大学 PyCSP Python トロムソ大学 & コペンハーゲン大学 Python-CSP Python ウォルバーハンプトン大学 Go 言語 : 2009 年秋にGoogleが発表したプログラミング言語 コンパイル言語のように速く スクリプト言語のように使い易い CSPに基づく並列処理記述が言語レベルで可能 Go 言語の公式マスコット Gordon http://golang.org/

ソフトウェア以外にも... Transputer (1981 年 ~1996 年 INMOS 社 ) 並列コンピューティングに特化した汎用マイクロプロセッサ CSPに基づく実装言語 Occamによるハードウェア実装 Transputer[1](Inmos 社 ) XMOS (2008 年 ~ XMOS 社 ) イベント駆動型マルチスレッドプロセッサ (XS1-G4, 4コア, 32スレッド ) CSPに基づくC 言語風の実装言語 XCによるハードウェア実装 CSP 理論 FDR 検証 XMOS 実装 XMOS[2](XMOS 社 ) [1] ウィキペディアの トランスピュータ (http://ja.wikipedia.org/wiki/ トランスピュータ ) の写真から引用 [2] XMOS 社のウェブサイト (https://www.xmos.com/products) の写真から引用

19 まとめ CSP の基本アイデアは C. A. R. Hoare によって 1978 年に発表された しかし過去の話ではなく CSP の理論研究は今も続けられている そして最近は CSP の実装関係の研究もより活発になっている マルチコア CPU の登場により並行システムの重要性が高まっている ( 誰でも簡単に並列プログラミング ) ネットワークの普及によって分散プログラミングのニーズも高まっている CSP の理論 検証 実装の基本的な流れを学習する意義は高い

20 補足 目標 : プロセス代数による検証と実装の 考え方 を習得すること (FDR や JCSP の 使い方 を習得することは目標ではない ) 考え方 を習得すれば他のツールも使いこなせる プロセス代数 CSP 用モデル検査器の例 ツール名 : FDR (Failures-Divergence Refinement) 講義で使用開発元 : オックスフォード大学 Formal Systems 特徴 : CSPの代表的なツール データ表現力が高い URL : http://www.fsel.com/ 備考 : アカデミック & 研究目的でのみ無料 ツール名 : PAT (Process Analysis Toolkit) FDRを使えれば 開発元 : シンガポール大学特徴 : 検証能力が高い CSPの変更 拡張あり URL : http://www.comp.nus.edu.sg/~pat/ 備考 : アカデミック & 研究目的でのみ利用可能