(57)【要約】  本願の実施形態が、アクセラレーションリソーススケジューリング方法及び装置、並びにアクセラレーションシステムを開示する。アクセラレーションシステムはコンピューティングノードと少なくとも１つのネットワークアクセラレータを含み、コンピューティングノードは仮想マシンとスケジューリング装置とを含み、ネットワークアクセラレータは少なくとも１つの物理アクセラレータを含む。本方法は、仮想マシンにより送信されるアクセラレーション命令を受信する段階であって、前記アクセラレーション命令はアクセラレーション対象のデータを含む、段階と、仮想マシンに割り当てられる仮想アクセラレータを決定する段階と、仮想アクセラレータに基づいて、アクセラレーション命令を処理するネットワークアクセラレータを決定し、アクセラレーション命令をネットワークアクセラレータに送信する段階であって、これにより、ネットワークアクセラレータは、アクセラレーション命令を処理する物理アクセラレータにアクセラレーション命令を送信する、段階と、物理アクセラレータが物理アクセラレーションリソースを用いてアクセラレーション対象のデータに対してアクセラレーションコンピューティングを行った後に返されるコンピューティング結果を受信する段階と、コンピューティング結果を仮想マシンに送信する段階とを含む。本願の実施形態は、仮想化のシナリオにおいて、ヘテロジニアスアクセラレーションリソースの柔軟なスケジューリングを実現し、コンピューティングノードのコンピューティング性能を向上させることができる。
2021503124.tif 000002
【特許請求の範囲】
【請求項１】
アクセラレーションシステムに適用されるアクセラレーションリソーススケジューリング方法であって、前記アクセラレーションシステムはコンピューティングノードと少なくとも１つのネットワークアクセラレータとを有し、前記コンピューティングノードは仮想マシンとスケジューリング装置とを含み、前記ネットワークアクセラレータは少なくとも１つの物理アクセラレータを含み、前記方法は前記スケジューリング装置により実行され、
前記方法は、
前記仮想マシンにより送信されるアクセラレーション命令を受信する段階であって、前記アクセラレーション命令はアクセラレーション対象のデータを含む、段階と、
前記仮想マシンに割り当てられる仮想アクセラレータを決定する段階であって、前記仮想アクセラレータは、前記仮想マシンに割り当てられる物理アクセラレーションリソースを前記スケジューリング装置上でマッピングしており、前記物理アクセラレーションリソースは、前記少なくとも１つのネットワークアクセラレータの前記少なくとも１つの物理アクセラレータの中に少なくともいくつかの物理アクセラレーションリソースを含む、段階と、
前記アクセラレーション命令を処理するネットワークアクセラレータを前記仮想アクセラレータに基づいて決定し、前記アクセラレーション命令を前記ネットワークアクセラレータに送信する段階であって、これにより、前記ネットワークアクセラレータは、前記アクセラレーション命令を処理する物理アクセラレータに前記アクセラレーション命令を送信する、段階と、
前記物理アクセラレータが前記物理アクセラレーションリソースを用いて前記アクセラレーション対象のデータに対してアクセラレーションコンピューティングを行った後に返されるコンピューティング結果を受信する段階と、
前記コンピューティング結果を前記仮想マシンに送信する段階と
を含む、方法。
【請求項２】
前記アクセラレーション命令を処理するネットワークアクセラレータを前記仮想アクセラレータに基づいて決定する前記段階は、
前記仮想アクセラレータに対応するオブジェクトアクセラレータを決定する段階であって、前記オブジェクトアクセラレータが位置するネットワークアクセラレータが、前記アクセラレーション命令を処理する前記ネットワークアクセラレータである、段階を有し、
前記アクセラレーション命令を処理するネットワークアクセラレータを前記仮想アクセラレータに基づいて決定する前記段階の後に、前記方法はさらに、
前記オブジェクトアクセラレータの識別子を前記ネットワークアクセラレータに送信する段階であって、これにより、前記ネットワークアクセラレータは、前記オブジェクトアクセラレータに対応する物理アクセラレータを前記オブジェクトアクセラレータの前記識別子に基づいて決定し、前記アクセラレーション命令を前記物理アクセラレータに送信する、段階を含む、請求項１に記載の方法。
【請求項３】
前記アクセラレーション命令を処理するネットワークアクセラレータを前記仮想アクセラレータに基づいて決定する前記段階は、
前記仮想アクセラレータに対応する物理アクセラレータを決定する段階であって、前記物理アクセラレータが位置しているネットワークアクセラレータが、前記アクセラレーション命令を処理する前記ネットワークアクセラレータである、段階を有し、
前記アクセラレーション命令を処理するネットワークアクセラレータを前記仮想アクセラレータに基づいて決定する前記段階の後に、前記方法はさらに、
前記物理アクセラレータの識別子を前記ネットワークアクセラレータに送信する段階であって、これにより、前記ネットワークアクセラレータは、前記物理アクセラレータの前記識別子に基づいて、前記アクセラレーション命令を前記物理アクセラレータに送信する、段階を含む、請求項１に記載の方法。
【請求項４】
前記仮想マシンにより送信されるアクセラレーション命令を受信する前記段階の前に、前記方法はさらに、
管理ノードにより送信される仮想アクセラレータ利用コマンドを受信する段階であって、前記仮想アクセラレータ利用コマンドは前記オブジェクトアクセラレータの前記識別子と前記仮想マシンの識別子とを含む、段階と、
前記仮想マシンに対応する仮想アクセラレータが１つもないと判定された場合、前記仮想マシンに対応する仮想アクセラレータを形成し、前記仮想アクセラレータに識別子を割り当てる段階と、
前記仮想アクセラレータの前記識別子と前記オブジェクトアクセラレータの前記識別子との対応関係を格納する段階と
を含む、請求項２に記載の方法。
【請求項５】
前記仮想マシンにより送信されるアクセラレーション命令を受信する前記段階の前に、前記方法はさらに、
管理ノードにより送信される仮想アクセラレータ利用コマンドを受信する段階であって、前記仮想アクセラレータ利用コマンドは前記物理アクセラレータの前記識別子と前記仮想マシンの識別子とを含む、段階と、
前記仮想マシンに対応する仮想アクセラレータが１つもないと判定された場合、前記仮想マシンに対応する仮想アクセラレータを形成し、前記仮想アクセラレータに識別子を割り当てる段階と、
前記仮想アクセラレータの前記識別子と前記物理アクセラレータの前記識別子との対応関係を格納する段階と
を含む、請求項３に記載の方法。
【請求項６】
前記方法はさらに、
管理ノードにより送信される仮想アクセラレータ利用コマンドを受信する段階であって、前記仮想アクセラレータ利用コマンドは前記オブジェクトアクセラレータの前記識別子と前記仮想マシンの識別子とを含む、段階と、
前記仮想マシンに対応する仮想アクセラレータがあると判定された場合、前記仮想アクセラレータに対応する全てのオブジェクトアクセラレータが、前記オブジェクトアクセラレータの前記識別子により示されるオブジェクトアクセラレータを含むかどうかを判定する段階と、
前記仮想アクセラレータに対応する前記オブジェクトアクセラレータがどれも、前記オブジェクトアクセラレータの前記識別子により示される前記オブジェクトアクセラレータを含まないと判定された場合、前記仮想アクセラレータと前記オブジェクトアクセラレータの前記識別子とのマッピング関係を格納する段階と
を含む、請求項２に記載の方法。
【請求項７】
前記方法はさらに、
管理ノードにより送信される仮想アクセラレータ利用コマンドを受信する段階であって、前記仮想アクセラレータ利用コマンドは前記物理アクセラレータの前記識別子と前記仮想マシンの識別子とを含む、段階と、
前記仮想マシンに対応する仮想アクセラレータがあると判定された場合、前記仮想アクセラレータに対応する全ての物理アクセラレータが、前記物理アクセラレータの前記識別子により示される物理アクセラレータを含むかどうかを判定する段階と、
前記仮想アクセラレータに対応する前記物理アクセラレータがどれも、前記物理アクセラレータの前記識別子により示される前記物理アクセラレータを含まないと判定された場合、前記仮想アクセラレータと前記物理アクセラレータの前記識別子とのマッピング関係を格納する段階と
を含む、請求項３に記載の方法。
【請求項８】
前記方法はさらに、
前記管理ノードにより送信されるオブジェクトアクセラレータ削除コマンドを受信する段階であって、前記オブジェクトアクセラレータ削除コマンドは前記仮想マシンの前記識別子と前記オブジェクトアクセラレータの前記識別子とを含む、段階と、
前記仮想マシンに対応する仮想アクセラレータがあると判定された場合、前記スケジューリング装置が前記オブジェクトアクセラレータの前記識別子に基づいて、前記仮想アクセラレータに対応する全てのオブジェクトアクセラレータが、前記オブジェクトアクセラレータの前記識別子により示されるオブジェクトアクセラレータを含むかどうかを判定する段階と、
前記仮想アクセラレータに対応する全ての前記オブジェクトアクセラレータが、前記オブジェクトアクセラレータの前記識別子により示される前記オブジェクトアクセラレータを含むと判定された場合、前記オブジェクトアクセラレータの前記識別子を削除する段階と
を含む、請求項４又は６に記載の方法。
【請求項９】
前記方法はさらに、
前記管理ノードにより送信される物理アクセラレータ削除コマンドを受信する段階であって、前記物理アクセラレータ削除コマンドは前記仮想マシンの前記識別子と前記物理アクセラレータの前記識別子とを含む、段階と、
前記仮想マシンに対応する仮想アクセラレータがあると判定された場合、前記スケジューリング装置が前記物理アクセラレータの前記識別子に基づいて、前記仮想アクセラレータに対応する全ての物理アクセラレータが、前記物理アクセラレータの前記識別子により示される物理アクセラレータを含むかどうかを判定する段階と、
前記仮想アクセラレータに対応する全ての前記物理アクセラレータが、前記物理アクセラレータの前記識別子により示される前記物理アクセラレータを含むと判定された場合、前記物理アクセラレータの前記識別子を削除する段階と
を含む、請求項５又は７に記載の方法。
【請求項１０】
前記アクセラレーション命令はさらに、前記仮想マシンの前記識別子を含み、前記スケジューリング装置は、前記仮想マシンの前記識別子と前記仮想アクセラレータの前記識別子との対応関係を事前に格納し、前記仮想マシンに割り当てられる仮想アクセラレータを決定する前記段階は、
前記仮想マシンの前記識別子と前記仮想アクセラレータの前記識別子との前記対応関係に基づいて、前記仮想マシンに対応する前記仮想アクセラレータを決定する段階を有する、請求項１から９のいずれか一項に記載の方法。
【請求項１１】
前記アクセラレーション命令はさらに、前記仮想アクセラレータの前記識別子を含み、前記仮想マシンは、前記仮想マシンの前記識別子と前記仮想アクセラレータの前記識別子との対応関係を事前に格納し、前記仮想マシンに割り当てられる仮想アクセラレータを決定する前記段階は、
前記仮想アクセラレータの前記識別子に基づいて、前記仮想マシンに対応する前記仮想アクセラレータを決定する段階を有する、請求項１から９のいずれか一項に記載の方法。
【請求項１２】
アクセラレーションシステムに適用されるアクセラレーションリソーススケジューリング方法であって、前記アクセラレーションシステムは、管理ノードと、コンピューティングノードと、少なくとも１つのネットワークアクセラレータとを有し、前記コンピューティングノードは仮想マシンとスケジューリング装置とを含み、前記ネットワークアクセラレータは少なくとも１つの物理アクセラレータを含み、前記方法は前記管理ノードにより実行され、前記方法は、
前記仮想マシンにより送信されるアクセラレーションリソース利用要求を受信する段階であって、前記アクセラレーションリソース利用要求は、前記仮想マシンの識別子と、前記仮想マシンに割り当てられる必要な物理アクセラレーションリソースの数量と、前記物理アクセラレーションリソースを前記仮想マシンに提供する物理アクセラレータのタイプ識別子とを含む、段階と、
前記物理アクセラレータの前記タイプ識別子と必要な前記物理アクセラレーションリソースの前記数量とに基づいて、前記物理アクセラレーションリソースを提供する前記少なくとも１つの物理アクセラレータが属するそれぞれのネットワークアクセラレータを決定する段階と、
物理アクセラレーションリソース形成コマンドを生成する段階であって、前記物理アクセラレーションリソース形成コマンドは、前記ネットワークアクセラレータに命令して、オブジェクトアクセラレータを形成し、前記オブジェクトアクセラレータの識別子と、前記ネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを前記仮想マシンに提供するように構成された物理アクセラレータの識別子との対応関係を格納するのに用いられる、段階と、
前記物理アクセラレーションリソース形成コマンドを前記ネットワークアクセラレータに送信する段階と、
前記ネットワークアクセラレータにより送信される前記オブジェクトアクセラレータの前記識別子を受信する段階と、
仮想アクセラレータ利用コマンドを生成する段階であって、前記仮想アクセラレータ利用コマンドは前記仮想マシンの前記識別子と前記オブジェクトアクセラレータの前記識別子とを含む、段階と、
前記仮想アクセラレータ利用コマンドを前記スケジューリング装置に送信する段階であって、これにより、前記スケジューリング装置は、仮想アクセラレータの識別子と前記オブジェクトアクセラレータの前記識別子との対応関係を前記仮想アクセラレータ利用コマンドに基づいて格納する、段階と
を含む、方法。
【請求項１３】
アクセラレーションシステムに適用されるアクセラレーションリソーススケジューリング方法であって、前記アクセラレーションシステムは、管理ノードと、コンピューティングノードと、少なくとも１つのネットワークアクセラレータとを有し、前記コンピューティングノードは仮想マシンとスケジューリング装置とを含み、前記ネットワークアクセラレータは少なくとも１つの物理アクセラレータを含み、前記方法は前記管理ノードにより実行され、前記方法は、
前記仮想マシンにより送信されるアクセラレーションリソース利用要求を受信する段階であって、前記アクセラレーションリソース利用要求は、前記仮想マシンの識別子と、前記仮想マシンに割り当てられる必要な物理アクセラレーションリソースの数量と、前記物理アクセラレーションリソースを前記仮想マシンに提供する物理アクセラレータのタイプ識別子とを含む、段階と、
前記物理アクセラレータの前記タイプ識別子と必要な前記物理アクセラレーションリソースの前記数量とに基づいて、前記物理アクセラレーションリソースを提供する前記少なくとも１つの物理アクセラレータが属するそれぞれのネットワークアクセラレータを決定する段階と、
仮想アクセラレータ利用コマンドを生成する段階であって、前記仮想アクセラレータ利用コマンドは、前記仮想マシンの前記識別子と、それぞれのネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを前記仮想マシンに提供するように構成された物理アクセラレータの識別子とを含む、段階と、
前記仮想アクセラレータ利用コマンドを前記スケジューリング装置に送信する段階であって、これにより、前記スケジューリング装置は、前記仮想アクセラレータ利用コマンドに基づいて、仮想アクセラレータの識別子と、それぞれのネットワークアクセラレータに存在し且つ前記物理アクセラレーションリソースを前記仮想マシンに提供するように構成された前記物理アクセラレータの前記識別子との対応関係を格納する、段階と
を含む、方法。
【請求項１４】
アクセラレーションシステムに適用されるスケジューリング装置であって、前記アクセラレーションシステムはコンピューティングノードと少なくとも１つのネットワークアクセラレータとを有し、前記コンピューティングノードは仮想マシンと前記スケジューリング装置とを含み、前記ネットワークアクセラレータは少なくとも１つの物理アクセラレータを含み、
前記スケジューリング装置は、
前記仮想マシンにより送信されるアクセラレーション命令を受信するように構成された送受信機ユニットであって、前記アクセラレーション命令はアクセラレーション対象のデータを含む、送受信機ユニットと、
前記仮想マシンに割り当てられる仮想アクセラレータを決定することであって、前記仮想アクセラレータは、前記仮想マシンに割り当てられる物理アクセラレーションリソースを前記スケジューリング装置上でマッピングしており、前記物理アクセラレーションリソースは、前記少なくとも１つのネットワークアクセラレータの前記少なくとも１つの物理アクセラレータの中に少なくともいくつかの物理アクセラレーションリソースを含む、決定することと、前記アクセラレーション命令を処理するネットワークアクセラレータを前記仮想アクセラレータに基づいて決定し、前記アクセラレーション命令を前記ネットワークアクセラレータに送信することであって、これにより、前記ネットワークアクセラレータは、前記アクセラレーション命令を処理する物理アクセラレータに前記アクセラレーション命令を送信する、送信することとを行うように構成された処理ユニットと
を備え、
前記送受信機ユニットはさらに、前記物理アクセラレータが前記物理アクセラレーションリソースを用いて前記アクセラレーション対象のデータに対してアクセラレーションコンピューティングを行った後に返されるコンピューティング結果を受信し、前記コンピューティング結果を前記仮想マシンに送信するように構成される、スケジューリング装置。
【請求項１５】
前記アクセラレーション命令を処理する前記ネットワークアクセラレータを前記仮想アクセラレータに基づいて決定する場合、前記処理ユニットは具体的には、
前記仮想アクセラレータに対応するオブジェクトアクセラレータを決定するように構成され、前記オブジェクトアクセラレータが位置しているネットワークアクセラレータが、前記アクセラレーション命令を処理する前記ネットワークアクセラレータであり、
前記アクセラレーション命令を処理する前記ネットワークアクセラレータを前記仮想アクセラレータに基づいて決定した後に、前記処理ユニットはさらに、
前記オブジェクトアクセラレータの識別子を前記ネットワークアクセラレータに送信するように構成され、これにより、前記ネットワークアクセラレータは、前記オブジェクトアクセラレータに対応する物理アクセラレータを前記オブジェクトアクセラレータの前記識別子に基づいて決定し、前記アクセラレーション命令を前記物理アクセラレータに送信する、請求項１４に記載のスケジューリング装置。
【請求項１６】
前記アクセラレーション命令を処理する前記ネットワークアクセラレータを前記仮想アクセラレータに基づいて決定する場合、前記処理ユニットは具体的には、
前記仮想アクセラレータに対応する物理アクセラレータを決定するように構成され、前記物理アクセラレータが位置しているネットワークアクセラレータが、前記アクセラレーション命令を処理する前記ネットワークアクセラレータであり、
前記アクセラレーション命令を処理する前記ネットワークアクセラレータを前記仮想アクセラレータに基づいて決定した後に、前記処理ユニットはさらに、
前記物理アクセラレータの識別子を前記ネットワークアクセラレータに送信するように構成され、これにより、前記ネットワークアクセラレータは、前記物理アクセラレータの前記識別子に基づいて、前記アクセラレーション命令を前記物理アクセラレータに送信する、請求項１４に記載のスケジューリング装置。
【請求項１７】
前記仮想マシンにより送信される前記アクセラレーション命令を受信する前に、前記送受信機ユニットはさらに、
管理ノードにより送信される仮想アクセラレータ利用コマンドを受信するように構成され、前記仮想アクセラレータ利用コマンドは前記オブジェクトアクセラレータの前記識別子と前記仮想マシンの識別子とを含み、
前記処理ユニットはさらに、
前記仮想マシンに対応する仮想アクセラレータが１つもないと判定された場合、前記仮想マシンに対応する仮想アクセラレータを形成して、前記仮想アクセラレータに識別子を割り当て、
前記仮想アクセラレータの前記識別子と前記オブジェクトアクセラレータの前記識別子との対応関係を格納する
ように構成される、請求項１５に記載のスケジューリング装置。
【請求項１８】
前記仮想マシンにより送信される前記アクセラレーション命令を受信する前に、前記送受信機ユニットはさらに、
管理ノードにより送信される仮想アクセラレータ利用コマンドを受信するように構成され、前記仮想アクセラレータ利用コマンドは前記物理アクセラレータの前記識別子と前記仮想マシンの識別子とを含み、
前記処理ユニットはさらに、
前記仮想マシンに対応する仮想アクセラレータが１つもないと判定された場合、前記仮想マシンに対応する仮想アクセラレータを形成して、前記仮想アクセラレータに識別子を割り当て、
前記仮想アクセラレータの前記識別子と前記物理アクセラレータの前記識別子との対応関係を格納する
ように構成される、請求項１６に記載のスケジューリング装置。
【請求項１９】
前記送受信機ユニットはさらに、
管理ノードにより送信される仮想アクセラレータ利用コマンドを受信するように構成され、前記仮想アクセラレータ利用コマンドは前記オブジェクトアクセラレータの前記識別子と前記仮想マシンの識別子とを含み、
前記処理ユニットはさらに、
前記仮想マシンに対応する仮想アクセラレータがあると判定された場合、前記仮想アクセラレータに対応する全てのオブジェクトアクセラレータが、前記オブジェクトアクセラレータの前記識別子により示されるオブジェクトアクセラレータを含むかどうかを判定し、
前記仮想アクセラレータに対応する前記オブジェクトアクセラレータがどれも、前記オブジェクトアクセラレータの前記識別子により示される前記オブジェクトアクセラレータを含まないと判定された場合、前記仮想アクセラレータと前記オブジェクトアクセラレータの前記識別子とのマッピング関係を格納する
ように構成される、請求項１５に記載のスケジューリング装置。
【請求項２０】
前記送受信機ユニットはさらに、
管理ノードにより送信される仮想アクセラレータ利用コマンドを受信するように構成され、前記仮想アクセラレータ利用コマンドは前記物理アクセラレータの前記識別子と前記仮想マシンの識別子とを含み、
前記処理ユニットはさらに、
前記仮想マシンに対応する仮想アクセラレータがあると判定された場合、前記仮想アクセラレータに対応する全ての物理アクセラレータが、前記物理アクセラレータの前記識別子により示される物理アクセラレータを含むかどうかを判定し、
前記仮想アクセラレータに対応する前記オブジェクトアクセラレータがどれも、前記物理アクセラレータの前記識別子により示される前記物理アクセラレータを含まないと判定された場合、前記仮想アクセラレータと前記物理アクセラレータの前記識別子とのマッピング関係を格納する
ように構成される、請求項１６に記載のスケジューリング装置。
【請求項２１】
前記送受信機ユニットはさらに、
前記管理ノードにより送信されるオブジェクトアクセラレータ削除コマンドを受信するように構成され、前記オブジェクトアクセラレータ削除コマンドは前記仮想マシンの前記識別子と前記オブジェクトアクセラレータの前記識別子とを含み、
前記処理ユニットはさらに、
前記仮想マシンに対応する仮想アクセラレータがあると判定された場合、前記オブジェクトアクセラレータの前記識別子に基づいて、前記仮想アクセラレータに対応する全てのオブジェクトアクセラレータが、前記オブジェクトアクセラレータの前記識別子により示されるオブジェクトアクセラレータを含むかどうかを判定し、
前記仮想アクセラレータに対応する全ての前記オブジェクトアクセラレータが、前記オブジェクトアクセラレータの前記識別子により示される前記オブジェクトアクセラレータを含むと判定された場合、前記オブジェクトアクセラレータの前記識別子を削除する
ように構成される、請求項１７又は１９に記載のスケジューリング装置。
【請求項２２】
前記送受信機ユニットはさらに、
前記管理ノードにより送信される物理アクセラレータ削除コマンドを受信するように構成され、前記物理アクセラレータ削除コマンドは前記仮想マシンの前記識別子と前記物理アクセラレータの前記識別子とを含み、
前記処理ユニットはさらに、
前記仮想マシンに対応する仮想アクセラレータがあると判定された場合、前記物理アクセラレータの前記識別子に基づいて、前記仮想アクセラレータに対応する全ての物理アクセラレータが、前記物理アクセラレータの前記識別子により示される物理アクセラレータを含むかどうかを判定し
前記仮想アクセラレータに対応する全ての前記物理アクセラレータが、前記物理アクセラレータの前記識別子により示される前記物理アクセラレータを含むと判定された場合、前記物理アクセラレータの前記識別子を削除する
ように構成される、請求項１８又は２０に記載のスケジューリング装置。
【請求項２３】
前記アクセラレーション命令はさらに、前記仮想マシンの前記識別子を含み、前記処理ユニットはさらに、前記仮想マシンの前記識別子と前記仮想アクセラレータの前記識別子との対応関係を事前に格納するように構成され、前記仮想マシンに割り当てられる前記仮想アクセラレータを決定する場合、前記処理ユニットは具体的には、
前記仮想マシンの前記識別子と前記仮想アクセラレータの前記識別子との前記対応関係に基づいて、前記仮想マシンに対応する前記仮想アクセラレータを決定するように構成される、請求項１４から２２のいずれか一項に記載のスケジューリング装置。
【請求項２４】
前記アクセラレーション命令はさらに、前記仮想アクセラレータの前記識別子を含み、前記仮想マシンは、前記仮想マシンの前記識別子と前記仮想アクセラレータの前記識別子との対応関係を事前に格納し、前記仮想マシンに割り当てられる前記仮想アクセラレータを決定する場合、前記処理ユニットは具体的には、
前記仮想マシンに対応する前記仮想アクセラレータを前記仮想アクセラレータの前記識別子に基づいて決定するように構成される、請求項１４から２２のいずれか一項に記載のスケジューリング装置。
【請求項２５】
アクセラレーションシステムに適用されるスケジューリング装置であって、前記アクセラレーションシステムはコンピューティングノードと少なくとも１つのネットワークアクセラレータとを有し、前記コンピューティングノードは仮想マシンと前記スケジューリング装置とを含み、前記ネットワークアクセラレータは少なくとも１つの物理アクセラレータを含み、
前記スケジューリング装置は、
プロセッサと、メモリと、バスとを備え、前記プロセッサと前記メモリとは前記バスを用いて接続され、前記メモリはアプリケーションコードのセットを格納するように構成され、前記プロセッサは、前記メモリに格納された前記アプリケーションコードを呼び出して、請求項１から１１のいずれか一項に記載の段階を実行するように構成される、スケジューリング装置。
【請求項２６】
アクセラレーションシステムに適用される管理ノードであって、前記アクセラレーションシステムは、前記管理ノードと、コンピューティングノードと、少なくとも１つのネットワークアクセラレータとを有し、前記コンピューティングノードは仮想マシンとスケジューリング装置とを含み、前記ネットワークアクセラレータは少なくとも１つの物理アクセラレータを含み、
前記管理ノードは、
前記仮想マシンにより送信されるアクセラレーションリソース利用要求を受信するように構成された送受信機ユニットであって、前記アクセラレーションリソース利用要求は、前記仮想マシンの識別子と、前記仮想マシンに割り当てられる必要な物理アクセラレーションリソースの数量と、前記物理アクセラレーションリソースを前記仮想マシンに提供する物理アクセラレータのタイプ識別子とを含む、送受信機ユニットと、
前記物理アクセラレータの前記タイプ識別子と必要な前記物理アクセラレーションリソースの前記数量とに基づいて、前記物理アクセラレーションリソースを提供する前記少なくとも１つの物理アクセラレータが属するそれぞれのネットワークアクセラレータを決定し、物理アクセラレーションリソース形成コマンドを生成するように構成された処理ユニットであって、前記物理アクセラレーションリソース形成コマンドは、前記ネットワークアクセラレータに命令して、オブジェクトアクセラレータを形成し、前記オブジェクトアクセラレータの識別子と、前記ネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを前記仮想マシンに提供するように構成された物理アクセラレータの識別子との対応関係を格納するのに用いられる、処理ユニットと
を備え、
前記送受信機ユニットはさらに、
前記物理アクセラレーションリソース形成コマンドを前記ネットワークアクセラレータに送信し、
前記ネットワークアクセラレータにより送信される前記オブジェクトアクセラレータの前記識別子を受信する
ように構成され、
前記処理ユニットはさらに、
仮想アクセラレータ利用コマンドを生成することであって、前記仮想アクセラレータ利用コマンドは前記仮想マシンの前記識別子と前記オブジェクトアクセラレータの前記識別子とを含む、生成することと、
前記仮想アクセラレータ利用コマンドを前記スケジューリング装置に送信することであって、これにより、前記スケジューリング装置は、仮想アクセラレータの識別子と前記オブジェクトアクセラレータの前記識別子との対応関係を格納する、送信することと
を行うように構成される、管理ノード。
【請求項２７】
アクセラレーションシステムに適用される管理ノードであって、前記アクセラレーションシステムは、前記管理ノードと、コンピューティングノードと、少なくとも１つのネットワークアクセラレータとを有し、前記コンピューティングノードは仮想マシンとスケジューリング装置とを含み、前記ネットワークアクセラレータは少なくとも１つの物理アクセラレータを含み、
前記管理ノードは、
プロセッサと、メモリと、バスとを備え、前記プロセッサと前記メモリとは前記バスを用いて接続され、前記メモリはアプリケーションコードのセットを格納するように構成され、前記プロセッサは、前記メモリに格納された前記アプリケーションコードを呼び出して、請求項２６に記載の段階を実行するように構成される、管理ノード。
【請求項２８】
アクセラレーションシステムに適用される管理ノードであって、前記アクセラレーションシステムは、前記管理ノードとコンピューティングノードと、少なくとも１つのネットワークアクセラレータとを有し、前記コンピューティングノードは仮想マシンとスケジューリング装置とを含み、前記ネットワークアクセラレータは少なくとも１つの物理アクセラレータを含み、
前記管理ノードは、
前記仮想マシンにより送信されるアクセラレーションリソース利用要求を受信するように構成された送受信機ユニットであって、前記アクセラレーションリソース利用要求は、前記仮想マシンの識別子と、前記仮想マシンに割り当てられる必要な物理アクセラレーションリソースの数量と、前記物理アクセラレーションリソースを前記仮想マシンに提供する物理アクセラレータのタイプ識別子とを含む、送受信機ユニットと、
前記物理アクセラレータの前記タイプ識別子と必要な前記物理アクセラレーションリソースの前記数量とに基づいて、前記物理アクセラレーションリソースを提供する前記少なくとも１つの物理アクセラレータが属するそれぞれのネットワークアクセラレータを決定することと、仮想アクセラレータ利用コマンドを生成することであって、前記仮想アクセラレータ利用コマンドは、前記仮想マシンの前記識別子と、それぞれのネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを前記仮想マシンに提供するように構成された物理アクセラレータの識別子とを含む、生成することと、前記仮想アクセラレータ利用コマンドを前記スケジューリング装置に送信することであって、これにより、前記スケジューリング装置は、前記仮想アクセラレータ利用コマンドに基づいて、仮想アクセラレータの識別子と、それぞれのネットワークアクセラレータに存在し且つ前記物理アクセラレーションリソースを前記仮想マシンに提供するように構成された前記物理アクセラレータの前記識別子との対応関係を格納する、送信することとを行うように構成された処理ユニットと
を備える、管理ノード。
【請求項２９】
アクセラレーションシステムに適用される管理ノードであって、前記アクセラレーションシステムは、前記管理ノードと、コンピューティングノードと、少なくとも１つのネットワークアクセラレータとを有し、前記コンピューティングノードは仮想マシンとスケジューリング装置とを含み、前記ネットワークアクセラレータは少なくとも１つの物理アクセラレータを含み、
前記管理ノードは、
プロセッサと、メモリと、バスとを備え、前記プロセッサと前記メモリとは前記バスを用いて接続され、前記メモリはアプリケーションコードのセットを格納するように構成され、前記プロセッサは、前記メモリに格納された前記アプリケーションコードを呼び出して、請求項２８に記載の管理ノードで行われる処理を実行するように構成される、管理ノード。
【請求項３０】
請求項２６又は２８に記載の管理ノードと、コンピューティングノードと、少なくとも１つのネットワークアクセラレータとを備えるアクセラレーションシステムであって、前記コンピューティングノードは、仮想マシンと、請求項１４から２５のいずれか一項に記載のスケジューリング装置とを有し、前記ネットワークアクセラレータは少なくとも１つの物理アクセラレータを含む、アクセラレーションシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、コンピュータ技術の分野に関し、具体的には、アクセラレーションリソーススケジューリング方法及び装置、並びにアクセラレーションシステムに関する。
【背景技術】
【０００２】
クライアントアプリケーションおよびクライアントデータの爆発的な増加に伴って、コンピューティングノードのコンピューティング能力に対する要件が、ますます高くなっている。汎用の中央演算処理装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、ＣＰＵ）のコンピューティング能力では、急速な発展を見せる現在のサービスの高性能コンピューティングに対する要求を満たすことができない。したがって、経済的且つ効果的に高性能コンピューティング能力を獲得することができ、高い拡張性、高いコンピューティングリソース利用率、及び極めて大きい発展可能性を有するヘテロジニアスコンピューティングが、能力を発揮する。しかしながら、異なる企業のサービスには、通常、異なるヘテロジニアスコンピューティングの機能が必要になる。例えば、異なる企業が、ヘテロジニアスアクセラレーション機能の種類及び粒度の側面において異なる選択を行う。
【０００３】
先行技術では、グラフィック処理装置（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、ＧＰＵ）に特化したヘテロジニアスアクセラレーションの解決手段が提供されている。コンピューティングノードが、クライアントサーバ（ｃｌｉｅｎｔ−ｓｅｒｖｅｒ）方式のサーバ上にあるＧＰＵリソースにアクセスし、そのＧＰＵリソースを用いる。しかしながら、コンピューティングノードの仮想マシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ、ＶＭ）では、サーバ上のＧＰＵリソースにアクセスすることも、そのＧＰＵリソースを用いることもできず、サーバ上にある全てのＧＰＵリソースの仮想化を実現することもできない。
【発明の概要】
【０００４】
本願の実施形態の目的とは、ヘテロジニアスアクセラレーションリソース仮想化のシナリオにおいて仮想マシンのヘテロジニアスコンピューティングを実現し、仮想マシンのコンピューティング性能を向上させることを期待して、アクセラレーションリソーススケジューリング方法及び装置並びにアクセラレーションシステムを提供することである。
【０００５】
第１の態様によれば、本願の一実施形態が、アクセラレーションシステムに適用されるアクセラレーションリソーススケジューリング方法を提供する。アクセラレーションシステムは、コンピューティングノードと少なくとも１つのネットワークアクセラレータとを含み、コンピューティングノードは仮想マシンとスケジューリング装置とを含み、ネットワークアクセラレータは少なくとも１つの物理アクセラレータを含む。本方法は、スケジューリング装置によって実行され、以下のことを含む。すなわち、スケジューリング装置は、仮想マシンから送信されるアクセラレーション命令を受信し、アクセラレーション命令はアクセラレーション対象のデータを含む。次いでスケジューリング装置は、仮想マシンに割り当てられる仮想アクセラレータを決定する。仮想アクセラレータは、仮想マシンに割り当てられる物理アクセラレーションリソースをスケジューリング装置上でマッピングしており、物理アクセラレーションリソースは、少なくとも１つのネットワークアクセラレータの少なくとも１つの物理アクセラレータの中に少なくともいくつかの物理アクセラレーションリソースを含む。スケジューリング装置は、アクセラレーション命令を処理するネットワークアクセラレータを仮想アクセラレータに基づいて決定し、アクセラレーション命令を当該ネットワークアクセラレータに送信するので、ネットワークアクセラレータは、アクセラレーション命令を処理する物理アクセラレータにアクセラレーション命令を送信することができる。物理アクセラレータがアクセラレーション命令を処理した後に、スケジューリング装置は、物理アクセラレータが物理アクセラレーションリソースを用いてアクセラレーション対象のデータに対してアクセラレーションコンピューティングを実行した後に返されるコンピューティング結果を受信し、このコンピューティング結果を仮想マシンに送信する。
【０００６】
前述のアクセラレーションリソーススケジューリング方法に基づいて、クラウド内の少なくとも１つのネットワークアクセラレータにより提供されるアクセラレーションリソースが仮想化された後に、仮想マシンは、仮想アクセラレータに対応し、仮想アクセラレータに提供されるアクセラレーションリソースを仮想マシンに与える。ＶＭは、対応する仮想アクセラレータに直接アクセスして、クラウド内の物理アクセラレーションリソースへの仮想マシンのアクセスを実現するので、ヘテロジニアスアクセラレーションリソース仮想化のシナリオにおいて、仮想マシンヘテロジニアスコンピューティングが実現される。仮想アクセラレータは、仮想マシンに割り当てられる物理アクセラレーションリソースをスケジューリング装置上でマッピングしており、物理アクセラレーションリソースは、少なくとも１つのネットワークアクセラレータの少なくとも１つの物理アクセラレータの中に少なくともいくつかの物理アクセラレーションリソースを含み、クラウドにおいて提供される物理アクセラレーションリソースが、必要に応じて、仮想マシンに割り当てられる。
【０００７】
実現可能な実装例において、スケジューリング装置が、アクセラレーション命令を処理するネットワークアクセラレータを仮想アクセラレータに基づいて決定する段階は、スケジューリング装置が仮想アクセラレータに対応するオブジェクトアクセラレータを決定する段階であって、オブジェクトアクセラレータが位置しているネットワークアクセラレータが、アクセラレーション命令を処理するネットワークアクセラレータである、段階を含む。本方法はさらに、スケジューリング装置が、アクセラレーション命令を処理するネットワークアクセラレータを仮想アクセラレータに基づいて決定する段階の後に、スケジューリング装置がオブジェクトアクセラレータの識別子をネットワークアクセラレータに送信する段階を含むので、ネットワークアクセラレータは、オブジェクトアクセラレータの識別子に基づいて、オブジェクトアクセラレータに対応する物理アクセラレータを決定して、アクセラレーション命令を物理アクセラレータに送信する。スケジューリング装置に対する物理アクセラレーションリソースのマッピングの階層管理が、仮想アクセラレータとオブジェクトアクセラレータとの間のマッピング、及びオブジェクトアクセラレータと物理アクセラレータとの間のマッピングによって実現される。これは、スケジューリング装置に対する物理アクセラレーションリソースのマッピングのメンテナンスを簡略化するのに役立つ。
【０００８】
実現可能な実装例において、アクセラレーション命令を処理するネットワークアクセラレータを仮想アクセラレータに基づいて決定する段階は、仮想アクセラレータに対応する物理アクセラレータを決定する段階であって、物理アクセラレータが位置しているネットワークアクセラレータが、アクセラレーション命令を処理するネットワークアクセラレータである、段階を含む。本方法はさらに、アクセラレーション命令を処理するネットワークアクセラレータを仮想アクセラレータに基づいて決定する段階の後に、物理アクセラレータの識別子をネットワークアクセラレータに送信する段階を含むので、ネットワークアクセラレータは、物理アクセラレータの識別子に基づいて、アクセラレーション命令を物理アクセラレータに送信する。
【０００９】
実現可能な実装例において、本方法はさらに、仮想マシンにより送信されるアクセラレーション命令を受信する前に、管理ノードにより送信される仮想アクセラレータ利用コマンドを受信する段階であって、仮想アクセラレータ利用コマンドはオブジェクトアクセラレータの識別子と仮想マシンの識別子とを含む、段階と、仮想マシンに対応する仮想アクセラレータが１つもないと判定された場合、仮想マシンに対応する仮想アクセラレータを形成し、この仮想アクセラレータに識別子を割り当てる段階と、仮想アクセラレータの識別子とオブジェクトアクセラレータの識別子との対応関係を格納する段階とを含む。仮想マシンの物理アクセラレーションリソースの使用中実装が、オブジェクトアクセラレータと仮想アクセラレータとの間のマッピングによって実現され得る。
【００１０】
実現可能な実装例において、本方法はさらに、仮想マシンにより送信されるアクセラレーション命令を受信する段階の前に、管理ノードにより送信される仮想アクセラレータ利用コマンドを受信する段階であって、仮想アクセラレータ利用コマンドは物理アクセラレータの識別子と仮想マシンの識別子とを含む、段階と、仮想マシンに対応する仮想アクセラレータが１つもないと判定された場合、仮想マシンに対応する仮想アクセラレータを形成し、この仮想アクセラレータに識別子を割り当てる段階と、仮想アクセラレータの識別子と物理アクセラレータの識別子との対応関係を格納する段階とを含む。仮想マシンの物理アクセラレーションリソースの使用中実装が、物理アクセラレータと仮想アクセラレータとの間のマッピングによって実現され得る。
【００１１】
実現可能な実装例において、本方法はさらに、管理ノードにより送信される仮想アクセラレータ利用コマンドを受信する段階であって、仮想アクセラレータ利用コマンドはオブジェクトアクセラレータの識別子と仮想マシンの識別子とを含む、段階と、仮想マシンに対応する仮想アクセラレータがあると判定された場合、その仮想アクセラレータに対応する全てのオブジェクトアクセラレータが、オブジェクトアクセラレータの識別子により示されるオブジェクトアクセラレータを含むかどうかを判定する段階と、仮想アクセラレータに対応するオブジェクトアクセラレータがどれも、オブジェクトアクセラレータの識別子により示されるオブジェクトアクセラレータを含まないと判定された場合、仮想アクセラレータとオブジェクトアクセラレータの識別子とのマッピング関係を格納する段階とを含む。仮想マシンの物理アクセラレーションリソースの使用中更新が、オブジェクトアクセラレータと仮想アクセラレータとの間のマッピングによって実現され得る。
【００１２】
実現可能な実装例において、本方法はさらに、管理ノードにより送信される仮想アクセラレータ利用コマンドを受信する段階であって、仮想アクセラレータ利用コマンドは物理アクセラレータの識別子と仮想マシンの識別子とを含む、段階と、仮想マシンに対応する仮想アクセラレータがあると判定された場合、仮想アクセラレータに対応する全ての物理アクセラレータが、物理アクセラレータの識別子により示される物理アクセラレータを含むかどうかを判定する段階と、仮想アクセラレータに対応する物理アクセラレータがどれも、物理アクセラレータの識別子により示される物理アクセラレータを含まないと判定された場合、仮想アクセラレータと物理アクセラレータの識別子とのマッピング関係を格納する段階とを含む。物理アクセラレーションリソースの使用中更新が、物理アクセラレータと仮想アクセラレータとの間のマッピングによって実現され得る。
【００１３】
実現可能な実装例において、本方法はさらに、管理ノードにより送信されるオブジェクトアクセラレータ削除コマンドを受信する段階であって、オブジェクトアクセラレータ削除コマンドは仮想マシンの識別子とオブジェクトアクセラレータの識別子とを含む、段階と、仮想マシンに対応する仮想アクセラレータがあると判定された場合、スケジューリング装置がオブジェクトアクセラレータの識別子に基づいて、仮想アクセラレータに対応する全てのオブジェクトアクセラレータがオブジェクトアクセラレータの識別子により示されるオブジェクトアクセラレータを含むかどうかを判定する段階と、仮想アクセラレータに対応する全てのオブジェクトアクセラレータがオブジェクトアクセラレータの識別子により示されるオブジェクトアクセラレータを含むと判定された場合、オブジェクトアクセラレータの識別子を削除する段階とを含む。物理アクセラレーションリソースの使用中実装解除が、オブジェクトアクセラレータと仮想アクセラレータとの間のマッピングによって実現され得る。
【００１４】
実現可能な実装例において、本方法はさらに、管理ノードにより送信される物理アクセラレータ削除コマンドを受信する段階であって、物理アクセラレータ削除コマンドは仮想マシンの識別子と物理アクセラレータの識別子とを含む、段階と、仮想マシンに対応する仮想アクセラレータがあると判定された場合、スケジューリング装置が物理アクセラレータの識別子に基づいて、仮想アクセラレータに対応する全ての物理アクセラレータが物理アクセラレータの識別子により示される物理アクセラレータを含むかどうかを判定する段階と、仮想アクセラレータに対応する全ての物理アクセラレータが物理アクセラレータの識別子により示される物理アクセラレータを含むと判定された場合、物理アクセラレータの識別子を削除する段階とを含む。物理アクセラレーションリソースの使用中実装解除が、物理アクセラレータと仮想アクセラレータとの間のマッピングによって実現され得る。
【００１５】
実現可能な実装例において、アクセラレーション命令はさらに、仮想マシンの識別子を含み、スケジューリング装置は仮想マシンの識別子と仮想アクセラレータの識別子との対応関係を事前に格納し、仮想マシンに割り当てられる仮想アクセラレータを決定する段階は、仮想マシンの識別子と仮想アクセラレータの識別子との対応関係に基づいて、仮想マシンに対応する仮想アクセラレータを決定する段階を含む。
【００１６】
実現可能な実装例において、アクセラレーション命令はさらに、仮想アクセラレータの識別子を含み、仮想マシンは仮想マシンの識別子と仮想アクセラレータの識別子との対応関係を事前に格納し、仮想マシンに割り当てられる仮想アクセラレータを決定する段階は、仮想アクセラレータの識別子に基づいて、仮想マシンに対応する仮想アクセラレータを決定する段階を含む。
【００１７】
第２の態様によれば、本願の一実施形態がアクセラレーションシステムに適用されるアクセラレーションリソーススケジューリング方法を提供する。アクセラレーションシステムは、管理ノードと、コンピューティングノードと、少なくとも１つのネットワークアクセラレータとを含み、コンピューティングノードは仮想マシンとスケジューリング装置とを含み、ネットワークアクセラレータは少なくとも１つの物理アクセラレータを含む。本方法は、管理ノードにより実行され、仮想マシンにより送信されるアクセラレーションリソース利用要求を受信する段階であって、アクセラレーションリソース利用要求は、仮想マシンの識別子と、仮想マシンに割り当てられる必要な物理アクセラレーションリソースの数量と、物理アクセラレーションリソースを仮想マシンに提供する物理アクセラレータのタイプ識別子とを含む、段階と、物理アクセラレータのタイプ識別子と必要な物理アクセラレーションリソースの数量とに基づいて、物理アクセラレーションリソースを提供する少なくとも１つの物理アクセラレータが属するそれぞれのネットワークアクセラレータを決定する段階と、物理アクセラレーションリソース形成コマンドを生成する段階であって、物理アクセラレーションリソース形成コマンドは、オブジェクトアクセラレータを形成し、オブジェクトアクセラレータの識別子と、ネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを仮想マシンに提供するように構成された物理アクセラレータの識別子との対応関係を格納するよう、ネットワークアクセラレータに命令するのに用いられる、段階と、物理アクセラレーションリソース形成コマンドをネットワークアクセラレータに送信する段階と、ネットワークアクセラレータにより送信されるオブジェクトアクセラレータの識別子を受信する段階と、仮想アクセラレータ利用コマンドを生成する段階であって、仮想アクセラレータ利用コマンドは仮想マシンの識別子とオブジェクトアクセラレータの識別子とを含む、段階と、仮想アクセラレータ利用コマンドをスケジューリング装置に送信する段階であって、これにより、スケジューリング装置は、仮想アクセラレータの識別子とオブジェクトアクセラレータの識別子との対応関係を仮想アクセラレータ利用コマンドに基づいて格納する、段階とを含む。
【００１８】
第３の態様によれば、本願の一実施形態が、アクセラレーションシステムに適用されるアクセラレーションリソーススケジューリング方法を提供する。アクセラレーションシステムは、管理ノードと、コンピューティングノードと、少なくとも１つのネットワークアクセラレータとを含み、コンピューティングノードは仮想マシンとスケジューリング装置とを含み、ネットワークアクセラレータは少なくとも１つの物理アクセラレータを含む。本方法は、管理ノードにより実行され、仮想マシンにより送信されるアクセラレーションリソース利用要求を受信する段階であって、アクセラレーションリソース利用要求は、仮想マシンの識別子と、仮想マシンに割り当てられる必要な物理アクセラレーションリソースの数量と、物理アクセラレーションリソースを仮想マシンに提供する物理アクセラレータのタイプ識別子とを含む、段階と、物理アクセラレータのタイプ識別子と必要な物理アクセラレーションリソースの数量とに基づいて、物理アクセラレーションリソースを提供する少なくとも１つの物理アクセラレータが属するそれぞれのネットワークアクセラレータを決定する段階と、仮想アクセラレータ利用コマンドを生成する段階であって、仮想アクセラレータ利用コマンドは、仮想マシンの識別子と、それぞれのネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを仮想マシンに提供するように構成された物理アクセラレータの識別子とを含む、段階と、仮想アクセラレータ利用コマンドをスケジューリング装置に送信する段階であって、これにより、スケジューリング装置は、仮想アクセラレータ利用コマンドに基づいて、仮想アクセラレータの識別子と、それぞれのネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを仮想マシンに提供するように構成された物理アクセラレータの識別子との対応関係を格納する、段階とを含む。
【００１９】
第４の態様によれば、本願の一実施形態が、アクセラレーションシステムに適用されるスケジューリング装置を提供する。アクセラレーションシステムはコンピューティングノードと少なくとも１つのネットワークアクセラレータとを含み、コンピューティングノードは仮想マシンとスケジューリング装置とを含み、ネットワークアクセラレータは少なくとも１つの物理アクセラレータを含む。スケジューリング装置は、仮想マシンにより送信されるアクセラレーション命令を受信するように構成された送受信機ユニットであって、アクセラレーション命令はアクセラレーション対象のデータを含む、送受信機ユニットと、処理ユニットとを含む。処理ユニットは、仮想マシンに割り当てられる仮想アクセラレータを決定することであって、仮想アクセラレータは、仮想マシンに割り当てられる物理アクセラレーションリソースをスケジューリング装置上でマッピングしており、物理アクセラレーションリソースは、少なくとも１つのネットワークアクセラレータの少なくとも１つの物理アクセラレータの中に少なくともいくつかの物理アクセラレーションリソースを含む、決定することと、アクセラレーション命令を処理するネットワークアクセラレータを仮想アクセラレータに基づいて決定し、アクセラレーション命令をネットワークアクセラレータに送信することであって、これによりネットワークアクセラレータはアクセラレーション命令を処理する物理アクセラレータにアクセラレーション命令を送信する、送信することとを行うように構成される。送受信機ユニットはさらに、物理アクセラレータが物理アクセラレーションリソースを用いてアクセラレーション対象のデータに対してアクセラレーションコンピューティングを行った後に返されるコンピューティング結果を受信し、このコンピューティング結果を仮想マシンに送信するように構成される。
【００２０】
実現可能な実装例において、処理ユニットは具体的には、アクセラレーション命令を処理するネットワークアクセラレータを仮想アクセラレータに基づいて決定する場合、仮想アクセラレータに対応するオブジェクトアクセラレータを決定するように構成され、オブジェクトアクセラレータが位置しているネットワークアクセラレータが、アクセラレーション命令を処理するネットワークアクセラレータである。処理ユニットはさらに、アクセラレーション命令を処理するネットワークアクセラレータを仮想アクセラレータに基づいて決定した後に、オブジェクトアクセラレータの識別子をネットワークアクセラレータに送信するように構成され、これにより、ネットワークアクセラレータはオブジェクトアクセラレータに対応する物理アクセラレータをオブジェクトアクセラレータの識別子に基づいて決定し、アクセラレーション命令を物理アクセラレータに送信する。
【００２１】
実現可能な実装例において、処理ユニットは具体的には、アクセラレーション命令を処理するネットワークアクセラレータを仮想アクセラレータに基づいて決定する場合、仮想アクセラレータに対応する物理アクセラレータを決定するように構成され、物理アクセラレータが位置しているネットワークアクセラレータが、アクセラレーション命令を処理するネットワークアクセラレータである。処理ユニットはさらに、アクセラレーション命令を処理するネットワークアクセラレータを仮想アクセラレータに基づいて決定した後に、物理アクセラレータの識別子をネットワークアクセラレータに送信するように構成され、これにより、ネットワークアクセラレータは、物理アクセラレータの識別子に基づいて、アクセラレーション命令を物理アクセラレータに送信する。
【００２２】
実現可能な実装例において、送受信機ユニットはさらに、仮想マシンにより送信されるアクセラレーション命令を受信する前に、管理ノードにより送信される仮想アクセラレータ利用コマンドを受信するように構成され、仮想アクセラレータ利用コマンドはオブジェクトアクセラレータの識別子と仮想マシンの識別子とを含む。処理ユニットはさらに、仮想マシンに対応する仮想アクセラレータが１つもないと判定された場合、仮想マシンに対応する仮想アクセラレータを形成して、その仮想アクセラレータに識別子を割り当て、仮想アクセラレータの識別子とオブジェクトアクセラレータの識別子との対応関係を格納するように構成される。
【００２３】
実現可能な実装例において、送受信機ユニットはさらに、仮想マシンにより送信されるアクセラレーション命令を受信する前に、管理ノードにより送信される仮想アクセラレータ利用コマンドを受信するように構成され、仮想アクセラレータ利用コマンドは物理アクセラレータの識別子と仮想マシンの識別子とを含む。処理ユニットはさらに、仮想マシンに対応する仮想アクセラレータが１つもないと判定された場合、仮想マシンに対応する仮想アクセラレータを形成して、その仮想アクセラレータに識別子を割り当て、仮想アクセラレータの識別子と物理アクセラレータの識別子との対応関係を格納するように構成される。
【００２４】
実現可能な実装例において、送受信機ユニットはさらに、管理ノードにより送信される仮想アクセラレータ利用コマンドを受信するように構成され、仮想アクセラレータ利用コマンドはオブジェクトアクセラレータの識別子と仮想マシンの識別子とを含む。処理ユニットはさらに、仮想マシンに対応する仮想アクセラレータがあると判定された場合、仮想アクセラレータに対応する全てのオブジェクトアクセラレータが、オブジェクトアクセラレータの識別子により示されるオブジェクトアクセラレータを含むかどうかを判定し、仮想アクセラレータに対応するオブジェクトアクセラレータがどれも、オブジェクトアクセラレータの識別子により示されるオブジェクトアクセラレータを含まないと判定された場合、仮想アクセラレータとオブジェクトアクセラレータの識別子とのマッピング関係を格納するように構成される。
【００２５】
実現可能な実装例において、送受信機ユニットはさらに、管理ノードにより送信される仮想アクセラレータ利用コマンドを受信するように構成され、仮想アクセラレータ利用コマンドは物理アクセラレータの識別子と仮想マシンの識別子とを含む。処理ユニットはさらに、仮想マシンに対応する仮想アクセラレータがあると判定された場合、仮想アクセラレータに対応する全ての物理アクセラレータが、物理アクセラレータの識別子により示される物理アクセラレータを含むかどうかを判定し、仮想アクセラレータに対応する物理アクセラレータがどれも、物理アクセラレータの識別子により示される物理アクセラレータを含まないと判定された場合、仮想アクセラレータと物理アクセラレータの識別子とのマッピング関係を格納するように構成される。
【００２６】
実現可能な実装例において、送受信機ユニットはさらに、管理ノードにより送信されるオブジェクトアクセラレータ削除コマンドを受信するように構成され、オブジェクトアクセラレータ削除コマンドは仮想マシンの識別子とオブジェクトアクセラレータの識別子とを含む。処理ユニットはさらに、仮想マシンに対応する仮想アクセラレータがあると判定された場合、仮想アクセラレータに対応する全てのオブジェクトアクセラレータが、オブジェクトアクセラレータの識別子により示されるオブジェクトアクセラレータを含むかどうかをオブジェクトアクセラレータの識別子に基づいて判定し、仮想アクセラレータに対応する全てのオブジェクトアクセラレータが、オブジェクトアクセラレータの識別子により示されるオブジェクトアクセラレータを含むと判定された場合、オブジェクトアクセラレータの識別子を削除するように構成される。
【００２７】
実現可能な実装例において、送受信機ユニットはさらに、管理ノードにより送信される物理アクセラレータ削除コマンドを受信するように構成され、物理アクセラレータ削除コマンドは仮想マシンの識別子と物理アクセラレータの識別子とを含む。処理ユニットはさらに、仮想マシンに対応する仮想アクセラレータがあると判定された場合、仮想アクセラレータに対応する全ての物理アクセラレータが、物理アクセラレータの識別子により示される物理アクセラレータを含むかどうかを物理アクセラレータの識別子に基づいて判定し、仮想アクセラレータに対応する全ての物理アクセラレータが、物理アクセラレータの識別子により示される物理アクセラレータを含むと判定された場合、物理アクセラレータの識別子を削除するように構成される。
【００２８】
実現可能な実装例において、アクセラレーション命令はさらに、仮想マシンの識別子を含み、処理ユニットはさらに、仮想マシンの識別子と仮想アクセラレータの識別子との対応関係を事前に格納するように構成される。処理ユニットは具体的には、仮想マシンに割り当てられる仮想アクセラレータを決定する場合、仮想マシンの識別子と仮想アクセラレータの識別子との対応関係に基づいて、仮想マシンに対応する仮想アクセラレータを決定するように構成される。
【００２９】
実現可能な実装例において、アクセラレーション命令はさらに、仮想アクセラレータの識別子を含み、仮想マシンは、仮想マシンの識別子と仮想アクセラレータの識別子との対応関係を事前に格納する。処理ユニットは具体的には、仮想マシンに割り当てられる仮想アクセラレータを決定する場合、仮想マシンに対応する仮想アクセラレータを仮想アクセラレータの識別子に基づいて決定するように構成される。
【００３０】
第５の態様によれば、本願の一実施形態が、アクセラレーションシステムに適用されるスケジューリング装置を提供する。アクセラレーションシステムはコンピューティングノードと少なくとも１つのネットワークアクセラレータとを含み、コンピューティングノードは仮想マシンとスケジューリング装置とを含み、ネットワークアクセラレータは少なくとも１つの物理アクセラレータを含む。スケジューリング装置は、プロセッサと、メモリと、バスとを含み、プロセッサとメモリとはバスを用いて接続され、メモリはアプリケーションコードのセットを格納するように構成され、プロセッサは、メモリに格納されたアプリケーションコードを呼び出して、本願の実施形態の第１の態様又は第１の態様の任意の実装例の段階を実行するように構成される。
【００３１】
第６の態様によれば、本願の一実施形態が、アクセラレーションシステムに適用される管理ノードを提供する。アクセラレーションシステムは、管理ノードと、コンピューティングノードと、少なくとも１つのネットワークアクセラレータとを含み、コンピューティングノードは仮想マシンとスケジューリング装置とを含み、ネットワークアクセラレータは少なくとも１つの物理アクセラレータを含む。管理ノードは、仮想マシンにより送信されるアクセラレーションリソース利用要求を受信するように構成された送受信機ユニットであって、アクセラレーションリソース利用要求は、仮想マシンの識別子と、仮想マシンに割り当てられる必要な物理アクセラレーションリソースの数量と、物理アクセラレーションリソースを仮想マシンに提供する物理アクセラレータのタイプ識別子とを含む、送受信機ユニットと、物理アクセラレータのタイプ識別子と必要な物理アクセラレーションリソースの数量とに基づいて、物理アクセラレーションリソースを提供する少なくとも１つの物理アクセラレータが属するそれぞれのネットワークアクセラレータを決定して、物理アクセラレーションリソース形成コマンドを生成するように構成された処理ユニットであって、物理アクセラレーションリソース形成コマンドは、オブジェクトアクセラレータを形成するようネットワークアクセラレータに命令し、オブジェクトアクセラレータの識別子と、ネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを仮想マシンに提供するように構成された物理アクセラレータの識別子との対応関係を格納するのに用いられる、処理ユニットとを含む。送受信機ユニットはさらに、物理アクセラレーションリソース形成コマンドをネットワークアクセラレータに送信し、ネットワークアクセラレータにより送信されるオブジェクトアクセラレータの識別子を受信するように構成される。処理ユニットはさらに、仮想アクセラレータ利用コマンドを生成することであって、仮想アクセラレータ利用コマンドは仮想マシンの識別子とオブジェクトアクセラレータの識別子とを含む、生成することと、仮想アクセラレータ利用コマンドをスケジューリング装置に送信することであって、これにより、スケジューリング装置は仮想アクセラレータの識別子とオブジェクトアクセラレータの識別子との対応関係を格納する、送信することとを行うように構成される。
【００３２】
スケジューリング装置は、仮想アクセラレータ利用コマンドを受信した後に、仮想アクセラレータの識別子とオブジェクトアクセラレータの識別子との対応関係を仮想アクセラレータ利用コマンドに基づいて格納し得ることが、理解されるであろう。
【００３３】
第７の態様によれば、本願の一実施形態が、アクセラレーションシステムに適用される管理ノードを提供する。アクセラレーションシステムは、管理ノードと、コンピューティングノードと、少なくとも１つのネットワークアクセラレータとを含み、コンピューティングノードは仮想マシンとスケジューリング装置とを含み、ネットワークアクセラレータは少なくとも１つの物理アクセラレータを含む。管理ノードは、プロセッサと、メモリと、バスとを含み、プロセッサとメモリとはバスを用いて接続され、メモリは、アプリケーションコードのセットを格納するように構成され、プロセッサは、メモリに格納されたアプリケーションコードを呼び出して、本願の実施形態の第６の態様における段階を実行するように構成される。
【００３４】
第８の態様によれば、本願の一実施形態が、アクセラレーションシステムに適用される管理ノードを提供する。アクセラレーションシステムは、管理ノードと、コンピューティングノードと、少なくとも１つのネットワークアクセラレータとを含み、コンピューティングノードは仮想マシンとスケジューリング装置とを含み、ネットワークアクセラレータは少なくとも１つの物理アクセラレータを含む。管理ノードは、仮想マシンにより送信されるアクセラレーションリソース利用要求を受信するように構成された送受信機ユニットであって、アクセラレーションリソース利用要求は、仮想マシンの識別子と、仮想マシンに割り当てられる必要な物理アクセラレーションリソースの数量と、物理アクセラレーションリソースを仮想マシンに提供する物理アクセラレータのタイプ識別子とを含む、送受信機ユニットと、物理アクセラレータのタイプ識別子と必要な物理アクセラレーションリソースの数量とに基づいて、物理アクセラレーションリソースを提供する少なくとも１つの物理アクセラレータが属するそれぞれのネットワークアクセラレータを決定することと、仮想アクセラレータ利用コマンドを生成することであって、仮想アクセラレータ利用コマンドは、仮想マシンの識別子と、それぞれのネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを仮想マシンに提供するように構成された物理アクセラレータの識別子とを含む、生成することと、仮想アクセラレータ利用コマンドをスケジューリング装置に送信することであって、これにより、スケジューリング装置は、仮想アクセラレータの識別子と、それぞれのネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを仮想マシンに提供するように構成された物理アクセラレータの識別子との対応関係を仮想アクセラレータ利用コマンドに基づいて格納する、送信することとを行うように構成された処理ユニットとを含む。
【００３５】
第９の態様によれば、本願の一実施形態が、アクセラレーションシステムに適用される管理ノードを提供する。アクセラレーションシステムは、管理ノードと、コンピューティングノードと、少なくとも１つのネットワークアクセラレータとを含み、コンピューティングノードは仮想マシンとスケジューリング装置とを含み、ネットワークアクセラレータは少なくとも１つの物理アクセラレータを含む。管理ノードは、プロセッサと、メモリと、バスとを含み、プロセッサとメモリとはバスを用いて接続され、メモリは、アプリケーションコードのセットを格納するように構成され、プロセッサは、メモリに格納されたアプリケーションコードを呼び出して、本願の実施形態における第８の態様の段階を実行するように構成される。
【００３６】
第１０の態様によれば、本願の一実施形態がアクセラレーションシステムを提供する。アクセラレーションシステムは、本願の第６の態様又は第８の態様の任意の実装例における管理ノードを含んでよく、さらに、コンピューティングノードと少なくとも１つのネットワークアクセラレータとを含んでよい。コンピューティングノードは、仮想マシンと、本願の第４の態様又は第４の態様の任意の実装例におけるスケジューリング装置とを含み、ネットワークアクセラレータは少なくとも１つの物理アクセラレータを含む。
【００３７】
第１１の態様によれば、本願の一実施形態がコンピュータ可読記憶媒体を提供する。コンピュータ可読記憶媒体は命令を格納し、命令は、コンピュータで実行されると、第１の態様又は第１の態様の任意の実現可能な実装例における方法を実現する。
【００３８】
第１２の態様によれば、本願の一実施形態がコンピュータ可読記憶媒体を提供する。コンピュータ可読記憶媒体は命令を格納し、命令は、コンピュータで実行されると、第２の態様における方法を実現する。
【００３９】
第１３の態様によれば、本願の一実施形態がコンピュータ可読記憶媒体を提供する。コンピュータ可読記憶媒体は命令を格納し、命令は、コンピュータで実行されると、第３の態様における方法を実現する。
【図面の簡単な説明】
【００４０】
本願の実施形態又は背景技術における技術的解決手段をより明確に説明するために、以下では、本願の実施形態又は背景技術を説明するのに必要な添付図面を説明する。
【００４１】
【図１】本願の一実施形態によるアクセラレーションリソーススケジューリングシステムの概略アーキテクチャ図である。
【００４２】
【図２】本願の一実施形態による別のアクセラレーションリソーススケジューリングシステムの概略アーキテクチャ図である。
【００４３】
【図３】本願の一実施形態による別のアクセラレーションリソーススケジューリングシステムの概略アーキテクチャ図である。
【００４４】
【図４】本願の一実施形態によるアクセラレーションリソーススケジューリング方法の概略フローチャートである。
【００４５】
【図５Ａ】本願の一実施形態による別のアクセラレーションリソーススケジューリング方法の概略フローチャートである。
【図５Ｂ】図５Ａから続く、本願の一実施形態による別のアクセラレーションリソーススケジューリング方法の概略フローチャートである。
【００４６】
【図６Ａ】本願の一実施形態による、さらに別のアクセラレーションリソーススケジューリング方法の概略フローチャートである。
【図６Ｂ】図６Ａから続く、本願の一実施形態による、さらに別のアクセラレーションリソーススケジューリング方法の概略フローチャートである。
【００４７】
【図７】本願の一実施形態によるスケジューリング装置の概略構造図である。
【００４８】
【図８】本願の一実施形態による別のスケジューリング装置の概略構造図である。
【００４９】
【図９】本願の一実施形態による管理ノードの概略構造図である。
【００５０】
【図１０】本願の一実施形態による別の管理ノードの概略構造図である。
【００５１】
【図１１】本願の一実施形態による、さらに別の管理ノードの概略構造図である。
【００５２】
【図１２】本願の一実施形態による、さらに別の管理ノードの概略構造図である。
【発明を実施するための形態】
【００５３】
以下では、本願の実施形態の添付図面を参照して、本願の実施形態を説明する。本明細書、特許請求の範囲、及び本願の添付図面において言及される用語「含む（ｉｎｃｌｕｄｉｎｇ）」、「有する（ｈａｖｉｎｇ）」、及びこれらのあらゆる他の変化形は、非排他的包含に適用されることが意図されている。例えば、一連の段階又はユニットを含むプロセス、方法、システム、製品、又はデバイスが、列挙された段階又はユニットに限定されることはなく、必要であればさらに、列挙されていない段階若しくはユニットを含むか、又は必要であればさらに、上記プロセス、方法、製品、若しくはデバイスに固有の別の段階若しくはユニットを含む。
【００５４】
図１を参照すると、図１は、本願の一実施形態によるアクセラレーションリソーススケジューリングシステムの概略アーキテクチャ図である。図１に示すように、アクセラレーションリソーススケジューリングシステムは、コンピューティングノードと、管理ノードと、物理アクセラレーションリソースとを含む。コンピューティングノードは、ネットワークスイッチを用いて物理アクセラレーションリソースに接続されてよく、管理ノードは、ネットワークスイッチを用いてコンピューティングノードに接続され、管理ノードはさらに、ネットワークスイッチを用いて物理アクセラレーションリソースに接続される。管理ノードと物理アクセラレーションリソースとは、クラウドに配置されてよく、管理ノードは、クラウド内の物理アクセラレーションリソースに対して集中管理を実行するように構成されたサーバであってよい。物理アクセラレーションリソースは、少なくとも１つのネットワークアクセラレータを含む。コンピューティングノードは、１つ又は複数の仮想マシンを形成してよい。コンピューティングノードにより形成される仮想マシンが、クラウド内の物理アクセラレーションリソースをスケジューリングして、アクセラレーション対象のデータに対してアクセラレーション処理を行う必要がある場合、仮想マシンは、管理ノードに対するアクセラレーションリソースの利用を事前に開始してよい。管理ノードは、物理アクセラレーションリソースを仮想化した後に、クラウドに配置された少なくともいくつかの物理アクセラレーションリソースを仮想マシンが用いるために構成し、次いで、仮想マシンは、クラウド内の構成された少なくともいくつかの物理アクセラレーションリソースをアクセラレーション処理のためにスケジューリングしてよい。
【００５５】
コンピューティングノードは、サーバ、コンピュータ、又は通信端末などのコンピューティングデバイスであってよい。
【００５６】
図２を参照すると、図２は、本願の一実施形態による別のアクセラレーションリソーススケジューリングシステムの概略アーキテクチャ図である。図１に示すシステムアーキテクチャに基づいて、図２に示すシステムアーキテクチャは、物理アクセラレーションリソースが１つのネットワークアクセラレータ３０を含み且つコンピューティングノード１０が１つの仮想マシン１０２を含む一例を用いて説明される。図２に示すように、コンピューティングノード１０は、仮想マシン１０２とスケジューリング装置１０４とを含む。ネットワークアクセラレータ３０は少なくとも１つの物理アクセラレータを含み、図２では、２つの物理アクセラレータ３０２及び３０３が一例として説明に用いられている。ネットワークアクセラレータ３０の中にある物理アクセラレータは、限定されることはないが、グラフィック処理装置（英語表記：Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、略してＧＰＵ）又はフィールドプログラマブルゲートアレイ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ、ＦＰＧＡ）、又は特定用途向け集積チップ（ＡＳＩＣ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ、ＡＳＩＣ）などの装置を用いて実装されてよい。それぞれのネットワークアクセラレータ３０の中にある少なくとも１つの物理アクセラレータが、限定されることはないが、ＧＰＵ、ＦＰＧＡ、又はＡＳＩＣなどの装置を用いて実装されてよい。
【００５７】
具体的には、コンピューティングノード１０の仮想マシン１０２により用いられるプロセッサ１０１が、高速シリアルコンピュータ拡張バス標準（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  ｅｘｐｒｅｓｓ）ＰＣＩｅバス１０３を用いてスケジューリング装置１０４に接続される。
【００５８】
管理ノード２０は、ネットワークアクセラレータ３０と、仮想マシン１０２と、スケジューリング装置１０４とに、ネットワークを用いて個別に接続され、管理ノード２０は、ユーザのアクセラレーション要件に基づいて、複数の物理アクセラレーションリソースのうちの少なくともいくつかの物理アクセラレーションリソースを使用のために仮想マシン１０２に割り当てるように構成される。特定の実装例において、管理ノード２０は、仮想アクセラレータ利用コマンドをスケジューリング装置１０４に送信して、仮想アクセラレータ１０５の形成と、仮想アクセラレータ１０５とオブジェクトアクセラレータ３０１との間のマッピング論理又は仮想アクセラレータ１０５と物理アクセラレータ３０２との間のマッピング論理の処理とを担うようスケジューリング装置１０４に命令する。仮想アクセラレータ１０５とオブジェクトアクセラレータ３０１とのマッピング論理関係が、図２に示す破線で示されている。仮想アクセラレータ１０５は、仮想マシン１０２に割り当てられる物理アクセラレーションリソースをスケジューリング装置１０４上でマッピングしており、物理アクセラレーションリソースは、少なくとも１つのネットワークアクセラレータ３０の少なくとも１つの物理アクセラレータ３０２の中に少なくともいくつかの物理アクセラレーションリソースを含み、クラウドにおいて提供される物理アクセラレーションリソースが、必要に応じて、仮想マシン１０２に割り当てられる。
【００５９】
ネットワークアクセラレータ３０は、ネットワークを用いてスケジューリング装置１０４と管理ノード２０とに接続され、管理ノード２０により送信される物理アクセラレーションリソース形成コマンドに基づいてオブジェクトアクセラレータ３０１を形成し、オブジェクトアクセラレータ３０１の識別子を形成し、オブジェクトアクセラレータ３０１の識別子と、ネットワークアクセラレータ３０に存在し且つ物理アクセラレーションリソースを仮想マシン１０２に提供するよう構成された物理アクセラレータの識別子との対応関係を格納するように構成される。オブジェクトアクセラレータ３０１の識別子と、ネットワークアクセラレータ３０に存在し且つ物理アクセラレーションリソースを仮想マシン１０２に提供するように構成された物理アクセラレータの識別子との対応関係は、図２に破線で示されている。
【００６０】
スケジューリング装置１０４は、管理ノード２０により送信される仮想アクセラレータ利用コマンドに基づく仮想アクセラレータ１０５の形成、及び仮想アクセラレータ１０５とオブジェクトアクセラレータ３０１との間のマッピング論理の処理、並びに管理ノード２０により送信されるオブジェクトアクセラレータ削除コマンドに基づく、仮想アクセラレータ１０５とオブジェクトアクセラレータ３０１との間のマッピング論理の削除を担うように構成される。
【００６１】
管理ノード２０はさらに、ユーザのリソース削除要件に基づいて、物理アクセラレーションリソースに存在し且つ仮想マシン１０２に使用のために割り当てられた少なくともいくつかの物理アクセラレーションリソースから、ユーザが削除する必要がある物理アクセラレーションリソースの一部又は全てを削除するように構成される。任意選択で、ある実装例では、管理ノード２０は、クライアントにより送信されるアクセラレーションリソース削除要求を受信し、ユーザが削除する必要がある、仮想マシン１０２の物理アクセラレーションリソースを削除する。クライアントは、仮想マシン１０２又は任意のネットワーク通信デバイスに配置されるアプリケーション管理ソフトウェアであってよい。ユーザは、クライアントにログインした後に、仮想マシン１０２に対応し且つクライアントのインタフェースにおいて提示される物理アクセラレーションリソース情報に基づいて、削除対象の物理アクセラレーションリソースを選択してよく、物理アクセラレーションリソース情報は、仮想マシン１０２に割り当てられた、仮想アクセラレータ１０５の識別子又はオブジェクトアクセラレータ３０１の識別子を含む。
【００６２】
図３を参照すると、図３は、本願の一実施形態による別のアクセラレーションリソーススケジューリングシステムの概略アーキテクチャ図である。図３に示すシステムアーキテクチャと図２に示すシステムアーキテクチャとは、仮想マシンアクセラレータと物理アクセラレーションリソースとの間のマッピング論理が異なることを除いて、ハードウェア実装に何も差がない。図２に示す、仮想アクセラレータと物理アクセラレーションリソースとの間のマッピング論理は、仮想アクセラレータとオブジェクトアクセラレータとの間のマッピング論理と、オブジェクトアクセラレータと物理アクセラレータとの間のマッピング論理とを用いて実装される。図３に示す、仮想アクセラレータと物理アクセラレーションリソースとの間のマッピング論理は、仮想マシンアクセラレータと物理アクセラレータとの間のマッピング論理を用いて実装される。図３に示すシステムアーキテクチャでは、管理ノード２０が、ネットワークアクセラレータ３０と、仮想マシン１０２と、スケジューリング装置１０４とにネットワークを用いて接続され、管理ノード２０は、ユーザのアクセラレーション要件に基づいて、複数の物理アクセラレーションリソースのうちの少なくともいくつかの物理アクセラレーションリソースを使用のために仮想マシン１０２に割り当てるように構成される。特定の実装例において、管理ノード２０は、仮想アクセラレータ利用コマンドをスケジューリング装置１０４に送信して、仮想アクセラレータ１０５の形成と、仮想アクセラレータ１０５と物理アクセラレータ３０２との間のマッピング論理の処理とを担うようスケジューリング装置１０４に命令する。仮想アクセラレータ１０５と物理アクセラレータ３０２との間のマッピング論理は、図３に破線を用いて示されている。
【００６３】
さらに、図３に示すシステムアーキテクチャは、スケジューリング装置１０４が、管理ノード２０により送信される仮想アクセラレータ利用コマンドに基づく仮想アクセラレータ１０５の形成、及び仮想アクセラレータ１０５と物理アクセラレータ３０２との間のマッピング論理の処理、並びに管理ノード２０により送信される物理アクセラレータ削除コマンドに基づく、仮想アクセラレータ１０５と物理アクセラレータ３０２との間のマッピング論理の削除を担うように構成されるという点で、図２に示すシステムアーキテクチャと異なる。
【００６４】
さらに、図３に示すシステムアーキテクチャは、管理ノード２０がさらに、ユーザのリソース削除要件に基づいて、物理アクセラレーションリソースに存在し且つ仮想マシン１０２に使用のために割り当てられた少なくともいくつかの物理アクセラレーションリソースから、ユーザが削除する必要がある物理アクセラレーションリソースの一部又は全てを削除するように構成されるという点で、図２に示すシステムアーキテクチャと異なる。任意選択で、ある実装例では、管理ノード２０は、クライアントにより送信される物理アクセラレータ削除コマンドを受信し、ユーザが削除する必要がある、仮想マシン１０２の物理アクセラレーションリソースを削除する。物理アクセラレータ削除コマンドは、削除対象の物理アクセラレータ３０２の識別子と仮想マシン１０２の識別子とを含む。クライアントは、仮想マシン１０２又は任意のネットワーク通信デバイスに配置されるアプリケーション管理ソフトウェアであってよい。ユーザは、クライアントにログインした後に、仮想マシン１０２に対応し且つクライアントのインタフェースにおいて提示される物理アクセラレーションリソース情報に基づいて、削除対象の物理アクセラレーションリソースを選択してよく、物理アクセラレーションリソース情報は、仮想マシン１０２に割り当てられた、仮想アクセラレータ１０５の識別子又は物理アクセラレータ３０２の識別子を含む。前述のシステムアーキテクチャの実施形態において、クラウド内の少なくとも１つのネットワークアクセラレータにより提供される物理アクセラレーションリソースが仮想化された後に、仮想マシンは、仮想アクセラレータに対応し、仮想アクセラレータに提供されるアクセラレーションリソースを仮想マシンに与える。ＶＭは、対応する仮想アクセラレータに直接アクセスして、クラウド内の物理アクセラレーションリソースへの仮想マシンのアクセスを実現するので、ヘテロジニアスアクセラレーションリソース仮想化のシナリオにおいて、仮想マシンヘテロジニアスコンピューティングが実現される。
【００６５】
図２及び図３に示すアクセラレーションリソーススケジューリングシステムのアーキテクチャを参照して、以下では、本願の一実施形態におけるアクセラレーションリソーススケジューリング方法を詳細に説明する。図２又は図３に示すシステムアーキテクチャによる仮想マシンのアクセラレーション要件の実装例が、コンピューティングノードのスケジューリング装置を用いて仮想マシンのアクセラレーション要件を処理することである。特定の実装例において、図４を参照すると、図４は、本願の一実施形態によるアクセラレーションリソーススケジューリング方法の概略フローチャートである。本方法は、アクセラレーションシステムに適用され、アクセラレーションシステムはコンピューティングノードと少なくとも１つのネットワークアクセラレータとを含み、コンピューティングノードは仮想マシンとスケジューリング装置とを含み、ネットワークアクセラレータは少なくとも１つの物理アクセラレータを含む。図４における本方法の段階Ｓ４０１が、図１、図２、又は図３の仮想マシンによって実行されてよく、図４における本方法の段階Ｓ４０２、Ｓ４０３、及びＳ４０６が、図１、図２、若しくは図３のスケジューリング装置、又は図７若しくは図８のスケジューリング装置、又は図７に示すスケジューリング装置の処理ユニット、又は図８に示すスケジューリング装置のプロセッサ１１０によって実行されてよい。本方法は、以下に挙げる段階を含む。
【００６６】
Ｓ４０１：ＶＭがアクセラレーション命令をスケジューリング装置に送信する。アクセラレーション命令はアクセラレーション対象のデータを含む。
【００６７】
アクセラレーション命令はさらに、仮想マシンの識別子又は仮想アクセラレータの識別子を含む。
【００６８】
仮想マシンの識別子は、アクセラレーション命令を送信する仮想マシンを示すのに用いられる。
【００６９】
仮想アクセラレータの識別子は、アクセラレーション命令を処理する仮想アクセラレータを示すのに用いられる。図２又は図３に示すシステムアーキテクチャに基づいて、１つの対応する仮想アクセラレータが、それぞれのコンピューティングノードのそれぞれの仮想マシンに割り当てられる。それぞれの仮想マシンは、その仮想マシンに対応する仮想アクセラレータの識別子を事前に格納する。
【００７０】
Ｓ４０２：スケジューリング装置は、仮想マシンに割り当てられる仮想アクセラレータを決定する。
【００７１】
任意選択で、段階Ｓ４０１のアクセラレーション命令がさらに仮想マシンの識別子を含む場合、スケジューリング装置は、仮想マシンの識別子と仮想アクセラレータの識別子との対応関係を事前に格納し、仮想マシンに割り当てられる仮想アクセラレータを決定する段階は、仮想マシンの識別子と仮想アクセラレータの識別子との対応関係に基づいて、仮想マシンに対応する仮想アクセラレータを決定する段階を含む。
【００７２】
任意選択で、段階Ｓ４０１のアクセラレーション命令がさらに仮想マシンの識別子を含む場合、仮想マシンに割り当てられる仮想アクセラレータを決定する段階は、仮想アクセラレータの識別子に基づいて、仮想マシンに対応する仮想アクセラレータを決定する段階を含む。
【００７３】
仮想アクセラレータは、仮想マシンに割り当てられる物理アクセラレーションリソースをスケジューリング装置上でマッピングしており、物理アクセラレーションリソースは、少なくとも１つのネットワークアクセラレータの少なくとも１つの物理アクセラレータの中に少なくともいくつかの物理アクセラレーションリソースを含む。
【００７４】
Ｓ４０３：スケジューリング装置は、アクセラレーション命令を処理するネットワークアクセラレータを仮想アクセラレータに基づいて決定し、アクセラレーション命令をネットワークアクセラレータに送信する。
【００７５】
Ｓ４０４：ネットワークアクセラレータは、アクセラレーション命令を処理する物理アクセラレータにアクセラレーション命令を送信する。
【００７６】
Ｓ４０５：物理アクセラレータは、物理アクセラレーションリソースを用いて、アクセラレーション対象のデータに対してアクセラレーションコンピューティングを行い、次いで、コンピューティング結果をスケジューリング装置に返す。
【００７７】
Ｓ４０６：スケジューリング装置は、コンピューティング結果を仮想マシンに送信する。
【００７８】
ＶＭがネットワークアクセラレータの物理アクセラレーションリソースにアクセスするスケジューリング処理全体が、コンピューティングノードの仮想化中間層（ハイパーバイザ）の関与を必要とせず、仮想マシンに対応する仮想アクセラレータに直接アクセスすることによって、スケジューリング装置により実施され得るので、ネットワークアクセラレータにアクセスする場合の仮想マシンの遅延を低減することができる。さらに、仮想アクセラレータがＶＭに対して可視であり、ＶＭは複数のネットワークアクセラレータを直接管理する必要がないので、ＶＭのテナントによるアクセラレーションリソースの使用及び管理を簡略化することができる。さらに、仮想アクセラレータと物理アクセラレーションリソースとのマッピング関係が、仮想マシンに割り当てられる物理アクセラレーションリソースの、スケジューリング装置に対するマッピングを実施することにより実装される。このように、異なる仮想マシンにそれぞれ対応する仮想アクセラレータがマッピングされる物理アクセラレーションリソースを迅速に決定することができ、仮想マシンのアクセラレーションコマンドの直接転送が実施され得るので、仮想マシンのデータフロー全体のアクセラレーションを完了することができる。さらに、クラウド内の異なるタイプの物理アクセラレーションリソース（ＧＰＵ、ＦＰＧＡ、又はＡＳＩＣアクセラレーションリソースなど）が、一元的に管理され且つ仮想化され得る。クラウド内の物理アクセラレーションリソースは、異なる仮想マシンの異なるアクセラレーション要件に基づいて柔軟に仮想化されるので、互換性が高い。
【００７９】
仮想アクセラレータと、クラウド内の複数の物理アクセラレーションリソースのうちの少なくともいくつかの物理アクセラレーションリソースとの間のマッピングを実現するために、仮想アクセラレータはオブジェクトアクセラレータにマッピングされてよく、オブジェクトアクセラレータが位置しているネットワークアクセラレータが、アクセラレーション対象のデータを処理する仮想マシンに割り当てられるネットワークアクセラレータである。具体的には、マッピングは、図２に示すシステムアーキテクチャに基づいて、図５Ａ及び図５Ｂに例示する方法を参照して実施されてよい。あるいは、仮想アクセラレータは、クラウド内の少なくともいくつかの物理アクセラレーションリソースの物理アクセラレータに直接マッピングされてよく、物理アクセラレータが位置しているネットワークアクセラレータが、アクセラレーション対象のデータを処理する仮想マシンに割り当てられるネットワークアクセラレータである。具体的には、マッピングは、図３に示すシステムアーキテクチャに基づいて、図６Ａ及び図６Ｂに例示する方法を参照して実施されてよい。
【００８０】
図５Ａ及び図５Ｂを参照すると、図５Ａ及び図５Ｂは、本願の一実施形態による別のアクセラレーションリソーススケジューリング方法の概略フローチャートである。ＶＭがアクセラレーションリソースに適用されることを意図している場合、ＶＭは、クライアントを用いて、管理ノードに対するアクセラレーションリソース利用要求を開始してよく、管理ノードは、ＶＭのアクセラレーションリソース要件とネットワークアクセラレータのリソース使用率とに基づいて、仮想アクセラレータ利用コマンドを生成し、このコマンドをスケジューリング装置に送信して、スケジューリング装置にアクセラレーションリソーススケジューリングを実行するよう命令してよい。図５Ａ及び図５Ｂに示す方法の段階Ｓ５０１及びＳ５１０は、図１、図２、又は図３の仮想マシンにより実行されてよい。図５Ａ及び図５Ｂに示す方法の段階Ｓ５０２、Ｓ５０３、Ｓ５０４、Ｓ５０６、及びＳ５０７は、図１、図２、若しくは図３の管理ノード、又は図９若しくは図１０の管理ノード、又は図９に示す管理ノードの処理ユニット、又は図１０に示す管理ノードのプロセッサ２１０により実行されてよい。図５Ａ及び図５Ｂに示す方法の段階Ｓ５０８、Ｓ５０９、Ｓ５１１、Ｓ５１２、Ｓ５１３、及びＳ５１６は、図１、図２、若しくは図３のスケジューリング装置、又は図７若しくは図８のスケジューリング装置、又は図７に示すスケジューリング装置の処理ユニット、又は図８に示すスケジューリング装置のプロセッサ１１０により実行されてよい。本方法は、以下に挙げる段階を含んでよい。
【００８１】
Ｓ５０１：仮想マシンが、アクセラレーションリソース利用要求を管理ノードに送信する。
【００８２】
アクセラレーションリソース利用要求は、仮想マシンの識別子と、仮想マシンに割り当てられる必要な物理アクセラレーションリソースの数量と、物理アクセラレーションリソースを仮想マシンに提供する物理アクセラレータのタイプ識別子とを含む。
【００８３】
Ｓ５０２：管理ノードは、物理アクセラレータのタイプ識別子と必要な物理アクセラレーションリソースの数量とに基づいて、物理アクセラレーションリソースを提供する少なくとも１つの物理アクセラレータが属するそれぞれのネットワークアクセラレータを決定する。
【００８４】
Ｓ５０３：管理ノードは物理アクセラレーションリソース形成コマンドを生成する。物理アクセラレーションリソース形成コマンドは、オブジェクトアクセラレータを形成し、オブジェクトアクセラレータの識別子と、ネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを仮想マシンに提供するように構成された物理アクセラレータの識別子との対応関係を格納するよう、ネットワークアクセラレータに命令するのに用いられる。
【００８５】
Ｓ５０４：管理ノードは、物理アクセラレーションリソース形成コマンドをネットワークアクセラレータに送信する。
【００８６】
Ｓ５０５：ネットワークアクセラレータは、オブジェクトアクセラレータの識別子を管理ノードに送信する。
【００８７】
ネットワークアクセラレータは、物理アクセラレーションリソース形成コマンドを受信し、オブジェクトアクセラレータの識別子を形成し、オブジェクトアクセラレータの識別子と、ネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを仮想マシンに提供するように構成されたそれぞれの物理アクセラレータの識別子との対応関係を格納する。
【００８８】
Ｓ５０６：管理ノードは、仮想アクセラレータ利用コマンドを生成する。仮想アクセラレータ利用コマンドは、仮想マシンの識別子とオブジェクトアクセラレータの識別子とを含む。
【００８９】
Ｓ５０７：管理ノードは、仮想アクセラレータ利用コマンドをスケジューリング装置に送信する。これにより、スケジューリング装置は、仮想アクセラレータ利用コマンドに基づいて、仮想アクセラレータの識別子とオブジェクトアクセラレータの識別子との対応関係を格納する。
【００９０】
アクセラレーションリソースは、段階Ｓ５０１〜Ｓ５０７を用いて、仮想マシンの仮想アクセラレータに割り当てられる。ユーザが、その後、アクセラレーションリソースを削除する必要がある場合、特定の実装例が、クライアントにより送信されるアクセラレーションリソース削除要求を管理ノードが受信し、ユーザが削除する必要がある、仮想マシンの物理アクセラレーションリソースを削除する段階である。クライアントは、仮想マシン又は任意のネットワーク通信デバイスに配置されるアプリケーション管理ソフトウェアであってよい。ユーザは、クライアントにログインした後に、仮想マシンに対応し且つクライアントのインタフェースにおいて提示される物理アクセラレーションリソース情報に基づいて、削除対象の物理アクセラレーションリソースを選択してよく、物理アクセラレーションリソース情報は、仮想マシンに割り当てられた、仮想アクセラレータの識別子、物理アクセラレータの識別子、又はオブジェクトアクセラレータの識別子を含む。
【００９１】
仮想アクセラレータに対応するオブジェクトアクセラレータに対応するいくつかの物理アクセラレータにより提供される物理アクセラレーションリソースをユーザが削除する必要がある場合、クライアントは、アクセラレーションリソース削除要求を管理ノードに送信する。アクセラレーションリソース削除要求は、削除対象の物理アクセラレータの識別子と、削除対象の物理アクセラレータに対応するオブジェクトアクセラレータの識別子とを含む。管理ノードは、クライアントにより送信されるアクセラレーションリソース削除要求を受信した後に、物理アクセラレーションリソース削除コマンドを生成し、この物理アクセラレーションリソース削除コマンドを、削除対象の物理アクセラレータが位置しているネットワークアクセラレータに送信する。物理アクセラレーションリソース削除コマンドは、削除対象の物理アクセラレータが位置しているネットワークアクセラレータに命令して、削除対象の物理アクセラレータの識別子と削除対象の物理アクセラレータに対応するオブジェクトアクセラレータの識別子との対応関係を削除するのに用いられる。
【００９２】
仮想アクセラレータに対応するオブジェクトアクセラレータに対応する全ての物理アクセラレータにより提供される物理アクセラレーションリソースをユーザが削除する必要がある場合、クライアントを用いてユーザにより送信されるアクセラレーションリソース削除要求はさらに、仮想マシンの識別子を含む。特定の実装例において、クライアントにより送信されるアクセラレーションリソース削除要求を管理ノードが受信した後に、さらに、管理ノードがオブジェクトアクセラレータ削除コマンドをスケジューリング装置に送信する段階が含まれ、オブジェクトアクセラレータ削除コマンドは、仮想マシンの識別子とオブジェクトアクセラレータの識別子とを含む。オブジェクトアクセラレータ削除コマンドは、スケジューリング装置に命令して、仮想マシンに対応する仮想アクセラレータがあると、仮想マシンの識別子に基づいて判定された後に、仮想アクセラレータに対応する全てのオブジェクトアクセラレータがオブジェクトアクセラレータの識別子により示されるオブジェクトアクセラレータを含むと判定された場合、オブジェクトアクセラレータの識別子を削除するのに用いられる。
【００９３】
仮想アクセラレータにより提供される全ての物理アクセラレーションリソースをユーザが削除する必要がある場合、クライアントを用いてユーザにより送信されるアクセラレーションリソース削除要求はさらに、仮想マシンの識別子と仮想アクセラレータの識別子とを含む。特定の実装例において、管理ノードがクライアントにより送信されるアクセラレーションリソース削除要求を受信した後に、さらに、管理ノードが仮想アクセラレータ削除コマンドをスケジューリング装置に送信する段階が含まれる。仮想アクセラレータ削除コマンドは、仮想マシンの識別子と仮想アクセラレータの識別子とを含み、仮想アクセラレータ削除コマンドは、スケジューリング装置に命令して、仮想マシンに対応する仮想アクセラレータの識別子により示される仮想アクセラレータがあると、仮想マシンの識別子に基づいて判定された後に、仮想アクセラレータの識別子と全てのオブジェクトアクセラレータの識別子との対応関係を削除するのに用いられる。
【００９４】
以下では、スケジューリング装置が、仮想アクセラレータ利用コマンドを受信し、仮想マシンの識別子に基づいて、仮想マシンに対応する仮想アクセラレータが１つもないと判定した後に、仮想アクセラレータを形成するプロセスを説明する。具体的な実装については、段階Ｓ５０８を参照されたい。
【００９５】
Ｓ５０８：仮想マシンに対応する仮想アクセラレータが１つもないと判定された場合、スケジューリング装置は、仮想マシンに対応する仮想アクセラレータを形成し、この仮想アクセラレータに識別子を割り当て、仮想アクセラレータの識別子とオブジェクトアクセラレータの識別子との対応関係を格納する。
【００９６】
以下では、スケジューリング装置が、仮想アクセラレータ利用コマンドを受信し、仮想マシンの識別子に基づいて、仮想マシンに対応する仮想アクセラレータがあると判定した後に、仮想アクセラレータを更新するプロセスを説明する。具体的な実装については、段階Ｓ５０９を参照されたい。
【００９７】
Ｓ５０９：仮想マシンに対応する仮想アクセラレータがあると判定された場合、仮想アクセラレータに対応する全てのオブジェクトアクセラレータが、オブジェクトアクセラレータの識別子により示されるオブジェクトアクセラレータを含むかどうかを判定し、仮想アクセラレータに対応するオブジェクトアクセラレータがどれも、オブジェクトアクセラレータの識別子により示されるオブジェクトアクセラレータを含まないと判定された場合、仮想アクセラレータとオブジェクトアクセラレータの識別子とのマッピング関係を格納する。
【００９８】
以下では、スケジューリング装置が、仮想アクセラレータを形成した後に、アクセラレーション対象のデータに対してアクセラレーション処理を行うための物理アクセラレーションリソースを提供する方法を説明する。具体的には、以下に挙げる段階Ｓ５１０〜Ｓ５１６が含まれる。
【００９９】
Ｓ５１０：ＶＭはアクセラレーション命令をスケジューリング装置に送信する。アクセラレーション命令はアクセラレーション対象のデータを含む。具体的な実装については、図４に示す段階Ｓ４０１を参照されたい。
【０１００】
Ｓ５１１：スケジューリング装置は、仮想マシンに割り当てられる仮想アクセラレータを決定する。具体的な実装詳細については、図４に示す段階Ｓ４０２を参照されたい。
【０１０１】
任意選択で、アクセラレーション命令はさらに、仮想マシンの識別子を含む。スケジューリング装置は、仮想マシンの識別子と仮想アクセラレータの識別子との対応関係を事前に格納し、仮想マシンの識別子と仮想アクセラレータの識別子との対応関係に基づいて、仮想マシンに対応する仮想アクセラレータを決定してよい。
【０１０２】
あるいは、アクセラレーション命令はさらに、仮想アクセラレータの識別子を含み、仮想マシンは、仮想マシンの識別子と仮想アクセラレータの識別子との対応関係を事前に格納する。スケジューリング装置は、仮想アクセラレータの識別子に基づいて、仮想マシンに対応する仮想アクセラレータを決定してよい。
【０１０３】
Ｓ５１２：スケジューリング装置は、仮想アクセラレータに対応するオブジェクトアクセラレータを決定する。
【０１０４】
オブジェクトアクセラレータが位置しているネットワークアクセラレータが、アクセラレーション命令を処理するネットワークアクセラレータである。
【０１０５】
Ｓ５１３：スケジューリング装置は、オブジェクトアクセラレータの識別子をネットワークアクセラレータに送信する。
【０１０６】
Ｓ５１４：ネットワークアクセラレータは、オブジェクトアクセラレータの識別子に基づいて、オブジェクトアクセラレータに対応する物理アクセラレータを決定し、アクセラレーション命令を物理アクセラレータに送信する。
【０１０７】
Ｓ５１５：物理アクセラレータは、物理アクセラレーションリソースを用いて、アクセラレーション対象のデータに対してアクセラレーションコンピューティングを行い、次いで、コンピューティング結果をスケジューリング装置に返す。
【０１０８】
Ｓ５１６：スケジューリング装置は、コンピューティング結果を仮想マシンに送信する。
【０１０９】
当然ながら、仮想アクセラレータと、クラウド内の複数の物理アクセラレーションリソースのうちの少なくともいくつかの物理アクセラレーションリソースとの間でマッピングを実施するために、別の任意選択の実装例では、仮想アクセラレータは、クラウド内の少なくともいくつかの物理アクセラレーションリソースの物理アクセラレータに直接マッピングされてよく、物理アクセラレータが位置しているネットワークアクセラレータが、アクセラレーション対象のデータを処理する仮想マシンに割り当てられるネットワークアクセラレータである。具体的には、マッピングは、図３に示すシステムアーキテクチャに基づいて、図６Ａ及び図６Ｂに例示する方法を参照して実施されてよい。
【０１１０】
図６Ａ及び図６Ｂを参照すると、図６Ａ及び図６Ｂは、本願の一実施形態による、さらに別のアクセラレーションリソーススケジューリング方法の概略フローチャートである。ＶＭがアクセラレーションリソースに適用されることを意図している場合、ＶＭは、クライアントを用いて、管理ノードに対するアクセラレーションリソース利用要求を開始してよい。管理ノードは、ＶＭのアクセラレーションリソース要件とネットワークアクセラレータのリソース使用率とに基づいて、仮想アクセラレータ利用コマンドを生成し、このコマンドをスケジューリング装置に送信して、スケジューリング装置にアクセラレーションリソーススケジューリングを実行するよう命令してよい。図６Ａ及び図６Ｂに示す方法の段階Ｓ６０１及びＳ６０７は、図１、図２、又は図３の仮想マシンにより実行されてよい。図６Ａに示す方法の段階Ｓ６０２、Ｓ６０３、及びＳ６０４は、図１、図２、若しくは図３の管理ノード、又は図１１若しくは図１２の管理ノード、又は図１１に示す管理ノードの処理ユニット、又は図１２に示す管理ノードのプロセッサ３１０により実行されてよい。図６Ａ及び図６Ｂに示す方法の段階Ｓ６０５、Ｓ６０６、Ｓ６０８、Ｓ６０９、Ｓ６１０、及びＳ６１３は、図１、図２、若しくは図３のスケジューリング装置、又は図７若しくは図８のスケジューリング装置、又は図７に示すスケジューリング装置の処理ユニット、又は図８に示すスケジューリング装置のプロセッサ１１０により実行されてよい。本方法は、以下に挙げる段階を含んでよい。
【０１１１】
Ｓ６０１：仮想マシンがアクセラレーションリソース利用要求を管理ノードに送信する。
【０１１２】
アクセラレーションリソース利用要求は、仮想マシンの識別子と、仮想マシンに割り当てられる必要な物理アクセラレーションリソースの数量と、物理アクセラレーションリソースを仮想マシンに提供する物理アクセラレータのタイプ識別子とを含む。
【０１１３】
Ｓ６０２：管理ノードは、物理アクセラレータのタイプ識別子と必要な物理アクセラレーションリソースの数量とに基づいて、物理アクセラレーションリソースを提供する少なくとも１つの物理アクセラレータが属するそれぞれのネットワークアクセラレータを決定する。
【０１１４】
Ｓ６０３：管理ノードは、仮想アクセラレータ利用コマンドを生成する。
【０１１５】
仮想アクセラレータ利用コマンドは、仮想マシンの識別子と、それぞれのネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを仮想マシンに提供するように構成された物理アクセラレータの識別子とを含む。
【０１１６】
Ｓ６０４：管理ノードは、仮想アクセラレータ利用コマンドをスケジューリング装置に送信する。これにより、スケジューリング装置は、仮想アクセラレータ利用コマンドに基づいて、仮想アクセラレータの識別子と、それぞれのネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを仮想マシンに提供するように構成された物理アクセラレータの識別子との対応関係を格納する。
【０１１７】
アクセラレーションリソースは、段階Ｓ６０１〜Ｓ６０４を用いて、仮想マシンの仮想アクセラレータに割り当てられる。ユーザが、その後、アクセラレーションリソースを削除する必要がある場合、特定の実装例が、クライアントにより送信される物理アクセラレータ削除コマンドを管理ノードが受信し、ユーザが削除する必要がある、仮想マシンの物理アクセラレーションリソースを削除する段階である。物理アクセラレータ削除コマンドは、削除対象の物理アクセラレータの識別子と仮想マシンの識別子とを含む。クライアントは、仮想マシン又は任意のネットワーク通信デバイスに配置されるアプリケーション管理ソフトウェアであってよい。ユーザは、クライアントにログインした後に、仮想マシンに対応し且つクライアントのインタフェースにおいて提示される物理アクセラレーションリソース情報に基づいて、削除対象の物理アクセラレーションリソースを選択してよく、物理アクセラレーションリソース情報は、仮想マシンに割り当てられた、仮想アクセラレータの識別子又は物理アクセラレータの識別子を含む。管理ノードは、クライアントを用いてユーザにより送信される物理アクセラレータ削除コマンドを受信した後に、物理アクセラレータ削除コマンドをスケジューリング装置に送信する。物理アクセラレータ削除コマンドは、スケジューリング装置に命令して、仮想マシンに対応する仮想アクセラレータがあると判定された後に、物理アクセラレータの識別子に基づいて、仮想アクセラレータに対応する全ての物理アクセラレータが、削除対象の物理アクセラレータの識別子により示される物理アクセラレータを含むと判定された場合、削除対象の物理アクセラレータの識別子を削除するのに用いられる。
【０１１８】
仮想アクセラレータにより提供される全ての物理アクセラレーションリソースをユーザが削除する必要がある場合、クライアントを用いてユーザにより送信される物理アクセラレータ削除コマンドはさらに、仮想アクセラレータの識別子を含む。特定の実装例において、クライアントにより送信される物理アクセラレータ削除コマンドを管理ノードが受信した後に、さらに、管理ノードが仮想アクセラレータ削除コマンドをスケジューリング装置に送信する段階が含まれ、仮想アクセラレータ削除コマンドは仮想マシンの識別子と仮想アクセラレータの識別子とを含む。仮想アクセラレータ削除コマンドは、スケジューリング装置に命令して、仮想マシンに対応する仮想アクセラレータの識別子により示される仮想アクセラレータがあると、仮想マシンの識別子に基づいて判定された後に、仮想アクセラレータの識別子と全ての物理アクセラレータの識別子との対応関係を削除するのに用いられる。
【０１１９】
以下では、スケジューリング装置が、仮想アクセラレータ利用コマンドを受信し、仮想マシンの識別子に基づいて、仮想マシンに対応する仮想アクセラレータが１つもないと判定した後に、仮想アクセラレータを形成するプロセスを説明する。具体的な実装については、段階Ｓ６０５を参照されたい。
【０１２０】
Ｓ６０５：仮想マシンに対応する仮想アクセラレータが１つもないと判定された場合、スケジューリング装置は、仮想マシンに対応する仮想アクセラレータを形成し、この仮想アクセラレータに識別子を割り当て、仮想アクセラレータの識別子と物理アクセラレータの識別子との対応関係を格納する。
【０１２１】
以下では、スケジューリング装置が、仮想アクセラレータ利用コマンドを受信し、仮想マシンの識別子に基づいて、仮想マシンに対応する仮想アクセラレータがあると判定した後に、仮想アクセラレータを形成するプロセスを説明する。具体的な実装については、段階Ｓ６０６を参照されたい。
【０１２２】
Ｓ６０６：仮想マシンに対応する仮想アクセラレータがあると判定された場合、スケジューリング装置は、仮想アクセラレータに対応する全ての物理アクセラレータが、物理アクセラレータの識別子により示される物理アクセラレータを含むかどうかを判定し、仮想アクセラレータに対応する物理アクセラレータがどれも、物理アクセラレータの識別子により示される物理アクセラレータを含まないと判定された場合、仮想アクセラレータと物理アクセラレータの識別子とのマッピング関係を格納する。
【０１２３】
以下では、スケジューリング装置が、仮想アクセラレータを形成した後に、仮想マシンがアクセラレーション対象のデータに対してアクセラレーション処理を行うための、物理アクセラレーションリソースを提供する方法を説明する。具体的には、以下に挙げる段階Ｓ６０７〜Ｓ６１３が含まれる。
【０１２４】
Ｓ６０７：ＶＭはアクセラレーション命令をスケジューリング装置に送信する。アクセラレーション命令はアクセラレーション対象のデータを含む。具体的な実装詳細については、図４に示す段階Ｓ４０１を参照されたい。
【０１２５】
Ｓ６０８：スケジューリング装置は、仮想マシンに割り当てられる仮想アクセラレータを決定する。具体的な実装詳細については、図４に示す段階Ｓ４０２を参照されたい。
【０１２６】
Ｓ６０９：スケジューリング装置は、仮想アクセラレータに対応する物理アクセラレータを決定する。
【０１２７】
物理アクセラレータが位置しているネットワークアクセラレータが、アクセラレーション命令を処理するネットワークアクセラレータである。
【０１２８】
Ｓ６１０：スケジューリング装置は、物理アクセラレータの識別子をネットワークアクセラレータに送信する。
【０１２９】
Ｓ６１１：ネットワークアクセラレータは、物理アクセラレータの識別子に基づいて、アクセラレーション命令を物理アクセラレータに送信する。
【０１３０】
Ｓ６１２：物理アクセラレータは、物理アクセラレーションリソースを用いて、アクセラレーション対象のデータに対してアクセラレーションコンピューティングを行い、次いで、コンピューティング結果をスケジューリング装置に返す。
【０１３１】
Ｓ６１３：スケジューリング装置は、コンピューティング結果を仮想マシンに送信する。
【０１３２】
本願の一実施形態がさらに、管理ノードにより実行されるリソーススケジューリング方法を開示する。本方法の主な段階については、図５Ａ〜図６Ｂの実施形態での説明を参照されたい。詳細は、ここで再度説明しない。
【０１３３】
図７を参照すると、本図は、本願の一実施形態によるスケジューリング装置の概略構造図である。スケジューリング装置はアクセラレーションシステムに適用され、アクセラレーションシステムはコンピューティングノードと少なくとも１つのネットワークアクセラレータとを含み、コンピューティングノードは仮想マシンとスケジューリング装置とを含み、ネットワークアクセラレータは少なくとも１つの物理アクセラレータを含む。スケジューリング装置は、送受信機ユニット１００と処理ユニット２００とを含む。
【０１３４】
送受信機ユニット１００は、仮想マシンにより送信されるアクセラレーション命令を受信するように構成され、アクセラレーション命令はアクセラレーション対象のデータを含む。
【０１３５】
処理ユニット２００は、仮想マシンに割り当てられる仮想アクセラレータを決定するように構成され、仮想アクセラレータは、仮想マシンに割り当てられる物理アクセラレーションリソースをスケジューリング装置上でマッピングしており、物理アクセラレーションリソースは、少なくとも１つのネットワークアクセラレータの少なくとも１つの物理アクセラレータの中に少なくともいくつかの物理アクセラレーションリソースを含む。処理ユニット２００はさらに、アクセラレーション命令を処理するネットワークアクセラレータを仮想アクセラレータに基づいて決定し、アクセラレーション命令を当該ネットワークアクセラレータに送信するように構成されるので、ネットワークアクセラレータは、アクセラレーション命令を処理する物理アクセラレータにアクセラレーション命令を送信する。
【０１３６】
送受信機ユニット１００はさらに、物理アクセラレータが物理アクセラレーションリソースを用いてアクセラレーション対象のデータに対してアクセラレーションコンピューティングを行った後に返されるコンピューティング結果を受信し、このコンピューティング結果を仮想マシンに送信するように構成される。
【０１３７】
任意選択で、処理ユニット２００は、アクセラレーション命令を処理するネットワークアクセラレータを仮想アクセラレータに基づいて決定する場合、具体的には、仮想アクセラレータに対応するオブジェクトアクセラレータを決定するように構成され、オブジェクトアクセラレータが位置しているネットワークアクセラレータが、アクセラレーション命令を処理するネットワークアクセラレータである。
【０１３８】
処理ユニット２００はさらに、アクセラレーション命令を処理するネットワークアクセラレータを仮想アクセラレータに基づいて決定した後に、オブジェクトアクセラレータの識別子をネットワークアクセラレータに送信するように構成されるので、ネットワークアクセラレータは、オブジェクトアクセラレータに対応する物理アクセラレータをオブジェクトアクセラレータの識別子に基づいて決定し、アクセラレーション命令を物理アクセラレータに送信する。
【０１３９】
任意選択で、処理ユニット２００は、アクセラレーション命令を処理するネットワークアクセラレータを仮想アクセラレータに基づいて決定する場合、具体的には、仮想アクセラレータに対応する物理アクセラレータを決定するように構成され、物理アクセラレータが位置しているネットワークアクセラレータが、アクセラレーション命令を処理するネットワークアクセラレータである。
【０１４０】
処理ユニット２００はさらに、アクセラレーション命令を処理するネットワークアクセラレータを仮想アクセラレータに基づいて決定した後に、物理アクセラレータの識別子をネットワークアクセラレータに送信するように構成されるので、ネットワークアクセラレータは、物理アクセラレータの識別子に基づいて、アクセラレーション命令を物理アクセラレータに送信する。
【０１４１】
任意選択で、送受信機ユニット１００はさらに、仮想マシンにより送信されるアクセラレーション命令を受信する前に、管理ノードにより送信される仮想アクセラレータ利用コマンドを受信するように構成され、仮想アクセラレータ利用コマンドは、オブジェクトアクセラレータの識別子と仮想マシンの識別子とを含む。
【０１４２】
処理ユニット２００はさらに、仮想マシンに対応する仮想アクセラレータが１つもないと判定された場合、仮想マシンに対応する仮想アクセラレータを形成し、この仮想アクセラレータに識別子を割り当て、仮想アクセラレータの識別子とオブジェクトアクセラレータの識別子との対応関係を格納するように構成される。
【０１４３】
任意選択で、送受信機ユニット１００はさらに、仮想マシンにより送信されるアクセラレーション命令を受信する前に、管理ノードにより送信される仮想アクセラレータ利用コマンドを受信するように構成され、仮想アクセラレータ利用コマンドは、物理アクセラレータの識別子と仮想マシンの識別子とを含む。
【０１４４】
処理ユニット２００はさらに、仮想マシンに対応する仮想アクセラレータが１つもないと判定された場合、仮想マシンに対応する仮想アクセラレータを形成し、この仮想アクセラレータに識別子を割り当て、仮想アクセラレータの識別子と物理アクセラレータの識別子との対応関係を格納するように構成される。
【０１４５】
任意選択で、送受信機ユニット１００はさらに、管理ノードにより送信される仮想アクセラレータ利用コマンドを受信するように構成され、仮想アクセラレータ利用コマンドは、オブジェクトアクセラレータの識別子と仮想マシンの識別子とを含む。
【０１４６】
処理ユニット２００はさらに、仮想マシンに対応する仮想アクセラレータがあると判定された場合、仮想アクセラレータに対応する全てのオブジェクトアクセラレータが、オブジェクトアクセラレータの識別子により示されるオブジェクトアクセラレータを含むかどうかを判定し、仮想アクセラレータに対応するオブジェクトアクセラレータがどれも、オブジェクトアクセラレータの識別子により示されるオブジェクトアクセラレータを含まないと判定された場合、仮想アクセラレータとオブジェクトアクセラレータの識別子とのマッピング関係を格納するように構成される。
【０１４７】
任意選択で、送受信機ユニット１００はさらに、管理ノードにより送信される仮想アクセラレータ利用コマンドを受信するように構成され、仮想アクセラレータ利用コマンドは、物理アクセラレータの識別子と仮想マシンの識別子とを含む。
【０１４８】
処理ユニット２００はさらに、仮想マシンに対応する仮想アクセラレータがあると判定された場合、仮想アクセラレータに対応する全ての物理アクセラレータが、物理アクセラレータの識別子により示される物理アクセラレータを含むかどうかを判定し、仮想アクセラレータに対応するオブジェクトアクセラレータがどれも、物理アクセラレータの識別子により示される物理アクセラレータを含まないと判定された場合、仮想アクセラレータと物理アクセラレータの識別子とのマッピング関係を格納するように構成される。
【０１４９】
任意選択で、送受信機ユニット１００はさらに、管理ノードにより送信されるオブジェクトアクセラレータ削除コマンドを受信するように構成され、オブジェクトアクセラレータ削除コマンドは、仮想マシンの識別子とオブジェクトアクセラレータの識別子とを含む。
【０１５０】
処理ユニット２００はさらに、仮想マシンに対応する仮想アクセラレータがあると判定された場合、オブジェクトアクセラレータの識別子に基づいて、仮想アクセラレータに対応する全てのオブジェクトアクセラレータが、オブジェクトアクセラレータの識別子により示されるオブジェクトアクセラレータを含むかどうかを判定し、仮想アクセラレータに対応する全てのオブジェクトアクセラレータが、オブジェクトアクセラレータの識別子により示されるオブジェクトアクセラレータを含むと判定された場合、オブジェクトアクセラレータの識別子を削除するように構成される。
【０１５１】
任意選択で、送受信機ユニット１００はさらに、管理ノードにより送信される物理アクセラレータ削除コマンドを受信するように構成され、物理アクセラレータ削除コマンドは、仮想マシンの識別子と物理アクセラレータの識別子とを含む。
【０１５２】
処理ユニット２００はさらに、仮想マシンに対応する仮想アクセラレータがあると判定された場合、物理アクセラレータの識別子に基づいて、仮想アクセラレータに対応する全ての物理アクセラレータが、物理アクセラレータの識別子により示される物理アクセラレータを含むかどうかを判定し、仮想アクセラレータに対応する全ての物理アクセラレータが、物理アクセラレータの識別子により示される物理アクセラレータを含むと判定された場合、物理アクセラレータの識別子を削除するように構成される。
【０１５３】
任意選択で、アクセラレーション命令はさらに、仮想マシンの識別子を含み、処理ユニット２００はさらに、仮想マシンの識別子と仮想アクセラレータの識別子との対応関係を事前に格納するように構成される。処理ユニット２００は、仮想マシンに割り当てられる仮想アクセラレータを決定する場合、具体的には、仮想マシンの識別子と仮想アクセラレータの識別子との対応関係に基づいて、仮想マシンに対応する仮想アクセラレータを決定するように構成される。
【０１５４】
任意選択で、アクセラレーション命令はさらに、仮想アクセラレータの識別子を含み、仮想マシンは、仮想マシンの識別子と仮想アクセラレータの識別子との対応関係を事前に格納する。処理ユニット２００は、仮想マシンに割り当てられる仮想アクセラレータを決定する場合、具体的には、仮想アクセラレータの識別子に基づいて、仮想マシンに対応する仮想アクセラレータを決定するように構成される。
【０１５５】
図７に示すスケジューリング装置の送受信機ユニット１００の諸機能が、図４の段階Ｓ４０１、Ｓ４０５、及びＳ４０６、又は図５Ａ及び図５Ｂの段階Ｓ５０７、Ｓ５１０、Ｓ５１３、Ｓ５１５、及びＳ５１６、又は図６Ａ及び図６Ｂの段階Ｓ６０４、Ｓ６０７、Ｓ６１０、Ｓ６１２、及びＳ６１３に対応する。送受信機ユニット１００は、図４の段階Ｓ４０１、Ｓ４０５、及びＳ４０６、又は図５Ａ及び図５Ｂの段階Ｓ５０７、Ｓ５１０、Ｓ５１３、Ｓ５１５、及びＳ５１６、又は図６Ａ及び図６Ｂの段階Ｓ６０４、Ｓ６０７、Ｓ６１０、Ｓ６１２、及びＳ６１３の動作を行うことができる。図７に示すスケジューリング装置の処理ユニット２００の諸機能が、図４の段階Ｓ４０２及びＳ４０３、又は図５Ａ及び図５Ｂの段階Ｓ５０８、Ｓ５０９、Ｓ５１１、Ｓ５１２、及びＳ５１６、又は図６Ａ及び図６Ｂの段階Ｓ６０５、Ｓ６０６、Ｓ６０８、及びＳ６０９に対応する。処理ユニット４２０は、図４の段階Ｓ４０２及びＳ４０３、又は図５Ａ及び図５Ｂの段階Ｓ５０８、Ｓ５０９、Ｓ５１１、Ｓ５１２、及びＳ５１６、又は図６Ａ及び図６Ｂの段階Ｓ６０５、Ｓ６０６、Ｓ６０８、及びＳ６０９の動作を行うことができる。
【０１５６】
さらに、図７に示すスケジューリング装置は具体的には、制御機能を有し且つコンピューティングノードに配置される装置であってよい。
【０１５７】
さらに、図７に示すスケジューリング装置は、コンピューティングノードの外側に配置される独立したデバイスであってもよく、コンピューティングノードに直接統合されるモジュールであってもよく、コンピューティングノードの仮想マシンのアクセラレーション要件に基づいて、アクセラレーションリソースをスケジューリングするように構成される。
【０１５８】
図８を参照すると、図８は、本願の一実施形態による別のスケジューリング装置の概略構造図である。図８に示すように、本装置は、プロセッサ１１０と、メモリ１２０と、バス１３０とを含んでよく、プロセッサ１１０とメモリ１２０とはバス１３０を用いて接続される。メモリ１２０は、命令を格納するように構成され、プロセッサ１１０は、メモリ１２０により格納された命令を実行して、図４〜図６Ｂに示す方法のスケジューリング装置により実行される対応する各段階を実施するように構成される。
【０１５９】
また、本装置はさらに、入力インタフェース１４０と出力インタフェース１５０とを含んでよく、プロセッサ１１０と、メモリ１２０と、入力インタフェース１４０と、出力インタフェース１５０とは、バス１３０を用いて接続されてよい。
【０１６０】
プロセッサ１１０は、メモリ１２０により格納された命令を実行して、信号を受信するよう入力インタフェース１４０を制御し、信号を送信するよう出力インタフェース１５０を制御するように構成されることにより、前述の方法のコントローラにより実行される各段階を完了する。入力インタフェース１４０及び出力インタフェース１５０は、同じ物理エンティティでも異なる物理エンティティでもよく、同じ物理エンティティの場合には、まとめて入出力インタフェースと呼ばれることがある。メモリ１２０は、プロセッサ１１０に統合されてもよく、プロセッサ１１０から分離していてもよい。
【０１６１】
ある実装例では、入力インタフェース１４０及び出力インタフェース１５０の諸機能が、送受信機回路又は専用の送受信機チップを用いて実装されてよい。プロセッサ１１０は、専用の処理チップ、処理回路若しくはプロセッサ、又は汎用チップを用いて実装されてよい。
【０１６２】
別の実装例において、本願の本実施形態において提供される装置は、汎用コンピュータを用いて実装されてもよい。具体的には、プロセッサ１１０、入力インタフェース１４０、及び出力インタフェース１５０の諸機能を実装するプログラムコードがメモリに格納され、汎用プロセッサが、メモリ内のコードを実行することにより、プロセッサ１１０、入力インタフェース１４０、及び出力インタフェース１５０の諸機能を実現する。
【０１６３】
本願の本実施形態において提供される技術的解決手段及び他の段階に関連した、装置に関する概念、解釈、及び詳細な説明については、前述の方法又は他の実施形態における内容の説明を参照されたい。詳細は、ここで再度説明しない。
【０１６４】
当業者であれば、図７では、説明しやすくするために、１つのメモリ及びプロセッサしか示していないことを理解するであろう。実際のコントローラでは、複数のプロセッサ及びメモリがあってもよい。メモリは、記憶媒体又は記憶装置などとも呼ばれることがある。これについては、本願の本実施形態では限定されない。
【０１６５】
スケジューリング装置はコンピューティングノードに統合されてもよく、スケジューリング装置は独立して存在してもよく、コンピューティングノードに接続されるインタフェースが、コンピューティングノードを用いてデータ伝送を実施するように構成されることに留意されたい。例えば、スケジューリング装置は、組み込みカードとして構成されてよく、スケジューリング装置がコンピューティングノードのＰＣＩｅインタフェースに接続されるように、ＰＣＩｅインタフェースが構成される。また、スケジューリング装置がネットワーク又はクラウドの管理ノード及びネットワークアクセラレータに接続され、両者の間でデータのやり取りが実施されるように、ネットワークインタフェースが構成される。さらに、独立して配置されるプロセッサ及びメモリなどが、プログラムコードの格納及び実行を実現することにより、本願の方法の実施形態のスケジューリング装置により実行される方法の各段階が実装される。
【０１６６】
図９を参照すると、図９は、本願の一実施形態による管理ノードの概略構造図である。管理ノードはアクセラレーションシステムに適用され、アクセラレーションシステムは、管理ノードと、コンピューティングノードと、少なくとも１つのネットワークアクセラレータとを含み、コンピューティングノードは仮想マシンとスケジューリング装置とを含み、ネットワークアクセラレータは少なくとも１つの物理アクセラレータを含む。管理ノードは、仮想マシンにより送信されるアクセラレーションリソース利用要求を受信するように構成された送受信機ユニット３００であって、アクセラレーションリソース利用要求は、仮想マシンの識別子と、仮想マシンに割り当てられる必要な物理アクセラレーションリソースの数量と、物理アクセラレーションリソースを仮想マシンに提供する物理アクセラレータのタイプ識別子とを含む、送受信機ユニット３００と、物理アクセラレータのタイプ識別子と必要な物理アクセラレーションリソースの数量とに基づいて、物理アクセラレーションリソースを提供する少なくとも１つの物理アクセラレータが属するそれぞれのネットワークアクセラレータを決定し、物理アクセラレーションリソース形成コマンドを生成するように構成された処理ユニット４００であって、物理アクセラレーションリソース形成コマンドは、ネットワークアクセラレータに命令して、オブジェクトアクセラレータを形成し、オブジェクトアクセラレータの識別子と、ネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを仮想マシンに提供するように構成された物理アクセラレータの識別子との対応関係を格納するのに用いられる、処理ユニット４００とを含む。
【０１６７】
送受信機ユニット３００はさらに、物理アクセラレーションリソース形成コマンドをネットワークアクセラレータに送信し、ネットワークアクセラレータにより送信される、オブジェクトアクセラレータの識別子を受信するように構成される。
【０１６８】
処理ユニット４００はさらに、仮想アクセラレータ利用コマンドを生成することであって、仮想アクセラレータ利用コマンドは仮想マシンの識別子とオブジェクトアクセラレータの識別子とを含む、生成することと、仮想アクセラレータ利用コマンドをスケジューリング装置に送信することであって、これにより、スケジューリング装置は、仮想アクセラレータ利用コマンドに基づいて、仮想アクセラレータの識別子とオブジェクトアクセラレータの識別子との対応関係を格納する、送信することとを行うように構成される。
【０１６９】
図９に示す管理ノードの送受信機ユニット３００の諸機能が、図５Ａ及び図５Ｂの段階Ｓ５０１、Ｓ５０４、Ｓ５０５、及びＳ５０７に対応する。送受信機ユニット３００は、図５Ａ及び図５Ｂの段階Ｓ５０１、Ｓ５０４、Ｓ５０５、及びＳ５０７の動作を行うことができる。図９に示す管理ノードの処理ユニット４００の諸機能が、図５Ａ及び図５Ｂの段階Ｓ５０２、Ｓ５０３、及びＳ５０６に対応する。処理ユニット４００は、図５Ａ及び図５Ｂの段階Ｓ５０２、Ｓ５０３、及びＳ５０６の動作を行うことができる。
【０１７０】
図１０を参照すると、図１０は、本願の一実施形態による別の管理ノードの概略構造図である。図１０に示すように、本装置は、プロセッサ２１０と、メモリ２２０と、バス２３０とを含んでよく、プロセッサ２１０とメモリ２２０とはバス２３０を用いて接続される。メモリ２２０は、命令を格納するように構成され、プロセッサ２１０は、メモリ２２０により格納された命令を実行して、図４又は図５Ａ及び図５Ｂに対応する方法の各段階を実施するように構成される。
【０１７１】
また、管理ノードはさらに、入力インタフェース２４０と出力インタフェース２５０とを含んでよく、プロセッサ２１０と、メモリ２２０と、入力インタフェース２４０と、出力インタフェース２５０とは、バス２３０を用いて接続されてよい。
【０１７２】
プロセッサ２１０は、メモリ２２０により格納された命令を実行して、信号を受信するよう入力インタフェース２４０を制御し、信号を送信するよう出力インタフェース２５０を制御するように構成されることにより、前述の方法の管理ノードにより実行される各段階を完了する。入力インタフェース２４０と出力インタフェース２５０とは、同じ物理エンティティでも異なる物理エンティティでもよく、同じ物理エンティティの場合には、まとめて入出力インタフェースと呼ばれることがある。メモリ２２０は、プロセッサ２１０に統合されてもよく、プロセッサ２１０から分離していてもよい。
【０１７３】
ある実装例では、入力インタフェース２４０及び出力インタフェース２５０の諸機能が、送受信機回路又は専用の送受信機チップを用いて実装されてよい。プロセッサ２１０は、専用の処理チップ、処理回路若しくはプロセッサ、又は汎用チップを用いて実装されてよい。
【０１７４】
別の実装例において、本願の本実施形態において提供される装置は、汎用コンピュータを用いて実装されてもよい。具体的には、プロセッサ２１０、入力インタフェース２４０、及び出力インタフェース２５０の諸機能を実装するプログラムコードがメモリに格納され、汎用プロセッサが、メモリ内のコードを実行することにより、プロセッサ２１０、入力インタフェース２４０、及び出力インタフェース２５０の諸機能を実現する。
【０１７５】
図１１を参照すると、図１１は、本願の一実施形態による管理ノードの概略構造図である。管理ノードはアクセラレーションシステムに適用され、アクセラレーションシステムは、管理ノードと、コンピューティングノードと、少なくとも１つのネットワークアクセラレータとを含み、コンピューティングノードは仮想マシンとスケジューリング装置とを含み、ネットワークアクセラレータは少なくとも１つの物理アクセラレータを含む。管理ノードは、仮想マシンにより送信されるアクセラレーションリソース利用要求を受信するように構成された送受信機ユニット５００であって、アクセラレーションリソース利用要求は、仮想マシンの識別子と、仮想マシンに割り当てられる必要な物理アクセラレーションリソースの数量と、物理アクセラレーションリソースを仮想マシンに提供する物理アクセラレータのタイプ識別子とを含む、送受信機ユニット５００と、物理アクセラレータのタイプ識別子と必要な物理アクセラレーションリソースの数量とに基づいて、物理アクセラレーションリソースを提供する少なくとも１つの物理アクセラレータが属するそれぞれのネットワークアクセラレータを決定することと、仮想アクセラレータ利用コマンドを生成することであって、仮想アクセラレータ利用コマンドは、仮想マシンの識別子と、それぞれのネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを仮想マシンに提供するように構成された物理アクセラレータの識別子とを含む、生成することと、仮想アクセラレータ利用コマンドをスケジューリング装置に送信することであって、これにより、スケジューリング装置は、仮想アクセラレータ利用コマンドに基づいて、仮想アクセラレータの識別子と、それぞれのネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを仮想マシンに提供するように構成された物理アクセラレータの識別子との対応関係を格納する、送信することとを行うように構成された処理ユニット６００とを含む。
【０１７６】
図１１に示す管理ノードの送受信機ユニット５００の機能が、図６Ａの段階Ｓ６０１に対応する。送受信機ユニット５００は、図５Ａの段階Ｓ６０１の動作を行うことができる。図１１に示す管理ノードの処理ユニット６００の諸機能が、図５Ａの段階Ｓ６０２、Ｓ６０３、及びＳ６０４に対応する。処理ユニット６００は、図５Ａの段階Ｓ６０２、Ｓ６０３、及びＳ６０４の動作を行うことができる。
【０１７７】
図１２を参照すると、図１２は、本願の一実施形態による別の管理ノードの概略構造図である。図１２に示すように、本装置は、プロセッサ３１０と、メモリ３２０と、バス３３０とを含んでよく、プロセッサ３１０とメモリ３２０とはバス３３０を用いて接続される。メモリ３２０は、命令を格納するように構成され、プロセッサ３１０は、メモリ３２０により格納された命令を実行して、図４又は図６Ａ及び図６Ｂに対応する方法の各段階を実施するように構成される。
【０１７８】
また、管理ノードはさらに、入力インタフェース３４０と出力インタフェース３５０とを含んでよく、プロセッサ３１０と、メモリ３２０と、入力インタフェース３４０と、出力インタフェース３５０とは、バス３３０を用いて接続されてよい。
【０１７９】
プロセッサ３１０は、メモリ３２０により格納された命令を実行して、信号を受信するよう入力インタフェース３４０を制御し、信号を送信するよう出力インタフェース３５０を制御するように構成されることにより、前述の方法の管理ノードにより実行される各段階を完了する。入力インタフェース３４０と出力インタフェース３５０とは、同じ物理エンティティでも異なる物理エンティティでもよく、同じ物理エンティティの場合には、まとめて入出力インタフェースと呼ばれることがある。メモリ３２０は、プロセッサ３１０に統合されてもよく、プロセッサ３１０から分離していてもよい。
【０１８０】
ある実装例では、入力インタフェース３４０及び出力インタフェース３５０の諸機能が、送受信機回路又は専用の送受信機チップを用いて実装されてよい。プロセッサ３１０は、専用の処理チップ、処理回路若しくはプロセッサ、又は汎用チップを用いて実装されてよい。
【０１８１】
別の実装例において、本願の本実施形態において提供される装置は、汎用コンピュータを用いて実装されてもよい。具体的には、プロセッサ３１０、入力インタフェース３４０、及び出力インタフェース３５０の諸機能を実装するプログラムコードがメモリに格納され、汎用プロセッサが、メモリ内のコードを実行することにより、プロセッサ３１０、入力インタフェース３４０、及び出力インタフェース３５０の諸機能を実現する。
【０１８２】
本願の本実施形態において提供される技術的解決手段及び他の段階に関連した、管理ノードに関する概念、解釈、及び詳細な説明については、前述の方法又は他の実施形態における内容の説明を参照されたい。詳細は、ここで再度説明しない。
【０１８３】
当業者であれば、図１０及び図１２では、説明しやすくするために、１つのメモリ及びプロセッサしか示していないことを理解するであろう。実際のコントローラでは、複数のプロセッサ及びメモリがあってもよい。メモリは、記憶媒体又は記憶装置などとも呼ばれることがある。これについては、本願の本実施形態では限定されない。
【０１８４】
本願の本実施形態において、プロセッサは中央演算処理装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、略して「ＣＰＵ」）であってもよく、プロセッサは、別の汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）若しくは別のプログラム可能型論理デバイス、ディスクリートゲート若しくはトランジスタ論理デバイス、又はディスクリートハードウェアアセンブリなどであってもよいことを理解されたい。汎用プロセッサはマイクロプロセッサであってよく、又はプロセッサは任意の従来のプロセッサなどであってよい。
【０１８５】
メモリは、リードオンリメモリとランダムアクセスメモリとを含んでよく、命令及びデータをプロセッサに提供する。メモリの一部がさらに、不揮発性ランダムアクセスメモリを含んでよい。
【０１８６】
バスはさらに、データバスに加えて、電力バス、制御バス、及びステータス信号バスなどを含んでよい。しかしながら、分かりやすく説明するために、図の中では、様々なバスが全てバスと示されている。
【０１８７】
実装プロセスでは、前述の方法の各段階が、プロセッサ内のハードウェア集積論理回路を用いて、又はソフトウェアの形態の命令を用いて、実装されてよい。本願の実施形態を参照して開示された方法の各段階は、ハードウェアプロセッサにより直接実行されてもよく、プロセッサ内のハードウェアとソフトウェアモジュールとの組み合わせを用いて実行されてもよい。ソフトウェアモジュールは、ランダムアクセスメモリ、フラッシュメモリ、リードオンリメモリ、プログラム可能型リードオンリメモリ、若しくは電気的消去可能プログラム可能型メモリ、又はレジスタなどの、当技術分野の成熟した記憶媒体内に位置してよい。記憶媒体はメモリ内に位置しており、プロセッサはメモリ内の情報を読み出し、プロセッサのハードウェアと組み合わせて、前述の方法の各段階を完了する。繰り返しを避けるために、詳細はここで再度説明しない。
【０１８８】
本願の本実施形態において提供される方法によれば、本願の一実施形態がさらに、システムを提供する。本システムは、前述の管理ノードと、コンピューティングノードと、少なくとも１つのネットワークアクセラレータとを含み、コンピューティングノードは仮想マシンと前述のスケジューリング装置とを含み、ネットワークアクセラレータは少なくとも１つの物理アクセラレータを含む。これらのデバイスの機能とインタラクションプロセスとについては、前述の実施形態の説明を参照されたい。詳細は、ここで再度説明しない。
【０１８９】
前述のプロセスの連続番号は、本願の様々な実施形態において、実行順序を意味するものではないことを理解されたい。各プロセスの実行順序は、各プロセスの機能及び内部論理に従って決定されるべきであり、本願の実施形態の実装プロセスに対する、いかなる限定とも解釈されるべきではない。
【０１９０】
当業者であれば、本明細書に開示された実施形態の説明を参照して、様々な例示的論理ブロック（ｉｌｌｕｓｔｒａｔｉｖｅ  ｌｏｇｉｃａｌ  ｂｌｏｃｋ）及び段階（ｓｔｅｐ）が、電子的ハードウェア又はコンピュータソフトウェアと電子的ハードウェアとの組み合わせにより実装されてよいことを認識するであろう。これらの機能が、ハードウェアで実行されるのか、又はソフトウェアで実行されるのかは、技術的解決手段の特定の用途及び設計上の制約条件によって決まる。当業者であれば、異なる方法を用いて、説明した機能を特定の用途ごとに実装するかもしれない。しかし、そのような実装例が本願の範囲を超えるものとみなされるべきではない。
【０１９１】
本願において提供された実施形態において、開示されたシステム、装置、及び方法は、他の方式で実装されてもよいことを理解されたい。例えば、説明された装置の実施形態は、単なる一例に過ぎない。例えば、ユニットの分割は、単なる論理的機能の分割に過ぎず、実際の実装では、他の分割であってもよい。例えば、複数のユニット又はコンポーネントが組み合わされても、別のシステムに統合されてもよく、又は、一部の特徴が無視されても、実行されなくてもよい。さらに、本明細書で示されたか又は論じられた相互結合、直接結合、又は通信接続が、間接結合であっても、いくつかのインタフェース、装置、又はユニットにより実装される通信接続であってもよく、電気的形態、機械的形態、又は他の形態であってもよい。
【０１９２】
前述の実施形態の全て又は一部が、ソフトウェア、ハードウェア、ファームウェア、又はこれらの任意の組み合わせによって、実装されてよい。これらの実施形態を実装するのにソフトウェアが用いられる場合、これらの実施形態は、コンピュータプログラム製品の形態で完全に又は部分的に実装されてよい。コンピュータプログラム製品は、１つ又は複数のコンピュータ命令を含む。コンピュータプログラム命令がコンピュータに読み込まれて実行されると、本願の実施形態による手順又は機能が、全て又は部分的に生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、又は別のプログラム可能型装置であってよい。コンピュータ命令は、コンピュータ可読記憶媒体に格納されてもよく、あるコンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体に伝送されてもよい。例えば、コンピュータ命令は、あるウェブサイト、コンピュータ、サーバ、又はデータセンタから、別のウェブサイト、コンピュータ、サーバ、又はデータセンタに、有線（例えば、同軸ケーブル、光ファイバ、又はデジタル加入者線（ＤＳＬ））方式又は無線（例えば、赤外線、電波、又はマイクロ波）方式で伝送されてよい。コンピュータ可読記憶媒体は、コンピュータがアクセス可能な任意の利用可能な媒体であっても、又は１つ若しくは複数の利用可能な媒体を統合した、サーバ若しくはデータセンタなどのデータ記憶装置であってもよい。利用可能な媒体は、磁気媒体（例えば、フロッピディスク、ハードディスク、又は磁気テープ）、光媒体（例えば、ＤＶＤ）、又は半導体媒体（例えば、ソリッドステートディスク（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ、ＳＳＤ））などであってよい。
【０１９３】
前述の説明は、本願の単なる特定の実装例に過ぎず、本願の保護範囲を限定する意図はない。本願に開示された技術的範囲内で当業者が容易に考え出す、あらゆる変形又は置換は、本願の保護範囲に含まれるものとする。したがって、本願の保護範囲は、特許請求の範囲の保護範囲に従うものとする。
【図１】
2021503124.tif 000003
【図２】
2021503124.tif 000004
【図３】
2021503124.tif 000005
【図４】
2021503124.tif 000006
【図５Ａ】
2021503124.tif 000007
【図５Ｂ】
2021503124.tif 000008
【図６Ａ】
2021503124.tif 000009
【図６Ｂ】
2021503124.tif 000010
【図７】
2021503124.tif 000011
【図８】
2021503124.tif 000012
【図９】
2021503124.tif 000013
【図１０】
2021503124.tif 000014
【図１１】
2021503124.tif 000015
【図１２】
2021503124.tif 000016
【手続補正書】
【提出日】令和2年6月2日(2020.6.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
アクセラレーションシステムに適用されるアクセラレーションリソーススケジューリング方法であって、前記アクセラレーションシステムはコンピューティングノードと少なくとも１つのネットワークアクセラレータとを有し、前記コンピューティングノードは仮想マシンとスケジューリング装置とを含み、前記少なくとも１つのネットワークアクセラレータは少なくとも１つの物理アクセラレータを含み、前記アクセラレーションリソーススケジューリング方法は前記スケジューリング装置により実行され、
前記アクセラレーションリソーススケジューリング方法は、
前記仮想マシンにより送信されるアクセラレーション命令を受信する段階であって、前記アクセラレーション命令はアクセラレーション対象のデータを含む、段階と、
前記仮想マシンに割り当てられる仮想アクセラレータを決定する段階であって、前記仮想アクセラレータは、前記仮想マシンに割り当てられる物理アクセラレーションリソースを前記スケジューリング装置上でマッピングしており、前記物理アクセラレーションリソースは、前記少なくとも１つのネットワークアクセラレータの前記少なくとも１つの物理アクセラレータの中に少なくともいくつかの物理アクセラレーションリソースを含む、段階と、
前記アクセラレーション命令を処理するネットワークアクセラレータを前記仮想アクセラレータに基づいて決定し、前記アクセラレーション命令を前記ネットワークアクセラレータに送信する段階であって、これにより、前記ネットワークアクセラレータは、前記アクセラレーション命令を処理する物理アクセラレータに前記アクセラレーション命令を送信する、段階と、
前記物理アクセラレータが前記物理アクセラレーションリソースを用いて前記アクセラレーション対象のデータに対してアクセラレーションコンピューティングを行った後に返されるコンピューティング結果を受信する段階と、
前記コンピューティング結果を前記仮想マシンに送信する段階と
を含む、アクセラレーションリソーススケジューリング方法。
【請求項２】
前記アクセラレーション命令を処理するネットワークアクセラレータを前記仮想アクセラレータに基づいて決定する前記段階は、
前記仮想アクセラレータに対応するオブジェクトアクセラレータを決定する段階であって、前記オブジェクトアクセラレータが位置するネットワークアクセラレータが、前記アクセラレーション命令を処理する前記ネットワークアクセラレータである、段階を有し、
前記アクセラレーション命令を処理するネットワークアクセラレータを前記仮想アクセラレータに基づいて決定する前記段階の後に、前記アクセラレーションリソーススケジューリング方法はさらに、
前記オブジェクトアクセラレータの識別子を前記ネットワークアクセラレータに送信する段階であって、これにより、前記ネットワークアクセラレータは、前記オブジェクトアクセラレータに対応する物理アクセラレータを前記オブジェクトアクセラレータの前記識別子に基づいて決定し、前記アクセラレーション命令を前記物理アクセラレータに送信する、段階を含む、請求項１に記載のアクセラレーションリソーススケジューリング方法。
【請求項３】
前記アクセラレーション命令を処理するネットワークアクセラレータを前記仮想アクセラレータに基づいて決定する前記段階は、
前記仮想アクセラレータに対応する物理アクセラレータを決定する段階であって、前記物理アクセラレータが位置しているネットワークアクセラレータが、前記アクセラレーション命令を処理する前記ネットワークアクセラレータである、段階を有し、
前記アクセラレーション命令を処理するネットワークアクセラレータを前記仮想アクセラレータに基づいて決定する前記段階の後に、前記アクセラレーションリソーススケジューリング方法はさらに、
前記物理アクセラレータの識別子を前記ネットワークアクセラレータに送信する段階であって、これにより、前記ネットワークアクセラレータは、前記物理アクセラレータの前記識別子に基づいて、前記アクセラレーション命令を前記物理アクセラレータに送信する、段階を含む、請求項１に記載のアクセラレーションリソーススケジューリング方法。
【請求項４】
前記仮想マシンにより送信されるアクセラレーション命令を受信する前記段階の前に、前記アクセラレーションリソーススケジューリング方法はさらに、
管理ノードにより送信される仮想アクセラレータ利用コマンドを受信する段階であって、前記仮想アクセラレータ利用コマンドは前記オブジェクトアクセラレータの前記識別子と前記仮想マシンの識別子とを含む、段階と、
前記仮想マシンに対応する仮想アクセラレータが１つもないと判定された場合、前記仮想マシンに対応する仮想アクセラレータを形成し、前記仮想アクセラレータに識別子を割り当てる段階と、
前記仮想アクセラレータの前記識別子と前記オブジェクトアクセラレータの前記識別子との対応関係を格納する段階と
を含む、請求項２に記載のアクセラレーションリソーススケジューリング方法。
【請求項５】
前記仮想マシンにより送信されるアクセラレーション命令を受信する前記段階の前に、前記アクセラレーションリソーススケジューリング方法はさらに、
管理ノードにより送信される仮想アクセラレータ利用コマンドを受信する段階であって、前記仮想アクセラレータ利用コマンドは前記物理アクセラレータの前記識別子と前記仮想マシンの識別子とを含む、段階と、
前記仮想マシンに対応する仮想アクセラレータが１つもないと判定された場合、前記仮想マシンに対応する仮想アクセラレータを形成し、前記仮想アクセラレータに識別子を割り当てる段階と、
前記仮想アクセラレータの前記識別子と前記物理アクセラレータの前記識別子との対応関係を格納する段階と
を含む、請求項３に記載のアクセラレーションリソーススケジューリング方法。
【請求項６】
前記アクセラレーションリソーススケジューリング方法はさらに、
管理ノードにより送信される仮想アクセラレータ利用コマンドを受信する段階であって、前記仮想アクセラレータ利用コマンドは前記オブジェクトアクセラレータの前記識別子と前記仮想マシンの識別子とを含む、段階と、
前記仮想マシンに対応する仮想アクセラレータがあると判定された場合、前記仮想アクセラレータに対応する全てのオブジェクトアクセラレータが、前記オブジェクトアクセラレータの前記識別子により示されるオブジェクトアクセラレータを含むかどうかを判定する段階と、
前記仮想アクセラレータに対応する前記オブジェクトアクセラレータがどれも、前記オブジェクトアクセラレータの前記識別子により示される前記オブジェクトアクセラレータを含まないと判定された場合、前記仮想アクセラレータと前記オブジェクトアクセラレータの前記識別子とのマッピング関係を格納する段階と
を含む、請求項２に記載のアクセラレーションリソーススケジューリング方法。
【請求項７】
前記アクセラレーションリソーススケジューリング方法はさらに、
管理ノードにより送信される仮想アクセラレータ利用コマンドを受信する段階であって、前記仮想アクセラレータ利用コマンドは前記物理アクセラレータの前記識別子と前記仮想マシンの識別子とを含む、段階と、
前記仮想マシンに対応する仮想アクセラレータがあると判定された場合、前記仮想アクセラレータに対応する全ての物理アクセラレータが、前記物理アクセラレータの前記識別子により示される物理アクセラレータを含むかどうかを判定する段階と、
前記仮想アクセラレータに対応する前記物理アクセラレータがどれも、前記物理アクセラレータの前記識別子により示される前記物理アクセラレータを含まないと判定された場合、前記仮想アクセラレータと前記物理アクセラレータの前記識別子とのマッピング関係を格納する段階と
を含む、請求項３に記載のアクセラレーションリソーススケジューリング方法。
【請求項８】
前記アクセラレーションリソーススケジューリング方法はさらに、
前記管理ノードにより送信されるオブジェクトアクセラレータ削除コマンドを受信する段階であって、前記オブジェクトアクセラレータ削除コマンドは前記仮想マシンの前記識別子と前記オブジェクトアクセラレータの前記識別子とを含む、段階と、
前記仮想マシンに対応する仮想アクセラレータがあると判定された場合、前記スケジューリング装置が前記オブジェクトアクセラレータの前記識別子に基づいて、前記仮想アクセラレータに対応する全てのオブジェクトアクセラレータが、前記オブジェクトアクセラレータの前記識別子により示されるオブジェクトアクセラレータを含むかどうかを判定する段階と、
前記仮想アクセラレータに対応する全ての前記オブジェクトアクセラレータが、前記オブジェクトアクセラレータの前記識別子により示される前記オブジェクトアクセラレータを含むと判定された場合、前記オブジェクトアクセラレータの前記識別子を削除する段階と
を含む、請求項４又は６に記載のアクセラレーションリソーススケジューリング方法。
【請求項９】
前記アクセラレーションリソーススケジューリング方法はさらに、
前記管理ノードにより送信される物理アクセラレータ削除コマンドを受信する段階であって、前記物理アクセラレータ削除コマンドは前記仮想マシンの前記識別子と前記物理アクセラレータの前記識別子とを含む、段階と、
前記仮想マシンに対応する仮想アクセラレータがあると判定された場合、前記スケジューリング装置が前記物理アクセラレータの前記識別子に基づいて、前記仮想アクセラレータに対応する全ての物理アクセラレータが、前記物理アクセラレータの前記識別子により示される物理アクセラレータを含むかどうかを判定する段階と、
前記仮想アクセラレータに対応する全ての前記物理アクセラレータが、前記物理アクセラレータの前記識別子により示される前記物理アクセラレータを含むと判定された場合、前記物理アクセラレータの前記識別子を削除する段階と
を含む、請求項５又は７に記載のアクセラレーションリソーススケジューリング方法。
【請求項１０】
前記アクセラレーション命令はさらに、前記仮想マシンの識別子を含み、前記スケジューリング装置は、前記仮想マシンの前記識別子と前記仮想アクセラレータの識別子との対応関係を事前に格納し、前記仮想マシンに割り当てられる仮想アクセラレータを決定する前記段階は、
前記仮想マシンの前記識別子と前記仮想アクセラレータの前記識別子との前記対応関係に基づいて、前記仮想マシンに対応する前記仮想アクセラレータを決定する段階を有する、請求項１から９のいずれか一項に記載のアクセラレーションリソーススケジューリング方法。
【請求項１１】
前記アクセラレーション命令はさらに、前記仮想アクセラレータの識別子を含み、前記仮想マシンは、前記仮想マシンの前記識別子と前記仮想アクセラレータの識別子との対応関係を事前に格納し、前記仮想マシンに割り当てられる仮想アクセラレータを決定する前記段階は、
前記仮想アクセラレータの前記識別子に基づいて、前記仮想マシンに対応する前記仮想アクセラレータを決定する段階を有する、請求項１から９のいずれか一項に記載のアクセラレーションリソーススケジューリング方法。
【請求項１２】
アクセラレーションシステムに適用されるアクセラレーションリソーススケジューリング方法であって、前記アクセラレーションシステムは、管理ノードと、コンピューティングノードと、少なくとも１つのネットワークアクセラレータとを有し、前記コンピューティングノードは仮想マシンとスケジューリング装置とを含み、前記少なくとも１つのネットワークアクセラレータは少なくとも１つの物理アクセラレータを含み、前記アクセラレーションリソーススケジューリング方法は前記管理ノードにより実行され、前記アクセラレーションリソーススケジューリング方法は、
前記仮想マシンにより送信されるアクセラレーションリソース利用要求を受信する段階であって、前記アクセラレーションリソース利用要求は、前記仮想マシンの識別子と、前記仮想マシンに割り当てられる必要な物理アクセラレーションリソースの数量と、前記物理アクセラレーションリソースを前記仮想マシンに提供する物理アクセラレータのタイプ識別子とを含む、段階と、
前記物理アクセラレータの前記タイプ識別子と必要な前記物理アクセラレーションリソースの前記数量とに基づいて、前記物理アクセラレーションリソースを提供する前記少なくとも１つの物理アクセラレータが属するそれぞれのネットワークアクセラレータを決定する段階と、
物理アクセラレーションリソース形成コマンドを生成する段階であって、前記物理アクセラレーションリソース形成コマンドは、前記ネットワークアクセラレータに命令して、オブジェクトアクセラレータを形成し、前記オブジェクトアクセラレータの識別子と、前記ネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを前記仮想マシンに提供するように構成された物理アクセラレータの識別子との対応関係を格納するのに用いられる、段階と、
前記物理アクセラレーションリソース形成コマンドを前記ネットワークアクセラレータに送信する段階と、
前記ネットワークアクセラレータにより送信される前記オブジェクトアクセラレータの前記識別子を受信する段階と、
仮想アクセラレータ利用コマンドを生成する段階であって、前記仮想アクセラレータ利用コマンドは前記仮想マシンの前記識別子と前記オブジェクトアクセラレータの前記識別子とを含む、段階と、
前記仮想アクセラレータ利用コマンドを前記スケジューリング装置に送信する段階であって、これにより、前記スケジューリング装置は、仮想アクセラレータの識別子と前記オブジェクトアクセラレータの前記識別子との対応関係を前記仮想アクセラレータ利用コマンドに基づいて格納する、段階と
を含む、アクセラレーションリソーススケジューリング方法。
【請求項１３】
アクセラレーションシステムに適用されるアクセラレーションリソーススケジューリング方法であって、前記アクセラレーションシステムは、管理ノードと、コンピューティングノードと、少なくとも１つのネットワークアクセラレータとを有し、前記コンピューティングノードは仮想マシンとスケジューリング装置とを含み、前記少なくとも１つのネットワークアクセラレータは少なくとも１つの物理アクセラレータを含み、前記アクセラレーションリソーススケジューリング方法は前記管理ノードにより実行され、前記アクセラレーションリソーススケジューリング方法は、
前記仮想マシンにより送信されるアクセラレーションリソース利用要求を受信する段階であって、前記アクセラレーションリソース利用要求は、前記仮想マシンの識別子と、前記仮想マシンに割り当てられる必要な物理アクセラレーションリソースの数量と、前記物理アクセラレーションリソースを前記仮想マシンに提供する物理アクセラレータのタイプ識別子とを含む、段階と、
前記物理アクセラレータの前記タイプ識別子と必要な前記物理アクセラレーションリソースの前記数量とに基づいて、前記物理アクセラレーションリソースを提供する前記少なくとも１つの物理アクセラレータが属するそれぞれのネットワークアクセラレータを決定する段階と、
仮想アクセラレータ利用コマンドを生成する段階であって、前記仮想アクセラレータ利用コマンドは、前記仮想マシンの前記識別子と、それぞれのネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを前記仮想マシンに提供するように構成された物理アクセラレータの識別子とを含む、段階と、
前記仮想アクセラレータ利用コマンドを前記スケジューリング装置に送信する段階であって、これにより、前記スケジューリング装置は、前記仮想アクセラレータ利用コマンドに基づいて、仮想アクセラレータの識別子と、それぞれのネットワークアクセラレータに存在し且つ前記物理アクセラレーションリソースを前記仮想マシンに提供するように構成された前記物理アクセラレータの前記識別子との対応関係を格納する、段階と
を含む、アクセラレーションリソーススケジューリング方法。
【請求項１４】
アクセラレーションシステムに適用されるスケジューリング装置であって、前記アクセラレーションシステムはコンピューティングノードと少なくとも１つのネットワークアクセラレータとを有し、前記コンピューティングノードは仮想マシンと前記スケジューリング装置とを含み、前記少なくとも１つのネットワークアクセラレータは少なくとも１つの物理アクセラレータを含み、
前記スケジューリング装置は、
前記仮想マシンにより送信されるアクセラレーション命令を受信するように構成された送受信機ユニットであって、前記アクセラレーション命令はアクセラレーション対象のデータを含む、送受信機ユニットと、
前記仮想マシンに割り当てられる仮想アクセラレータを決定することであって、前記仮想アクセラレータは、前記仮想マシンに割り当てられる物理アクセラレーションリソースを前記スケジューリング装置上でマッピングしており、前記物理アクセラレーションリソースは、前記少なくとも１つのネットワークアクセラレータの前記少なくとも１つの物理アクセラレータの中に少なくともいくつかの物理アクセラレーションリソースを含む、決定することと、前記アクセラレーション命令を処理するネットワークアクセラレータを前記仮想アクセラレータに基づいて決定し、前記アクセラレーション命令を前記ネットワークアクセラレータに送信することであって、これにより、前記ネットワークアクセラレータは、前記アクセラレーション命令を処理する物理アクセラレータに前記アクセラレーション命令を送信する、送信することとを行うように構成された処理ユニットと
を備え、
前記送受信機ユニットはさらに、前記物理アクセラレータが前記物理アクセラレーションリソースを用いて前記アクセラレーション対象のデータに対してアクセラレーションコンピューティングを行った後に返されるコンピューティング結果を受信し、前記コンピューティング結果を前記仮想マシンに送信するように構成される、スケジューリング装置。
【請求項１５】
前記アクセラレーション命令を処理する前記ネットワークアクセラレータを前記仮想アクセラレータに基づいて決定する場合、前記処理ユニットは具体的には、
前記仮想アクセラレータに対応するオブジェクトアクセラレータを決定するように構成され、前記オブジェクトアクセラレータが位置しているネットワークアクセラレータが、前記アクセラレーション命令を処理する前記ネットワークアクセラレータであり、
前記アクセラレーション命令を処理する前記ネットワークアクセラレータを前記仮想アクセラレータに基づいて決定した後に、前記処理ユニットはさらに、
前記オブジェクトアクセラレータの識別子を前記ネットワークアクセラレータに送信するように構成され、これにより、前記ネットワークアクセラレータは、前記オブジェクトアクセラレータに対応する物理アクセラレータを前記オブジェクトアクセラレータの前記識別子に基づいて決定し、前記アクセラレーション命令を前記物理アクセラレータに送信する、請求項１４に記載のスケジューリング装置。
【請求項１６】
前記アクセラレーション命令を処理する前記ネットワークアクセラレータを前記仮想アクセラレータに基づいて決定する場合、前記処理ユニットは具体的には、
前記仮想アクセラレータに対応する物理アクセラレータを決定するように構成され、前記物理アクセラレータが位置しているネットワークアクセラレータが、前記アクセラレーション命令を処理する前記ネットワークアクセラレータであり、
前記アクセラレーション命令を処理する前記ネットワークアクセラレータを前記仮想アクセラレータに基づいて決定した後に、前記処理ユニットはさらに、
前記物理アクセラレータの識別子を前記ネットワークアクセラレータに送信するように構成され、これにより、前記ネットワークアクセラレータは、前記物理アクセラレータの前記識別子に基づいて、前記アクセラレーション命令を前記物理アクセラレータに送信する、請求項１４に記載のスケジューリング装置。
【請求項１７】
前記仮想マシンにより送信される前記アクセラレーション命令を受信する前に、前記送受信機ユニットはさらに、
管理ノードにより送信される仮想アクセラレータ利用コマンドを受信するように構成され、前記仮想アクセラレータ利用コマンドは前記オブジェクトアクセラレータの前記識別子と前記仮想マシンの識別子とを含み、
前記処理ユニットはさらに、
前記仮想マシンに対応する仮想アクセラレータが１つもないと判定された場合、前記仮想マシンに対応する仮想アクセラレータを形成して、前記仮想アクセラレータに識別子を割り当て、
前記仮想アクセラレータの前記識別子と前記オブジェクトアクセラレータの前記識別子との対応関係を格納する
ように構成される、請求項１５に記載のスケジューリング装置。
【請求項１８】
前記仮想マシンにより送信される前記アクセラレーション命令を受信する前に、前記送受信機ユニットはさらに、
管理ノードにより送信される仮想アクセラレータ利用コマンドを受信するように構成され、前記仮想アクセラレータ利用コマンドは前記物理アクセラレータの前記識別子と前記仮想マシンの識別子とを含み、
前記処理ユニットはさらに、
前記仮想マシンに対応する仮想アクセラレータが１つもないと判定された場合、前記仮想マシンに対応する仮想アクセラレータを形成して、前記仮想アクセラレータに識別子を割り当て、
前記仮想アクセラレータの前記識別子と前記物理アクセラレータの前記識別子との対応関係を格納する
ように構成される、請求項１６に記載のスケジューリング装置。
【請求項１９】
前記送受信機ユニットはさらに、
管理ノードにより送信される仮想アクセラレータ利用コマンドを受信するように構成され、前記仮想アクセラレータ利用コマンドは前記オブジェクトアクセラレータの前記識別子と前記仮想マシンの識別子とを含み、
前記処理ユニットはさらに、
前記仮想マシンに対応する仮想アクセラレータがあると判定された場合、前記仮想アクセラレータに対応する全てのオブジェクトアクセラレータが、前記オブジェクトアクセラレータの前記識別子により示されるオブジェクトアクセラレータを含むかどうかを判定し、
前記仮想アクセラレータに対応する前記オブジェクトアクセラレータがどれも、前記オブジェクトアクセラレータの前記識別子により示される前記オブジェクトアクセラレータを含まないと判定された場合、前記仮想アクセラレータと前記オブジェクトアクセラレータの前記識別子とのマッピング関係を格納する
ように構成される、請求項１５に記載のスケジューリング装置。
【請求項２０】
前記送受信機ユニットはさらに、
管理ノードにより送信される仮想アクセラレータ利用コマンドを受信するように構成され、前記仮想アクセラレータ利用コマンドは前記物理アクセラレータの前記識別子と前記仮想マシンの識別子とを含み、
前記処理ユニットはさらに、
前記仮想マシンに対応する仮想アクセラレータがあると判定された場合、前記仮想アクセラレータに対応する全ての物理アクセラレータが、前記物理アクセラレータの前記識別子により示される物理アクセラレータを含むかどうかを判定し、
前記仮想アクセラレータに対応する前記物理アクセラレータがどれも、前記物理アクセラレータの前記識別子により示される前記物理アクセラレータを含まないと判定された場合、前記仮想アクセラレータと前記物理アクセラレータの前記識別子とのマッピング関係を格納する
ように構成される、請求項１６に記載のスケジューリング装置。
【請求項２１】
前記送受信機ユニットはさらに、
前記管理ノードにより送信されるオブジェクトアクセラレータ削除コマンドを受信するように構成され、前記オブジェクトアクセラレータ削除コマンドは前記仮想マシンの前記識別子と前記オブジェクトアクセラレータの前記識別子とを含み、
前記処理ユニットはさらに、
前記仮想マシンに対応する仮想アクセラレータがあると判定された場合、前記オブジェクトアクセラレータの前記識別子に基づいて、前記仮想アクセラレータに対応する全てのオブジェクトアクセラレータが、前記オブジェクトアクセラレータの前記識別子により示されるオブジェクトアクセラレータを含むかどうかを判定し、
前記仮想アクセラレータに対応する全ての前記オブジェクトアクセラレータが、前記オブジェクトアクセラレータの前記識別子により示される前記オブジェクトアクセラレータを含むと判定された場合、前記オブジェクトアクセラレータの前記識別子を削除する
ように構成される、請求項１７又は１９に記載のスケジューリング装置。
【請求項２２】
前記送受信機ユニットはさらに、
前記管理ノードにより送信される物理アクセラレータ削除コマンドを受信するように構成され、前記物理アクセラレータ削除コマンドは前記仮想マシンの前記識別子と前記物理アクセラレータの前記識別子とを含み、
前記処理ユニットはさらに、
前記仮想マシンに対応する仮想アクセラレータがあると判定された場合、前記物理アクセラレータの前記識別子に基づいて、前記仮想アクセラレータに対応する全ての物理アクセラレータが、前記物理アクセラレータの前記識別子により示される物理アクセラレータを含むかどうかを判定し
前記仮想アクセラレータに対応する全ての前記物理アクセラレータが、前記物理アクセラレータの前記識別子により示される前記物理アクセラレータを含むと判定された場合、前記物理アクセラレータの前記識別子を削除する
ように構成される、請求項１８又は２０に記載のスケジューリング装置。
【請求項２３】
前記アクセラレーション命令はさらに、前記仮想マシンの識別子を含み、前記処理ユニットはさらに、前記仮想マシンの前記識別子と前記仮想アクセラレータの識別子との対応関係を事前に格納するように構成され、前記仮想マシンに割り当てられる前記仮想アクセラレータを決定する場合、前記処理ユニットは具体的には、
前記仮想マシンの前記識別子と前記仮想アクセラレータの前記識別子との前記対応関係に基づいて、前記仮想マシンに対応する前記仮想アクセラレータを決定するように構成される、請求項１４から２２のいずれか一項に記載のスケジューリング装置。
【請求項２４】
前記アクセラレーション命令はさらに、前記仮想アクセラレータの識別子を含み、前記仮想マシンは、前記仮想マシンの前記識別子と前記仮想アクセラレータの識別子との対応関係を事前に格納し、前記仮想マシンに割り当てられる前記仮想アクセラレータを決定する場合、前記処理ユニットは具体的には、
前記仮想マシンに対応する前記仮想アクセラレータを前記仮想アクセラレータの前記識別子に基づいて決定するように構成される、請求項１４から２２のいずれか一項に記載のスケジューリング装置。
【請求項２５】
アクセラレーションシステムに適用されるスケジューリング装置であって、前記アクセラレーションシステムはコンピューティングノードと少なくとも１つのネットワークアクセラレータとを有し、前記コンピューティングノードは仮想マシンと前記スケジューリング装置とを含み、前記少なくとも１つのネットワークアクセラレータは少なくとも１つの物理アクセラレータを含み、
前記スケジューリング装置は、
プロセッサと、メモリと、バスとを備え、前記プロセッサと前記メモリとは前記バスを用いて接続され、前記メモリはアプリケーションコードのセットを格納するように構成され、前記プロセッサは、前記メモリに格納された前記アプリケーションコードを呼び出して、請求項１から１１のいずれか一項に記載のアクセラレーションリソーススケジューリング方法の段階を実行するように構成される、スケジューリング装置。
【請求項２６】
アクセラレーションシステムに適用される管理ノードであって、前記アクセラレーションシステムは、前記管理ノードと、コンピューティングノードと、少なくとも１つのネットワークアクセラレータとを有し、前記コンピューティングノードは仮想マシンとスケジューリング装置とを含み、前記少なくとも１つのネットワークアクセラレータは少なくとも１つの物理アクセラレータを含み、
前記管理ノードは、
前記仮想マシンにより送信されるアクセラレーションリソース利用要求を受信するように構成された送受信機ユニットであって、前記アクセラレーションリソース利用要求は、前記仮想マシンの識別子と、前記仮想マシンに割り当てられる必要な物理アクセラレーションリソースの数量と、前記物理アクセラレーションリソースを前記仮想マシンに提供する物理アクセラレータのタイプ識別子とを含む、送受信機ユニットと、
前記物理アクセラレータの前記タイプ識別子と必要な前記物理アクセラレーションリソースの前記数量とに基づいて、前記物理アクセラレーションリソースを提供する前記少なくとも１つの物理アクセラレータが属するそれぞれのネットワークアクセラレータを決定し、物理アクセラレーションリソース形成コマンドを生成するように構成された処理ユニットであって、前記物理アクセラレーションリソース形成コマンドは、前記ネットワークアクセラレータに命令して、オブジェクトアクセラレータを形成し、前記オブジェクトアクセラレータの識別子と、前記ネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを前記仮想マシンに提供するように構成された物理アクセラレータの識別子との対応関係を格納するのに用いられる、処理ユニットと
を備え、
前記送受信機ユニットはさらに、
前記物理アクセラレーションリソース形成コマンドを前記ネットワークアクセラレータに送信し、
前記ネットワークアクセラレータにより送信される前記オブジェクトアクセラレータの前記識別子を受信する
ように構成され、
前記処理ユニットはさらに、
仮想アクセラレータ利用コマンドを生成することであって、前記仮想アクセラレータ利用コマンドは前記仮想マシンの前記識別子と前記オブジェクトアクセラレータの前記識別子とを含む、生成することと、
前記仮想アクセラレータ利用コマンドを前記スケジューリング装置に送信することであって、これにより、前記スケジューリング装置は、仮想アクセラレータの識別子と前記オブジェクトアクセラレータの前記識別子との対応関係を格納する、送信することと
を行うように構成される、管理ノード。
【請求項２７】
アクセラレーションシステムに適用される管理ノードであって、前記アクセラレーションシステムは、前記管理ノードと、コンピューティングノードと、少なくとも１つのネットワークアクセラレータとを有し、前記コンピューティングノードは仮想マシンとスケジューリング装置とを含み、前記少なくとも１つのネットワークアクセラレータは少なくとも１つの物理アクセラレータを含み、
前記管理ノードは、
プロセッサと、メモリと、バスとを備え、前記プロセッサと前記メモリとは前記バスを用いて接続され、前記メモリはアプリケーションコードのセットを格納するように構成され、前記プロセッサは、前記メモリに格納された前記アプリケーションコードを呼び出して、請求項２６に記載の段階を実行するように構成される、管理ノード。
【請求項２８】
アクセラレーションシステムに適用される管理ノードであって、前記アクセラレーションシステムは、前記管理ノードとコンピューティングノードと、少なくとも１つのネットワークアクセラレータとを有し、前記コンピューティングノードは仮想マシンとスケジューリング装置とを含み、前記少なくとも１つのネットワークアクセラレータは少なくとも１つの物理アクセラレータを含み、
前記管理ノードは、
前記仮想マシンにより送信されるアクセラレーションリソース利用要求を受信するように構成された送受信機ユニットであって、前記アクセラレーションリソース利用要求は、前記仮想マシンの識別子と、前記仮想マシンに割り当てられる必要な物理アクセラレーションリソースの数量と、前記物理アクセラレーションリソースを前記仮想マシンに提供する物理アクセラレータのタイプ識別子とを含む、送受信機ユニットと、
前記物理アクセラレータの前記タイプ識別子と必要な前記物理アクセラレーションリソースの前記数量とに基づいて、前記物理アクセラレーションリソースを提供する前記少なくとも１つの物理アクセラレータが属するそれぞれのネットワークアクセラレータを決定することと、仮想アクセラレータ利用コマンドを生成することであって、前記仮想アクセラレータ利用コマンドは、前記仮想マシンの前記識別子と、それぞれのネットワークアクセラレータに存在し且つ物理アクセラレーションリソースを前記仮想マシンに提供するように構成された物理アクセラレータの識別子とを含む、生成することと、前記仮想アクセラレータ利用コマンドを前記スケジューリング装置に送信することであって、これにより、前記スケジューリング装置は、前記仮想アクセラレータ利用コマンドに基づいて、仮想アクセラレータの識別子と、それぞれのネットワークアクセラレータに存在し且つ前記物理アクセラレーションリソースを前記仮想マシンに提供するように構成された前記物理アクセラレータの前記識別子との対応関係を格納する、送信することとを行うように構成された処理ユニットと
を備える、管理ノード。
【請求項２９】
アクセラレーションシステムに適用される管理ノードであって、前記アクセラレーションシステムは、前記管理ノードと、コンピューティングノードと、少なくとも１つのネットワークアクセラレータとを有し、前記コンピューティングノードは仮想マシンとスケジューリング装置とを含み、前記少なくとも１つのネットワークアクセラレータは少なくとも１つの物理アクセラレータを含み、
前記管理ノードは、
プロセッサと、メモリと、バスとを備え、前記プロセッサと前記メモリとは前記バスを用いて接続され、前記メモリはアプリケーションコードのセットを格納するように構成され、前記プロセッサは、前記メモリに格納された前記アプリケーションコードを呼び出して、請求項２８に記載の管理ノードで行われる処理を実行するように構成される、管理ノード。
【請求項３０】
請求項２６又は２８に記載の管理ノードと、コンピューティングノードと、少なくとも１つのネットワークアクセラレータとを備えるアクセラレーションシステムであって、前記コンピューティングノードは、仮想マシンと、請求項１４から２５のいずれか一項に記載のスケジューリング装置とを有し、前記少なくとも１つのネットワークアクセラレータは少なくとも１つの物理アクセラレータを含む、アクセラレーションシステム。
【請求項３１】
請求項１から１３のいずれか一項に記載のアクセラレーションリソーススケジューリング方法をコンピュータに実行させるためのプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００５６
【補正方法】変更
【補正の内容】
【００５６】
図２を参照すると、図２は、本願の一実施形態による別のアクセラレーションリソーススケジューリングシステムの概略アーキテクチャ図である。図１に示すシステムアーキテクチャに基づいて、図２に示すシステムアーキテクチャは、物理アクセラレーションリソースが１つのネットワークアクセラレータ３０を含み且つコンピューティングノード１０が１つの仮想マシン１０２を含む一例を用いて説明される。図２に示すように、コンピューティングノード１０は、仮想マシン１０２とスケジューリング装置１０４とを含む。ネットワークアクセラレータ３０は少なくとも１つの物理アクセラレータを含み、図２では、２つの物理アクセラレータ３０２及び３０３が一例として説明に用いられている。ネットワークアクセラレータ３０の中にある物理アクセラレータは、限定されることはないが、グラフィック処理装置（英語表記：Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、略してＧＰＵ）又はフィールドプログラマブルゲートアレイ（Ｆｉｅｌｄ Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ、ＦＰＧＡ）、又は特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ−Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ、ＡＳＩＣ）チップなどの装置を用いて実装されてよい。それぞれのネットワークアクセラレータ３０の中にある少なくとも１つの物理アクセラレータが、限定されることはないが、ＧＰＵ、ＦＰＧＡ、又はＡＳＩＣなどの装置を用いて実装されてよい。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００５７
【補正方法】変更
【補正の内容】
【００５７】
具体的には、コンピューティングノード１０の仮想マシン１０２により用いられるプロセッサ１０１が、ペリフェラルコンポーネントインターコネクトエクスプレス（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  ｅｘｐｒｅｓｓ、ＰＣＩｅ）バス１０３を用いてスケジューリング装置１０４に接続される。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００６２
【補正方法】変更
【補正の内容】
【００６２】
図３を参照すると、図３は、本願の一実施形態による別のアクセラレーションリソーススケジューリングシステムの概略アーキテクチャ図である。図３に示すシステムアーキテクチャと図２に示すシステムアーキテクチャとは、仮想アクセラレータと物理アクセラレーションリソースとの間のマッピング論理が異なることを除いて、ハードウェア実装に何も差がない。図２に示す、仮想アクセラレータと物理アクセラレーションリソースとの間のマッピング論理は、仮想アクセラレータとオブジェクトアクセラレータとの間のマッピング論理と、オブジェクトアクセラレータと物理アクセラレータとの間のマッピング論理とを用いて実装される。図３に示す、仮想アクセラレータと物理アクセラレーションリソースとの間のマッピング論理は、仮想アクセラレータと物理アクセラレータとの間のマッピング論理を用いて実装される。図３に示すシステムアーキテクチャでは、管理ノード２０が、ネットワークアクセラレータ３０と、仮想マシン１０２と、スケジューリング装置１０４とにネットワークを用いて接続され、管理ノード２０は、ユーザのアクセラレーション要件に基づいて、複数の物理アクセラレーションリソースのうちの少なくともいくつかの物理アクセラレーションリソースを使用のために仮想マシン１０２に割り当てるように構成される。特定の実装例において、管理ノード２０は、仮想アクセラレータ利用コマンドをスケジューリング装置１０４に送信して、仮想アクセラレータ１０５の形成と、仮想アクセラレータ１０５と物理アクセラレータ３０２との間のマッピング論理の処理とを担うようスケジューリング装置１０４に命令する。仮想アクセラレータ１０５と物理アクセラレータ３０２との間のマッピング論理は、図３に破線を用いて示されている。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００７８
【補正方法】変更
【補正の内容】
【００７８】
ＶＭがネットワークアクセラレータの物理アクセラレーションリソースにアクセスするスケジューリング処理全体が、コンピューティングノードの仮想化中間層（ハイパーバイザ）の関与を必要とせず、仮想マシンに対応する仮想アクセラレータに直接アクセスすることによって、スケジューリング装置により実施され得るので、ネットワークアクセラレータにアクセスする場合の仮想マシンの遅延を低減することができる。さらに、仮想アクセラレータがＶＭに対して可視であり、ＶＭは複数のネットワークアクセラレータを直接管理する必要がないので、ＶＭのテナントによるアクセラレーションリソースの使用及び管理を簡略化することができる。さらに、仮想アクセラレータと物理アクセラレーションリソースとのマッピング関係が、仮想マシンに割り当てられる物理アクセラレーションリソースの、スケジューリング装置に対するマッピングを実施することにより実装される。このように、異なる仮想マシンにそれぞれ対応する仮想アクセラレータがマッピングされる物理アクセラレーションリソースを迅速に決定することができ、仮想マシンのアクセラレーション命令の直接転送が実施され得るので、仮想マシンのデータフロー全体のアクセラレーションを完了することができる。さらに、クラウド内の異なるタイプの物理アクセラレーションリソース（ＧＰＵ、ＦＰＧＡ、又はＡＳＩＣアクセラレーションリソースなど）が、一元的に管理され且つ仮想化され得る。クラウド内の物理アクセラレーションリソースは、異なる仮想マシンの異なるアクセラレーション要件に基づいて柔軟に仮想化されるので、互換性が高い。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１５５
【補正方法】変更
【補正の内容】
【０１５５】
図７に示すスケジューリング装置の送受信機ユニット１００の諸機能が、図４の段階Ｓ４０１、Ｓ４０５、及びＳ４０６、又は図５Ａ及び図５Ｂの段階Ｓ５０７、Ｓ５１０、Ｓ５１３、Ｓ５１５、及びＳ５１６、又は図６Ａ及び図６Ｂの段階Ｓ６０４、Ｓ６０７、Ｓ６１０、Ｓ６１２、及びＳ６１３に対応する。送受信機ユニット１００は、図４の段階Ｓ４０１、Ｓ４０５、及びＳ４０６、又は図５Ａ及び図５Ｂの段階Ｓ５０７、Ｓ５１０、Ｓ５１３、Ｓ５１５、及びＳ５１６、又は図６Ａ及び図６Ｂの段階Ｓ６０４、Ｓ６０７、Ｓ６１０、Ｓ６１２、及びＳ６１３の動作を行うことができる。図７に示すスケジューリング装置の処理ユニット２００の諸機能が、図４の段階Ｓ４０２及びＳ４０３、又は図５Ａ及び図５Ｂの段階Ｓ５０８、Ｓ５０９、Ｓ５１１、Ｓ５１２、及びＳ５１６、又は図６Ａ及び図６Ｂの段階Ｓ６０５、Ｓ６０６、Ｓ６０８、及びＳ６０９に対応する。処理ユニット２００は、図４の段階Ｓ４０２及びＳ４０３、又は図５Ａ及び図５Ｂの段階Ｓ５０８、Ｓ５０９、Ｓ５１１、Ｓ５１２、及びＳ５１６、又は図６Ａ及び図６Ｂの段階Ｓ６０５、Ｓ６０６、Ｓ６０８、及びＳ６０９の動作を行うことができる。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０１７６
【補正方法】変更
【補正の内容】
【０１７６】
図１１に示す管理ノードの送受信機ユニット５００の機能が、図６Ａの段階Ｓ６０１に対応する。送受信機ユニット５００は、図６Ａの段階Ｓ６０１の動作を行うことができる。図１１に示す管理ノードの処理ユニット６００の諸機能が、図６Ａの段階Ｓ６０２、Ｓ６０３、及びＳ６０４に対応する。処理ユニット６００は、図６Ａの段階Ｓ６０２、Ｓ６０３、及びＳ６０４の動作を行うことができる。
【国際調査報告】
2021503124.tif 000017
2021503124.tif 000018
2021503124.tif 000019
2021503124.tif 000020