(57)【特許請求の範囲】
【請求項１】
１以上のコンピュータに実装され、シミュレーションジョブを生成し、前記シミュレーションジョブをデータベースに登録し、少なくとも一部分がファイアウォールの外側に置かれ、前記ファイアウォールの外側からシミュレーションモデルを受信するために前記ファイアウォールの内側にあるネットワークに比べてアクセスが比較的制限されていない公衆又は共有ネットワークに接続されているインターフェイスコンポーネントと、
１以上のコンピュータに実装され、前記シミュレーションジョブを読み出すために前記データベースにアクセスし、前記シミュレーションジョブを実行するためにスケジューリングするジョブ管理コンポーネントと、
１以上のコンピュータに実装され、前記シミュレーションジョブを前記ジョブ管理コンポーネントから受信し、数値計算アルゴリズム及び並列計算アルゴリズムのための実行可能コードを生成し、前記シミュレーションジョブを実行する複数のコンピュータに計算プロセスを振り分けるシミュレーション実行コンポーネントと、を含み、
前記ジョブ管理コンポーネントは、シミュレーション進捗状況情報を前記シミュレーション実行ジョブから受信し、前記シミュレーション進捗状況情報を前記データベースに登録し、前記シミュレーション進捗状況情報を前記インターフェイスコンポーネントに送信し、
前記シミュレーション実行コンポーネントは、前記シミュレーション進捗状況情報を前記ジョブ管理コンポーネントに送信し、前記シミュレーションジョブによって生成されたデータを一時的に記憶し、シミュレーション結果を前記インターフェイスコンポーネントに送信し、
前記インターフェイスコンポーネントは、前記インターフェイスコンポーネントによってホスティングされたウェブサイト上に前記シミュレーション進捗状況情報と前記シミュレーション結果を表示するか又は、ユーザーに前記シミュレーション進捗状況情報と前記シミュレーション結果を知らせるために前記ユーザーにメッセージを送信する、
シミュレーションシステム。
【請求項２】
前記インターフェイスコンポーネントは、前記ファイアウォールの外側に位置するユーザーからシミュレーションモデルを受信するように構成され、前記シミュレーションモデルに従って前記シミュレーションジョブを生成する、
請求項１に記載のシミュレーションシステム。
【請求項３】
前記インターフェイスコンポーネントは、ソーシャルネットワーキングホストを含む公衆ネットワークに接続され、前記ソーシャルネットワーキングホストによってホスティングされたソーシャルネットワークのウェブサイトを通じて送出された前記シミュレーションモデルを受信する、
請求項２に記載のシミュレーションシステム。
【請求項４】
前記インターフェイスコンポーネントは、Facebookのグループ、Google+のサークル、Google drive、Dropbox及びインターネット上に公開されたモデルデータベースのいずれか１以上からシミュレーションモデルを受信するように構成される、
請求項２に記載のシミュレーションシステム。
【請求項５】
前記シミュレーションモデルは、ＳＢＭＬ（System Biology Markup Language）、ＣｅｌｌＭＬ、およびＰＨＭＬ（Physiological Hierarchy Markup Language）のいずれか１以上で表現される、
請求項２に記載のシミュレーションシステム。
【請求項６】
前記インターフェイスコンポーネントは、前記シミュレーション結果のグラフを前記ウェブサイト上に表示し、前記シミュレーション結果をソーシャルネットワークのウェブサイトに表示するソーシャルネットワーキングサービスに前記シミュレーション結果を送信する、
請求項１に記載のシミュレーションシステム。
【請求項７】
前記ジョブ管理コンポーネントと前記シミュレーション実行コンポーネントは、前記ファイアウォールの内側にある同じ一連の１以上のコンピュータに実装される、
請求項１に記載のシミュレーションシステム。
【請求項８】
追加の１以上のシミュレーション実行コンポーネントをさらに含み、
前記ジョブ管理コンポーネントは、複数のシミュレーションジョブが扱われるときに、前記シミュレーションジョブをシミュレーション実行コンポーネントにそれぞれ割り当て、
前記シミュレーション実行コンポーネントの少なくともいくつかにおいては、リアルタイムコミュニケーションネットワークを通じて複数のコンピュータを接続し、ネットワーク上で分散コンピューティングを行って前記シミュレーションジョブを実行する、
請求項１に記載のシミュレーションシステム。
【請求項９】
前記リアルタイムコミュニケーションネットワークは、インターネットである、
請求項８に記載のシミュレーションシステム。
【請求項１０】
前記ファイアウォールは、前記インターフェイスコンポーネントと前記ジョブ管理コンポーネントとの間に設置される、
請求項１に記載のシミュレーションシステム。
【請求項１１】
前記インターフェイスコンポーネントに接続され、前記ファイアウォールの外側にあり、ＳＢＭＬ、ＣｅｌｌＭＬ及びＰＨＭＬのいずれか１つ又は組み合わせで書き出されるシミュレーション用モデルを生成するモデル構築ソフトウェアがインストールされ、前記シミュレーション用モデルを前記インターフェイスコンポーネントに送出するクライアントコンピュータをさらに含む、
請求項１に記載のシミュレーションシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、広範囲の研究者が利用可能なコンピュータ実装シミュレーションシステムに関する。
【背景技術】
【０００２】
科学又は工学のさまざまな分野における研究者達が、科学プロジェクト用あるいは工学プロジェクト用スキームのモデリングや、新たなシミュレーションモデルの結果について同僚と議論したがることはよくある。従来、これらの議論は別々に行われていた。モデルとシミュレーションデータを共有した議論を行うために、研究者達はいくつものステップをたどる必要があった。例えばこれらのステップは、電子メールで同僚と開発中のモデルを共有すること、それにコメントしてモデルを見直すこと、実行可能なモデルをオフラインで生成してローカルマシンでシミュレーションすること、及びシミュレーションの後に、さらなる議論に向けて電子メールやファイル共有サービスによって同僚とシミュレーション結果について再び共有すること、を含んでいる。同僚の数が多ければ、一連の作業は面倒になり、時間がかかりかねない。
【０００３】
その上、研究者が並列計算で高性能なシミュレーションを行うことを望んでも、その研究者が必ずしもハイパフォーマンスコンピュータ群（ＨＰＣｓ）を利用できる環境にいるとは限らない。例えば、研究者が属する機関がＨＰＣｓを有していない場合、研究者がＨＰＣｓにアクセスすることは容易でない。仮にその機関が１つのＨＰＣを有していても、その研究者がファイアウォールの外側にいれば、大抵アクセスは制限される。シミュレーターは計算資源に直接アクセスできなければならない。それゆえ、ユーザーは計算資源にシミュレーターを直接インストールする必要がある。ＨＰＣｓは一般的にファイアウォールによって外側からのアクセスを制限しているので、ユーザーがファイアウォールの外側からシミュレーターにアクセスすることは困難であるか不可能である。
【０００４】
その上、モデルのシミュレーションは一般的にデスクトップマシンやクラスターマシンといった計算資源のローカル記憶領域に、モデルを実行できるバイナリコードを保存し、マシン上でそのバイナリコードを実行することによって行われる。モデルの開発者はモデルの科学論理と同様の数値計算アルゴリズムのためのプログラムコードを書く必要がある。それゆえ、研究者達にとって、モデリングの対象となる現象から科学的に本質的な論理を構築することだけに集中することは困難である。
【０００５】
昨今のモデルは巨大化する傾向にあり、例えばクラスターマシンなどで高性能な計算を行う並列計算が要求される。この場合、研究者には、プロセスを並列化するためＭＰＩ（Message Passing Interface）やいくつかの他の技術を用いた特殊なアルゴリズムを実装することが必要になる。並列計算アルゴリズムをそのようなプログラムに実装することは、高レベルなプログラム技術が要求されるため、時間のかかる作業である。
【０００６】
しかも、並列化効率はクラスターマシンのハードウェア構成に依存する。例えば、あるプログラムがクラスターＡにチューニングされた場合、同じプログラムがクラスターＢで必ずしも効果があるとは限らない。それゆえ、研究者は、ハードウェアに依存するプログラムを最適化するためにより多くの時間を費やす必要がある。これは先と同様に科学的に本質的なことではない。
【０００７】
シミュレーションが大きな場合、シミュレーションの実行者はシミュレーションの進捗状況を知りたいと思う。シミュレーションの進捗率を示したり、シミュレーションされる変数の時系列データのグラフを示したりすることは有益なはずである。これをするために、モデルの開発者はこのような仕掛けをプログラムに実装するためにさらなる時間を費やす必要があるはずである。
【０００８】
さらに、シミュレーションの結果に応じて、シミュレーション中に変数の値を変更したり、あるいは途中でシミュレーションを中断したりする必要が生じることがある。これらの作業の実装には時間がかかり、科学的問題に加えて研究者にさらなる負担を課す。
【０００９】
ＳＢＳＩ（http://www.sbsi.ed.ac.uk/index.html）はＨＰＣを使用したシミュレーションサービスを提供している。しかしながら、そのシステムはファイアウォールの外側から到達不可能であり、ＳＢＭＬ（System Biology Markup Language）フォーマットだけをサポートしている。
【００１０】
ＳＢＭＬフォーマットやＣｅｌｌフォーマットのファイルを入力として受信するいくつものシミュレーターが存在する。これらにはデータをソーシャルネットワークサービスに送信したり、あるいはソーシャルネットワークサービスや同種のサービスからシミュレーションモデルを受信したりする機能がない。これらの多くはスタンドアロンのシミュレーターであるので、ユーザーは計算資源に直接これらをインストールする必要があり、その結果、上述した同様の問題にさらされることになる。
【発明の概要】
【発明が解決しようとする課題】
【００１１】
したがって、本発明は関連技術の制限及び不都合に起因する上述した１以上の課題及びその他の課題を実質的に除去するシミュレーションシステムを対象にする。
【００１２】
本発明は広範囲の研究者がアクセスできる利便性が向上したシミュレーションシステムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の目的に従って、且つ、これらの利点及びその他の利点を達成するために、具現化しかつ広く記載されているように、１つの態様では、本発明は、１以上のコンピュータに実装され、シミュレーションジョブを生成し、前記シミュレーションジョブをデータベースに登録し、少なくとも一部分がファイアウォールの外側に置かれ、前記ファイアウォールの外側からシミュレーションモデルを受信するために前記ファイアウォールの内側にあるネットワークに比べてアクセスが比較的制限されていない公衆又は共有ネットワークに接続されているインターフェイスコンポーネントと、１以上のコンピュータに実装され、前記シミュレーションジョブを読み出すために前記データベースにアクセスし、前記シミュレーションジョブを実行するためにスケジューリングするジョブ管理コンポーネントと、１以上のコンピュータに実装され、前記シミュレーションジョブを前記ジョブ管理コンポーネントから受信し、数値計算アルゴリズム及び並列計算アルゴリズムのための実行可能コードを生成し、前記シミュレーションジョブを実行する複数のコンピュータに計算プロセスを振り分けるシミュレーション実行コンポーネントと、を含み、前記ジョブ管理コンポーネントは、シミュレーション進捗状況情報を前記シミュレーション実行ジョブから受信し、前記シミュレーション進捗状況情報を前記データベースに登録し、前記シミュレーション進捗状況情報を前記インターフェイスコンポーネントに送信し、前記シミュレーション実行コンポーネントは、前記シミュレーション進捗状況情報を前記ジョブ管理コンポーネントに送信し、前記シミュレーションジョブによって生成されたデータを一時的に記憶し、シミュレーション結果を前記インターフェイスコンポーネントに送信し、前記インターフェイスコンポーネントは、前記インターフェイスコンポーネントによってホスティングされたウェブサイト上に前記シミュレーション進捗状況情報と前記シミュレーション結果を表示するか又は、ユーザーに前記シミュレーション進捗状況情報と前記シミュレーション結果を知らせるために前記ユーザーにメッセージを送信する、シミュレーションシステムを提供する。
【００１４】
別の態様では、本発明は、前記インターフェイスコンポーネントが、前記ファイアウォールの外側に位置するユーザーからシミュレーションモデルを受信するように構成され、前記シミュレーションモデルに従って前記シミュレーションジョブを生成する、上記特徴を有するシミュレーションシステムを提供する。
【００１５】
別の態様では、本発明は、前記インターフェイスコンポーネントが、ソーシャルネットワーキングホストを含む公衆ネットワークに接続され、前記ソーシャルネットワーキングホストによってホスティングされたソーシャルネットワークのウェブサイトを通じて送出された前記シミュレーションモデルを受信する、上記特徴を有するシミュレーションシステムを提供する。
【００１６】
別の態様では、本発明は、前記インターフェイスコンポーネントが、Facebookのグループ、Google+のサークル、Google drive、Dropbox及びインターネット上に公開されたモデルデータベースのいずれか１以上からシミュレーションモデルを受信するように構成される、上記特徴を有するシミュレーションシステムを提供する。
【００１７】
別の態様では、本発明は、前記シミュレーションモデルが、ＳＢＭＬ（System Biology Markup Language）、ＣｅｌｌＭＬ、およびＰＨＭＬ（Physiological Hierarchy Markup Language）のいずれか１以上で表現される、上記特徴を有するシミュレーションシステムを提供する。
【００１８】
別の態様では、本発明は、前記インターフェイスコンポーネントが、前記シミュレーション結果のグラフを前記ウェブサイト上に表示し、前記シミュレーション結果をソーシャルネットワークのウェブサイトに表示するソーシャルネットワーキングサービスに前記シミュレーション結果を送信する、上記特徴を有するシミュレーションシステムを提供する。
【００１９】
別の態様では、本発明は、前記ジョブ管理コンポーネントと前記シミュレーション実行コンポーネントが、前記ファイアウォールの内側にある同じ一連の１以上のコンピュータに実装される、上記特徴を有するシミュレーションシステムを提供する。
【００２０】
別の態様では、本発明は、追加の１以上のシミュレーション実行コンポーネントをさらに含み、前記ジョブ管理コンポーネントが、複数のシミュレーションジョブが扱われるときに、前記シミュレーションジョブをシミュレーション実行コンポーネントにそれぞれ割り当て、前記シミュレーション実行コンポーネントの少なくともいくつかにおいては、リアルタイムコミュニケーションネットワークを通じて複数のコンピュータを接続し、ネットワーク上で分散コンピューティングを行って前記シミュレーションジョブを実行する、上記特徴を有するシミュレーションシステムを提供する。
【００２１】
別の態様では、本発明は、前記リアルタイムコミュニケーションネットワークが、インターネットである、上記特徴を有するシミュレーションシステムを提供する。
【００２２】
別の態様では、本発明は、前記ファイアウォールが、前記インターフェイスコンポーネントと前記ジョブ管理コンポーネントとの間に設置される、上記特徴を有するシミュレーションシステムを提供する。
【００２３】
別の態様では、本発明は、前記インターフェイスコンポーネントに接続され、前記ファイアウォールの外側にあり、ＳＢＭＬ、ＣｅｌｌＭＬ及びＰＨＭＬのいずれか１つ又は組み合わせで書き出されるシミュレーション用モデルを生成するモデル構築ソフトウェアがインストールされ、前記シミュレーション用モデルを前記インターフェイスコンポーネントに送出するクライアントコンピュータをさらに含む、上記特徴を有するシミュレーションシステムを提供する。
【発明の効果】
【００２４】
本発明のさらなる又は分けられた特徴と利点は、以下の記載において説明され、一部はその記載から明らかであり、あるいは、本発明の実施により習得することができる。本発明の目的と他の利点は添付図面だけでなくその明細書及び特許請求の範囲において特に指摘される構成によって実現され、達成されるだろう。
【００２５】
上述の一般的な説明と、以下に述べる詳細な説明は具体例であって、例示を目的としており、特許請求されている本発明の範囲の詳しい説明を提供することが意図されていることを理解するべきである。
【図面の簡単な説明】
【００２６】
【図１】図１は、本発明の実施形態に係るシミュレーションシステムの機能態様を概略的に説明する図である。
【図２】図２は、本発明の実施形態に係るシミュレーションシステムのアーキテクチャを概略的に説明している。
【図３】図３は、本発明の実施形態に係るシミュレーションシステムの物理構成の一例を概略的に説明している。
【図４】図４は、本発明の実施形態に係るウェブサイトのインターフェイス画面の一例である。
【図５】図５は、本発明の実施形態に係るウェブサイトインターフェイス画面の一例である。
【図６】図６は、本発明の実施形態に係るウェブサイトインターフェイス画面の一例であり、シミュレーション結果を示している。
【図７】図７は、本発明の実施形態におけるシミュレーションモデルを構築するモデル構築手順を概略的に説明している。
【図８】図８は、本発明の実施形態におけるモデル構築手順を実装するソフトウェアプログラムのスクリーンショットの一例を概略的に示している。
【図９】図９は、本発明の実施形態に係るシミュレーションシステムにおけるウェブサイトのインターフェイスの例を概略的に示している。
【図１０】図１０は、本発明の実施形態に係るシミュレーションシステムの物理構成の一例を概略的に説明している。
【図１１】図１１は、本発明の実施形態に係るシミュレーションシステムのアーキテクチャの一例を概略的に説明している。
【発明を実施するための形態】
【００２７】
本発明は、いくつかの実施形態で、例えば科学的な議論、生体機能のモデルを共有すること、シミュレーションすること、及びシミュレーション結果を共有することなどの諸活動をソーシャルコミュニティ内でシームレスに結びつける手順を提供する。高性能なシミュレーションを普遍的に起動する手法についても関連している。
【００２８】
本発明のいくつかの実施形態では、システムの主たる態様は以下のとおりである。
１．インターネットで提供される高性能なシミュレーションサービスと例えばFacebook、Google+、又は正当なソーシャルネットワークタイプのインターフェイスなど、現存するソーシャルネットワークサービス（ＳＮＳ）とをシームレスに結びつけること。
２．システムアーキテクチャはあらゆるタイプのハイパフォーマンスコンピュータへの移植に適しており、あるいは、あらゆるタイプのハイパフォーマンスコンピュータに実装されるのに適している。発明したシステムは、ＰＨＭＬ(Physiological Hierarchy Markup Language)、ＳＢＭＬ及びＣｅｌｌＭＬ言語で書き出されたモデルファイルを受信する。例えば生体現象のダイナミクスを表す数式や物理単位など、数値計算のために要求される情報はモデルファイルに記載される。しかしながら、数値計算及び並列計算のためのアルゴリズムなどは、システムがプロセスの自動並列化を含むこれらのアルゴリズムのすべてを扱うので、含まれている必要がない。
【００２９】
図１は、本発明の実施形態に係るシミュレーションシステムの機能態様を概略的に説明する図である。シミュレーションシステムは、ネットワークを通じてFacebook（フェイスブック）のグループ、Google+（グーグルプラス）のサークル、Google drive（グーグルドライブ）、Dropbox（ドロップボックス）、又はネット上に公開されたモデルデータベース（例えばphysiome.jp（フィジオームドットジェイピー）など）から、又は、正当なソーシャルネットワークのようなインターフェイスからモデル１０１を直接受信することができる（ボックス１０２）。これに代えて又はさらに、アプリケーションはシステム１０３によって提供されたＡＰＩｓ（Application Programming Interface）を使用したシステムにモデルを直接アップロードすることができる。この特徴によって、ユーザーは議論するモデルのシミュレーションを例えばFacebookのグループやGoogle+のサークルでいつでも試すことができる。
【００３０】
発明したシステムはシミュレーションのために入力されたモデルのファイルに基づいて実行可能コードを自動的に生成する。プロセスを並列化するアルゴリズムは実行可能コードに自動的に組み込まれ、並列計算によってシミュレーションされる（ボックス１０４）。
【００３１】
パラメータの値を変えたり、シミュレーションを中止したり、シミュレーション中にいつでもシミュレーションを中断したりする機能及びインターフェイスもまたシステムに実装される。ユーザーはこれらの機能を実装する必要がない。
【００３２】
シミュレーション結果１０８は、まずサーバーに記憶される。進捗状況レポート１０５／１０６（例えば完了率など）も自動的に生成される。発明したシステムは、電子メール、Facebookのメッセージ、Facebookのグループポスト、Twitter（ツイッター）、及びGoogle+のメッセージでメッセージ１０７をユーザーが決めた頻度で送信することによってユーザーに進捗状況情報を通知する。
【００３３】
シミュレーションによって生成された時系列データは、サイズが大きくなる可能性がある。このような場合、時系列データ１０９とグラフ画像１１０を、例えばユーザーのローカルマシンやDropbox、Google driveといった記憶媒体１１１に送信してもよい。同じように、グラフ画像をFacebookのグループ、Google+のサークル又はEvernote（エバーノート）に送信してもよいので、ユーザーはＳＮＳ（social network service）上、あるいは正当なソーシャルネットワークタイプのインターフェイス上でシミュレーション結果に基づいて議論を継続できるようになる。
【００３４】
図２は、本発明の実施形態に係るシミュレーションシステムのアーキテクチャを概略的に説明している。この実施形態では、シミュレーションシステムがインターフェイスコンポーネント２０１、シミュレーションジョブ管理コンポーネント２０２、及びシミュレーション実行コンポーネント２０３を含んでいる。以下、シミュレーションジョブを単にジョブと称す。
【００３５】
インターフェイスコンポーネント２０１はジョブを生成し、ジョブをデータベースに登録する。インターフェイスコンポーネントはジョブ管理コンポーネントにジョブを直接送信しないので（図２の矢印はインターフェイスコンポーネント２０１からジョブ管理コンポーネント２０２への「ジョブ」の流れを示しているが、ジョブはデータベースを通じて間接的に転送される）、計算資源を囲うファイアウォールの外側にインターフェイスコンポーネント２０１を置くことができる。また、インターフェイスコンポーネント２０１はジョブ管理コンポーネント２０２からシミュレーションの進捗状況情報も受信し、ユーザーに進捗状況情報を知らせるべく、ブラウザによってアクセス可能なウェブサイト上に情報を表示するか、又はメッセージを電子メール、Twitter、Facebookのメッセージ若しくはFacebookのグループ１０２ａで送信する。さらに、シミュレーション結果のグラフをウェブサイト上に表示し、シミュレーション結果をFacebookのグループ、Google drive、Dropbox、Evernote、Google+のサークル１０２ｃに送信する。
【００３６】
ジョブ管理コンポーネント２０２は、データベースにアクセスすることによってインターフェイスコンポーネント２０１からジョブを取り込む。また、ジョブ管理コンポーネント２０２は、ジョブをシミュレーション実行コンポーネント２０３に送信するタイミングを調整し、適切なときにジョブをシミュレーション実行コンポーネント２０３に送信する。さらに、シミュレーション実行コンポーネント２０３からシミュレーションの進捗状況情報を受信し、データベースに登録する。しかも、インターフェイスコンポーネント２０１へ、シミュレーションの進捗状況とジョブのステータスを送信する。
【００３７】
シミュレーション実行コンポーネント２０３は、ジョブ管理コンポーネント２０２よりジョブを受信し、並列計算アルゴリズムを含む実行可能コードを生成し、複数のノードにプロセスを振り分け、シミュレーションを自動的に実行する（ボックス２０４）。しかも、シミュレーションの進捗状況情報をジョブ管理コンポーネント２０２に送信する。シミュレーションによって生成されたデータは、一時的にシミュレーション実行コンポーネント２０３に記憶される。シミュレーションが終了した後、例えばユーザーのローカルマシン、Dropbox、Google driveなどといったユーザー（１０２ａから１０２ｃまで）に結果のファイルがインターフェイスコンポーネント２０１を介して送信される。
【００３８】
上述したように、システムは３つのコンポーネントからなるので、ファイアウォールの外側からのシミュレーターシステムの利用可能性に関する課題をシステムは解決することができる。
【００３９】
シミュレーション実行コンポーネント２０３は、ＨＰＣｓが一般的に外側からのアクセスをファイアウォールによって制限しているので、ＰＣクラスターといった計算資源に直接アクセスできる。以上のとおり、従来、シミュレーターは１まとまりのコンポーネントアプリケーションとして構築されており、それゆえ、ユーザーは計算資源にシミュレーターを直接インストールすることが必要だった。また、ファイアウォールの外側からシミュレーターにアクセスすることもユーザーにとっては困難であったか、あるいは不可能であった。
【００４０】
しかしながら、以上のとおり、本実施形態のシステムは３つのコンポーネントからなるので、インターフェイスコンポーネントをＤＭＺ（DeMilitarized Zone（非武装地帯）：組織の外部にあるサービスを含み、それを信頼できないより大きなネットワークにさらす物理的又は論理的サブネットワーク、通常インターネット）に置くことができる。そのため、ユーザーはファイアウォールの外側（インターネット）からインターフェイスコンポーネントにアクセスでき、シミュレーションジョブをシステムに送出（submit）できる。その結果、ファイアウォールの内側に設置されているかもしれない、ジョブ管理コンポーネント２０２はジョブをインターフェイスコンポーネントからＴＣＰコネクションで取り込むことができる。
【００４１】
なおその上に、一連のシミュレーションをシミュレーション実行コンポーネント２０３によって行うことができる。しかも、ジョブ管理コンポーネント２０２を計算資源以外のほかの場所に置くことができるので、システムをより柔軟に操作することができる。
【００４２】
図３は、本発明の実施形態に係るシミュレーションシステムの物理構成の一例を概略的に説明している。ファイアウォールＦＷ上のコンピュータＣ１はインターフェイスコンポーネント２０１を表し、ファイアウォールＦＷの内側にあるコンピュータＣ２はジョブ管理コンポーネント２０２及びシミュレーション実行コンポーネント２０３に対応している。複数のＳＰは、シミュレーション実行コンポーネント２０３によって振り分けられたシミュレーションプロセスを指している。図３に示すように、ファイアウォールＦＷの外側にいるユーザー３０２はインターネット３０１を通じて（コンピュータＣ１によってホスティングされた）インターフェイスコンポーネントにアクセスするためにローカルのパーソナルコンピュータＣ４を使用することができる。上述したように、シミュレーションモデルをコンピュータＣ１に送出する際に、インターネット経由でソーシャルネットワーキングサービス（ＳＮＳｓ）や他の同種のインターフェイスを使用してもよい。この構成によれば、ファイアウォールの内側にいるユーザー３０３だけでなく、ファイアウォールの外側にいるユーザー３０２もまた、計算資源にアクセスできる。ここで、図３におけるＤ１は、以上のとおり、シミュレーションジョブが記憶されるデータベースを指している。
【００４３】
図４は、本発明の実施形態に係るウェブサイトのインターフェイス画面の一例である。インターフェイスコンポーネント２０１の役割を果たすコンピュータＣ１は、許可されたユーザーのためのウェブサイトをホスティングすることができ、シミュレーションに関する情報を受信して示すことができる。図４は、シミュレーションが進行中にあるときのインターフェイス画面の一例を示している。図４に示すように、要求されたシミュレーションジョブに関する情報とステータスが瞬時に一目瞭然に見ることができる。
【００４４】
図５は、シミュレーションジョブが完了したときのウェブサイトのウェブサイトインターフェイス画面の一例である。シミュレーションのステータスは現在「完了」であり、進捗状況バーが１００％を示している。
【００４５】
図６は、シミュレーション結果を示すウェブサイトインターフェイス画面の一例である。この図に示すように、ユーザーは結果をローカルコンピュータにダウンロードできるか、あるいはファイルをDropboxに移送することができる。
【００４６】
上述したように、いくつかの実施形態では、シミュレーションのためのモデルを構築するためにＰＨＭＬを使用することができる。従来のシミュレーターはシミュレーションモデルのためのＰＨＭＬをサポートしていないので、上述した実施形態がＰＨＭＬをサポートすることにおいて重要な利点を有している。
【００４７】
以下には、生物学などの研究者にとって特にふさわしい本発明の他の実施形態が記述されている。
【００４８】
この態様では、本発明は多階層生体システムのモデリング及びシミュレーションをサポートするソフトウェアフレームワークを提供する。いくつかの実施形態では、クラウドコンピューティングをサポートするべく本発明を発展させて拡張させた。
【００４９】
フレームワークは２つのブロック、ローカルモデルデザイナー（実際の開発バージョンは「PhysioDesignerTM：フィジオデザイナー（登録商標）と名づけられている」と、上述したシミュレーションシステムの実施形態の特徴のいくつか又は全てを実行するシミュレーションシステムとからなる。２つ目の部分であるシミュレーションシステムの実際の開発バージョンは「FlintTM：フリント（登録商標）」又は「Flint system：フリントシステム」と名づけられ、後述するような、クラウドコンピューティングをサポートするその拡張バージョンが「Flint K3TM system：フリントＫ３（登録商標）システム」と名づけられている。PhysioDesignerTMは生体機能の多階層モデリングでユーザーを補助するグラフィカルユーザーインターフェイスとスクリプトベースのモデルを構築する端末インターフェイスとを提供するアプリケーションである。PhysioDesignerTMで構築されたモデルはＰＨＭＬ（生体階層構造記述言語）で書き出される。FlintTMはスタンドアロンのシミュレーターであり、適切なシステム環境で並列計算のためのＭＰＩをサポートしている。スタンドアロンのアプリケーションに基づいて、クラウドコンピューティングをサポートするFlint K3TMシステムが開発され、これが移植可能な高性能のシミュレーションのための解決手段を提供している。Flint K3TMのウェブサイトで、ユーザーはＰＨＭＬで記載されたモデルをアップロードすることができる。さらに、PhysioDesignerTMと他のアプリケーションは、シミュレーションジョブをオンラインで直接Flint K3TMに送出することができる。
【００５０】
以下では、本発明のこれらの実施形態を開発するに当たっての背景と、実際に構築されたアプリケーション／システム：PhysioDesignerTM、FlintTM及びFlint K3TMの特別な特徴のいくつかは、本発明の実施形態として記載されている。しかしながら、添付された特許請求の範囲にこれら特別な特徴が記載されていなければ、開発したアプリケーション／システムのこれらの特徴のいずれに対しても本発明は限定されるものではない。
【００５１】
過去１０年間、還元主義の科学によって提供された大量のデータに基づいて、システムバイオロジーと統合的生体機能学におけるモデリングベースの科学が急速に進行していた。これらの分野では、モデルが巨大化傾向にあり、その構造がより複雑かつきめ細かくなる傾向にある。このようなモデルを、研究グループ間、いわゆる「ウェット」研究グループと「ドライ」研究グループとの間だけでなく、同様に「ドライ」研究グループと「ドライ」研究グループとの間、の共同研究なしで構築することはほとんど不可能である。効果的な共同研究を推進し、大規模なモデルを構築し、ＣＰＵで集中的にシミュレーションするために、このような活動をサポートするツールを開発することはとても重要である。
【００５２】
後述する特徴はPhysioDesignerTMに実装されるが、この特徴は多階層生体システムのモデルを作りたいユーザーのために当たり前の総合開発環境を提供することを目指している。ユーザーは、グラフィカルユーザーインターフェイスを使用して、目標とする生体システムのある状態のダイナミクスを階層的に構造化された数式で記載することができる。PhysioDesignerTM上で構築されたモデルはＰＨＭＬ（Physiological Hierarchy Markup Language）で書き出される。ＰＨＭＬは生体の階層的な機能をはっきりと表すために設計されたＸＭＬベースの仕様である。PhysioDesignerTMは公衆に利用可能になっている（http://physiodesigner.org）。
【００５３】
モデルを構築する他に、シミュレーションすることは重要な対称を成している。上述した本発明の実施形態としてのシミュレーションシステムはFlintTMに実装されるが、これはPhysioDesignerTMと稼動可能なインタプリタタイプのシミュレーターであってもよい。上述したように、ＰＨＭＬを解析（parse）し、内部でコンパイルし、シミュレーションを起動するようにシミュレーションシステムを構成することができる。システムがＭＰＩ環境を有する場合、ＭＰＩを使用した数値計算のシミュレーションのためにFlintTMはマルチコアを使用することができる。モデルのサイズは大きくなるのでこの特徴は極めて重要になるはずである。しかしながら、不幸にも、多くのＣＰＵを伴ったこのような高性能のＰＣクラスターはいつもは利用できない。コンピュータクラウドで稼動可能なFlintTMであるFlint K3TMサービスは、これらの要求を満たすように開発された。Flint K3TMシステムはジョブ管理のためのポータルサイトを備えている。ユーザーは、シミュレーションジョブをそのサイトに送出することができる。それに、PhysioDesignerTMはインターネット経由でシミュレーションジョブを直接Flint K3TMに送信することができる。
【００５４】
[モデル構築ソフトウェア／システム]
シミュレーション用モデルを構築するユーザーを補助するためにモデル構築ソフトウェアは提供される。PhysioDesignerTMは生体系の階層的な多層モデルをユーザーが編集可能なアプリケーションソフトウェアである。アプリケーションはhttp://physiodesigner.orgで入手可能になっている。以前はinsilicoIDE（http://physiome.jp）として開発されたが、近年の開発の進展に従って、アプリケーションは次世代型としてPhysioDesignerTMに改称された。
【００５５】
もしモデル構築ソフトウェアと一緒になる場合及びときは、ここで記載されるであろうPhysioDesignerTMの特徴の一部又は全てを実装するように本発明の実施形態を構成してもよい。
【００５６】
PhysioDesignerTMで構築されたモデルは、生物学的包括モデルにおける階層システムを記載するためのＸＭＬベースの仕様であるＰＨＭＬフォーマットで書き出される。ＰＨＭＬは、２００７年から開発されているＩＳＭＬ（http://physiome.jp）の後継言語である。
【００５７】
ＰＨＭＬでは、モデルに取り込まれた生物的要素及び生体的要素の各々が図７にまとめられたようにモジュールと呼ばれ、モジュール間の構造的関係及び機能的関係がエッジによって定義される。複数モジュールのグループを１モジュールとして定義してもよい。モジュールのこの再帰的な定義によって、生体システムの階層構造がモデルで表現される。各モジュールは、いくつもの物理量、例えばシステムのダイナミクスを定義するステータス、変数パラメータ及び静的パラメータなどによって定量的に特徴付けられる。例えば常微分方程式／偏微分方程式、あるいは物理量の関数といったダイナミクスの定義は、数学の方程式によって明確に記載される。
【００５８】
モジュール間の機能的関係の定義は、あるモジュールのアウトポートを別のモジュールのインポートに結びつけるエッジ（機能的エッジ）によって表される。定義は物理量として定義された数値情報を運ぶ。その情報を受信するモジュールはそのモジュールで定義された方程式でそれを活用することができる。
【００５９】
モジュール間の論理構造もまたエッジ（構造的エッジと呼ばれる）によって定義することができる。論理構造は、例えば”has a”の関係といったモジュール間の関係のようなある種のオントロジーを表している。生体学の用語では、それは「構成する」（例えば多くの心筋細胞が心臓を構成する）、「含む」（細胞膜は細胞小器官を含む）などに対応する。
【００６０】
図７は、モジュール、物理量及びエッジを表すＰＨＭＬのスキーマを例示している。モジュール１には、２つの物理量があり、ａとｙが定義されている。ａは静的パラメーター（例えば定数）であり、ｙは常微分方程式を定義するために使用される状態である。ｙはその値をエクスポートするためのアウトポートに関連づけられている。値は機能的エッジ及びインポートを通じてモジュール２の物理量ｙによって受信される。モジュール１のｙとモジュール２のｙとの間のこの関係によって、モジュール１に定義されたｙの値はモジュール２のｘの方程式で使用される。モジュール３とモジュール４はモジュール２の下位層に置かれる。
【００６１】
アプリケーションはＰＨＭＬによって記載可能な全ての構成を設定するグラフィカルユーザーインターフェイスを提供する。図８を参照。図８は、アプリケーションのユーザーディスプレイにおけるいくつかの画面のスクリーンショットである。図８に概略的に示すように、アプリケーションは、２つのやり方でモデルをグラフィカルに示している。一方はツリーダイアグラムであり、他方はネスティングダイアグラムである。メインウィンドウは、選択されたモジュールのポートテーブル及び物理量テーブル、並びにモジュールのコンポーネントリストも含んでいる。さらに、Python（パイソン）やPhysioDesignerTMのＡＰＩに基づいてユーザーがコマンドを実行できるXML Viewer(ＸＭＬビューワー)やPhysioTerminal（フィジオターミナル）がある。
【００６２】
さらに、アプリケーションはPythonで書き出されたＡＰＩｓ（Application Programming Interfaces）を提供する。ＡＰＩを使用すれば、ユーザーはＧＵＩを使用せずに端末上（又はコンソール上）のモデルをPythonのシェルで十分に扱うことができる。
【００６３】
いくつかの実施形態では、多階層モデリングをＳＢＭＬ−ＰＨＭＬのハイブリッドモデリングによって行うことができる。ＳＢＭＬ（システムバイオロジー記述言語）は、例えば代謝作用、細胞情報伝達などの生物学のプロセスのコンピューターモデルのためのＸＭＬフォーマットである。ＰＨＭＬは、そのモジュールの表現を使用した機能的ネットワークと階層構造を表すように設計されている。ＳＢＭＬとＰＨＭＬを結合することで、多階層の生体現象を含むモデルを構築する能力を拡張することができる。いくつかの実施形態では、ＳＢＭＬをまるごとＰＨＭＬのモジュールにインポートする機能をそこに提供してもよい。そのときモジュールは、ＳＢＭＬによってモデル化された細胞下の現象を表すことができる。ＳＢＭＬモデルを伴うモジュールを他のモジュールに機能的エッジ及び構造的エッジにより結びつけることによって、最終的に構造的関係と機能的関係の両方の意味でＳＢＭＬモジュールをＰＨＭＬモジュールのネットワークに効果的に埋め込むことができる。ＳＢＭＬモデルまるごとを記載するべく、ＰＨＭＬ仕様のモジュールセクションの中にインポートセクションがある。実際には、ＳＢＭＬだけでなくどのモデルフォーマットでもモジュールに埋め込むことができる。
【００６４】
ＳＢＭＬには、生化学エンティティの量的特質を表すために「スピーシーズ（種）」と「パラメータ」が存在する。ＳＢＭＬモデルを含むモジュールでは、数値を設定したり取得したりするためにスピーシーズ又はパラメータに関係している物理量を定義することができる。ＳＢＭＬパートからＰＨＭＬパートへの一方向の橋渡しとしての役割を果たす「ｇｅｔ（取得）」定義によってＰＨＭＬパートの物理量はＳＢＭＬモデルで定義された数値情報を活用することができる。似ているが逆に、ＳＭＢＬモデル自身を変更しないでＳＢＭＬモデルにスピーシーズ又はパラメータの元の定義を重ねることによって「ｓｅｔ（設定）」定義はＰＨＭＬパートからＳＢＭＬパートに定量的に影響を及ぼすことができる。ｇｅｔ定義及びｓｅｔ定義によって、ＳＢＭＬモデルはそのモデルに効果的に取り込まれる。
【００６５】
[シミュレーションシステム]
この開示では、上述したシミュレーションシステムの特徴のいくつか又はすべてを実装するシミュレーションシステムを、上述したモデル構築ソフトウェアと結合させて使用してもよい。ここで記載されるFlintTM及び／又はFlintTMシステムの特徴のいくつか又はすべてを実装するように本発明のいくつかの実施形態を構成してもよい。
【００６６】
本発明では、モデル構築のためのタスクとシミュレーションのためのタスクは分かれている。これらのタスクはモデル構築ソフトウェアによって構築されたモデルを受信するシミュレーションシステムによって扱われるので、ユーザーは数値計算アルゴリズムの実装に煩わされることなくモデルを構築するための構造及び論理に重点的に取り組むことができる。
【００６７】
図９は、許可されたユーザーによってアクセス可能なウェブページ上のユーザーインターフェイスのスクリーンショットを概略的に示している。FlintTMのトップウィンドウ上で、ユーザーは数値積分アルゴリズム（例えばオイラー法や４次のルンゲ−クッタ法など）を選択し、シミュレーションの期間と単位時間を伴うタイムステップと、値をデータファイルに記録するためのサンプリング間隔とを設定することができる（図９のＡ）。シミュレーションを起動する前に、データファイルに記録されている物理量を選択することができる（図９のＢ）。これらの設定（サンプリング間隔及び物理量の選択）によって、データファイルのサイズをより小さくすることができる。図９のＣは、グラフィカルな出力を示している。FlintTMはシミュレーション中に中間結果をグラフによって示すことができる（図９のＣ及びＤ）。グラフはシミュレーションの進捗状況として実質的にリアルタイムでアップデートされてもよい。長時間かかりかねないシミュレーションをユーザーが行いたいときに、この特徴はユーザーがシミュレーションの現在のステータスをチェックするのに便利である。FlintTMに実装されるグラフプロッターは例えばＰＤＦ、ＰＮＧなどといった画像ファイルにグラフをエクスポートすることができる。発表又はプレゼンテーションにより適切な図表を生成するためのgnuplotといった外部のグラフプロッターもFlintTMはサポートする。
【００６８】
ＳＯＳｌｉｂを使用してＰＨＭＬと同様のＳＢＭＬで書き出されたモデルをシミュレーションするようにシミュレーションシステムを構成してもよい。ＳＢＭＬ−ＰＨＭＬハイブリッドモデルのシミュレーションを解釈（parse）して実行するようにシステムを構成してもよい。これは、上述した時空間の多階層生体システムのモデルをモデリングしてシミュレーションする効果的なやり方である。最初、FlintTMはすべての方程式を抽出し、方程式間の関係を定義する。次いで、いっせいにそれらの方程式を内部でコンパイルする。FlintTMはＯＤＥ（Ordinary Differential Equations：常微分方程式）及びＤＤＥ（Delay Differential Equations：遅延微分方程式）を伴った方程式を扱うことができる。これらの方程式は確率的な用語を含めることができる。
【００６９】
ＭＰＩを使用した（例えば、ＯｐｅｎＭＰＩ１．４以降のFlintTMにより実行された）並列計算をサポートするようにシミュレーションシステムを構成してもよい。シミュレーションシステムは自動的にシミュレーションを複数のＣＰＵ（プロセッサ）に分割する。これは、このプラットフォームを使用するユーザーにとっての利点の１つである。なぜなら、ユーザーがマルチコア環境又はＰＣクラスター環境上で並列計算を採用したい場合、通常、ユーザーには、並列計算を行うことができるシミュレーターを開発するための特別な技術を余計に学習することが求められるからである。これは通常とても時間がかかる作業である。
【００７０】
本発明の実施形態のシミュレーションシステムの特徴をサポートするクラウドを開発するべく、その移植性を改良するのにはっきりしたクライアント−サーバーアーキテクチャが導入された。
【００７１】
FlintTMの場合、サーバー部分は「ｉｓｂｕｓ」と呼ばれるプログラムとして実装される。クライアントソフトウェアは、サブプログラムの実行を要求するためにメッセージをｉｓｂｕｓに送る。サブプログラムの各々はモデルを解釈（parse）したり調査したりするなど特別な役割を果たす。FlintTMはJavaに実装されたＧＵＩクライアントを提供する。後述するように、同じ機能をウェブアプリケーションとして実装してもよい。クライアントがモデルのシミュレーションを起動しようとすると、クライアントは最初にモデルのシミュレーションを開始する要求にパラメータをパッキングし、それをｉｓｂｕｓの専用のＴＣＰポートに送信する。次いで、ｉｓｂｕｓはメッセージを読み取り、そのモデルのためのシミュレーションプロセスを起動するプログラム「ｉｓｒｕｎ」を立ち上げ、応答にパッキングしてそれをクライアントに送り返す。とりわけメッセージをパッキングすることは中立的なやり方でプログラミング言語に定義されており、すなわち、フォーマットを扱うためのC++/Java/Pythonのライブラリがある。シミュレーションの最中に、シミュレーションプロセスは進捗状況情報を非同期的にクライアントに送信する。クライアントはこのような情報を受信するか又は無視することができる。
【００７２】
[クラウドコンピューティングを伴うシミュレーションシステム]
今日、モデルのサイズは巨大化傾向にあるので、高性能なコンピュータで稼動するシミュレーションシステムが求められる。この求めを満たすために、上述した特徴のいくつか又は全てを実装し、クラウドコンピューティングで稼動可能なシミュレーションシステムが開発された。このように開発されたシステムはFlint K3TM（Knit Knowledge Knack）（以降、適宜Ｋ３と称す）と名づけられた。このシステムによれば、例えPhysioDesignerTMのユーザー（又は他のモデル構築環境にいるユーザー）が高性能なコンピュータに全くアクセスできない場合でも、そのユーザーはシミュレーションジョブを高性能なクラウドコンピューティング環境に即座に送信することができる。Ｋ３は「ｅｄｕｂａｓｅＣｌｏｕｄ」（http://edubase.jp/cloud）で開発された。ｅｄｕｂａｓｅＣｌｏｕｄは、国立情報学研究所（ＮＩＩ）で開発されたクラウド工学教育のためのオープンソースベースのコンピュータクラウドである。Flint K3TMの開発と予行運転のために、クラウド上に６４個のコアが割り当てられた。
【００７３】
Ｋ３は図１０に示すように２つのタイプのサーバーからなる。１つはコンピュータＣ５に実装されるインターフェイスサーバ（ＩＦＳ）であり、これはユーザーからジョブ要求を受信して、そのジョブを管理する。シミュレーションジョブはＩＦＳからクラウド１００１，１００２の各コンピュータＣ７及びＣ８に実装されるシミュレーションサーバ（ＳＳ）にそれぞれ送信される。ＳＳはシミュレーションのために割り当てられたあらゆるノードの計算プログラム（ＣＰ）を呼び起こす。ＣＰは互いにコミュニケーションをとりながらモデルの数値計算を並列に行う。
【００７４】
図１０に示すアーキテクチャでは、ＩＦＳがトラヒックのボトルネックになるかもしれないように見える。この論点を回避するために、いくつものやり方によってＩＦＳでトラヒックのスケーラビリティを確保してもよい。１つのやり方は、各クラウドにある種のゲートウェイを置くことであり、ゲートウェイがＩＦＳの機能の一部を引き受けることができるようになる。細かな通信はゲートウェイとＳＳとの間で行われ、必要となるコンパクトな情報のみがＩＦＳとゲートウェイとの間で置き換えられる。代わりに又はさらに、リバースプロキシサーバでロードバランシングするためにＩＦＳの複数のクローンを提供してもよい。そのとき、システムは安全なシングルサインオンをサポートし、同時にロードを複数のＩＦＳに振り分けることができる。
【００７５】
この実施形態では、ユーザーがシミュレーションジョブをFlint K3TMに送出（submit）する３つのやり方がある。１つ目のやり方は、ウェブブラウザでＫ３ ＩＦＳに訪問することである。ユーザーはモデルをアップロードし、各コンピュータＣ６を通じてＩＦＳによってホスティングされたウェブサイトにアクセスすることによってそのサイトでシミュレーションジョブを送出するためのシミュレーションパラメータを構成することができる（図１０）。２つ目のやり方は、開領域でＫ３とモデルデータベースとの結びつけを活用することである。現在、Physiome.jp（http://www.physiome.jp/modeldb/index1.php）のＰＨＭＬデータベースと、例えばＰａｙａｏデータベース（http://celldesigner.org/payao/index.html）及び欧州バイオインフォマティクス研究所（http://www.ebi.ac.uk/biomodels-main/）のＢｉｏＭｏｄｅｌｓといったいくつものサイトのＳＢＭＬデータベースとがある。ユーザーはＫ３ ＩＦＳに対し各データベースで定義されたモデルＩＤを提供することができる。そのとき、Ｋ３ ＩＦＳは、データベースにアクセスでき、モデルデータベースから直接モデルをダウンロードする。データベースとシミュレーションサーバ間のこのような結びつきがいったん構築されると、ユーザーはデータベースのモデルのダイタミクスを容易にチェックすることができる。３つ目のやり方は、例えば、シミュレーションジョブを送出し、シミュレーションの進捗状況レポートを取得するために、PhysioDesignerTMなどのアプリケーションがＫ３に直接アクセスできるような、例えばsimulate（model,parameters）、getStatus（job-id）、getProgress（job-id）といったＩＦＳで実装されるＲＥＳＴ ＡＰＩを使用することである。
【００７６】
図１１は、Flint K3TMシステムの内部アーキテクチャのスキーマを示している。ユーザーエージェントがインターフェイスサーバ（ＩＦＳ）でウェブアプリケーションにアクセスし、モデルファイルやパラメータといったジョブに関する情報が記憶装置に記憶される。ＩＳＢＵＳは記憶装置からジョブ情報を取り出し、クラウドにあるシミュレーションサーバ（ＳＳ）のＩＳＲＵＮにシミュレーションを開始させるための信号を送信する。ＩＳＲＵＮは、クラウドにある複数のノードにおけるいくつもの計算用プロセスを呼び起こす。シミュレーションの進捗状況情報はＩＦＳのウェブアプリケーションを通じてユーザーにフィードバックされる。
【００７７】
基本的に、以下の３つの大きな違いを除いて、Flint K3TMはFlintTMのスタンドアロンバージョンと同じアーキテクチャを有している。第１に、ユーザーがセッションで認証されて許可されていなければならないので、Ｋ３はセキュリティを強化している。ＩＦＳはＯＡｕｔｈスタンダードを活用している。ユーザーはFacebook、Twitter、Google及びDropboxのアカウントを使用してＩＦＳにログインすることができる。第２に、Ｋ３は多くのマシンを伴うクラウド環境で稼動し、それらの各々は物理的なマルチコアを有するので、Ｋ３はコアの利用法の観点から望ましいＭＰＩベースの仮想マシンの構成を見つけるはずである。すなわち、ほんの少しのコアでいくつものシン（thin）な仮想マシンにいくつもの小さなプロセスをマッピングするのと同様に、多数の物理的なコアで１つのファット（fat）な仮想マシンに大きなシミュレーションプロセスをマッピングすることができる。第３に、できる限り長く生き続けるシミュレーションジョブは効率的なスケジューリングでコントロールされるべきである。
【００７８】
上述したように、本発明のいくつかの実施形態では、多階層モデリング及びシミュレーションのためのソフトウェアフレームワークが開発された。ソフトウェアフレームワークは、モデルビルダーとしてのPhysioDesignerTM、モデル記述言語としてのＰＨＭＬ、及びシミュレーターとしてのFlintTMからなり、統合的生体機能学とシステムバイオロジーの進展を加速させること目指している。スタンドアロンのFlintTMアプリケーションの拡張として、高性能なコンピューティング環境への容易なアクセスを提供するために、クラウド互換性をもったFlint K3TMシステムが開発された。上述したように、複数のコンピュータによってソフトウェアフレームワークを実装することができる。
【００７９】
図１０に示すＫ３の構成のおかげで、性能を最適化するためにシミュレーションサーバー（図１０のＳＳ）を新たなシステムアーキテクチャにチューニングするだけでＫ３を他のクラウドあるいはコンピュータークラスターに拡張することができる。
【００８０】
それにもかかわらず、Garudaプラットフォームと呼ばれる別のプロジェクトがあり、これは、システムバイオロジーのソフトウェアと知識を一貫して結びつける基盤技術を提供することを目指している。PhysioDesignerTMからだけでなく、例えばCellDesignerといったGarudaアライアンス（http://www.garuda-alliance.org/）にある他のツールからでもFlintTMサービス及びFlint K3TMサービスを活用することができる。図１０参照。これは、FlintTMに関する技術並びにシステムバイオロジーと統合的生体機能学との間にある本発明の他の実施形態の範囲を拡張する。
【００８１】
図１乃至図６を参照して上述した実施形態のように、コンピュータＣ５（図１０）によってホスティングされたＩＦＳを３つの異なるコンポーネント：インターフェイスコンポーネント、ジョブ管理コンポーネント及びシミュレーション実行コンポーネントによって構築してもよい。これらのコンポーネントの各々を１以上のコンピュータによって実装してもよい。１以上のファイアウォールを例えばインターフェイスコンポートネントとジョブ管理コンポーネントとの間など適切な場所に置くことができるので、１以上のソーシャルネットワークサービスと、又は、インターネットといった公衆ネットワークで、又は、プライベートネットワーク又はセミプライベートネットワークで利用可能な又は開発された同種のサービスと、このようなサービスを通じてシミュレーションジョブを受信するために、やりとりするようにＩＦＳを構成することができる。
【００８２】
本発明の趣旨及び範囲から逸脱することなく本発明に対して様々な修正及び変形を行えることは当業者には自明であろう。すなわち、本発明は添付の特許請求の範囲とその均等物の範囲内で生じるさまざまな修正及び変形を包含することが意図されている。特に、上述したいずれか２以上の実施形態及びその修正のいずれかの一部又は全体が結合されて本発明の範囲内でみなされることは明示的に熟慮される。
【符号の説明】
【００８３】
１０３  シミュレーションシステム
２０１  インターフェイスコンポーネント
２０２  シミュレーションジョブ管理コンポーネント
２０３  シミュレーション実行コンポーネント
３０１  インターネット
３０２，３０３  ユーザー
１００１，１００２  クラウド
Ｃ１，Ｃ２，Ｃ３，Ｃ５，Ｃ７，Ｃ８  コンピュータ
Ｃ４，Ｃ６  ローカルパーソナルコンピュータ
Ｄ１  データベース
ＦＷ  ファイアウォール
【図１】
0005822414.tif 000002
【図２】
0005822414.tif 000003
【図３】
0005822414.tif 000004
【図４】
0005822414.tif 000005
【図５】
0005822414.tif 000006
【図６】
0005822414.tif 000007
【図７】
0005822414.tif 000008
【図８】
0005822414.tif 000009
【図９】
0005822414.tif 000010
【図１０】
0005822414.tif 000011
【図１１】
0005822414.tif 000012