【手続補正書】
【提出日】平成26年6月30日(2014.6.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
階層型分散処理システム用にソフトウェアをコンパイルするための方法であって、
ツリー・ネットワーク内のデータ通信のために組織化される複数の計算ノードであって、そのツリーは根ノードと１つ以上の子孫ノードを含み、各子孫ノードが０個以上の子孫ノードを含む、計算ノードと、
コンパイル・ノードにより、ソフトウェアをコンパイルすることであって、任意の計算ノードがコンパイル・ノードであってもよい、ことと、
前記コンパイル・ノード上で実行されるべき任意のコンパイル済みソフトウェアを前記コンパイル・ノードにより保持することと、
前記コンパイル・ノードを現在のノードとしてラベルを付けて、以下のステップを実行することであって、
前記現在のノードにより、分散処理システムの階層の次の段の特定のノードがコンパイルされたソフトウェアの少なくとも一部の実行のために選択された子孫ノードを有することを判定するステップであって、前記選択された子孫ノードが前記特定のノードまたは前記特定のノードの子孫である、ステップと、
前記現在のノードにより、前記特定のノードまたは前記特定のノードの子孫によって実行されるべきコンパイル済みソフトウェアのみを前記特定のノードに送信するステップと、
前記選択されたノードにより、前記コンパイル済みソフトウェアを受信するステップと、
前記コンパイル済みソフトウェアが、前記特定のノードのためのものであるか又は前記特定のノードの子孫のうちの１つのためのものであるかを決定するステップと、
前記コンパイル済みソフトウェアが前記特定のノードのためのものである場合に、前記ソフトウェアを実行のために前記特定のノードにより保持するステップと、
前記コンパイル済みソフトウェアが前記特定のノードの子孫のうちの１つのためのものである場合に、前記特定のノードを現在のノードとしてラベルを付け、前記選択されたノードが前記コンパイル済みソフトウェアを受信するまで、前記判定するステップに戻るステップと、
を実行することと、
前記選択されたノード上で前記コンパイル済みソフトウェアを実行することと、
を含む方法。
【請求項２】
前記方法が、前記１つ又は複数のコンパイル・ノードを識別することをさらに含む、請求項１に記載の方法。
【請求項３】
前記１つ又は複数のコンパイル・ノードを前記識別することが、コンパイルに関して計算的に最適化された１つ又は複数のノードを選択することをさらに含む、請求項２に記載の方法。
【請求項４】
前記１つ又は複数のコンパイル・ノードを前記識別することが、コンパイルに最適化された１つ又は複数のノードを、前記階層型分散処理システムのトポロジにおけるその位置をもとにして選択することをさらに含む、請求項２に記載の方法。
【請求項５】
前記階層型分散処理システムは、ハイブリッド型コンピューティング環境をさらに含み、前記ハイブリッド型コンピューティング環境は、複数の計算ノードを含み、前記計算ノードの各々は、
ホスト・コンピュータ・アーキテクチャを有するホスト・コンピュータと、
アクセラレータ・アーキテクチャを有するアクセラレータと
を含み、前記アクセラレータ・アーキテクチャは、前記ホスト・コンピュータ・アーキテクチャに対して、特定のクラスのコンピューティング機能の実行速度に関して最適化されており、前記ホスト・コンピュータ及び前記アクセラレータは互いに、システム・レベル・メッセージ・パッシング・モジュールによるデータ通信に関して適合されている、
請求項１に記載の方法。
【請求項６】
階層型分散処理システム用にソフトウェアをコンパイルするための装置であって、前記装置は、コンピュータ・プロセッサと、前記コンピュータ・プロセッサに動作可能に結合されたコンピュータ・メモリとを備え、前記コンピュータ・メモリはその内部にコンピュータ・プログラム命令が配置されており、前記コンピュータ・プログラム命令は、プロセッサによって実行されることによって前記装置に、
ツリー・ネットワーク内のデータ通信のために組織化される複数の計算ノードであって、そのツリーは根ノードと１つ以上の子孫ノードを含み、各子孫ノードが０個以上の子孫ノードを含む、計算ノードと、
コンパイル・ノードにより、ソフトウェアをコンパイルすることであって、任意の計算ノードがコンパイル・ノードであってもよい、ことと、
前記コンパイル・ノード上で実行されるべき任意のコンパイル済みソフトウェアを前記コンパイル・ノードにより保持することと、
前記コンパイル・ノードを現在のノードとしてラベルを付けて、以下のステップを実行することであって、
前記現在のノードにより、分散処理システムの階層の次の段の特定のノードがコンパイルされたソフトウェアの少なくとも一部の実行のために選択された子孫ノードを有することを判定するステップであって、前記選択された子孫ノードが前記特定のノードまたは前記特定のノードの子孫である、ステップと、
前記現在のノードにより、前記特定のノードまたは前記特定のノードの子孫によって実行されるべきコンパイル済みソフトウェアのみを前記特定のノードに送信するステップと、
前記選択されたノードにより、前記コンパイル済みソフトウェアを受信するステップと、
前記コンパイル済みソフトウェアが、前記特定のノードのためのものであるか又は前記特定のノードの子孫のうちの１つのためのものであるかを決定するステップと、
前記コンパイル済みソフトウェアが前記特定のノードのためのものである場合に、前記ソフトウェアを実行のために前記特定のノードにより保持するステップと、
前記コンパイル済みソフトウェアが前記特定のノードの子孫のうちの１つのためのものである場合に、前記特定のノードを現在のノードとしてラベルを付け、前記選択されたノードが前記コンパイル済みソフトウェアを受信するまで、前記判定するステップに戻るステップと、
を実行することと、
前記選択されたノード上で前記コンパイル済みソフトウェアを実行することと、
を実施させる、装置。
【請求項７】
前記コンピュータ・メモリは、その内部に、前記１つ又は複数のコンパイル・ノードを識別するためのコンピュータ・プログラム命令がさらに配置されている、請求項８又は請求項６に記載の装置。
【請求項８】
前記１つ又は複数のコンパイル・ノードを識別するための前記コンピュータ・プログラム命令が、コンパイルに関して計算的に最適化された１つ又は複数のノードを選択するためのコンピュータ・プログラム命令をさらに含む、請求項７に記載の装置。
【請求項９】
前記１つ又は複数のコンパイル・ノードを識別するための前記コンピュータ・プログラム命令が、コンパイルに最適化された１つ又は複数のノードを、前記階層型分散処理システムのトポロジにおけるその位置をもとにして選択するためのコンピュータ・プログラム命令をさらに含む、請求項７に記載の装置。
【請求項１０】
前記階層型分散処理システムは、ハイブリッド型コンピューティング環境をさらに含み、前記ハイブリッド型コンピューティング環境は、複数の計算ノードを含み、前記計算ノードの各々は、
ホスト・コンピュータ・アーキテクチャを有するホスト・コンピュータと、
アクセラレータ・アーキテクチャを有するアクセラレータと
を含み、前記アクセラレータ・アーキテクチャは、前記ホスト・コンピュータ・アーキテクチャに対して、特定のクラスのコンピューティング機能の実行速度に関して最適化されており、前記ホスト・コンピュータ及び前記アクセラレータは互いに、システム・レベル・メッセージ・パッシング・モジュールによるデータ通信に関して適合されている、
請求項６に記載の装置。
【請求項１１】
階層型分散処理システム用にソフトウェアをコンパイルするためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、非一時的なコンピュータ可読記憶媒体内に配置され、
ツリー・ネットワーク内のデータ通信のために組織化される複数の計算ノードであって、そのツリーは根ノードと１つ以上の子孫ノードを含み、各子孫ノードが０個以上の子孫ノードを含む、計算ノードと、
コンパイル・ノードにより、ソフトウェアをコンパイルすることであって、任意の計算ノードがコンパイル・ノードであってもよい、ことと、
前記コンパイル・ノード上で実行されるべき任意のコンパイル済みソフトウェアを前記コンパイル・ノードにより保持することと、
前記コンパイル・ノードを現在のノードとしてラベルを付けて、以下のステップを実行することであって、
前記現在のノードにより、分散処理システムの階層の次の段の特定のノードがコンパイルされたソフトウェアの少なくとも一部の実行のために選択された子孫ノードを有することを判定するステップであって、前記選択された子孫ノードが前記特定のノードまたは前記特定のノードの子孫である、ステップと、
前記現在のノードにより、前記特定の選択されたノードまたは前記特定のノードの子孫によって実行されるべきコンパイル済みソフトウェアのみを前記特定のノードに送信するステップと、
前記選択されたノードにより、前記コンパイル済みソフトウェアを受信するステップと、
前記コンパイル済みソフトウェアが、前記特定のノードのためのものであるか又は前記特定のノードの子孫のうちの１つのためのものであるかを決定するステップと、
前記コンパイル済みソフトウェアが前記特定のノードのためのものである場合に、前記ソフトウェアを実行のために前記特定のノードにより保持するステップと、
前記コンパイル済みソフトウェアが前記特定のノードの子孫のうちの１つのためのものである場合に、前記特定のノードを現在のノードとしてラベルを付け、前記選択されたノードが前記コンパイル済みソフトウェアを受信するまで、前記判定するステップに戻るステップと、
を実行することと、
前記選択されたノード上で前記コンパイル済みソフトウェアを実行することと、
を実現するためのコンピュータ・プログラム命令を含む、コンピュータ・プログラム製品。
【請求項１２】
前記１つ又は複数のコンパイル・ノードを識別するためのコンピュータ・プログラム命令をさらに含む、請求項１１に記載のコンピュータ・プログラム製品。
【請求項１３】
前記１つ又は複数のコンパイル・ノードを識別するための前記コンピュータ・プログラム命令が、コンパイルに関して計算的に最適化された１つ又は複数のノードを選択するためのコンピュータ・プログラム命令をさらに含む、請求項１２に記載のコンピュータ・プログラム製品。
【請求項１４】
前記１つ又は複数のコンパイル・ノードを識別するための前記コンピュータ・プログラム命令が、コンパイルに最適化された１つ又は複数のノードを、前記階層型分散処理システムのトポロジにおけるその位置をもとにして選択するためのコンピュータ・プログラム命令をさらに含む、請求項１２に記載のコンピュータ・プログラム製品。