24
1 分散型プロセス処理システムPIONE画像処理システムEosの紹介 九州工業大学 情報工学部 生命情報工学科 大学院情報工学研究院生命情報工学系 教授 安永 卓生 共同開発先: なうデータ研究所(株)

分散型プロセス処理システムPIONEと 画像処理システムEosの紹介 · 従来、汎用の画像処理システムはOpenCV、ImageJなどを初めと して各種提案、開発されている。しかし、電子顕微鏡画像処理やそ

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

1

分散型プロセス処理システムPIONEと 画像処理システムEosの紹介

九州工業大学 情報工学部 生命情報工学科

大学院情報工学研究院生命情報工学系

教授 安永 卓生

共同開発先:

なうデータ研究所(株)

2

共同開発先の立ち位置 なうデータ研究所(株): 現在、JST・先端・ソフトウェア開発の支援を受け、九州工業大学と共同開発を進めている。 全ての開発したリソースであるソースコードは、 オープンソースとして、GITHUB及びSourceForge 上に 公開している。著作権は、MIT。

著作権を放棄している訳ではないが、ソースコードは自由に利用できる。また、企業側でも、自由に改変することもできる。

今回、本技術に興味をもち、本開発ソフトウェアの利用先、利用案の提供、共同開発先となる企業を探している。

3

紹介するソフトウェア 3次元電子顕微鏡処理(一般のワークフローに対応)の高速化、効率化を対象として、二つの技術を開発・実装している。 1.PIONE(ぴおーね) ヘテロな複数の計算機資源を使って、目的とするワークフローを協調・並列処理するためのプラットフォーム 主たる開発言語:Ruby 2.Eos(いおす) 電子顕微鏡画像処理の高速化、効率化のための画像処理プラットフォーム(ライブラリ、実行プログラム) 主たる開発言語:C言語

4

従来技術とその問題点1 協調計算システムとしては、いくつか提案・実装があるが、その多くが同一環境の複数の計算機を協調し、並列処理により高速化するものがほとんどである。 また、ワークフローを解析し、実装する方式はあるものの汎用で利用でき、並列処理できるものはほとんど存在しない。 これまで、画像処理ワークフロー処理のために、ソフトウェア開発で利用されている’make’を使ってきたが、複数の計算機を使った分散処理が実施できない。 そこで、我々は、PIONEを提案する

– 特性をもつ計算機資源を利用し、定義したワークフローを実行するプラットフォームを提案・実装するものである。

5

ヘテロな複数の計算機資源とは、 • ヘテロとは

– 測定器を制御する計算機 – 異種のアーキテクチャの計算機

• GPGPU、マルチコア

– ファイルサーバ • NFS

– クラウドサービス • Dropbox, evernoteなどのサービス

などの計算機資源が様々

• それらが協調して動くシステムを想定 – 測定しながら、即時にデータ処理 – その結果を再び測定に活かす

PIONEでは、「特性(feature)」として、各計算機資源を利用

6

ワークフローとは、 • ワークフローとは

– 各種のプロセスを組み合わせて、全体の目的を達するための流れを記述したもの • 仕事の流れを記述する

– 店舗の業務改善などシステムの動作の記述及びその改善に利用される – 情報表現としては、「ペトリネット」と呼ばれる言語で記述可能、計算可能

• トランジッション – 特定のワーク、プロセス、タスクを記述したもの – PIONEでは、入力ファイルから出力ファイルをつくる処理(例えば画像処理)に対応

• プレート – トランジッションが実行されるための入力(発火条件)とその実行結果の出力 – PIONEでは、入出力ファイル及びパラメータが対応

• アーク – それらを繋ぐ流れを記述する矢印

PIONEでは、「ルール」として、各計算機資源を利用

– 複数の計算機がワークフローに従って協調して動くシステムを想定 – ペトリネットを使った表現も可能

7

従来技術とその問題点2 従来、汎用の画像処理システムはOpenCV、ImageJなどを初めと

して各種提案、開発されている。しかし、電子顕微鏡画像処理やそれに伴う3次元画像処理システムに関して、国産の自由にソースコードレベルで利用出来るシステムが存在しない。 また、マルチコア(thread)、メニーコアやGPGPUなどの最新の並列処理技術に対応したライブラリが提供されていない。 そこで、我々はEosを提案する。

・画像処理ライブラリ ・thread / GPGPUに対応した並列処理の提供 ・プログラム開発のための環境 ・個別の画像処理に対応した単独の実行形式によるCUI処理 ・GUIによる画像処理 ・’make’や’PIONE’による統合化した複雑な画像処理

8

画像処理プラットフォームの全体像

SWIGで実装 ・Ruby, Tcl/Tk等

プロセス定義書(PIONE)が提供 ・クラウド対応プロセス制御実装 ・可視化(GUI)への仕様策定 ※ 先端機器等の測定解析のためのプロセスのクラウドサービス対応

Eosが提供 ・高速化 ・多機能化 ・ドキュメント化 ・教育環境・セミナー

3次元電子顕微鏡のために必要な画像処理に関わる各階層の整備

9

PIONEが対象とするケース PIONEは、3層のケースを意識し、開発を進めている •ユーザー

– (複数の)入力ファイルから、処理結果を得たい欲求をもつ – 入力ファイルが交信された場合に、効率的に必要な処理だけを実施したい

• ‘make’のヘテロな分散環境での効率的利用 – 既に開発された画像処理を含め、各種の処理を使ったワークフローに従い、

ネット上に散在するヘテロな複数の計算機資源を使って、定義されたワークフローを実行することで、利便性(一台のホストから複数の計算機を利用できる)、高速性等を享受する

•エキスパート – ワークフローを定義、もしくは、既存のワークフローを改善、機能追加するこ

とにより、より利便性や高速性を高める •開発者

– 抽象ワークフローやそこで使われる基本的なプログラム等を開発する。

10

PIONEの位置付け ー 異なる計算機資源を利用したワークフローの定義 ー

ファイルサーバ:クラウドサービス(dropbox等)への対応

処理サーバ:分散処理サービス提供

PIONE

先端機器(電子顕微鏡等)の制御

11

PIONEの実際 • 利用する場合

– 用意するもの • 処理するべき入力ファイル • ワークフロー記述を記述したファイル • ブラウザ

– 手に入れることができるもの • 主力ファイル • ログファイル

• 開発各種標準化技術に対応 – ワークフロー記述

• PIONEルールによる記述、もしくは、 PNML(ペトリネット記述のための標準)+マークダウンによる記述が可能

– PNML記述ツール(GUI)が利用可能(WoPeDなど)

– ログ記述 • XES形式(ログ解析のための標準フォーマット)

– 適切なワークフローに関して解析、改善が可能()

12

PIONEパッケージ

アクション文書 (Markdown + Shellscript)

ペトリネット文書 (PNML)

PIONEルール

INP

UT

PIO

NE

SY

STE

M

OU

TPU

T

ファイルサーバ

ファイルサーバ

処理対象ファイル

処理結果ファイル

Dropbox FTPサーバ等

イベントログ (XES)

Rule Engine Rule Engine Rule Engine Rule Engine Rule Engine Rule Engine

Dropbox FTPサーバ等

13

PIONEの特徴1 (Process-rule for Input/Output Negotiation Environment)

• ファイルにより、複数のプロセス(ワーク、タスク)をルールとして繋ぐ – 入力ファイルと出力ファイルを指定し、それらの更新条件でプロセスの制御をルール

として実施

• プロダクションシステム類似(前向き推論(ルールベース)) – エキスパートシステムに利用されている技術 – 入出力ファイルの更新判定に利用(必要なプロセスのみを実行)

cf: make : 後ろ向き判定 – 入出力ファイルの指定の制限緩和

• 複数指定可能、サフィックス以外の指定も可能

• プロセスの記述能力 – 任意のシェルスクリプトで記述可能 – ルールをパッケージとして管理し、それらから拡張(派生)したルールを記述できる

14

PIONEの特徴2 • ヘテロ環境での並列プロセス処理

– プロセスの共有テーブルとして、LINDA形式を採用 • 通常は、ブロードキャスト(サブネット内)での並列処理 • 各ルールへの特性(feature)、特定機能を特定ホストで実行可能

– マルチエージェントによる自動制御 • 各計算機で起動しているブローカエージェントがそれぞれの計算機上のタスクを管理

• クラウド環境に対応

– クラウド型ファイルサーバにも対応(例:dropbox) – プロセスの実行をリレーサーバを通して、各種クラウドと接続可能現状、不安

定)

• ブラウザによるクライアント実行を提供 – ブラウザを通して、ネットワーク上のサービスを提供できる – AJAX技術

15

PIONEの仕組み

• マルチエージェントシステム • 並列、分散処理

サーバ側

タプル空間レシーバ

ブローカ

③伝達

④タプル空間の タスク状況確認

⑤必要な数の タスクワーカに タスクを割り振る

⑦処理

タプル空間 (仮想共有メモリ)

Write

Read

task data rule

ルールプロバイダ

タプル空間プロバイダ ②タプル空間サーバの 存在、位置を送信

②ルール提供

クライアント側

タプル空間サーバ

タスクワーカ

タプル

⑧結果

16

PIONEの特徴3 • 標準技術との対応

– Ruby-xesの提供 • Rubyによるxes形式のファイルの利用

– Pione-compierの提供

• PNML(ワークフローの記述)とマークダウン(アクション、フローの実装)からPIONEルール記述を生成可能

– LINDAの実用実装 • Rubyが提供しているLINDA実装(RINDA)の改善

– 最終的には、PIONEの実装から切り分ける予定(現在は、切り分けが出来ていない) – 分散型LINDAにも対応予定

17

エキスパートシステムとしてのPIONE

ルールA

ルールB

ルールC

ルールD

ルールE

新しいルールセットの

選択・発見

入力データによっては ルールBよりも、 ルールE/Cの流れが よりよい

複雑な工程、及び、様々な手順、パラメータの選択を行う解析にとっては、もっとも適切な解析方法の選択・発見に繋がる 例: X線結晶解析(生物研究応用) ・解析パラメータの選択 ・多様な評価によるモデリング 等 エキスパートによる解析が要求 → PIONEがエキスパートシステムとして、解法を与えうる。

18

PIONE

ファイルサーバ 例)Dropbox

ビジネスモデル: 計測機器に対するデータ処理サービス

ビジネスモデル・応用 センサー群に対する大量データ処理サービス

計測機器 ユーザA

計測機器 ユーザB

計測機器 ユーザC

事業者A ・画像処理

事業者B(計算機資源の提供) ・画像処理 ・画像解析

事業者C ・画像解析

計測データ 計測データ

処理結果 処理結果

EOS

EOS

PIONE

DB

センサー群

・集計処理 ・統計処理 ・データ解析 ・データ マイニング

計測データ 計測データ

処理結果 ユーザ

独自サービス

特性を用いたタスクの振分

市場性(PIONEと画像処理(Eosの活用))

18

19

実用化に向けた課題 • PIONE:分散処理が可能なところまで開発、公開済

– 仕様はほぼ確定 • ワークフローの定義にPNML(ワークフローを記述できるペトリネットの標準言語)を利用、それぞれのワークの記述にマークダウンを採用したことで、標準的な技術が利用出来る

– 問題点: • サブネットを越えた分散処理(リレーサーバの構築)の点が不安定 • 各タスクの起動時等の高速化が不十分である。

• Eos:400程度のプログラム及び関連APIが公開済み – 仕様はほぼ確定

• Pthread/PVM/GPGPUによる高速化の仕組みが導入 – 問題点

• 高速化の点で1部の実装に留まっている • ドキュメンテーションがまだ不十分(現在、Eospediaとして展開中)

20

企業への期待 • 本システムの利用を検討される企業、新しい利用法を提案される

企業 – こんな企業に向いている

• ヘテロな環境にある計算機リソースが分散環境として存在し、それらにワークフローとして記述したタスクを投げて行うシステムの構築のためのプラットフォームを検討されている企業

• 画像処理のためのプラットフォームを検討されている企業

• 分散処理、クラウド環境等の技術をもち、オープンソースの環境で共同開発を進めることのできる企業 – こんな企業に向いている

• ヘテロな計算機リソースでの分散処理技術に興味のある企業 • 同・関連技術をもち、その活用先を探している企業

21

本技術に関する知的財産権 いずれの成果物も、Open Sourceとして開発・実装している 現在、 PIONE: GITHUB http://github.com/pione/ Eos: SourceForge http://sourceforge.jp/projects/eos/ 上に公開し、開発を進行中 著作権: MIT License (PIONE) Apache License(Eos)

22

詳細な情報は、HPにて • 情報は、Eospediaとして公開中

– http://www.yasunaga-lab.bio.kyutech.ac.jp/EosJ/

– PIONEに関すること • http://www.yasunaga-

lab.bio.kyutech.ac.jp/EosJ/index.php/PIONE • https://github.com/pione/

– Eosに関すること

• http://www.yasunaga-lab.bio.kyutech.ac.jp/EosJ/ or http://www.yasunaga-lab.bio.kyutech.ac.jp/Eos/ • http://sourceforge.jp/projects/eos/

23

産学連携の経歴 • 日立製作所・電子顕微鏡(EF-2000)の開発に情報の提供

• 2006年-2011年 JST・CREST事業に主たる共同研究者として採択

• 2009年-2011年 JST・先端計測分析技術・機器開発事業・ソフト

ウェア開発プログラムに調査研究として採択

• 2011年-2015年 JST・・先端計測分析技術・機器開発事業・ソフトウェア開発プログラムに採択

»なうデータ研究所と共同開発

24

お問い合わせ先

九州工業大学

情報工学部 安永卓生

TEL 0948−29−7826

FAX 0948−29−7826

e-mail [email protected]