(57)【要約】      （修正有）【課題】並列コンピュータ・システム上で実行される分析ルーチンを呼び出してクエリ結果を分析する技法を提供する。【解決手段】データベース・クエリのビルド及び実行に使用されるインターフェースを使用することにより、並列コンピュータ・システム１５２上の複雑な分析ルーチンを呼び出して、前記データベース・クエリの実行によって取得されるクエリ結果を分析することができる。別法として、ユーザは、（クエリ結果を受信した後に分析ルーチンを選択する場合と対照的に）前記並列コンピュータ・システム１５２上の分析ルーチンによって評価される特定の条件を含むクエリをビルドすることができる。【選択図】図１
2010092471.tif 000002
【特許請求の範囲】
【請求項１】
並列コンピュータ・システム上で実行される分析ルーチンを呼び出す、コンピュータに実行させる方法であって、
コンピューティング・システム上で実行されるクエリ・ビルダ・アプリケーションを使用して生成されたクエリを受信するステップと、
前記クエリをデータベースに対して実行することによってクエリ結果を受信するステップと、
前記クエリ結果を分析するのに使用可能な１つ又は複数の分析ルーチンを識別するステップと、
前記分析ルーチンのうちの１つの選択を受信するステップと、
前記並列コンピュータ・システム上の選択済みの前記分析ルーチンを呼び出すステップと、
前記クエリ結果に関して前記並列コンピュータ・システム上で呼び出された選択済みの前記分析ルーチンから分析結果を受信するステップと、
前記分析結果を前記クエリ結果とマージするステップと、
マージされた前記結果を表示するステップと、
を含む方法。
【請求項２】
前記分析ルーチンを呼び出すステップは、
前記並列コンピュータ・システムの計算ノードとの間のネットワーク接続を確立するステップと、
コマンド及び前記クエリ結果を前記並列コンピュータ・システムの前記計算ノードに送信するステップと、
前記計算ノードが前記コマンド及び前記クエリ結果を前記分析ルーチンによって必要とされるフォーマットに変換するステップと、
変換済みの前記コマンド及びクエリ結果を使用して、前記並列コンピュータ・システム上で前記分析ルーチンの実行を呼び出して前記分析結果を取得するステップと、
前記計算ノードが前記分析結果を前記クエリ・ビルダ・アプリケーションによって必要とされるフォーマットに変換するステップと、
を含む、請求項１に記載の方法。
【請求項３】
変換済みの前記コマンド及び前記クエリ結果を入力ファイルに書き込むステップを更に含み、前記分析ルーチンは、前記入力ファイルの構文解析を行って変換済みの前記コマンド及び前記クエリ結果を取得する、請求項２に記載の方法。
【請求項４】
前記入力ファイルを前記計算ノードによって維持されるジョブ・キューに格納するステップを更に含む、請求項３に記載の方法。
【請求項５】
前記分析結果をテーブルとしてフォーマット化するステップと、
前記テーブルを出力ファイルに書き込むステップと、
を更に含み、
前記クエリ・ビルダ・アプリケーションは、前記出力ファイルの構文解析を行って前記分析結果を取得する、請求項２に記載の方法。
【請求項６】
前記分析結果を前記クエリ結果とマージするステップは、フォーマット化された前記分析結果を結果テーブルとして結合するステップを含み、マージされた前記結果を表示するステップは、前記結果テーブルを表示するステップを含む、請求項５に記載の方法。
【請求項７】
前記分析ルーチンは、分子ドッキング・アルゴリズムである、請求項１に記載の方法。
【請求項８】
前記クエリ・ビルダ・アプリケーションは、前記並列コンピュータ・システムの計算ノード上で実行される、請求項１に記載の方法。
【請求項９】
それ自体が実行されたときに並列コンピュータ・システム上で実行される分析ルーチンを呼び出す処理を実行するプログラムであって、前記処理は、
コンピューティング・システム上で実行されるクエリ・ビルダ・アプリケーションを使用して生成されたクエリを受信するステップと、
前記クエリをデータベースに対して実行することによってクエリ結果を受信するステップと、
前記クエリ結果を分析するのに使用可能な１つ又は複数の分析ルーチンを識別するステップと、
前記分析ルーチンのうちの１つの選択を受信するステップと、
前記並列コンピュータ・システム上の選択済みの前記分析ルーチンを呼び出すステップと、
前記クエリ結果に関して前記並列コンピュータ・システム上で呼び出された選択済みの前記分析ルーチンから分析結果を受信するステップと、
前記分析結果を前記クエリ結果とマージするステップと、
マージされた前記結果を表示するステップと、
を含む、コンピュータに読み込み可能なプログラム。
【請求項１０】
プロセッサと、クエリ・ビルダ・アプリケーションが収容されたメモリと、を有するコンピューティング・システムであって、
前記クエリ・ビルダ・アプリケーションは、
前記クエリ・ビルダ・アプリケーションを使用して生成されたクエリを受信し、
前記クエリをデータベースに対して実行することによってクエリ結果を受信し、
前記クエリ結果を分析するのに使用可能な１つ又は複数の分析ルーチンを識別し、
前記分析ルーチンのうちの１つの選択を受信し、
前記並列コンピュータ・システム上の選択済みの前記分析ルーチンを呼び出し、
前記クエリ結果に関して前記並列コンピュータ・システム上で呼び出された選択済みの前記分析ルーチンから分析結果を受信し、
前記分析結果を前記クエリ結果とマージし、
マージされた前記結果を表示する
ように構成される、システム。
【請求項１１】
前記並列コンピュータ・システムは、
少なくとも選択済みの前記分析ルーチンを実行するように構成されたプロセッサ及びメモリをそれぞれ有する複数の計算ノード
を備える、請求項１０に記載のシステム。
【請求項１２】
前記分析ルーチンを呼び出すことは、
前記並列コンピュータ・システムの計算ノードとの間のネットワーク接続を確立し、
コマンド及び前記クエリ結果を前記並列コンピュータ・システムの前記計算ノードに送信し、
前記計算ノードが前記コマンド及び前記クエリ結果を前記分析ルーチンによって必要とされるフォーマットに変換し、
変換済みの前記コマンド及びクエリ結果を使用して、前記並列コンピュータ・システム上で前記分析ルーチンの実行を呼び出して前記分析結果を取得し、
前記計算ノードが前記分析結果を前記クエリ・ビルダ・アプリケーションによって必要とされるフォーマットに変換する、
を含む、請求項１１に記載のシステム。
【請求項１３】
前記分析ルーチンを呼び出すことは、変換済みの前記コマンド及び前記クエリ結果を入力ファイルに書き込むことを更に含み、前記並列コンピュータ・システムは、前記入力ファイルの構文解析を行って変換済みの前記コマンド及び前記クエリ結果を取得する、請求項１２に記載のシステム。
【請求項１４】
前記分析ルーチンを呼び出すことは、前記入力ファイルを前記計算ノードによって維持されるジョブ・キューに格納することを更に含む、請求項１３に記載のシステム。
【請求項１５】
前記計算ノードは更に、
前記分析結果をテーブルとしてフォーマット化し、
前記テーブルを出力ファイルに書き込む
ように構成され、
前記クエリ・ビルダ・アプリケーションは、前記出力ファイルの構文解析を行って前記分析結果を取得する、
請求項１２に記載のシステム。
【請求項１６】
前記分析結果を前記クエリ結果とマージすることは、フォーマット化された前記分析結果を結果テーブルとして結合することを含み、マージされた前記結果を表示することは、前記結果テーブルを表示することを含む、請求項１３に記載のシステム。
【請求項１７】
前記分析ルーチンは、分子ドッキング・アルゴリズムである、請求項１０に記載のシステム。
【請求項１８】
前記クエリ・ビルダ・アプリケーションを含む前記コンピューティング・システムは、前記並列コンピュータ・システムの１つ又は複数の計算ノードである、請求項１０に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の諸実施形態は一般にデータ処理に関するものであり、より詳細には、並列コンピュータ・システムの分析ルーチンをデータベース・クエリ・インターフェースから呼び出すことに関するものである。
【背景技術】
【０００２】
多数の異なる情報ソースを有する大規模なデータベースでは、該当データを解釈するクエリ・ツールの需要が高まっている。クエリ・ツールは、様々なソースに由来する様々なフォーマットのデータを処理し、ユーザ要求を受け付け、有益な回答を短時間で提供する。多くのクエリ・ツールは高性能化が進められ、異なるシステムに由来するデータのマージが可能なものや、データ変換が可能なクエリ・ツールも存在する。場合によっては、エンド・ユーザから提示された質問への完全な回答を示すのに必要となる計算を実行する上で、膨大な量のコンピューティング・リソースが必要とされることもある。これらのリソースは、データベース・クエリを実行するシステム上で利用可能なリソースを大幅に上回る可能性があり、また、ユーザ定義機能、あるいはデータベース管理システムによって提供されるストアド・プロシージャに取り込むことが可能なロジック能力で対応することが非常に困難となる可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
例えば、分子ドッキングは、構造に基づく薬剤設計（ｓｔｒｕｃｔｕｒｅ‐ｂａｓｅｄ  ｄｒｕｇ  ｄｅｓｉｇｎ）で重要な役割を果たしている。分子ドッキングは、例えば各小分子薬剤候補の標的タンパク質に対する好ましい結合配向を予測して小分子の親和力及び活性を予測するために頻繁に使用される。立体配座及び自由エネルギーは、量子力学から純粋経験的な（ｐｕｒｅｌｙ  ｅｍｐｉｒｉｃａｌ）エネルギー関数に至る広範な範囲の方法を用いて計算することができる。通常、これらの関数の精度は計算コストに比例する。したがって、分子ドッキングに関連する複雑さに起因して、計算回数が膨大となる可能性がある。分子ドッキングの生物学上及び薬学上の重要性を考慮して、ドッキング予測に使用される方法の改善に向けた相当な努力が重ねられている。
【課題を解決するための手段】
【０００４】
本発明の一実施形態は、並列コンピュータ・システム上で実行される分析ルーチンを呼び出す方法を提供する。前記方法は一般に、コンピューティング・システム上で実行されるクエリ・ビルダ・アプリケーションを使用して生成されたクエリを受信するステップと、前記クエリをデータベースに対して実行することによってクエリ結果を受信するステップと、前記クエリ結果を分析するのに使用可能な１つ又は複数の分析ルーチンを識別するステップと、を含む。また、前記方法は、前記分析ルーチンのうちの１つの選択を受信するステップと、前記並列コンピュータ・システム上の選択済みの前記分析ルーチンを呼び出すステップと、前記クエリ結果に関して前記並列コンピュータ・システム上で呼び出された選択済みの前記分析ルーチンから分析結果を受信するステップと、を含むことができる。更に、前記方法は、前記分析結果を前記クエリ結果とマージするステップと、マージされた前記結果を表示するステップと、を含むことができる。
【０００５】
本発明の別の実施形態は、それ自体が実行されたときに並列コンピュータ・システム上で実行される分析ルーチンを呼び出す処理を実行するプログラム（または、そのプログラムが収容されたコンピュータに読み込み可能なストレージ・メディアであってよい。）を含む。前記処理は一般に、コンピューティング・システム上で実行されるクエリ・ビルダ・アプリケーションを使用して生成されたクエリを受信するステップと、前記クエリをデータベースに対して実行することによってクエリ結果を受信するステップと、前記クエリ結果を分析するのに使用可能な１つ又は複数の分析ルーチンを識別するステップと、を含むことができる。また、前記処理は、前記分析ルーチンのうちの１つの選択を受信するステップと、前記並列コンピュータ・システム上の選択済みの前記分析ルーチンを呼び出すステップと、前記クエリ結果に関して前記並列コンピュータ・システム上で呼び出された選択済みの前記分析ルーチンから分析結果を受信するステップと、を含むことができる。また、前記処理は、前記分析結果を前記クエリ結果とマージするステップと、マージされた前記結果を表示するステップと、を含むことができる。
【０００６】
本発明のまた別の実施形態は、プロセッサと、クエリ・ビルダ・アプリケーションが収容されたメモリと、を有するコンピューティング・システムを含む。前記クエリ・ビルダ・アプリケーションは一般に、クエリをデータベースに対して実行することによってクエリ結果を受信し、前記クエリ結果を分析するのに使用可能な１つ又は複数の分析ルーチンを識別するように構成することができる。前記クエリ・ビルダ・アプリケーションは更に、前記並列コンピュータ・システム上の選択済みの前記分析ルーチンを呼び出し、前記分析ルーチンのうちの１つの選択を受信し、前記クエリ結果に関して前記並列コンピュータ・システム上で呼び出された選択済みの前記分析ルーチンから分析結果を受信するように構成することができる。また、前記クエリ・ビルダ・アプリケーションは、前記分析結果を前記クエリ結果とマージし、マージされた前記結果を表示するように構成することができる。
【０００７】
本発明の上記の特徴、利点、及び目的は、上記で簡単に説明した本発明のより詳細な説明を添付図面に示される本発明の諸実施形態を参照しながら読むことによって得られ、より詳細に理解することができるだろう。
【０００８】
しかしながら、添付図面は本発明の典型的な実施形態を示すものにすぎず、したがって本発明の範囲を限定するものと解釈されるべきではなく、本発明は他の効果的な実施形態にも等しく適用され得ることに留意していただきたい。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態に係るコンピューティング環境を示すブロック図である。
【図２】本発明の一実施形態に係る大規模並列コンピュータ・システムの各コンポーネントを示すブロック図である。
【図３】本発明の一実施形態に係るシステムの３次元トーラス・ネットワークを示す図である。
【図４】本発明の一実施形態に係る図２のシステム内の計算ノードの各コンポーネントを示す図である。
【図５】本発明の一実施形態に従って、大規模並列コンピュータ・システム上で実行されるアプリケーションをクエリ・インターフェースから呼び出す方法を示すフローチャートである。
【図６】本発明の一実施形態に従って、大規模並列コンピュータ・システム上で実行されるアプリケーションをクエリ条件の並列アプリケーション拡張機能（ｐａｒａｌｌｅｌ  ａｐｐｌｉｃａｔｉｏｎ  ｅｘｔｅｎｓｉｏｎ）を使用して自動的に呼び出す方法を示すフローチャートである。
【図７】本発明の一実施形態に従って、大規模並列コンピュータ・システムと通信して当該大規模並列コンピュータ・システム上で実行されるアプリケーションを呼び出す方法を示すフローチャートである。
【図８】本発明の一実施形態に従ってクエリをユーザに提示するグラフィカル・ユーザ・インターフェース（ＧＵＩ）画面の図である。
【図９】本発明の一実施形態に従って図８のクエリに関するクエリ結果を提示するＧＵＩ画面の図である。
【図１０】本発明の一実施形態に係る分析ルーチンの構成画面を提示するＧＵＩ画面の図である。
【図１１】本発明の別の実施形態に従ってクエリをユーザに提示するＧＵＩ画面の図である。
【図１２】本発明の一実施形態に従って単一のテーブルにマージされたクエリ結果及び分析ルーチン結果を提示するＧＵＩ画面の図である。
【発明を実施するための形態】
【００１０】
本発明の諸実施形態を用いると、ユーザは、大規模並列コンピュータ・システム上で実行される分析ルーチンを呼び出してクエリ結果を分析することが可能となる。例えば、データベース・クエリのクエリ結果が受信された後、ユーザは当該クエリ結果に関する複雑な分析を行うことができる。したがって、ユーザは、大規模並列コンピュータ・システムによって実行される分析ルーチンを選択し、クエリ結果を使用して所望の分析を行うことができる。別法として、ユーザは、（クエリ結果が受信された後に分析ルーチンを選択する場合と対照的に）それ自体がクエリ処理システムによって実行されたときに大規模並列コンピュータ・システム上の分析ルーチンを自動的に呼び出すクエリをビルドすることができる。いずれにせよ、クエリ・ツール自体は、並列コンピューティング・システムの計算ノード上で実行することも、ネットワークを介して並列コンピューティング・システムと通信するように構成された別個のコンピューティング・システム上で実行することもできる。
【００１１】
以下では本発明の諸実施形態について言及する。ただし、本発明は、本明細書に記載の実施形態に限定されるものではないことを理解していただきたい。そうではなく、以下の特徴及び要素は、それらが異なる実施形態に関するものであるか否かに関わらず、本発明を実施するための任意の組合せが企図される。更に、様々な実施形態において、本発明は従来技術よりも優れた様々な利点を提供する。一方、本発明の諸実施形態は他の可能な解決策又は従来技術あるいはその両方よりも優れた利点を実現することができるが、特定の利点が所与の実施形態で実現されるか否かによって本発明が限定されることはない。そのため、以下に記載する各態様、特徴、実施形態、及び利点は単なる例示であり、添付の特許請求範囲に記載の請求項（単数又は複数）に特に明記しない限り、それらの請求項の構成要素と見なされることも、それらを限定するものと見なされることもない。同様に、「本発明（ｔｈｅ  ｉｎｖｅｎｔｉｏｎ）」についての言及は、本明細書に開示される発明の主題を一般化するものと見なされるべきではなく、請求項（単数又は複数）に特に明記しない限り、それらの請求項の構成要素と見なされることも、それらを限定するものと見なされることもない。
【００１２】
本発明の一実施形態は、コンピュータ・システムと共に使用されるプログラム（または、プログラム製品）として実施される。プログラム（単数又は複数）は、各実施形態（本明細書に記載の方法を含む）の機能を定義し、様々なコンピュータに読み込み可能なストレージ・メディア上に収容することができる。例示的なコンピュータに読み込み可能なストレージ・メディアとしては、必ずしもそれだけに限定されるわけではないが、（ｉ）情報が永続的に記憶される書き込み不可能なストレージ・メディア（例えば、ＣＤ‐ＲＯＭドライブによって読み込み可能なＣＤ‐ＲＯＭディスクのようなコンピュータ内の読み取り専用メモリ・デバイス）、（ｉｉ）書き換え可能な情報が記憶される書き込み可能なストレージ・メディア（例えば、ディスケット・ドライブ又はハード・ディスク・ドライブ内のフレキシブル・ディスク）が挙げられる。そのようなコンピュータに読み込み可能なストレージ・メディアは、本発明の機能を指示するコンピュータ読み取り可能な命令を担持する場合に本発明の実施形態となる。他のメディアとしては、無線通信ネットワークを含めたコンピュータ又は電話ネットワーク等を介して情報がコンピュータに送られる通信メディアが挙げられる。特に、後者の実施形態は、インターネット及び他のネットワークとの間の情報伝送を含む。かかる通信メディアは、本発明の機能を指示するコンピュータ読み取り可能な命令を担持するときに本発明の実施形態となる。本明細書において、コンピュータに読み込み可能なストレージ・メディア及び通信メディアは、広義にコンピュータ可読媒体と呼ばれることもある。
【００１３】
一般に、本発明の諸実施形態を実施するために実行されるルーチンは、オペレーティング・システム又は特定のアプリケーションの一部、コンポーネントの一部、プログラムの一部、モジュールの一部、オブジェクトの一部、あるいは命令シーケンスの一部とすることができる。本発明のコンピュータ・プログラムは、典型的にはネイティブ・コンピュータによって機械読み取り可能なフォーマットに変換され、したがって実行可能な指令に変換される複数の命令から構成される。また、プログラムは、プログラムのローカルに所在する変数及びデータ構造、あるいはメモリ内又はストレージ・デバイス上で発見される変数及びデータ構造から構成される。更に、以下で説明される様々なプログラムは、それらが本発明の特定の実施形態で実行されるアプリケーションに基づいて識別することができる。しかしながら、以下に記載される特定のプログラム用語は便宜上のものにすぎず、それ故、本発明は、かかる用語で識別又は暗示あるいはその両方がなされる特定のアプリケーションでの使用にのみ限定されるものではない。
【００１４】
図１は、本発明の一実施形態に係るコンピューティング環境１００を示すブロック図である。図１には、例えばデスクトップ・コンピュータ、サーバ・コンピュータ、ラップトップ・コンピュータ、タブレット・コンピュータ等、既存のコンピュータ・システムの代表例として、コンピュータ・システム１０１が示されている。しかしながら、図１に示されるコンピュータ・システム１０１は、コンピューティング・システムの単なる一例にすぎない。本発明の諸実施形態は、コンピュータ・システムが、高速ネットワークによって互いに接続された個々のコンピュータから成るクラスタのような複雑なマルチ・ユーザ・コンピューティング・システムであるのか、シングル・ユーザ・ワークステーションであるのか、不揮発性ストレージを有さないネットワーク機器であるのかに関わらず、他のコンピューティング・システムを使用して実施することができる。更に、本明細書に記載のソフトウェア・アプリケーション（単数又は複数）は、既存のコンピュータ・システム上で実行されるコンピュータ・ソフトウェア・アプリケーション（単数又は複数）を使用して実施することができる。しかしながら、本明細書に記載のソフトウェア・アプリケーション（単数又は複数）は、何らかの現行のコンピューティング環境又はプログラミング言語に限定されるものではなく、新しいコンピューティング・システムが利用可能となったときはそれらを利用するように適合することができる。
【００１５】
図示のとおり、コンピュータ・システム１０１は、命令及びデータをメモリ１０７及びストレージ１０４からバス１１１を介して取得する中央演算処理装置（ＣＰＵ）１０２を含む。ＣＰＵ  １０２は、コンピュータ内のすべての命令、ロジック、及び数理処理を実行する１つ又は複数のプログラマブル・ロジック・デバイスである。例えば、ＣＰＵ  １０２は、単一のＣＰＵ、複数のＣＰＵ、複数の演算コアを有する単一のＣＰＵ等であってよい。ストレージ１０４は、コンピュータ・システム１０１によって使用されるアプリケーション・プログラム及びデータを記憶する。ストレージ１０４は、ハード・ディスク・ドライブ、フラッシュ・メモリ・デバイス、光メディア等であってよい。コンピュータ・システム１０１は、データ通信ネットワーク１１５（例えば、インターネットのような他のネットワークに接続可能なローカル・エリア・ネットワーク）に接続することができる。
【００１６】
また、コンピュータ・システム１０１は、マウス、キーボード、モニタのような入出力デバイス１３５と、コンピュータ・システム１０１をネットワーク１１５に接続するのに使用されるネットワーク・インターフェース１４０と、を含む。
【００１７】
メモリ１０７は、ランダム・アクセス・メモリ、不揮発性又はバックアップ・メモリ（例えばプログラマブル又はフラッシュ・メモリ、読み取り専用メモリ等）を含めたメモリ・デバイスのうちの１つとすることも、それらの組合せとすることもできる。図示のとおり、メモリ１０７はクエリ・ビルダ・アプリケーション１２０を含む。一実施形態において、クエリ・ビルダ・アプリケーション１２０は、ユーザがクエリを作成し、そのクエリを処理のためにデータベースにサブミットすることを可能にするように構成することができる。クエリ・ビルダ・アプリケーション１２０は、グラフィカル・ユーザ・インターフェース（ＧＵＩ）１２２も含むことができる。ＧＵＩ  １２２は、ユーザがクエリを作成し、実行されたクエリの結果も表示することを可能にするように構成することができる。クエリ・ビルダ・アプリケーションは、図１ではコンピュータ・システム１０１の一部として示されているが、その代わりに大規模並列コンピュータ・システム１５２上で実行されるアプリケーションであってもよい。
【００１８】
一実施形態において、メモリ１０７はデータ抽象化モデル１２４も含む。別の実施形態において、データ抽象化モデル１２４はストレージ１０４に含まれることもある。データ抽象化モデル１２４は、データ・レポジトリに記憶されている基礎データを、物理データのスキーマがユーザにとって透過的となるようにモデル化する。このように、データ抽象化モデル１２４は、データの特定の物理表現と無関係に（即ちＧＵＩ  １２２を介して）データにアクセスし、データを修正するために提供することができる。
【００１９】
図示のとおり、コンピューティング環境１００は、１組のデータ・レポジトリ１５０も含む。一実施形態において、データ・レポジトリ１５０は、クエリ・ビルダ・アプリケーション１２０によって処理されるレコードのソースを提供するデータベースとして働くことができる。一実施形態において、このデータベースは、コンピュータ・システム１０１のストレージ１０４のローカルに記憶することもできる。
【００２０】
図示のとおり、コンピューティング環境１００は、大規模並列コンピュータ・システム１５２も含む。一実施形態において、大規模並列コンピュータ・システム１５２は、分子ドッキング・アルゴリズムのような数値計算分析ルーチンをクエリ結果（又はクエリ結果の一部分）に対して実行するのに使用することができる。例えば、科学者が特定の構造を有する分子化合物（即ち配位子）をデータベースに照会する場合を想定する。当該配位子（単数又は複数）に関するクエリ結果を受信した後、科学者は、配位子（単数又は複数）が別の分子、例えば受容体とどの程度結合しているかを判定したいと望むことがある。したがって、科学者は、配位子（単数又は複数）と受容体の間の相互作用エネルギーを計算する分子ドッキング分析ルーチンを実行することができる。言うまでもなく、当業者なら、大規模並列コンピュータ・システムを使用して様々な計算問題に関するデータを分析することができることを理解するだろう。例えば、ほんの数例を挙げると、暗号化及び素因数分解に関する分析ルーチンや、気象モデリング及び気象予測に関する分析ルーチンが開発されている。
【００２１】
一実施形態において、分析ルーチンは、クエリ結果が受信されユーザに表示された後に選択及び実行することができる。この場合、クエリ・ビルダ・アプリケーション１２０は、ユーザが選択可能な分析ルーチンのリストを（ＧＵＩ  １２２を介して）提供することができる。分析ルーチンが選択されると、クエリ・ビルダ・アプリケーション１２０は、クエリ結果から返されたデータに対する計算が実行される大規模並列コンピュータ・システム１５２上の分析ルーチンを呼び出すことができる。
【００２２】
別法として、分析ルーチンは、クエリのクエリ条件に応じて大規模並列コンピュータ・システム１５２上で自動的に呼び出すことができる。そのような場合、クエリは、データベースに記憶されているデータを参照する条件、あるいは並列アプリケーション処理の結果を参照する条件を含む可能性がある。一実施形態において、データ抽象化モデル１２４は、クエリ条件で参照されるデータのタイプを識別するために、条件がデータベースに記憶されているデータを参照しているのか（即ちデータベース拡張機能（ｄａｔａｂａｓｅ  ｅｘｔｅｎｓｉｏｎ）であるのか）それとも並列アプリケーション処理の結果を参照しているのか（即ち並列アプリケーション拡張機能であるのか）を示すクエリ条件と、拡張機能（ｅｘｔｅｎｓｉｏｎ）とを関連付けることができる。
【００２３】
そのため、ユーザからクエリの実行依頼がなされたとき、クエリ・ビルダ・アプリケーション１２０は、クエリのクエリ条件毎の拡張機能を判定することができる。クエリ・ビルダ・アプリケーション１２０は、いくつかの条件がデータベース拡張機能を有することを判定した場合には、それらの条件だけを使用してデータベース・クエリを実行することができる。一方、クエリ・ビルダ・アプリケーション１２０は、いくつかの条件が並列アプリケーション拡張機能を有することを判定した場合には、大規模並列コンピュータ・システム１５２上で実行される分析ルーチンをそれらの条件に基づいて呼び出すことができる。更に、データベース拡張機能を有するクエリ条件によって取得された結果に対して分析ルーチンを実行することもできる。
【００２４】
図２は、本発明の一実施形態に係る大規模並列コンピュータ・システム１５２の各コンポーネントを示すブロック図である。図示のとおり、コンピュータ・システム１５２は、ＩＢＭ  Ｂｌｕｅ  Ｇｅｎｅ（Ｒ）コンピュータ・システムの高水準アーキテクチャを示しているが、他の並列コンピュータ・システムを使用することも可能であり、また、本明細書の好ましい一実施形態の記載によって本発明を限定することは、本出願人の意図するところではないことを理解していただきたい。ここで、Blue Gene は、IBM Corporation の商標である。
【００２５】
図示のとおり、コンピュータ・システム１５２は、規則正しい配列又はマトリクス状に配置された複数の計算ノード２１２を有する計算コア２０１を含む。計算ノード２１２は、システム１５２によって実行される有益な動作を実行する。計算コア２０１を含むコンピュータ・システム１５２の動作は、サービス・ノード２０２によって制御することができる。フロント・エンド・ノード２０３内の様々な追加的なプロセッサは、補助的なデータ処理機能を実行することができ、ファイル・サーバ２０４は、ディスク・ベース・ストレージ２０９Ａ、２０９Ｂのようなデータ・ストレージ・デバイスとの間のインターフェース又は他のＩ／Ｏ操作を実現する。機能ネットワーク２０５は、計算コア２０１と他のシステム・コンポーネントとの間の１次データ通信経路を提供する。例えば、ファイル・サーバ２０４に取り付けられたストレージ・デバイスに記憶されているデータは、機能ネットワーク２０５を介して他のシステム・コンポーネントにロードされ記憶される。
【００２６】
図示のとおり、計算コア２０１は、Ｉ／Ｏノード２１１Ａ〜２１１Ｃ及び計算ノード２１２Ａ〜２１２Ｉも含む。計算ノード２１２は、並列システム１００の処理容量を提供し、並列処理用に書かれたアプリケーションを実行するように構成される。Ｉ／Ｏノード２１１は、計算ノード２１２の代わりにＩ／Ｏ操作を処理する。例えば、Ｉ／Ｏノード２１１は、計算ノード２１２のうちの１つによって要求されたデータをファイル・サーバ２０４から検索することができる。各Ｉ／Ｏノード２１１は、プロセッサと、１組のＮ個の計算ノード２１２に関するＩ／Ｏ操作を処理するインターフェース・ハードウェアと、を含むことができる。各Ｉ／Ｏノード及びそれに対応する１組のＮ個の計算ノードを、「Ｐｓｅｔ」と呼ぶ。計算コア２０１は、それぞれ単一のＩ／Ｏノード２１１とＮ個の計算ノード２１２とを含むＭ個のＰｓｅｔ  ２１５Ａ〜２１５Ｃを含んでおり、合計Ｍ×Ｎの計算ノード２１２が提供される。Ｍ×Ｎの積は非常に大きい数となる可能性がある。例えば、一実装環境では、Ｍ＝１０２４（１Ｋ）、Ｎ＝６４であり、合計６４Ｋの計算ノードが提供される。
【００２７】
一般に、計算コア２０１がユーザ・アプリケーションを実行するのに必要となるアプリケーション・プログラミング・コード及び他のデータ入力、ならびに計算コア２０１から発せられるデータ出力は、機能ネットワーク２０５を介して通信される。Ｐｓｅｔ  ２１５内の計算ノードは、対応するローカルＩ／Ｏツリー・ネットワーク２１３Ａ〜２１３Ｃを介して対応するＩ／Ｏノードと通信する。一方、Ｉ／Ｏノードは、機能ネットワーク２０５に接続されており、これを介してファイル・サーバ２０４に取り付けられたＩ／Ｏデバイス又は他のシステム・コンポーネントと通信する。そのため、ローカルＩ／Ｏツリー・ネットワーク２１３は、物理的には機能ネットワーク２０５と分離されているが、論理的には機能ネットワーク２０５の拡張部分に見える可能性があり、機能ネットワーク２０５と同様にデータＩ／Ｏで使用される。
【００２８】
サービス・ノード２０２は、計算コア２０１内の計算ノード２１２の動作を指示するように構成することができる。一実施形態において、サービス・ノード２０２は、プロセッサ（単数又は複数）２２１と、内部メモリ２２０と、ローカル・ストレージ２２５と、を含むコンピュータ・システムである。システム管理者又は同様の人物は、付属コンソール（ａｔｔａｃｈｅｄ  ｃｏｎｓｏｌｅ）２０７（即ち、キーボード、マウス、及びディスプレイ）を使用して計算コア２０１上の計算ジョブを初期化することができる。サービス・ノード２０２は、コア２０１内の計算ノードに関する状態情報を維持する内部データベースと、他の処理の中でもとりわけ、計算コア２０１内のハードウェアの割り振りを制御し、計算ノード２１２上へのデータのロードを指示し、ある計算ノード２１２上で実行されているプロセスを別の計算ノード２１２に移行させ、診断及び保守機能を実行するように構成され得るアプリケーションと、を更に含むことができる。図示のとおり、メモリ２２０は制御システム２２２を含む。本発明の諸実施形態において、制御システム２２２は、他の処理の中でもとりわけ、計算コア２０１内の計算ノード２１２の割り振りを制御し、計算ノード２１２上へのアプリケーション及びデータのロードを指示し、診断及び保守機能を実行するように構成されたソフトウェア・アプリケーションとすることができる。
【００２９】
図示のとおり、制御システム２２２はトランスレータ２２４を含む。トランスレータ２２４は、クエリ・ビルダ・アプリケーション１２０と、大規模並列コンピュータ・システム１５２上で実行されるアプリケーション（例えば分子ドッキング分析ルーチン）との間のインターフェースとして働くことができる。例えば、トランスレータ２２４は、クエリ・ビルダ・アプリケーション１２０からの情報を分子ドッキング分析ルーチンに理解されるフォーマットに変換することができる。そのような情報としては、分子ドッキング分析ルーチンを呼び出すコマンド、及びデータベース拡張機能を有するクエリ条件から取得されるクエリ結果を挙げることができる。トランスレータ２２４は、分子ドッキング分析ルーチンから返された結果（例えば分子ドッキングの結果）をクエリ・ビルダ・アプリケーション１２０に理解されるフォーマットに変換することもできる。
【００３０】
図示のとおり、制御システム２２２はジョブ・キュー２２６も含むことができる。ジョブ・キュー２２６には、大規模並列コンピュータ・システム１５２上での実行を待つ複数のジョブを格納することができる。一実施形態において、ジョブは、分子ドッキング分析ルーチン（又は１組のデータベース・クエリ結果を分析するために実行される他の並列アプリケーション・プログラム）の呼び出しとすることができる。例えば、クエリ・ビルダ・アプリケーション１２０から受信された情報がトランスレータ２２４によって変換されると、制御システム２２２は、その情報（即ち変換後のコマンド及びクエリ結果）をジョブ・キュー２２６に格納することができる。また、制御システム２２２は、実行すべきジョブをジョブ・キュー２２６から選択することもできる。一実施形態において、ジョブ・キュー２２６は、ジョブが完了したことを示す通知を提供することもできる。
【００３１】
一実施形態において、サービス・ノード２０２は、制御システム・ネットワーク２０６を介して計算コア２０１の各ノードとの間で制御及び状態情報も通信する。ネットワーク２０６は、１組のハードウェア・コントローラ２０８Ａ〜２０８Ｃと結合される。各ハードウェア・コントローラは、対応するローカル・ハードウェア制御ネットワーク２１４Ａ〜２１４Ｃを介してそれぞれのＰｓｅｔ  ２１５内のノードと通信する。ハードウェア・コントローラ２０８及びローカル・ハードウェア制御ネットワーク２１４は、物理的には分離されているが、論理的には制御システム・ネットワーク２０６の拡張部分となる。一実施形態において、制御システム・ネットワーク２０６は、ハードウェア監視ファシリティを提供するように構成されたＪＴＡＧ（ジョイント・テスト・アクション・グループ）ネットワークを含むことができる。周知のとおり、ＪＴＡＧは、外部テスト・アクセスを４ピン又は５ピン外部インターフェースを介して集積回路に連続的に提供するための規格である。ＪＴＡＧ規格はＩＥＥＥ規格として採用されている。Ｂｌｕｅ  Ｇｅｎｅシステム内では、ＪＴＡＧネットワークを使用してパフォーマンス・カウンタ・データをサービス・ノード２０２に実時間で送信することが可能となる。即ち、アプリケーションが計算コア２０１上で実行されている間に、当該アプリケーションの性能に影響を及ぼすことなく、ネットワーク性能データ又はネットワーク状態データあるいはその両方を収集してサービス・ノード２０２に送信することが可能となる。
【００３２】
サービス・ノード２０２に加えて、フロント・エンド・ノード２０３は、効率化又はその他の理由で計算コア２０１の外部で実行されることが最も好ましい補助機能を実行するのに使用されるコンピュータ・システムを提供する。相当数のＩ／Ｏ操作が必要となる機能は一般に、フロント・エンド・ノード２０３で実行される。例えば、対話的なデータ入力、アプリケーション・コード編集、又は他のユーザ・インターフェース機能は一般に、フロント・エンド・ノード２０３によって処理され、アプリケーション・コードのコンパイルも同様にフロント・エンド・ノード２０３によって処理される。フロント・エンド・ノード２０３も機能ネットワーク２０５に接続されており、ファイル・サーバ２０４と通信することができる。
【００３３】
上述のとおり、大規模並列コンピュータ・システム１５２では、計算ノード２１２を論理的に３次元トーラス状に配置することができ、各計算ノード２１２は、ｘ，ｙ，ｚ座標を使用して識別することができる。図３は、本発明の一実施形態に係るシステム１５２の３次元トーラス・ネットワークの一例を示している。より詳細には、図３は、４×４×４の計算ノード・トーラス３０１を示しており、説明を分かりやすくするために内側のノードを省略して示している。図２には６４個のノードを有する４×４×４のトーラスが示されているが、並列コンピューティング・システム内の実際の計算ノード数は、典型的にはずっと大きくなる。例えば、Ｂｌｕｅ  Ｇｅｎｅ／Ｌシステム（Blue Gene/L は、IBM Corporation の商標）は、６５，５３６個の計算ノード２１２と共に１０２４個の追加的なＩ／Ｏノード２１１を有するように構成され得る。図示のとおり、トーラス３０１内の各計算ノード２１２は、６つ１組のノード間通信リンク３０２Ａ〜３０２Ｆを含み、これらの通信リンクを用いることにより、トーラス３０１内の各計算ノードはそれぞれ、ｘ，ｙ，ｚの各座標次元毎に２つ、合計６つの隣接計算ノードと通信することが可能となる。
【００３４】
本明細書で使用される「トーラス」という用語は、各ノードが定義済みの１組の隣接ノードを有し、所与の任意のノードに関して当該ノードの１組の隣接ノードを判定することができるような２次元以上の規則正しいノード・パターン及びノード間データ通信経路（ｉｎｔｅｒ‐ｎｏｄａｌ  ｄａｔａ  ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ｐａｔｈ）を含む。所与のノードの「隣接ノード（ｎｅｉｇｈｂｏｒ）」とは、直接的なノード間データ通信経路によって該所与のノードとリンクされるノードを指す。即ち、別のノードを横切る必要がない経路を指す。各計算ノードは、図３に示されるような３次元トーラス３０１内でリンクさせることができるが、４次元以上あるいは２次元以下の次元を有するように構成することもできる。また、所与のノードの隣接ノードは、一般には可能な限り該所与のノードに物理的に最も近いノードとなるように配置されることが望ましいが、必ずしもそうする必要はない。
【００３５】
一実施形態において、２地点間通信リンクは論理的に循環するので、ｘ、ｙ、又はｚのいずれかの次元における計算ノードは、その次元においてトーラスを形成する。例えば、このことは、ｘ、ｙ、ｚの各次元において計算ノード３０３から計算コア３０１の他端に向けて循環する図３のリンク３０２Ｄ、３０２Ｅ、及び３０２Ｆによって表されている。そのため、図面ではノード３０３がトーラスの「角」に所在するように見えるが、ノード３０３は、ノード間リンク３０２Ａ〜３０２Ｆによってトーラス３０１のｘ、ｙ、ｚの各次元内のノード３０４、３０５、及び３０６とリンクされている。
【００３６】
図４は、本発明の一実施形態に係る図２のシステム１５２内の計算ノード２１２の各コンポーネントを示している。図示のとおり、計算ノード２１２は、それぞれ命令アドレス・レジスタ４０６Ａ及び４０６Ｂを有するプロセッサ・コア４０１Ａ及び４０１Ｂを含む。計算ノード２１２は、両方のプロセッサ・コア４０１によって使用されるメモリ４０２と、ローカル・ハードウェア制御ネットワーク２１４（例えば制御システム・ネットワーク２０６）と結合される外部制御インターフェース４０３と、対応するローカルＩ／Ｏツリー・ネットワーク２１３及びトーラス・ネットワーク３０１内の対応する６つのノード間リンク３０２と結合される外部データ通信インターフェース４０４と、外部制御インターフェース４０３を介して制御コマンドを受信し、受信された制御コマンドに応答する監視制御ロジック４０５と、を更に含む。監視制御ロジック４０５は、サービス・ノード２０２の代わりにプロセッサ・コア４０１及びメモリ４０２内の各位置にアクセスしてノード２１２の動作状態を読み込む（又は場合によってはそれを変更する）ことができる。一実施形態において、各計算ノード２１２は、物理的に単一の集積回路として実装することができる。
【００３７】
上述のように、機能ネットワーク２０５は多数のＩ／Ｏノード２１３にサービスすることができ、各Ｉ／Ｏノード２１３は、一群の計算ノード２１２（即ち、Ｐｓｅt）によって共用される。それ故、並列システム１５２のＩ／Ｏリソースは、コンピューティング・リソースと比較すると相対的に疎となる。並列システム１５２は汎用コンピューティング・マシンであるが、膨大な数値計算を伴う応用例で最大限の効率を実現するように設計されている。
【００３８】
図４に示されるように、メモリ４０２は、オペレーティング・システム・イメージ４１１を記憶する。オペレーティング・システム・イメージ４１１は、計算ノード２１２上で実行される計算ノード・カーネルと呼ばれる簡略化機能（ｓｉｍｐｌｉｆｉｅｄ‐ｆｕｎｃｔｉｏｎ）オペレーティング・システムのコピーを提供する。計算ノード・カーネルは、計算ノード２１２の動作を支援するのに必要な１組の機能を提供する。一実施形態において、アプリケーション４１２は、メモリ４０２内に所在させることもできる。一実施形態において、アプリケーション４１２は、分子ドッキング分析ルーチンのような数値計算処理を実行するように構成することができる。
【００３９】
一実施形態において、アプリケーション４１２のコピーは、それぞれアプリケーション４１２のコピーを実行する一方、所与の計算ノード２１２のローカルでアプリケーション・データを維持する、数千もの計算ノード２１２上で提示し実行することができる。別の実施形態において、計算ノードの中には異なるアプリケーションを実行するものもあれば、単にアイドル状態のままであるものも存在する可能性がある。更に、計算ノード２１２上で実行されるアプリケーションは、周知のメッセージ受け渡し技法（例えば、ＭＰＩやＡＲＭＣＩ）を使用してアプリケーション・データの共用及び転送を行うように構成することができる。例えば、アプリケーション４１２は、クエリ結果から返されたデータを使用して分析ルーチンを実行するように構成することができる。更に、１つ（又は複数）の計算ノード２１２上のアプリケーション４１２は、ユーザがデータベース・クエリを作成するのに使用するクエリ・ツールを提供することもできる。そのような場合、実際のデータベースは、別の計算ノード群にも（あるいは別のシステム全域に）散在する可能性がある。更に、このクエリ・ツールは、ユーザが所与のデータベース・クエリについて返されたデータを使用して分析ルーチンを呼び出すこと（あるいはユーザに代わって呼び出しを行うこと）を可能にすることができる。上述のとおり、そのような場合、分析ルーチンは多数の計算ノード２１２上で実行することができる。
【００４０】
図５乃至図７は、本発明の諸実施形態に係るクエリ・インターフェースから大規模並列コンピュータ・システム上の分析ルーチンを呼び出す方法を示すフローチャートである。例えば、図５は、ＧＵＩ  １２２を介して分析ルーチンを選択することによって大規模並列コンピュータ・システム１５２上の分析ルーチンを呼び出す方法５００を示している。図示のとおり、方法５００は、ユーザがクエリ・ビルダ・アプリケーション１２０と対話して一組のデータ・レコードをデータ・レポジトリ１５０に要求するクエリを作成する、ステップ５０２から開始する。ステップ５０４で、クエリがデータ・レポジトリ１５０に対して実行される。ステップ５０６で、クエリ結果がクエリ・ビルダ・アプリケーション１２０に返され、ＧＵＩ  １２２を介してユーザに表示される。
【００４１】
ステップ５０８で、クエリ結果が受信され、ユーザに表示された後、ユーザは、（ＧＵＩ  １２２を介して）分析ルーチンを選択してクエリ結果を処理することができる。分析ルーチンが選択されると、クエリ・ビルダ・アプリケーション１２０は、大規模並列コンピュータ・システム１５２上の分析ルーチンを呼び出すことができる（ステップ５１０）。大規模並列コンピュータ・システム１５２上のルーチン呼び出しに関するアクションは、図７に関して詳述する。
【００４２】
ルーチンの実行が終了した後、クエリ・ビルダ・アプリケーションは、分析ルーチン結果を大規模並列コンピュータ・システム１５２から受信し（ステップ５１２）、当該分析ルーチン結果をクエリ結果とマージすることができる（ステップ５１４）。
【００４３】
図６は、一実施形態に係る大規模並列コンピュータ・システム１５２上の分析ルーチンを呼び出す方法を示している。本例において、並列システム上で実行される分析ルーチンは、並列アプリケーション拡張機能を有するクエリ条件に応答して直接呼び出すことができる。図示のとおり、方法５５０は、ユーザがクエリ・ビルダ・アプリケーション１２０と対話して１組のデータ・レコードをデータ・レポジトリ１５０に要求するクエリをビルドする、ステップ５５２から開始する。クエリは、複数のクエリ条件を含むこともある。一実施形態において、クエリ条件の中には、データベース拡張機能を有するものもあれば、並列アプリケーション拡張機能を有するものも存在する可能性がある。
【００４４】
クエリを実行する前に、クエリ・ビルダ・アプリケーション１２０は、各クエリ条件に関連する拡張機能を判定し（ステップ５５４）、その判定に従ってクエリを実行することができる。例えば、すべてのクエリ条件がデータベース拡張機能のみを有する場合には、クエリ全体がデータ・レポジトリ１５０に対して実行される（ステップ５５６）。一方、クエリが、データベース拡張機能を有するものもあれば並列アプリケーション拡張機能を有するものもあるクエリ条件の組合せを含む場合には、クエリ・ビルダ・アプリケーション１２０はまず、データベース拡張機能を有するクエリ条件を実行することができる（ステップ５５８）。クエリ結果が受信されると（ステップ５６０）、クエリ・ビルダ・アプリケーション１２０は、それらのクエリ結果に関する並列アプリケーション拡張機能に関連するクエリ条件に基づいて分析ルーチンを呼び出すことができる（ステップ５６２）。大規模並列コンピュータ・システム１５２上のルーチン呼び出しに関するアクションは、図７に関して詳述する。
【００４５】
ルーチンの実行が終了した後、クエリ・ビルダ・アプリケーション１２０は、分析ルーチン結果を大規模並列コンピュータ・システム１５２から受信し（ステップ５６４）、当該分析ルーチン結果をクエリ結果とマージし（ステップ５６６）、最終的な結果をユーザに表示することができる。
【００４６】
分析ルーチン呼び出しに使用される（図５及び図６に示したような）方法に関わらず、分析ルーチンを呼び出すためのコンピューティング・システム１００と大規模並列コンピュータ・システム１５２との間の通信は、図７に示した方法によって実行することができる。具体的には、図７は、大規模並列コンピュータ・システム１５２と通信して分析ルーチンを呼び出す本発明の一実施形態に係る方法５７０を示すフローチャートである。
【００４７】
図示のとおり、方法５７０は、クエリ・ビルダ・アプリケーション１２０が大規模並列コンピュータ・システム１５２との間のリモート接続を確立する、ステップ５７２から開始する。ステップ５７４で、接続が確立されると、クエリ・ビルダ・アプリケーション１２０は、大規模並列コンピュータ・システム１５２上で実行される分析ルーチンを呼び出すコマンドを送信することができる。また、クエリ・ビルダ・アプリケーション１２０は、分析ルーチンによって分析されるデータ（即ちクエリ結果）も送信することができる。ステップ５７６で、コマンド又はデータあるいはその両方が受信されると、トランスレータ２２４は、受信されたコマンド及びデータを大規模並列コンピュータ・システム１５２が理解可能なフォーマットに変換する。例えば、トランスレータ２２４は、クエリ・ビルダ・アプリケーション１２０から受信されたコマンド及びデータからコマンド・ストリング、パラメータ、変数等を外挿し、それらを入力テキスト・ファイルに書き込むことができる。
【００４８】
入力テキスト・ファイルをこのような形で供給することにより、クエリ・ビルダ・アプリケーション１２０と通信するためのデータベース・インターフェースを大規模並列コンピュータ・システム１５２に組み込む必要がなくなるという利点がもたらされる。その代わりに、大規模並列コンピュータ・システム１５２は、単に入力テキスト・ファイルの構文解析を行うだけでコマンド及びデータを取得することができる。
【００４９】
ステップ５７８で、入力テキスト・ファイルが作成されると、当該ファイルはジョブ・キュー２２６に送信され、そこで実行を待つことになる。ステップ５７６で、入力テキスト・ファイルがジョブ・キュー２２６から選択され、ステップ５８２で、当該入力テキスト・ファイルが実行される。分析ルーチンが実行されると、その結果が計算され（ステップ５８４）、トランスレータ２２４に返される。即ち、ステップ５８２では、大規模並列コンピュータ・システムを使用してアプリケーションを実行し、データベース・クエリ結果の一部として受信されたデータを分析することができる。ステップ５８６で、トランスレータ２２４は、大規模並列コンピュータ・システムから受信された結果をクエリ・ビルダ・アプリケーション１２０に理解されるフォーマットに変換する。例えば、トランスレータ２２４は、それらの結果をテーブル・フォーマットにフォーマット化し、当該テーブルを出力テキスト・ファイルに書き込むことができる（ステップ５８８）。一実施形態において、出力テキスト・ファイルが作成されると、ジョブ・キュー２２６は、分析ルーチンの実行が終了したことをクエリ・ビルダ・アプリケーション１２０に通知することができる。
【００５０】
ステップ５９０で、クエリ・ビルダ・アプリケーション１２０は、出力テキスト・ファイルを大規模並列コンピュータ・システム１５２に要求することができる。出力テキスト・ファイルが受信されると、クエリ・ビルダ・アプリケーション１２０は、結果テーブルに関する出力テキスト・ファイルの構文解析を行った後、当該結果テーブルを（それ以前のデータ・レポジトリ１５０クエリから受信された）残りのクエリ結果にマージすることができる。
【００５１】
図８乃至図１０は、図５に示される方法のＧＵＩ画面表現の一例を提供する。図１１は、図６に示される方法のＧＵＩ画面表現を示している。図１２は、クエリ結果とマージされた実行済み分析ルーチンの結果を表示したＧＵＩ画面を示している。
【００５２】
図８は、本発明の一実施形態に従ってクエリをユーザに提示するＧＵＩ画面６００を示している。図示のとおり、ＧＵＩ  ６００は、ユーザが化合物に関するＳＭＩＬＥ（Ｓｉｍｐｌｉｆｉｅｄ  Ｍｏｌｅｃｕｌａｒ  Ｉｎｐｕｔ  Ｌｉｎｅ  Ｅｎｔｒｙ：簡易分子投入ライン入力）文字列をテキスト・ボックス６１２に入力することにより、データ・レポジトリ１５０に記憶されている分子化合物（例えば配位子）を検索することが可能となるクエリ条件６１０を提示する。図示のとおり、ユーザは、２つのＳＭＩＬＥ文字列「C1(C(C(C(C(C1Cl)Cl)Cl)Cl)Cl)Cl」及び「C(C(CO(CCl)CCl)O」を入力している。文字列が入力されると、ユーザは、「実行（ＲＵＮ）」ボタン６１４を押下することによってクエリを実行することができる。換言すると、このクエリでは、ＳＭＩＬＥ文字列で指定される機能グループのうちの１つを有する化合物が検索される。
【００５３】
図９は、本発明の一実施形態に従って図８のクエリに関するクエリ結果を提示するＧＵＩ画面を示している。図示のとおり、上記のクエリは、ユーザによって入力されたＳＭＩＬＥ文字列に基づく２つの結果を返している。各結果は、テーブル７０２のとおりフォーマット化される。テーブル７０２は、２つの配位子の名前（即ち、「ＬＯＰＲＯＤＩＯＬ」及び「ＬＩＮＤＡＮＥ」）と、化合物の系統名又はＩＵＰＡＣ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｕｎｉｏｎ  ｏｆ  Ｐｕｒｅ  ａｎｄ  Ａｐｐｌｉｅｄ  Ｃｈｅｍｉｓｔｒｙ：国際純粋応用化学連合）名（即ち、「2,2-bis(chloromethyl)-1,3-propanediol」及び「1,2,3,4,5,6-hexachlorocyclohexane」と、化合物の関連するＳＭＩＬＥ文字列（即ち、「C(C(CO(CCl)CCl)O」及び「C1(C(C(C(C(C1Cl)Cl)Cl)Cl)Cl)Cl」）と、を表示している。
【００５４】
図示のとおり、ＧＵＩ  ７００は、図８の検索クエリについて返された配位子に関して実行可能な分析ルーチン７０４も表示している。図示のとおり、「分子ドッキング（ＭＯＬＥＣＵＬＡＲ  ＤＯＣＫＩＮＧ）」及び「データ抽出（ＥＸＴＲＡＣＴ  ＤＡＴＡ）」という２つの分析ルーチンが示されている。また、各分析ルーチンによってどの配位子を分析するかは、チェック・ボックス７０６、７０８によって選択することができる。本例において、ユーザは、「分子ドッキング」分析ルーチンによって「ＬＯＰＲＯＤＩＯＬ」を分析するように選択している。配位子及び分析ルーチンが選択されると、ユーザは、「構成（ＣＯＮＦＩＧＵＲＥ）」ボタン７１０を押下することによって分析ルーチンの構成を行うことができる。分析ルーチンの構成を行うための例示的なＧＵＩ画面について図１０を参照しながら説明する。
【００５５】
図１０は、本発明の一実施形態に従って分子ドッキング分析ルーチンの構成を行うためのＧＵＩ画面８００を示している。図示のとおり、ＧＵＩ  ８００は、分子ドッキング分析ルーチンの構成を行う上で選択可能な入力パラメータ８０２、８０４を提示している。例えば、ユーザは、「ＬＯＰＲＯＤＩＯＬ」（先に図９で選択された）とドッキングすべき受容体を選択することができる。図示のとおり、ユーザは、「ＨＩＶ‐１逆転写酵素（ＨＩＶ‐１  ＲＥＶＥＲＳＥ  ＴＲＡＮＳＣＲＩＰＴＡＳＥ）」を選択している。ユーザは、大規模並列コンピュータ・システム１５２のどのパーティション（即ち、一群の計算ノード２１２）が分析ルーチンを実行すべきか選択することもできる。受容体及びパーティションが選択されると、ユーザは、「実行」ボタン８０６を押下することによって大規模並列コンピュータ・システム１５２上の分析ルーチンを呼び出すことができる。分析ルーチンが完了した後は、その結果がクエリ・ビルダ・アプリケーション１２０に返され、クエリ結果とマージされる。マージ後の結果は、図１２に示されている。
【００５６】
別法として、図６を参照して上述したように、分析ルーチンは、並列アプリケーション拡張機能を有するクエリ条件に応答して呼び出すこともできる。図１１は、本発明の一実施形態に従って並列アプリケーション拡張機能を伴う条件を有するクエリをビルドするためのＧＵＩ画面９００を示している。図示のとおり、ＧＵＩ  ９００は以下の３つの条件、即ち、化学ＳＭＩＬＥ文字列条件９０２、受容体入力条件９０４、及び相互作用エネルギー条件９０６を提示している。一実施形態において、これらのクエリ条件はそれぞれ、関連する拡張機能、例えばデータベース拡張機能又は並列アプリケーション拡張機能を有することができる。本例において、化学ＳＭＩＬＥ文字列条件９０２及び受容体入力条件９０４は、データベース拡張機能を有し、相互作用エネルギー条件９０６は、並列アプリケーション拡張機能を有する。
【００５７】
化学ＳＭＩＬＥ文字列条件９０２は、データ・レポジトリ１５０に記憶されている分子化合物（即ち配位子）を検索するために提供することができる（図示のとおり、ユーザは化学ＳＭＩＬＥ文字列「C1(C(C(C(C(C1Cl)Cl)Cl)Cl)Cl)Cl」及び「C(C(CO(CCl)CCl)O」を入力している）。受容体入力条件９０４は、化学ＳＭＩＬＥ文字列で示される配位子と結合させるべき受容体を識別するために提供することができる（図示のとおり、ユーザは「ＨＩＶ‐１逆転写酵素」受容体を選択している）。相互作用エネルギー条件９０６は、ある値に対する配位子と受容体との間の相互作用エネルギーを発見するために提供することができる。図示のとおり、ユーザは、化学ＳＭＩＬＥ文字列条件９０２内の化合物のうちの１つの立体配座と、ファン・デル・ワールス力が−５０を上回るレセプタ入力条件９０４内の受容体とを発見しようと試みている。
【００５８】
ユーザがクエリをビルドした後は、「実行」ボタン９０８を押下することによって当該クエリを実行することができる。クエリが実行されると、クエリ・ビルダ・アプリケーション１２０は、クエリ条件に関連する拡張機能を識別する。それらの条件がデータベース拡張機能を有するもの（即ち、化学ＳＭＩＬＥ文字列条件９０２及びレセプタ入力条件９０４）として識別された場合、クエリ・ビルダ・アプリケーション１２０は、それらの条件のみを使用してデータ・レポジトリ・クエリを実行する。それらの条件に対して結果が返されると、クエリ・ビルダ・アプリケーション１２０は、分析ルーチンを呼び出してクエリ結果を分析することができる。呼び出し対象となる分析ルーチンは、並列アプリケーション拡張機能を有するクエリ条件（即ち、相互作用エネルギー条件９０６）に基づいて呼び出すことができる。例えば、並列アプリケーション拡張機能は、相互作用エネルギー条件９０６が分子ドッキング分析ルーチンと関連付けられていることを示す可能性がある。そのため、大規模並列コンピュータ・システム１５２上で呼び出すルーチンとして、分子ドッキング分析が選択される可能性がある。分析ルーチンが完了すると、その結果がクエリ・ビルダ・アプリケーション１２０に返され、クエリ結果とマージされる。このようなクエリのマージ結果の一例が図１２に示されている。
【００５９】
具体的には、図１２は、本発明の一実施形態に従ってテーブル１００２にマージされたクエリ結果と分析ルーチン結果とを提示するＧＵＩ画面１０００を示している。図示のとおり、テーブル１００２は、化合物名（「ＬＯＰＲＯＤＩＯＬ」）及び受容体名（「ＨＩＶ‐１逆転写酵素」）を含む。また、テーブル１００２は、ファン・デル・ワールス（「ＶＤＷ」）力１００４、及び分子ドッキング分析ルーチンの結果として計算される他のデータ（即ち、「アンカー（ＡＮＣＨＯＲＳ）」、「配向（ＯＲＩＥＮＴＡＴＩＯＮＳ）」、及び「立体配座（ＣＯＮＦＯＲＭＡＴＩＯＮＳ）」）も含む。化合物名及び受容体は、データ・レポジトリ１５０から受信されたクエリ結果から判定され、「ＶＤＷ」力、「アンカー」、「配向」、及び「立体配座」は、分子ドッキング分析ルーチンから判定されている。図示のとおり、クエリ結果と分析結果は一緒にマージされ、ユーザに提示される。
【００６０】
有利なことに、本発明の諸実施形態を用いると、ユーザは、大規模並列コンピュータ・システム上で実行される分析ルーチンを呼び出してクエリ結果を分析することが可能となる。例えば、データベース・クエリからのクエリ結果が受信された後、ユーザは、それらのクエリ結果を使用して大規模並列コンピュータ・システムによって実行される複雑な分析を呼び出すことができる。別法として、ユーザは、（クエリ結果を受信した後に分析ルーチンを選択する場合と対照的に）大規模並列コンピュータ・システム上の分析ルーチンによって評価される特定の条件を含むクエリをビルドすることができる。
【００６１】
上記の説明は本発明の各実施形態を対象としているが、添付の特許請求範囲によって決定される本発明の基本的な範囲から逸脱しない限り、本発明の他の実施形態を考案することが可能である。
【符号の説明】
【００６２】
１０１  コンピュータ・システム
１０２  ＣＰＵ
１０４  ストレージ
１０７  メモリ
１１１  バス
１１５  ネットワーク
１２０  クエリ・ビルダ
１２２  ＧＵＩ
１２４  データ抽象化モデル
１３５  入出力デバイス
１４０  ネットワーク・インターフェース
１５０  データ・レポジトリ
１５２  大規模並列コンピュータ・システム
２０２  サービス・ノード
２０３  フロント・エンド・ノード
２０４  ファイル・サーバ
２０５  機能ネットワーク
２０６  制御システム・ネットワーク
２０７  ディスプレイ
２０８Ａ〜２０８Ｃ  ハードウェア・コントローラ
２０９Ａ、２０９Ｂ  ディスク・ベース・ストレージ
２１１Ａ〜２１１Ｃ  Ｉ／Ｏノード
２１２Ａ〜２１２Ｈ  計算ノード
２１４Ａ〜２１４Ｃ  ローカル・ハードウェア制御ネットワーク
２１５Ａ〜２１５Ｃ  Ｐｓｅｔ
２２０  メモリ
２２２  制御システム
２２６  ジョブ・キュー
２２４  トランスレータ
２２５  ストレージ
２１３Ａ〜２１３Ｃ  ローカルＩ／Ｏツリー・ネットワーク
３０１  トーラス
３０２Ａ〜３０２Ｆ  ノード間通信リンク
３０３  計算ノード
３０４、３０５、３０６  ノード
４０１Ａ、４０１Ｂ  プロセッサ・コア
４０２  メモリ
４０３  外部制御インターフェース
４０４  外部データ・インターフェース
４０５  監視制御ロジック
４０６Ａ、４０６Ｂ  命令アドレス・レジスタ
４１１  ＯＳイメージ
４１２  アプリケーション
６００、７００、８００、９００、１０００  ＧＵＩ画面
９０２  化学ＳＭＩＬＥ文字列条件
９０４  受容体入力条件
９０６  相互作用エネルギー条件
【図１】
2010092471.tif 000003
【図２】
2010092471.tif 000004
【図３】
2010092471.tif 000005
【図４】
2010092471.tif 000006
【図５】
2010092471.tif 000007
【図６】
2010092471.tif 000008
【図７】
2010092471.tif 000009
【図８】
2010092471.tif 000010
【図９】
2010092471.tif 000011
【図１０】
2010092471.tif 000012
【図１１】
2010092471.tif 000013
【図１２】
2010092471.tif 000014