(57)【要約】【課題】複数の情報処理装置間で入出力要求に基づく処理を行う場合に、入出力要求の送信先の情報処理装置が有する演算処理部の負荷を低減すること。【解決手段】情報処理システムは、第１の情報処理装置と、前記第１の情報処理装置に接続する第２の情報処理装置と、前記第２の情報処理装置に接続する情報記憶装置とを備える。前記第２の情報処理装置は、演算を実行する演算処理部と、前記第１の情報処理装置から受信した入出力要求を記憶する記憶部と、前記入出力要求を記憶した前記記憶部の物理アドレスとレジスタ部に保持された所定のアドレス値との比較結果に基づき、前記入出力要求を受信した旨を示す受信通知を出力する第１の制御部と、前記受信通知を受信した場合、前記記憶部における前記物理アドレスに記憶した前記入出力要求に基づいてパケットを生成する第２の制御部と、前記第２の制御部が生成したパケットを前記情報記憶装置に出力する通信部と有する。【選択図】図２
2019016101.tif 000002
【特許請求の範囲】
【請求項１】
第１の情報処理装置と、前記第１の情報処理装置に接続する第２の情報処理装置と、前記第２の情報処理装置に接続する情報記憶装置とを備える情報処理システムにおいて、
前記第１の情報処理装置は、
前記情報記憶装置に対する入出力要求を送信し、
前記第２の情報処理装置は、
演算を実行する演算処理部と、
所定のアドレス値を保持するレジスタ部と、
前記第１の情報処理装置から受信した入出力要求を記憶する記憶部と、
前記入出力要求を記憶した前記記憶部の物理アドレスと前記アドレス値との比較結果に基づき、前記入出力要求を受信した旨を示す受信通知を出力する第１の制御部と、
前記受信通知を受信した場合、前記記憶部における前記物理アドレスに記憶した前記入出力要求に基づいてパケットを生成する第２の制御部と、
前記第２の制御部が生成したパケットを前記情報記憶装置に出力する通信部と有する情報処理システム。
【請求項２】
前記情報処理システムにおいて、
前記第１の制御部は、
前記比較結果において、前記入出力要求を記憶した前記記憶部の物理アドレスと前記アドレス値とが一致する場合、前記入出力要求を受信した旨を示す受信通知を出力する請求項１記載の情報処理システム。
【請求項３】
前記情報処理システムにおいて、
前記第１の制御部は、
前記比較結果において、前記入出力要求を記憶した前記記憶部の物理アドレスと前記アドレス値とが一致しない場合、前記入出力要求を前記演算処理部に処理させる請求項１又は２記載の情報処理システム。
【請求項４】
前記情報処理システムにおいて、
前記第１の情報処理装置と前記第２の情報処理装置とを接続する第１の通信路と、前記第２の情報処理装置と前記情報記憶装置と接続する第２の通信路とは、異なるプロトコルを使用する請求項１〜３のいずれか１項に記載の情報処理システム。
【請求項５】
入出力要求を送信する他の情報処理装置と、情報記憶装置とに接続する情報処理装置において、
演算を実行する演算処理部と、
所定のアドレス値を保持するレジスタ部と、
前記他の情報処理装置から受信した入出力要求を記憶する記憶部と、
前記入出力要求を記憶した前記記憶部の物理アドレスと前記アドレス値との比較結果に基づき、前記入出力要求を受信した旨を示す受信通知を出力する第１の制御部と、
前記受信通知を受信した場合、前記記憶部における前記物理アドレスに記憶した前記入出力要求に基づいてパケットを生成する第２の制御部と、
前記第２の制御部が生成したパケットを前記情報記憶装置に出力する通信部と有する情報処理装置。
【請求項６】
第１の情報処理装置と、前記第１の情報処理装置に接続するとともに所定のアドレス値を保持するレジスタ部と演算を実行する演算処理部とを備える第２の情報処理装置と、前記第２の情報処理装置に接続する情報記憶装置とを備える情報処理システムの制御方法において、
前記第１の情報処理装置が、前記情報記憶装置に対する入出力要求を送信し、
前記第２の情報処理装置が有する記憶部が、前記第１の情報処理装置から受信した入出力要求を記憶し、
前記第２の情報処理装置が有する第１の制御部が、前記入出力要求を記憶した前記記憶部の物理アドレスと前記アドレス値との比較結果に基づき、前記入出力要求を受信した旨を示す受信通知を出力し、
前記第２の情報処理装置が有する第２の制御部が、前記受信通知を受信した場合、前記記憶部における前記物理アドレスに記憶した前記入出力要求に基づいてパケットを生成し、
前記第２の情報処理装置が有する通信部が、前記第２の制御部が生成したパケットを前記情報記憶装置に出力する情報処理システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置、および情報処理システムの制御方法に関する。
【背景技術】
【０００２】
スーパーコンピュータ等の並列計算機システムは、複数の計算ノードを有し、各計算ノードが有する演算処理装置としてのＣＰＵ（Central Processing Unit）はインターコネクトを介して接続される。並列計算機システムの構成の一例として、複数の計算ノードのうちの一部がデータを記録するストレージ装置を有するファイルサーバと接続する構成がある。ここで、ファイルサーバと接続する計算ノードは、Ｉ／Ｏ（Input Output）兼計算ノードと呼ぶ。
【０００３】
ファイルサーバと接続されない計算ノードは、書き込み処理又は読み出し処理等の入出力処理を要求する入出力要求をＩＯ兼計算ノードに送信し、ＩＯ兼計算ノードを介して、ファイルサーバにデータを書き込み又はファイルサーバからデータを読み出す。
【０００４】
リモートダイレクトメモリアクセス（ＲＤＭＡ：Remote Direct Memory Access）対応ネットワーク相互接続を使用して、入出力処理を第１のコンピュータから第２のコンピュータにオフロードする技術が知られている（例えば、特許文献１参照）。
また、複数のネットワーク化されたコンピューティング要素の個々のメモリから情報を収集する技術が知られている（例えば、特許文献２参照）。
【０００５】
さらに、ＰＣＩ  Ｅｘｐｒｅｓｓ（Peripheral component interconnect Express）のＰｅｅｒ−ｔｏ−Ｐｅｅｒ通信とＲＤＭＡとを組み合わせた、ＣＰＵを介さずに転送元から転送先へ直接転送する技術が知られている（例えば、非特許文献１、２参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２００７−５２７０５７号公報
【特許文献２】特開２０１５−２２７５５号公報
【非特許文献】
【０００７】
【非特許文献１】NVIDIA、”NVIDIA GPUDirect”、[２０１７年３月２３日検索]、インターネット<URL:https://developer.nvidia.com/gpudirect>
【非特許文献２】Mellanox、”Mellanox OFED GPUDirect RDMA”、[２０１７年３月２３日検索]、インターネット<URL: http://jp.mellanox.com/page/products_dyn?product_family=116&mtag=gpudirect>
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ＩＯ兼計算ノードが計算処理の実行中に、計算ノードから入出力処理の要求を受信すると、ＩＯ兼計算ノードは、計算処理を中断して、ファイルサーバとのデータの送受信等の入出力処理を行うため、ＩＯ兼計算ノードの計算性能が低下するという問題がある。
【０００９】
１つの側面において、本発明は、複数の情報処理装置間で入出力要求に基づく処理を行う場合に、入出力要求の送信先の情報処理装置が有する演算処理部の負荷を低減することを目的とする。
【課題を解決するための手段】
【００１０】
実施の形態に係る情報処理システムは、第１の情報処理装置、前記第１の情報処理装置に接続する第２の情報処理装置、および前記第２の情報処理装置に接続する情報記憶装置を備える。
【００１１】
前記第１の情報処理装置は、前記情報記憶装置に対する入出力要求を送信する。
前記第２の情報処理装置は、演算処理部、レジスタ部、記憶部、第１の制御部、第２の制御部、および通信部を有する。
【００１２】
前記演算処理部は、演算を実行する。
前記レジスタ部は、所定のアドレス値を保持する。
【００１３】
前記記憶部は、前記第１の情報処理装置から受信した入出力要求を記憶する。
前記第１の制御部は、前記入出力要求を記憶した前記記憶部の物理アドレスと前記アドレス値との比較結果に基づき、前記入出力要求を受信した旨を示す受信通知を出力する。
【００１４】
前記第２の制御部は、前記受信通知を受信した場合、前記記憶部における前記物理アドレスに記憶した前記入出力要求に基づいてパケットを生成する。
【００１５】
前記通信部は、前記第２の制御部が生成したパケットを前記情報記憶装置に出力する。
【発明の効果】
【００１６】
実施の形態によれば、複数の情報処理装置間で入出力要求に基づく処理を行う場合に、入出力要求の送信先の情報処理装置が有する演算処理部の負荷を低減することができる。
【図面の簡単な説明】
【００１７】
【図１】実施の形態に係る情報処理システムの構成図である。
【図２】実施の形態に係るＩＯ兼計算ノードの構成図である。
【図３】実施の形態に係る計算ノードの構成図である。
【図４】実施の形態に係るＩＣＣの構成図である。
【図５】実施の形態に係るＰＥコアの構成図ある。
【図６】実施の形態に係る入出力要求処理を示す図である。
【図７】実施の形態に係る入出力要求処理のシーケンス図である。
【図８】実施の形態に係る完了割り込み処理を示す図である。
【図９】実施の形態に係る完了割り込み処理のシーケンス図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照しながら実施の形態について説明する。
システム全体のコストを下げるために、例えば共有するファイルシステムを使用する計算ノード数が増えれば増えるほど、ＩＯ兼計算ノードのＣＰＵの処理負荷は増加し、演算処理を阻害し性能が劣化してしまうという問題がある。この対処として、入出力処理を担うＣＰＵ内のコアの数を増やすと、ＣＰＵのチップ面積が増大し、製造コストが増加してしまうという問題がある。
【００１９】
ＣＰＵコアに負荷をかけずにデータ直接転送を行う、ＰＣＩ  ＥｘｐｒｅｓｓのＰｅｅｒ−ｔｏ−Ｐｅｅｒ通信とＲＤＭＡとを組み合わせた、ソフトウェアとＣＰＵを介さずに転送元から転送先へ直接転送する技術が知られている。しかしながら、当該技術は、単純な２ノード間におけるメモリ間転送であり、例えば、異なるプロトコルを使用する２種類以上のインターコネクトを経由した複数ノード間の入出力処理を行うというように、異なるプロトコル間でのデータ移動に適用するのは困難である。
【００２０】
図１は、実施の形態に係る情報処理システムの構成図である。
情報処理システム１０１は、ＩＯ（Input Output）兼計算ノード２０１、計算ノード３０１−ｉ（ｉ＝１〜５）、およびファイルサーバ４０１を含む。情報処理システム１０１は、ＩＯ兼計算ノード２０１および計算ノード３０１−ｉを用いて、並列計算を行う。情報処理システム１０１は、例えば、スーパーコンピュータ等の並列計算機である。
【００２１】
ＩＯ兼計算ノード２０１のＣＰＵは、インターコネクトの一種であるＴｏｆｕ（Torus fusion）インターコネクトを介して、他の計算ノード３０１−ｉのＣＰＵと接続し、互いに通信可能である。ＩＯ兼計算ノード２０１は、InfiniBandによりファイルサーバ４０１と接続される。ＩＯ兼計算ノード２０１は、情報処理装置の一例である。以下、ＩＯ兼計算ノード２０１は、ＩＯノード２０１と表記する場合がある。実施の形態におけるＩＯ兼計算ノード２０１の数は一例であり、ＩＯ兼計算ノード２０１の数は２以上であってもよい。
【００２２】
計算ノード３０１−ｉは、計算処理を行い、ＩＯ兼計算ノード２０１にファイルサーバ４０に対するデータの読み出しまたは書き込みを要求する入出力要求を送信する。計算ノード３０１−ｉは、計算処理装置または情報処理装置の一例である。
【００２３】
ファイルサーバ４０１は、InfiniBandによりＩＯ兼計算ノード２０１と接続し、互いに通信可能である。ファイルサーバ４０１は、ストレージ装置を有し、ＩＯ兼計算ノード２０１から受信したデータをストレージ装置に書き込みまたはストレージ装置からデータを読み出してＩＯ兼計算ノード２０１に送信する。ファイルサーバ４０１は、情報記憶装置の一例である。
【００２４】
尚、実施の形態における計算ノード３０１−ｉの数は一例であり、計算ノード３０１−ｉの数は５以外でもよい。
【００２５】
図２は、実施の形態に係るＩＯ兼計算ノードの構成図である。
ＩＯ兼計算ノード２０１は、ＣＰＵ２１１、メモリ２２１、ＩＢ−ＨＣＡ（InfiniBand Host Channel Adapter）２３１を含む。
【００２６】
ＣＰＵ２１１は、ＩＣＣ（Interconnect Core）２１２、コア群２１３、およびＰＥコア（PCI Expressコア）２１５、パス２１６を含む。
【００２７】
ＩＣＣ２１２は、Tofuインターコネクトにより計算ノード３０１−ｉのＩＣＣ３１２−ｉと接続し、Tofuインターコネクトで規定されるパケットやプロトコルを用いて、計算ノード３０１−ｉのメモリ３２１−ｉに対してＲＤＭＡを行う、第１の制御部としてのコントローラである。
【００２８】
ＩＣＣ２１２は、パス２１６を介してＰＥコア２１５と直接接続する。ＩＣＣ２１２は、パス２１６を利用することで、ＰＥコア２１５と直接通信することができる通信部である。パス２１６は、通信路の一例である。
【００２９】
ＩＣＣ２１２は、計算ノード３０１−ｉから受信した入出力要求がリモートノード（ＩＯ兼計算ノード２０１）への入出力要求か判定する。リモートノードへの入出力要求である場合、ＩＯ兼計算ノード２０１への入出力要求を受信したことをパス２１６を介してＰＥコア２１５に通知する。
【００３０】
コア群２１３は、コア２１４−ｊ（ｊ＝１〜４）を含む。コア２１４−ｊは、メモリ２２１からデータを読み出してソフトウェアを実行することにより、演算（計算）処理を行う。コア２１４−ｊは、演算処理部の一例である。
【００３１】
ＰＥコア２１５は、ＩＢ−ＨＣＡ２３１と接続し、PCI Expressで規定されるパケットやプロトコルを用いて、ＩＢ−ＨＣＡ２３１と接続し、通信処理を実行する第２の制御部としてのコントローラである。ＰＥコア２１５は、ＩＣＣ２１２から通知を受信すると、入出力要求メモリ２２１から読み出た入出力要求からPCI Expressで規定されるＰＣＩパケットを生成し、ＩＢ−ＨＣＡ２３１に送信する。
【００３２】
メモリ２２１は、データやプログラムを記憶する記憶部である。メモリ２２１は、例えば、Random Access Memoryである。
【００３３】
ＩＢ−ＨＣＡ２３１は、ＰＥコア２１５と接続し、PCI Expressで規定されるＰＣＩパケットやプロトコルを用いて、ＰＥコア２１５と通信を行う。ＩＢ−ＨＣＡ２３１は、ファイルサーバ４０１が有するＩＢ−ＨＣＡとInfiniBandにより接続し、InfiniBandを用いた通信を行う。ＩＢ−ＨＣＡ２３１は、通信部の一例である。
【００３４】
尚、ＩＣＣ２１２、ＰＥコア２１５、およびパス２１６は、ＣＰＵ２１１の外にあってもよい。
【００３５】
また、ＩＯ兼計算ノード２０１は、InfiniBandの仮想化機能を有し、当該仮想化機能を実行する。それにより各計算ノード３０１−ｉ（ｉ＝１〜５）は、それぞれ異なる仮想化されたＩＢ−ＨＣＡに接続しているように見え、それぞれ独立してInfiniBandを制御できる。尚、仮想化機能の実行によりＣＰＵ２１１のコア２１４−ｊの使用率はほとんど変化しないため、仮想化機能によるコア２１４−ｊへの負荷は計算処理にほとんど影響しないこととなる。
【００３６】
図３は、実施の形態に係る計算ノードの構成図である。
計算ノード３０１−ｉ（ｉ＝１〜５）は、ＣＰＵ３１１−ｉ、およびメモリ３２１−ｉを含む。
【００３７】
ＣＰＵ３１１−ｉは、ＩＣＣ３１２−ｉおよびコア群３１３−ｉを含む。
ＩＣＣ３１２−ｉは、TofuインターコネクトによりＩＯ兼計算ノード２０１のＩＣＣ２１２と接続し、Tofuインターコネクトで規定されるパケットやプロトコルを用いて、ＩＯ兼計算ノード２０１のメモリ２２１に対してＲＤＭＡを行うコントローラである。
【００３８】
コア群３１３−ｉは、コア３１４−ｉ-ｊ（ｉ＝１〜５、ｊ＝１〜４）を含む。コア３１４−ｉ-ｊは、メモリ３２１−ｉからプログラムを読み出して実行することにより、計算処理を行う。
【００３９】
メモリ３２１−ｉは、計算ノード３０１−ｉが使用するデータやプログラムを記憶する記憶部である。メモリ３２１−ｉは、例えば、Random Access Memoryである。
尚、計算ノード３０１−ｉは、ＩＯ兼計算ノード２０１と同様の構成を用いてもよい。
【００４０】
図４は、実施の形態に係るＩＣＣの構成図である。
ＩＣＣ２１２は、ＩＯＭＭＵ（Input Output Memory Management Unit）２４１を含む。
【００４１】
ＩＯＭＭＵ２４１は、計算ノード３０１−ｉから受信した入出力要求に含まれる仮想アドレス（ＶＡ：Virtual Address）をメモリ２２１の物理アドレス（ＰＡ:Physical Address）に変換する。ＩＯＭＭＵ２４１は、レジスタ２４２および比較器２４３を含む。
【００４２】
レジスタ２４２は、ファイルサーバ４０１に対する入出力要求が書き込まれるメモリ２２１の物理アドレス（バッファアドレス）を記憶する。レジスタ２４２が記憶する物理アドレスは、例えば、情報処理システム１０１に起動時に、ＩＯ兼計算ノード２０１が実行するソフトウェアにより設定される。ここで、入出力要求が書き込まれるメモリ２２１の領域をバッファと呼ぶ。また、レジスタ２４２は計算ノード３０１−ｉ分のバッファアドレスを初期値としてユニークに予め記憶しており、バッファアドレスをソフトウェアが読み出しアクセスできるようにしておいても良い。
【００４３】
比較器２４３は、ＩＯＭＭＵ２４１で仮想アドレスから変換された物理アドレスとレジスタ２４２に含まれる予め格納されたアドレス値とを比較する。一致する場合、ＩＯＭＭＵ２４１は、ＰＥコア２１５に入出力要求を受信（検出）した旨を通知する。
【００４４】
図５は、実施の形態に係るＰＥコアの構成図である。
ＰＥコア２１５は、パケット生成回路２５１およびＩＯＭＭＵ２６１を含む。
【００４５】
パケット生成回路２５１は、メモリ２２１から入出力要求を読み出し、入出力要求からＰＣＩパケットを生成し、生成したＰＣＩパケットをＩＢ−ＨＣＡ２３１に送信する。
【００４６】
ＩＯＭＭＵ２６１は、ＩＢ−ＨＣＡ２３１から受信したＤＭＡ要求に含まれる仮想アドレス（ＶＡ）をメモリ２２１の物理アドレス（ＰＡ）に変換する。ＩＯＭＭＵ２６１は、レジスタ２６２および比較器２６３を含む。
【００４７】
レジスタ２６２は、入出力要求が書き込まれるメモリ２２１の物理アドレス（バッファアドレス）を記憶する。レジスタ２６２が記憶する物理アドレスは、例えば、情報処理システム１０１の起動時に、ＩＯ兼計算ノード２０１で実行されるソフトウェアにより設定される。
【００４８】
図６は、実施の形態に係る入出力要求処理を示すブロック図である。ここで、ＩＣＣ２１２とＰＥコア２１５とは、バス２１６により接続される。図６において、破線の矢印は、入出力要求や通知等の流れを示す。
【００４９】
情報処理システム１０１では、例えば以下の手順で入出力要求処理が行われる。図６では、１台の計算ノード３０１−ｉからＩＯ兼計算ノード２０１に入出力要求を送信する場合の処理を示す。
【００５０】
（１）計算ノード３０１−ｉ（ｉ＝１〜５）のコア３１４−ｉ−ｊ（ｉ＝１〜５、ｊ＝１〜４）で実行されているソフトウェアにより、ＩＯ兼計算ノード２０１への入出力要求が発行される。入出力要求は、メモリ３２１−ｉ内の入出力要求を記憶する領域であるバッファに記憶される。入出力要求は、入出力要求の書き込み先の仮想アドレスを含み、当該仮想アドレスはファイルサーバ４０１に対する入出力要求を記憶するメモリ２２１の物理アドレスに対応する。
【００５１】
（２）ＩＣＣ３１２−ｉは、ＲＤＭＡ転送機能を用いて、ＩＯ兼計算ノード２０１のメモリ２２１へ入出力要求を書き込む。ＩＣＣ２１２のＩＯＭＭＵ２４１は、入出力要求に含まれる仮想アドレスをメモリ２２１の物理アドレスに変換する。比較器２４１は、レジスタ２４２から予め格納されている所定のアドレス値を読み出し、変換された物理アドレスとレジスタ２４２から読み出したアドレス値とを比較する。変換された物理アドレスとレジスタ２４２から読み出したアドレス値とが一致する場合、ＩＣＣ２１２は、パス２１６を介して、ＰＥコア２１５に入出力要求の受信（検出）を通知する。
【００５２】
（３）ＰＥコア２１５は、通知を受信し、メモリ２２１に書き込まれた入出力要求をメモリ２２１から読み出す。パケット生成回路２５１は、読み出した入出力要求からＰＣＩパケットを生成し、生成したＰＣＩパケットをＩＢ−ＨＣＡ２３１に送信する。
【００５３】
図７は、実施の形態に係る入出力要求処理のシーケンス図である。
ここで、ＩＯＭＭＵ２４１のレジスタ２４２には、ファイルサーバ４０１に対する計算ノード３０１−iからＩＯ兼計算ノード２０１ヘの入出力要求が記憶されるメモリ２２１の物理アドレスが設定されているとする。またＩＯＭＭＵ２６１のレジスタ２６２には、ＩＢ−ＨＣＡ２３１から受信するＩＯ兼計算ノード２０１から計算ノード３０１−iへのＲＤＭＡ要求を含むＤＭＡ要求が記憶されるメモリ２２１の物理アドレスが設定されているとする。また、ＩＯ兼計算ノード２０１のコア２１４−ｊは、メモリ２２１に記憶されたプログラムやデータを用いて、演算処理を行っているとする。図７では、１台の計算ノード３０１−ｉからＩＯ兼計算ノード２０１に入出力要求を送信する場合を説明する。
【００５４】
ステップ５０１において、計算ノード３０１−ｉのコア３１４−ｉ−ｊで実行されているソフトウェアにより、ＩＯ兼計算ノード２０１への入出力要求が発行される。尚、入出力要求は、入出力要求の書き込み先の仮想アドレスを含み、当該仮想アドレスは入出力要求を記憶するメモリ２２１の物理アドレスに対応する。また、入出力要求は、ファイルサーバ４０１に対する書き込みまたは読み出し等の入出力処理の要求を含む。入出力要求がファイルサーバ４０１に対する書き込み（Write）要求の場合には、入出力要求は書き込み（ライト）データを含む。
【００５５】
ステップ５０２において、ＩＣＣ３１２−ｉは、ＲＤＭＡ転送機能を用いて、ＩＯ兼計算ノード２０１へ入出力要求と当該入出力要求のメモリへの書き込み要求を送信する。
【００５６】
ステップ５０３において、ＩＣＣ２１２のＩＯＭＭＵ２４１は、受信した入出力要求に含まれる仮想アドレスをメモリ２２１の物理アドレスに変換し、入出力要求をメモリ２２１の変換した物理アドレスが示す領域に記憶する。
【００５７】
ステップ５０４において、比較器２４１は、レジスタ２４２から予め格納されている所定のアドレス値を読み出し、変換された物理アドレスとレジスタ２４２から読み出したアドレス値を比較する。変換された物理アドレスとレジスタ２４２から読み出したアドレス値とが一致する場合、制御はステップＳ５０５に進む。変換された物理アドレスとレジスタ２４２から読み出したアドレス値とが一致しない場合、ＩＣＣ２１２は、コア２１４−ｊにメモリ２２１に記憶された入出力要求に対する処理を実行させ、入出力要求処理は終了する。すなわち、変換された物理アドレスとレジスタ２４２から読み出したアドレス値とが一致しない場合、コア２１４−ｊがファイルサーバ４０１に対する書き込みまたは読み出し等の入出力処理を実行する。
【００５８】
ステップ５０５において、ＩＣＣ２１２は、パス２１６を介して、ＰＥコア２１５に入出力要求の受信（検出）を通知する。
【００５９】
ステップ５０６において、ＰＥコア２１５は、通知を受信し、ステップ５０３でメモリ２２１に書き込まれた入出力要求をメモリ２２１から読み出す。
【００６０】
ステップ５０７において、パケット生成回路２５１は、読み出した入出力要求からＰＣＩパケットを生成し、生成したＰＣＩパケットをＩＢ−ＨＣＡ２３１に送信する。ＩＢ−ＨＣＡ２３１は、受信したＰＣＩパケットをInfiniBandを用いてファイルサーバ４０１に送信する。
【００６１】
ステップ５０８において、入出力要求がファイルサーバ４０１への書き込み（Write）要求の場合、ＰＥコア２１５は、メモリ２２１からライトデータを読み出して、ＩＢ−ＨＣＡ２３１に送信する。ＩＢ−ＨＣＡ２３１は、受信したライトデータをファイルサーバ４０１に送信し、ファイルサーバ４０１は、受信したライトデータを書き込む。
【００６２】
図８は、実施の形態に係る完了割り込み処理を示す図である。
情報処理システム１０１では、例えば以下の手順で完了割り込み処理が行われる。図８では、図６の入出力要求処理後のファイルサーバ４０１へのデータの書き込みまたはファイルサーバ４０１からのデータの読み出しが完了したとき処理を示す。図８において、破線の矢印は、入出力要求や通知等の流れを示す。
【００６３】
（１）ＩＢ−ＨＣＡ２３１は、割り込みを示すＤＭＡ  Ｗｒｉｔｅ（ＤＭＡ要求）を発行してＰＥコア２１５に送信する。また、ＤＭＡ要求は、ＲＤＭＡを要求するＲＤＭＡ要求を含む。ＲＤＭＡ要求は割り込み情報と表記する場合がある。ＰＥコア２１５は、ＤＭＡ要求を受信し、ＰＥコア２１５のＩＯＭＭＵ２６１は、ＤＭＡ要求に含まれる仮想アドレスをメモリ２２１の物理アドレスに変換し、ＤＭＡ要求をメモリ２２１に書き込む。比較器２６３は、レジスタ２６２から予め格納されているアドレス値を読み出し、変換された物理アドレスとレジスタ２４２から読み出したアドレス値とを比較する。変換された物理アドレスとレジスタ２６２から読み出したアドレス値とが一致する場合、ＩＯＭＭＵ２６１は、パス２１６を介して、ＩＣＣ２１２にＲＤＭＡ要求の受信（検出）を通知する。
【００６４】
（２）ＩＣＣ２１２は、通知を受信し、メモリ２２１に書き込まれたＤＭＡ要求に含まれるＲＤＭＡ要求をメモリ２２１から読み出し、ＲＤＭＡを用いて計算ノード３０１−ｉのメモリ３２１−ｉに転送する。
【００６５】
（３）計算ノード３０１−ｉは、ＲＤＭＡ要求を受信し、受信したＲＤＭＡ要求により入出力要求に対する処理が完了したこと計算ノード３０１−ｉで実行されているソフトウェアに通知する。
【００６６】
図９は、実施の形態に係る完了割り込み処理のシーケンス図である。
完了割り込み処理は、ＩＢ−ＨＣＡ２３１によるファイルサーバ４０１へのライトデータの送信またはＰＥコア２１５へのリードデータの送信を契機に開始される。
【００６７】
ステップＳ６０１において、ＩＢ−ＨＣＡ２３１は、割り込みを示すＤＭＡ要求としてのＤＭＡ  Ｗｒｉｔｅを発行してＰＥコア２１５に送信する。ＤＭＡ要求は、ＩＯ兼計算ノード２０１から計算ノード３０１−iへのＲＤＭＡを要求するＲＤＭＡ要求を含む。ＤＭＡ要求は、仮想アドレスを含み、当該仮想アドレスは、ＲＤＭＡ要求を含むＤＭＡ要求を記憶するメモリ２２１の物理アドレスに対応する。ＰＥコア２１５は、ＤＭＡ要求を受信し、ＰＥコア２１５のＩＯＭＭＵ２６１は、ＤＭＡ要求に含まれる仮想アドレスをメモリ２２１の物理アドレスに変換し、ＤＭＡ要求をメモリ２２１に書き込む。
【００６８】
ステップＳ６０２において、比較器２６３は、レジスタ２６２から予め格納されているアドレス値を読み出し、変換された物理アドレスとレジスタ２６２から読み出したアドレス値とを比較する。変換された物理アドレスとレジスタ２６２から読み出したアドレス値とが一致する場合、制御はステップＳ６０３に進み、一致しない場合、完了割り込み処理は終了する。すなわち、変換された物理アドレスに基づいて、ＤＭＡ要求がＩＯ兼計算ノード２０１からリモートノードである計算ノード３０１−ｉへのアクセスであるかを判定する。
【００６９】
ステップＳ６０３において、ＩＯＭＭＵ２６１は、パス２１６を介して、ＩＣＣ２１２にＲＤＭＡ要求を受信した旨を通知する。
【００７０】
ステップＳ６０４において、ＩＣＣ２１２は、通知を受信し、ステップＳ６０１でメモリ２２１に書き込まれたＤＭＡ要求に含まれるＲＤＭＡ要求をメモリ２２１から読み出し、計算ノード３０１−ｉに転送する。
【００７１】
ステップＳ６０５において、計算ノード３０１−ｉは、ＲＤＭＡ要求を受信し、受信したＲＤＭＡ要求により割り込みと入出力要求に対する処理が完了したこと認識する。
【００７２】
実施の形態に係る情報処理システムによれば、コア２１４−ｊの代わりにＩＣＣ２１２とＰＥコア２１５により、計算ノードとＩＯ兼計算ノード間の入出力要求に対する処理が行われるため、計算処理を行っているコア２１４−ｊの負荷が削減される。それにより、ＩＯ兼計算ノード２０１の計算性能の低下を防止できる。従来のように、入出力要求に対する処理をＣＰＵのコアで行う場合、平均で０．７個、ピーク時で４個のコアを占有する。一方、実施の形態のＩＯ兼計算ノード２０１による入出力要求に対する処理では、平均で０．１個未満、ピーク時で０．１個未満のコアを占有する。このように、実施の形態では、入出力要求に対するＩＯ兼計算ノード２０１のコア２１４−ｊの負荷が大幅に削減される。
【００７３】
実施の形態に係る情報処理システムによれば、計算ノード３０１−ｉからTofuインターコネクトとPCIeのような異なる２つのバス・プロトコルを介した入出力処理をコア２１４−ｊの代わりにＩＣＣ２１２とＰＥコア２１５を用いて制御できる。
【００７４】
以上の実施の形態に関し、さらに以下の付記を開示する。
（付記１）
第１の情報処理装置と、前記第１の情報処理装置に接続する第２の情報処理装置と、前記第２の情報処理装置に接続する情報記憶装置とを備える情報処理システムにおいて、
前記第１の情報処理装置は、
前記情報記憶装置に対する入出力要求を送信し、
前記第２の情報処理装置は、
演算を実行する演算処理部と、
所定のアドレス値を保持するレジスタ部と、
前記第１の情報処理装置から受信した入出力要求を記憶する記憶部と、
前記入出力要求を記憶した前記記憶部の物理アドレスと前記アドレス値との比較結果に基づき、前記入出力要求を受信した旨を示す受信通知を出力する第１の制御部と、
前記受信通知を受信した場合、前記記憶部における前記物理アドレスに記憶した前記入出力要求に基づいてパケットを生成する第２の制御部と、
前記第２の制御部が生成したパケットを前記情報記憶装置に出力する通信部と有する情報処理システム。
（付記２）
前記情報処理システムにおいて、
前記第１の制御部は、
前記比較結果において、前記入出力要求を記憶した前記記憶部の物理アドレスと前記アドレス値とが一致する場合、前記入出力要求を受信した旨を示す受信通知を出力する付記１記載の情報処理システム。
（付記３）
前記情報処理システムにおいて、
前記第１の制御部は、
前記比較結果において、前記入出力要求を記憶した前記記憶部の物理アドレスと前記アドレス値とが一致しない場合、前記入出力要求を前記演算処理部に処理させる付記１又は２記載の情報処理システム。
（付記４）
前記情報処理システムにおいて、
前記第１の情報処理装置と前記第２の情報処理装置とを接続する第１の通信路と、前記第２の情報処理装置と前記情報記憶装置と接続する第２の通信路とは、異なるプロトコルを使用する付記１〜３のいずれか１項に記載の情報処理システム。
（付記５）
入出力要求を送信する他の情報処理装置と、情報記憶装置とに接続する情報処理装置において、
演算を実行する演算処理部と、
所定のアドレス値を保持するレジスタ部と、
前記他の情報処理装置から受信した入出力要求を記憶する記憶部と、
前記入出力要求を記憶した前記記憶部の物理アドレスと前記アドレス値との比較結果に基づき、前記入出力要求を受信した旨を示す受信通知を出力する第１の制御部と、
前記受信通知を受信した場合、前記記憶部における前記物理アドレスに記憶した前記入出力要求に基づいてパケットを生成する第２の制御部と、
前記第２の制御部が生成したパケットを前記情報記憶装置に出力する通信部と有する情報処理装置。
（付記６）
前記第１の制御部は、
前記比較結果において、前記入出力要求を記憶した前記記憶部の物理アドレスと前記アドレス値とが一致する場合、前記入出力要求を受信した旨を示す受信通知を出力する付記５記載の情報処理装置。
（付記７）
前記第１の制御部は、
前記比較結果において、前記入出力要求を記憶した前記記憶部の物理アドレスと前記アドレス値とが一致しない場合、前記入出力要求を前記演算処理部に処理させる付記５又は６記載の情報処理装置。
（付記８）
前記情報処理装置と前記他の情報処理装置とを接続する第１の通信路と、前記他の情報処理装置と前記情報記憶装置と接続する第２の通信路とは、異なるプロトコルを使用する付記５〜７のいずれか１項に記載の情報処理装置。
（付記９）
第１の情報処理装置と、前記第１の情報処理装置に接続するとともに所定のアドレス値を保持するレジスタ部と演算を実行する演算処理部とを備える第２の情報処理装置と、前記第２の情報処理装置に接続する情報記憶装置とを備える情報処理システムの制御方法において、
前記第１の情報処理装置が、前記情報記憶装置に対する入出力要求を送信し、
前記第２の情報処理装置が有する記憶部が、前記第１の情報処理装置から受信した入出力要求を記憶し、
前記第２の情報処理装置が有する第１の制御部が、前記入出力要求を記憶した前記記憶部の物理アドレスと前記アドレス値との比較結果に基づき、前記入出力要求を受信した旨を示す受信通知を出力し、
前記第２の情報処理装置が有する第２の制御部が、前記受信通知を受信した場合、前記記憶部における前記物理アドレスに記憶した前記入出力要求に基づいてパケットを生成し、
前記第２の情報処理装置が有する通信部が、前記第２の制御部が生成したパケットを前記情報記憶装置に出力する情報処理システムの制御方法。
（付記１０）
前記第１の制御部が、前記比較結果において、前記入出力要求を記憶した前記記憶部の物理アドレスと前記アドレス値とが一致する場合、前記入出力要求を受信した旨を示す受信通知を出力することを特徴とする付記９記載の制御方法。
（付記１１）
前記第１の制御部が、前記比較結果において、前記入出力要求を記憶した前記記憶部の物理アドレスと前記アドレス値とが一致しない場合、前記入出力要求を前記演算処理部に処理させる付記９又は１０記載の制御方法。
（付記１２）
前記第１の情報処理装置と前記第２の情報処理装置とを接続する第１の通信路と、前記第２の情報処理装置と前記情報記憶装置と接続する第２の通信路とは、異なるプロトコルを使用する付記９〜１１のいずれか１項に記載の制御方法。
【符号の説明】
【００７５】
１０１    情報処理システム
２０１    ＩＯ兼計算ノード
２１１    ＣＰＵ
２１２    ＩＣＣ
２１３    コア群
２１４    コア
２１５    ＰＥコア
２１６    パス
２２１    メモリ
２３１    ＩＢ−ＨＣＡ
３０１    計算ノード
３１１    ＣＰＵ
３２１    メモリ
【図１】
2019016101.tif 000003
【図２】
2019016101.tif 000004
【図３】
2019016101.tif 000005
【図４】
2019016101.tif 000006
【図５】
2019016101.tif 000007
【図６】
2019016101.tif 000008
【図７】
2019016101.tif 000009
【図８】
2019016101.tif 000010
【図９】
2019016101.tif 000011