JP2018011148A - 情報処理装置、通信方法決定プログラムおよび通信方法決定方法 - Google Patents

情報処理装置、通信方法決定プログラムおよび通信方法決定方法 Download PDF

Info

Publication number
JP2018011148A
JP2018011148A JP2016137587A JP2016137587A JP2018011148A JP 2018011148 A JP2018011148 A JP 2018011148A JP 2016137587 A JP2016137587 A JP 2016137587A JP 2016137587 A JP2016137587 A JP 2016137587A JP 2018011148 A JP2018011148 A JP 2018011148A
Authority
JP
Japan
Prior art keywords
communication
communication method
selection probability
response time
average response
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2016137587A
Other languages
English (en)
Inventor
優人 田邨
Yuto Tamura
優人 田邨
耕太 中島
Kota Nakajima
耕太 中島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016137587A priority Critical patent/JP2018011148A/ja
Priority to US15/610,788 priority patent/US20180019837A1/en
Publication of JP2018011148A publication Critical patent/JP2018011148A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1825Adaptation of specific ARQ protocol parameters according to transmission conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0015Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy
    • H04L1/0019Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy in which mode-switching is based on a statistical approach
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0002Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate
    • H04L1/0003Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate by switching between different modulation schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0006Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
    • H04L1/0007Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format by modifying the frame length
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0009Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Communication Control (AREA)

Abstract

【課題】状況の変化に応じて適切な通信方法を決定すること。【解決手段】情報処理装置1は、記憶部1aおよび演算部1bを有する。記憶部1aは、通信データのサイズに対して通信方法の選択確率を記憶する。演算部1bは、通信データのサイズに対する選択確率に応じて複数の通信方法から今回の通信に用いる通信方法を選択する。演算部1bは、選択した通信方法による通信結果を記録する。演算部1bは、通信結果に基づいて記憶部1aに記憶された選択確率を更新する。【選択図】図1

Description

本発明は情報処理装置、通信方法決定プログラムおよび通信方法決定方法に関する。
現在、複数の装置がネットワークを介して相互に通信するシステムが利用されている。システムでは、複数の通信方法を利用可能なことがある。
例えば、複数の伝送方式の中から1つを選択して、端末局にデータ信号を送信する基地局の提案がある。この提案では、基地局は、制御信号の送受信を含むオーバヘッドと、データ信号のデータ長と、変調方式と、符号化率と、伝送用のサブキャリア数とに基づいて、伝送方式毎に伝送速度を算出し、最大の伝送速度に対応する伝送方式を選択する。
また、端末によるパケット送信に直交多重方式または非直交多重方式のどちらを用いるかを決定するためのトラフィック条件を決定する基地局の提案もある。この提案では、基地局は、直交多重方式において使用する無線リソースを通知するための無線リソース割り当て信号の量と非直交多重方式における基地局のセル内の端末への干渉量とに基づいて、トラフィック条件を決定する。
ただし、上記の無線通信システムにおける変調方式、符号化率、無線リソース割り当て信号の量および干渉量という指標は、如何なるシステムでも通信方法の選択に利用できるわけではない。
特開2015−149556号公報 国際公開第2015/015543号
複数の通信方法において、通信データのサイズに応じて通信性能(例えば、応答時間など)に差異があることがある。この場合、情報処理装置により、送信対象の通信データに対して通信性能が他の通信方法に比べて高くなる通信方法を選択させることが考えられる。このような選択を行えるようにするために、例えば、通信データのサイズに応じた通信性能を、通信方法毎に予め測定し、通信データのサイズ(あるいは、サイズ範囲)毎に選択すべき通信方法を定めた情報を、情報処理装置に予め格納しておくことが考えられる。
ところが、このように静的な条件で通信方法を決定すると、通信方法の決定が当該条件により固定化してしまう。このため、状況の変化(例えば、情報処理装置の負荷の変動による通信性能の変化など)に対応できないことがあるという問題がある。
1つの側面では、本発明は、状況の変化に応じて適切な通信方法を決定可能にすることを目的とする。
1つの態様では、情報処理装置が提供される。この情報処理装置は、記憶部と演算部とを有する。記憶部は、通信データのサイズに対して通信方法の選択確率を記憶する。演算部は、通信データのサイズに対する選択確率に応じて複数の通信方法から今回の通信に用いる通信方法を選択し、選択した通信方法による通信結果を記録し、通信結果に基づいて記憶部に記憶された選択確率を更新する。
1つの側面では、状況の変化に応じて適切な通信方法を決定できる。
第1の実施の形態の情報処理装置を示す図である。 第2の実施の形態の情報処理システムを示す図である。 ノードのハードウェア例を示す図である。 ノードのソフトウェア例を示す図である。 iSERモジュールの機能例を示す図である。 閾値制御による通信方法決定の例を示す図である。 iSERイニシエータ/ターゲットの機能例を示す図である。 選択確率テーブルの例を示す図である。 平均応答時間テーブルの例を示す図である。 処理の呼出関係の例を示す図である。 iSERイニシエータ処理の例を示すフローチャートである。 iSERターゲット処理の例を示すフローチャートである。 選択確率更新の具体例(その1)を示す図である。 選択確率更新の具体例(その2)を示す図である。 通信パケットサイズに対するテーブル例を示す図である。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の情報処理装置を示す図である。情報処理装置1は、情報処理装置2と通信する。情報処理装置1,2は、ネットワーク3に接続されており、ネットワーク3を介して通信する。情報処理装置1は、情報処理装置2との通信に用いる通信方法として、複数の通信方法のうちの何れかを選択することができる。
複数の通信方法は、通信方法X,Yを含む。通信方法Xは、比較的小さなサイズのデータを送信する場合に、通信方法Yよりも通信を高速化できる。通信方法Yは、比較的大きなサイズのデータを送信する場合に、通信方法Xよりも通信を高速化できる。
情報処理装置1は、記憶部1aおよび演算部1bを有する。記憶部1aは、RAM(Random Access Memory)などの揮発性記憶装置でもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置でもよい。演算部1bは、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などを含み得る。演算部1bはプログラムを実行するプロセッサでもよい。ここでいう「プロセッサ」には、複数のプロセッサの集合(マルチプロセッサ)も含まれる。
記憶部1aは、選択確率情報T1および通信結果情報T2を記憶する。選択確率情報T1は、通信データのサイズ(通信データサイズ)に対する通信方法の選択確率を示す情報である。
「通信データサイズ」は、例えば、情報処理装置1が今回送信するデータ(より具体的には、記憶部1aに確保された送信バッファに格納されたデータ)のサイズである。「通信データサイズ」は、情報処理装置1が今回のデータ送信に用いる通信パケットのサイズ(通信パケットサイズ)でもよい。
「選択確率」は、演算部1bにより該当の通信方法を選択させる確率を表している。例えば、ある通信データサイズにおいて、通信データ単位のデータ送信回数をN(Nは2以上の整数)とし、そのうち通信方法Xを選択する回数をn1(n1は1以上の整数)、通信方法Yを選択する回数をn2(n2は1以上の整数)とする。このとき、該当の通信データサイズの通信方法Xの選択確率p1(p1は0<p1<1の実数)は、比較的大きなNに対して、n1/N〜p1となるように通信方法Xを演算部1bに選択させることを意味する。同様に、該当の通信データサイズの通信方法Yの選択確率p2(p2は0<p2<1)は、比較的大きなNに対して、n2/N〜p2となるように通信方法Yを演算部1bに選択させることを意味する。
選択確率情報T1の例では、通信データサイズa,b,cのように、通信データサイズを3つに区分している。通信データサイズの1つの区分(例えば、通信データサイズa)は、通信データサイズの1つの範囲を示していると考えてもよい。通信データサイズbは、通信データサイズaよりも大きな通信データサイズの区分である。通信データサイズcは、通信データサイズbよりも大きな通信データサイズの区分である。
ここで、通信方法Xは、通信データサイズが比較的小さい場合は、通信方法Yよりも通信性能が高い。このため、選択確率情報T1では、通信データサイズが小さいほど、通信方法Xの選択確率が大きく設定される。また、選択確率情報T1の例では、通信データサイズa,bにおいて、通信方法Xの選択確率は、通信方法Yの選択確率よりも大きい。
一方、通信方法Yは、通信データサイズが比較的大きい場合は、通信方法Xよりも通信性能が高い。このため、選択確率情報T1では、通信データサイズが大きいほど、通信方法Yの選択確率が大きく設定される。また、選択確率情報T1の例では、通信データサイズcにおいて、通信方法Yの選択確率は通信方法Xの選択確率よりも大きい。
より具体的には、選択確率情報T1の例によれば、通信データサイズaに対して、通信方法Xの選択確率は0.9であり、通信方法Yの選択確率は0.1である。通信データサイズbに対して、通信方法Xの選択確率は0.7であり、通信方法Yの選択確率は0.3である。通信データサイズcに対して、通信方法Xの選択確率は0.3であり、通信方法Yの選択確率は0.7である。選択確率は、何れの通信方法も0よりも大きい値となるように決定される。
通信結果情報T2は、通信データサイズに対して通信方法毎の通信結果を記録した情報である。通信結果は、通信性能を表す指標を含む。通信性能を表す指標は、例えば、通信の平均応答時間である。平均応答時間は、該当の通信データサイズ/通信方法を用いた通信に関する、過去のある時点から現在までの複数の応答時間の相加平均である。例えば、演算部1bは、通信パケット毎に、あるいは、所定数の通信パケット毎に、情報処理装置2から受信確認応答(ACK:ACKnowledgement)を受信する。演算部1bは、通信パケットの送信時刻とACKの受信時刻との差を求めることで、通信の応答時間を計測できる。ここで、以下の説明において、応答時間および平均応答時間の単位はマイクロ秒である(以下、同様)。
ある時点において、通信結果情報T2の例によれば、通信データサイズaに対して、通信方法Xの平均応答時間は10であり、通信方法Yの平均応答時間は20である。通信データサイズbに対して、通信方法Xの平均応答時間は15であり、通信方法Yの平均応答時間は20である。通信データサイズcに対して、通信方法Xの平均応答時間は30であり、通信方法Yの平均応答時間は25である。
演算部1bは、ある通信データの送信を開始する際に、記憶部1aに確保された送信バッファに当該通信データを格納し、選択確率情報T1を参照して、当該通信データの通信データサイズに対する各通信方法の選択確率を取得する。例えば、演算部1bは、該当の通信データサイズが通信データサイズbの区分に属すると判断すると、通信方法Xの選択確率0.7、および、通信方法Yの選択確率0.3を選択確率情報T1から取得する。
演算部1bは、通信データサイズに対する当該選択確率に応じて複数の通信方法(通信方法X,Y)から今回の通信に用いる通信方法を選択する。例えば、演算部1bは、通信方法Xの選択確率0.7、および、通信方法Yの選択確率0.3に従って、何れかの通信方法を選択する。ここでは、演算部1bは、通信方法Xを選択するものとする。
演算部1bは、選択した通信方法による通信結果を記録する。例えば、演算部1bは、選択した通信方法Xによる通信結果を、通信結果情報T2に記録する。一例として、今回の通信データの送信が完了した後の時点で、通信データサイズbの区分における通信方法Xの平均応答時間は、25に更新されているものとする。レコードT2aは、通信結果情報T2における通信データサイズbの当該更新後のレコードを例示している。
演算部1bは、通信結果に基づいて、記憶部1aに記憶された選択確率を更新する。上記の例では、通信結果情報T2の更新前では、通信データサイズbについて、通信方法Xの平均応答時間が15であり、通信方法Yの平均応答時間が20である。一方、通信結果情報T2の更新後では、通信データサイズbについて、通信方法Xの平均応答時間が25であり、通信方法Yの平均応答時間が20である。すなわち、通信データサイズbについて、通信方法X,Yによる平均応答時間の大小関係が逆転しており、通信の性能特性が変化していることになる。
演算部1bは、通信方法X,Yによる平均応答時間の大小関係が逆転したことを検出すると、選択確率情報T1に登録された通信データサイズbに対応する通信方法Xの選択確率、および、通信方法Yの選択確率を更新する。具体的には、演算部1bは、通信データサイズbに対して、通信方法Xの選択確率を下げ、通信方法Yの選択確率を上げる。なぜなら、上記の通信方法X,Yによる平均応答時間の大小関係の逆転は、通信データサイズbでの通信では、通信方法Xよりも通信方法Yを選択した方が平均応答時間の短縮を図れる可能性があることの示唆と捉えることができるからである。
ここで、演算部1bは、種々の方法により、選択確率の増減を行える。ただし、前述のように演算部1bは、各通信方法の選択確率を0よりも大きくなるようにする。選択確率の更新後も、各通信方法による応答時間の比較を行えるようにするためである。
1つの例では、演算部1bは、平均応答時間の大小関係の逆転に応じて、選択確率の大小関係を逆転させる。上記の例では、演算部1bは、通信データサイズbについて、通信方法Xの選択確率を0.3に更新し、通信方法Yの選択確率を0.7に更新する。レコードT1aは、選択確率情報T1における通信データサイズbの当該更新後のレコードを例示している。
あるいは、演算部1bは、選択確率の更新を所定の周期で定められるタイミング毎に、所定の変化量ずつ段階的に行ってもよい。例えば、演算部1bは、通信方法Xの選択確率を0.7から0.3まで、0.1ずつ段階的に減らす。一方、演算部1bは、通信方法Yの選択確率を0.3から0.7まで、0.1ずつ段階的に増やす。段階的に増減している間に、演算部1bは、通信データサイズbにおける通信方法X,Yの平均応答時間の大小関係が再度逆転したことを検出すると、通信方法Xの選択確率を0.7に、通信方法Yの選択確率を0.3に戻す。なぜなら、通信方法X,Yの平均応答時間の大小関係の最初の逆転は、何らかの一時的な要因によって生じていた可能性が高いからである。
ここで、例えば、通信データサイズに応じた通信性能を、通信方法毎に、装置開発時などに予め測定し、通信データサイズ毎に選択すべき通信方法を定めた条件を、情報処理装置に予め格納しておくことが考えられる。
ところが、このように静的な条件で通信方法を決定すると、通信方法の決定が当該条件により固定化してしまう。このため、状況の変化(例えば、情報処理装置の負荷の変動による通信性能の変化など)に対応できないことがあるという問題がある。
一方、情報処理装置1によれば、選択確率に応じて通信方法を選択し、通信結果に基づいて選択確率を更新する。このとき、ある通信データサイズにおいて、相対的に高い通信性能を実現できる通信方法の選択確率を相対的に高くし、相対的に低い通信性能となる通信方法の選択確率を相対的に低くする。そうすると、比較的高い通信性能を実現しながら、かつ、各通信方法の通信性能の比較により、性能特性の変化を把握することが可能となる。こうして、情報処理装置1は、状況の変化に応じて適切な通信方法を決定することができる。
[第2の実施の形態]
図2は、第2の実施の形態の情報処理システムを示す図である。第2の実施の形態の情報処理システムは、ノード100,200を含む。ノード100,200は、InfiniBand(InfiniBandは米国登録商標)スイッチ10に、IB(InfiniBand)ケーブルを介して接続されている。InfiniBandスイッチ10を用いて形成されるネットワークは、第1の実施の形態のネットワーク3の一例である。
ノード100,200は、InfiniBandスイッチ10を介して相互に通信する。例えば、ノード100,200は、iSER(iSCSI Extensions for RDMA)によるRDMA(Remote Direct Memory Access)を行える。ここで、iSCSIはInternet Small Computer System Interfaceの略である。ノード100,200は、コンピュータやサーバなどと呼ばれてもよい。ノード100は、第1の実施の形態の情報処理装置1の一例である。
図3は、ノードのハードウェア例を示す図である。ノード100は、プロセッサ101、RAM102、HDD103、HCA(Host Channel Adapter)104、画像信号処理部105、入力信号処理部106、媒体リーダ107および通信インタフェース108を有する。各ユニットはノード100のバスに接続されている。ノード200もノード100と同様のユニットを用いて実現できる。
プロセッサ101は、ノード100の情報処理を制御する。プロセッサ101は、マルチプロセッサでもよい。プロセッサ101は、例えばCPU、DSP、ASICまたはFPGAなどである。プロセッサ101は、CPU、DSP、ASIC、FPGAなどのうちの2以上の要素の組み合わせでもよい。
RAM102は、ノード100の主記憶装置である。RAM102は、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM102は、プロセッサ101による処理に用いる各種データを記憶する。
HDD103は、ノード100の補助記憶装置である。HDD103は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、OSのプログラム、アプリケーションプログラム、および各種データを記憶する。ノード100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
HCA104は、IBケーブルを用いて、InfiniBandスイッチ10に接続されている。HCA104は、InfiniBandスイッチ10を介してノード200と通信する。
画像信号処理部105は、プロセッサ101からの命令に従って、ノード100に接続されたディスプレイ11に画像を出力する。ディスプレイ11としては、CRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイなどを用いることができる。
入力信号処理部106は、ノード100に接続された入力デバイス12から入力信号を取得し、プロセッサ101に出力する。入力デバイス12としては、例えば、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
媒体リーダ107は、記録媒体13に記録されたプログラムやデータを読み取る装置である。記録媒体13として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)を使用できる。また、記録媒体13として、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することもできる。媒体リーダ107は、例えば、プロセッサ101からの命令に従って、記録媒体13から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
通信インタフェース108は、ネットワーク20と接続される。通信インタフェース108は、ネットワーク20を介して他の情報処理装置と通信を行う。
図4は、ノードのソフトウェア例を示す図である。ノード100は、OS110およびアプリケーション120を含む。OS110は、ノード100の全体を制御する基本的なソフトウェアである。アプリケーション120は、ノード100において、ユーザの業務支援機能を提供するソフトウェアである。
OS110は、iSCSIコントローラ111およびドライバ112を有する。iSCSIコントローラ111は、iSCSIプロトコルを処理するソフトウェアモジュールである。iSCSIコントローラ111は、iSERモジュール150を有する。iSERモジュール150は、RDMA機能を提供するモジュールである。ドライバ112は、HCA104を制御するソフトウェアである。
ノード200は、ノード100と同様に、OS210およびアプリケーション220を有する。OS210は、ノード200の全体を制御する基本的なソフトウェアである。アプリケーション220は、ノード200において、ユーザの業務支援機能を提供するソフトウェアである。
OS210は、iSCSIコントローラ211およびドライバ212を有する。iSCSIコントローラ211は、iSCSIプロトコルを処理するソフトウェアモジュールである。iSCSIコントローラ211は、iSERモジュール250を有する。iSERモジュール250は、RDMA機能を提供するモジュールである。ドライバ212は、HCA204を制御するソフトウェアである。
図5は、iSERモジュールの機能例を示す図である。iSERモジュール150は、iSERイニシエータ160およびiSERターゲット170の機能を有する。iSERモジュール250は、iSERイニシエータ260およびiSERターゲット270の機能を有する。
iSERイニシエータ160は、iSERターゲット270に接続し、通信する。同様に、iSERイニシエータ260は、iSERターゲット170に接続し、通信する。なお、通信の際に、iSERイニシエータとして機能するノードをクライアントノードと称することもある。iSERターゲットとして機能するノードをサーバノードと称することもある。すなわち、ノード100がクライアントノードとして動作し、ノード200がサーバノードとして動作することもあるし、ノード200がクライアントノードとして動作し、ノード100がサーバノードとして動作することもある。
ここで、iSERを用いたRDMAによるデータ送信において、2種類の通信方法(通信方法A,Bとする)を選択可能である。通信方法Aは、RDMA_SEND(単にSENDと称することがある)である。通信方法Bは、RDMA_WRITE(単にRDMAと称することがある)である。RDMA_WRITEは、ゼロコピー通信とも呼ばれることもある。
RDMA_WRITEでは、RAM102上の送信対象となるメモリ領域を通信中に確保しておくために(例えば、メモリ領域のスワップアウトを防ぐために)、メモリ登録(memory registration)処理を伴う。一方、SENDでは、このようなメモリ登録処理を行わない代わりに、プロセッサ101によって、RAM102上の通信データを、RAM102上の通信用の所定のバッファにコピーする処理を伴う。このように、SENDおよびRDMA_WRITEでは、異なる処理を行う。各処理の通信データサイズおよび通信応答時間には次のような関係がある。
図6は、閾値制御による通信方法決定の例を示す図である。図6では、横軸を通信データサイズとし、縦軸を通信応答時間とする。横軸の左側から右側に向かう方向が正の方向である。縦軸の下側から上側に向かう方向が正の方向である。
図6(A)は、通信データサイズと通信応答時間との関係の一例を示している。実線の直線L1は、通信方法A(SEND)を用いた場合の関係を示す。点線の直線L2は、通信方法B(RDMA)を用いた場合の関係を示す。
通信方法Aは、通信起動のオーバヘッドが、通信方法Bに比べて小さい。一方、通信方法Aは、通信データサイズの増大に対して通信応答時間の低速化が通信方法Bに比べて激しい。
通信方法Bは、通信起動のオーバヘッドが、通信方法Aに比べて大きい。一方、通信方法Bは、通信データサイズの増大に対して通信応答時間の低速化が通信方法Aに比べて緩やかである。
このような関係があるとき、通信方法を選択するための1つの方法として、静的条件による閾値制御を行うことが考えられる。具体的には、通信方法A,Bに対する上記の関係性を予め調査して、直線L1,L2により通信応答時間の大小関係が逆転する通信データサイズを閾値D1としてノードに設定しておく。ノードは、実際に送信する通信データサイズと、閾値D1との比較により、通信方法A,Bの何れかを選択する。例えば、ノードは、通信データサイズが閾値D1よりも小さければ通信方法Aを選択し、通信データサイズが閾値D1以上であれば通信方法Bを選択する。
ところが、図6(A)で例示した関係性が常に成立しているとは限らない。例えば、実際の環境では、ノードの運用に応じた負荷などの状況の変化によって、通信データサイズと通信応答時間との関係は変化し得る。図6(B)は、通信方法Aにおける通信データサイズと通信応答時間との変化後の関係(実線の直線L1aに相当)を例示する。直線L1aは、直線L1よりも、左側にシフトしている。このため、直線L1a,L2により通信応答時間の大小関係が逆転する通信データサイズD1aは、閾値D1よりも小さくなる。
この場合、上記の閾値D1を用いた閾値制御を行うと、通信データサイズが、通信データサイズD1a以上で、閾値D1よりも小さい値D2であるとき、ノードは通信方法Bの方が有効であるにも関わらず、通信方法Aを選択してしまうことになる。このように、静的条件による閾値制御では、状況の変化に追随して適切な通信方法を選択することは困難である。
そこで、ノード100,200は、状況の変化に追随して適切な通信方法を選択可能にする機能を提供する。以下では、ノード100がiSERイニシエータ160として機能し、ノード200がiSERターゲット270として機能する例を示すが、iSERイニシエータ/ターゲットの役割をノード100,200で逆にしてもよい。
図7は、iSERイニシエータ/ターゲットの機能例を示す図である。iSERイニシエータ160は、記憶部161、バッファ162、通信方法選択部163および通信処理部164を有する。記憶部161は、RAM102やHDD103に確保された記憶領域を用いて実現される。バッファ162は、RAM102に確保された記憶領域を用いて実現される。通信方法選択部163および通信処理部164は、RAM102に記憶されたプログラムをプロセッサ101が実行することで実現される。
記憶部161は、選択確率テーブルおよび平均応答時間テーブルを記憶する。選択確率テーブルは、送信対象となるデータのサイズの範囲(送信データサイズ範囲と称する)に対応付けて、通信方法Aの選択確率、および、通信方法Bの選択確率が登録されるテーブルである。平均応答時間テーブルは、送信データサイズ範囲に対応付けて、通信方法Aの平均応答時間、および、通信方法Bの平均応答時間が登録されるテーブルである。なお、平均応答時間は、相加平均により計算される。
バッファ162は、送信対象のデータ(送信データと称する)を一時的に格納する。ここで、バッファ162に格納される送信データは、通信データの一例である(この場合、送信データサイズも通信データサイズの一例である)。
通信方法選択部163は、記憶部161に記憶された選択確率テーブルに基づいて、今回の送信データの送信に用いる通信方法を選択する。また、通信方法選択部163は、選択した通信方法による平均応答時間を測定して、記憶部161に記憶された平均応答時間テーブルを更新する。通信方法選択部163は、平均応答時間テーブルの更新に応じて、選択確率テーブルに記憶された選択確率を更新する。
通信処理部164は、通信方法選択部163により選択された通信方法を用いて、ノード200に送信データを送信する。具体的には、通信処理部164は、送信データをパケット化し、ノード200に送信する。送信データのサイズが1つのIB(InfiniBand)パケットに収まるサイズよりも大きければ、通信処理部164は、送信データを分割して、複数のIBパケットを生成し、ノード200に送信する。例えば、通信処理部164は、IBパケット毎に、ノード200からACKを受信する。あるいは、通信処理部164は、所定数のIBパケット毎に、ノード200からACKを受信してもよい。
iSERターゲット270は、バッファ271および通信処理部272を有する。バッファ271は、ノード200が備えるRAMに確保された記憶領域を用いて実現される。通信処理部272は、ノード200が備えるRAMに記憶されたプログラムを、ノード200が備えるプロセッサが実行することで実現される。
バッファ271は、ノード100から受信したデータ(受信データという)を一時的に格納する。
通信処理部272は、ノード100からパケット化された受信データを受信する。通信処理部272は、受信データから選択された通信方法を特定し、特定した通信方法に応じて受信データに対する所定の受信処理を行う。通信処理部272は、IBパケット毎に、ノード100にACKを送信する。あるいは、通信処理部272は、所定数のIBパケット毎に、ノード100にACKを送信してもよい。
図8は、選択確率テーブルの例を示す図である。選択確率テーブル161aは、記憶部161に格納される。選択確率テーブル161aは、送信データサイズ範囲および選択確率の項目を含む。
送信データサイズ範囲の項目には、送信データサイズ範囲が登録される。ここで、送信データサイズ範囲を示す記号をDとする。図8の例では、送信データサイズ範囲は、D<1KB(KBはキロバイトの略)、1KB≦D<10KB、10KB≦D<100KB、および、100KB≦D<1MB(MBはメガバイトの略)の4つに区分されている。選択確率の項目には、通信方法Aの選択確率、および、通信方法Bの選択確率が登録される。
ここで、図6で説明したように、通信方法Aは、送信データのサイズが比較的小さい場合に有利である。このため、送信データサイズ範囲が小さい方の2つの区分において、通信方法Aの選択確率を、通信方法Bの選択確率よりも大きくする。また、通信方法Bは、送信データのサイズが比較的大きい場合に有利である。このため、送信データサイズ範囲が大きい方の2つの区分において、通信方法Bの選択確率を、通信方法Bの選択確率よりも大きくする。
例えば、選択確率テーブル161aには、送信データサイズ範囲が“D<1KB”(KBはキロバイトの略)、通信方法Aの選択確率が“0.99”、通信方法Bの選択確率が“0.01”という情報が登録される。これは、送信データサイズ範囲が1KB未満の場合、通信方法Aの選択確率を0.99(=99%)とし、通信方法Bの選択確率を0.01(=1%)とすることを示す。
同様に、選択確率テーブル161aによれば、送信データサイズ範囲が1KB≦D<10KBのとき、通信方法Aの選択確率は0.7に設定され、通信方法Bの選択確率は0.3に設定されている。また、送信データサイズ範囲が10KB≦D<100KBのとき、通信方法Aの選択確率は0.2に設定され、通信方法Bの選択確率は0.8に設定されている。更に、送信データサイズ範囲が100KB≦D<1MBのとき、通信方法Aの選択確率は0.01に設定され、通信方法Bの選択確率は0.99に設定されている。
通信方法Aの選択確率、および、通信方法Bの選択確率は、何れも0よりも大きい値となるように決定される。
図8で例示した選択確率テーブル161aの設定の初期値は、事前の検証環境で暫定的に求まる閾値D1により決定できる。例えば、図8で例示した選択確率テーブル161aの設定が初期値と考える場合、閾値D1=10KBであったと考えてもよい。なお、選択確率テーブル161aを用いて、更に大きな送信データサイズについて管理することもできる。
図9は、平均応答時間テーブルの例を示す図である。平均応答時間テーブル161bは、記憶部161に格納される。平均応答時間テーブル161bは、送信データサイズ範囲および平均応答時間の項目を含む。
送信データサイズ範囲の項目には、送信データサイズ範囲が登録される。平均応答時間の項目には、通信方法Aによる通信の平均応答時間、および、通信方法Bによる通信の平均応答時間が登録される。なお、平均応答時間の単位は、マイクロ秒とする。
例えば、平均応答時間テーブル161bには、送信データサイズ範囲が“D<1KB”、通信方法Aの平均応答時間が“10”、通信方法Bの平均応答時間が“30”という情報が登録される。これは、送信データサイズ範囲が1KB未満の場合、通信方法Aの平均応答時間は10マイクロ秒であり、通信方法Bの平均応答時間は30マイクロ秒であることを示す。
同様に、平均応答時間テーブル161bによれば、送信データサイズ範囲が1KB≦D<10KBのとき、通信方法Aの平均応答時間は20マイクロ秒であり、通信方法Bの平均応答時間は30マイクロ秒である。また、送信データサイズ範囲が10KB≦D<100KBのとき、通信方法Aの平均応答時間は30マイクロ秒であり、通信方法Bの平均応答時間は35マイクロ秒である。更に、送信データサイズ範囲が100KB≦D<1MBのとき、通信方法Aの平均応答時間は40マイクロ秒であり、通信方法Bの平均応答時間は35マイクロ秒である。
ただし、選択確率テーブル161aの選択確率および平均応答時間テーブル161bの平均応答時間は、通信方法選択部163によって更新され得る。
図10は、処理の呼出関係の例を示す図である。通信方法選択部163および通信処理部164は、互いに連携して、送信データの送信処理を実行する。例えば、通信方法選択部163は、送信データサイズ取得処理P11、選択確率取得処理P12、通信方法決定処理P13、応答時間測定開始処理P14、応答時間測定終了処理P15、平均応答時間更新/選択確率更新判定処理P16、および、選択確率更新処理P17を、サブプロセスとして実行する。
また、通信処理部164は、送信処理部164aおよび受信処理部164bを有する。送信処理部164aは、通信方法選択部163により選択された通信方法を用いて、送信データの送信処理を実行する。具体的には、送信処理部164aは、通信方法A−送信処理P21および通信方法B−送信処理P22をサブプロセスとして実行する。受信処理部164bは、該当の通信方法による通信に関する受信ACKの受信処理を実行する。具体的には、受信処理部164bは、通信方法A−ACK受信処理P24および通信方法B−ACK受信処理P25をサブプロセスとして実行する。
更に、通信処理部272は、通信方法判定処理P31、通信方法A−データ受信処理P32、通信方法A−ACK送信処理P33、通信方法B−データ受信処理P34および通信方法B−ACK送信処理P35をサブプロセスとして実行する。
まず、送信対象となるデータ(送信データ)が発生すると、送信処理呼出部180により通信方法選択部163の送信データサイズ取得処理P11を呼び出す。送信処理呼出部180は、送信バッファ162aに送信データを書き込む。ここで、送信バッファ162aは、バッファ162において通信処理部164用に確保されたバッファ領域である。送信処理呼出部180は、例えばOS110の1つの機能でもよい。
送信データサイズ取得処理P11は、送信データのサイズを取得する処理である。送信データサイズ取得処理P11は選択確率取得処理P12を呼び出す。選択確率取得処理P12は、送信データのサイズおよび選択確率テーブル161aに基づいて、各通信方法の選択確率を取得する処理である。選択確率取得処理P12は、通信方法決定処理P13を呼び出す。
通信方法決定処理P13は、各通信方法の選択確率に応じて、今回の通信に用いる通信方法を決定する処理である。通信方法決定処理P13は、送信処理部164aにおける選択した通信方法に相当する送信処理を呼び出す。呼出候補となる送信処理は、通信方法A−送信処理P21および通信方法B−送信処理P22である。
通信方法A−送信処理P21は、送信バッファ162aに格納された送信データを、SEND方式によって送信する処理である。通信方法B−送信処理P22は、送信バッファ162aに格納された送信データを、RDMA_WRITE方式によって送信する処理である。通信方法A−送信処理P21および通信方法B−送信処理P22は、データ送出時に、応答時間測定開始処理P14を呼び出す。応答時間測定開始処理P14は、時刻情報161cを参照して、送信開始時刻161dを記憶部161に記録する。応答時間測定開始処理P14では、IBパケットを識別する情報(例えば、トランスポートヘッダに含まれるシーケンス番号など)に対応付けて、送信開始時刻161dを記録してもよい。時刻情報161cは、所定のタイマ機能によって記憶部161に記録される情報でもよいし、ノード100の所定のハードウェアタイマが提供する情報でもよい。一方、ノード100から送信されたデータは、インターコネクト(InfiniBandスイッチ10)を介して、ノード200に到達する。
通信方法判定処理P31は、受信したデータを基に通信方法を判定する処理である。判定結果が通信方法Aの場合、通信方法判定処理P31は、通信方法A−データ受信処理P32を呼び出す。判定結果が通信方法Bの場合、通信方法判定処理P31は、通信方法B−データ受信処理P34を呼び出す。
通信方法A−データ受信処理P32は、通信方法A(SEND)に応じたデータの受信処理である。通信方法A−データ受信処理P32では、受信データを受信バッファ271aに書き込み、通信方法A−ACK送信処理P33を呼び出す。ここで、受信バッファ271aは、バッファ271において通信処理部272用に確保されたバッファ領域である。通信方法A−ACK送信処理P33は、通信方法Aに応じたACK送信の処理である。
通信方法B−データ受信処理P34は、通信方法B(RDMA_WRITE)に応じたデータの受信処理である。通信方法B−データ受信処理P34では、受信データを受信バッファ271aに書き込み、通信方法B−ACK送信処理P35を呼び出す。通信方法B−ACK送信処理P35は、通信方法Bに応じたACK送信の処理である。
ノード200により送信されたACKは、インターコネクトを介して、ノード100に到達する。ACKはACK番号を含む。通信方法判定処理P23は、ACKを受信し、受信したACKにより通信方法を判定する処理である。例えば、通信方法判定処理P23では、送信処理部164aにより送信済IBパケットのシーケンス番号と、当該IBパケットの送信に用いた通信方法との対応関係を記憶部161に記録しておく。また、通信方法判定処理P23では、送信パケットサイズとACK番号と送信済IBパケットのシーケンス番号との関係から、送信済IBパケットのシーケンス番号と、受信したACKとを対応付けることができる。よって、通信方法判定処理P23では、記憶部161に記録した内容(送信済IBパケットのシーケンス番号と通信方法との関係)から、受信したACKの通信方法を判定することができる。判定結果が通信方法Aの場合、通信方法判定処理P23は、通信方法A−ACK受信処理P24を呼び出す。判定結果が通信方法Bの場合、通信方法判定処理P23は、通信方法B−ACK受信処理P25を呼び出す。
通信方法A−ACK受信処理P24は、通信方法A(SEND)に応じたACKの受信処理である。通信方法B−ACK受信処理P25は、通信方法B(RDMA_WRITE)に応じたACKの受信処理である。通信方法A−ACK受信処理P24および通信方法B−ACK受信処理P25は、ACKの受信処理が完了すると、応答時間測定終了処理P15を呼び出す。受信処理部164bは、ACK受信が完了した送信済IBパケットのシーケンス番号を、応答時間測定終了処理P15に通知してもよい。
応答時間測定終了処理P15は、IBパケットを用いた応答時間の測定を終了し、測定した応答時間を応答時間保存バッファ161eに記録する処理である。応答時間保存バッファ161eは、記憶部161において確保されたバッファ領域である。応答時間測定終了処理P15では、時刻情報161cを参照して現在時刻を取得し、送信開始時刻161dとの時間差を、応答時間として求める。前述のように、送信開始時刻161dとして、送信済IBパケットのシーケンス番号と送信開始時刻とを対応付けて記録しておくことで、受信処理部164bから通知されたシーケンス番号に対する送信済IBパケットについて、応答時間を測定できる。応答時間測定終了処理P15は、平均応答時間更新/選択確率更新判定処理P16を呼び出す。
平均応答時間更新/選択確率更新判定処理P16は、平均応答時間テーブル161bを更新する処理、および、選択確率更新の要否を判定する処理である。平均応答時間更新/選択確率更新判定処理P16では、応答時間保存バッファ161eに新規に記録された応答時間を読み取り、送信データサイズ取得処理P11で取得された送信データサイズについて平均応答時間を更新する。平均応答時間更新/選択確率更新判定処理P16では、平均応答時間の計算のために、平均応答時間テーブル161bからこれまでの平均応答時間の読み出し、および、新規に計算した平均応答時間の書き込みを行う。更に、平均応答時間更新/選択確率更新判定処理P16では、更新後の平均応答時間テーブル161bに基づいて、通信方法A,Bの選択確率の更新を行うか否かを判定する。そして、選択確率の更新を行うと判定した場合、選択確率更新処理P17を呼び出す。一方、選択確率の更新を行わないと判定した場合、何もせずにデータ送信処理を完了する。
選択確率更新処理P17は、通信方法A,Bの選択確率を更新する処理である。選択確率更新処理P17では、選択確率テーブル161aから既存の選択確率を取得し、所定の増減方法に従って、通信方法A,Bの選択確率を増減する更新を行い、更新結果を選択確率テーブル161aに書き込んで、データ送信処理を完了する。
次に、ノード100のiSERイニシエータ160による処理手順を説明する。
図11は、iSERイニシエータ処理の例を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。
(S11)送信処理呼出部180は、送信処理の開始を通信方法選択部163に通知する。
(S12)送信処理呼出部180は、バッファ162に送信データをコピーする。例えば、前述のように、送信処理呼出部180は、バッファ162内に確保された送信バッファ162aに送信データを格納する。
(S13)通信方法選択部163は、バッファ162に格納された送信データのサイズ(送信データサイズ)を取得する。
(S14)通信方法選択部163は、記憶部161に記憶された選択確率テーブル161aを参照して、ステップS13で取得した送信データサイズに対応する通信方法の選択確率を取得する。例えば、通信方法の選択候補は、通信方法A,Bである。このため、通信方法選択部163は、該当の送信データサイズに対応する通信方法Aの選択確率、および、通信方法Bの選択確率を取得する。
(S15)通信方法選択部163は、取得した通信方法Aの選択確率、および、通信方法Bの選択確率に基づいて、今回のデータ送信に用いる通信方法を決定する。具体的には、該当の送信データサイズでのデータ送信回数をNとし、そのうち通信方法Aを選択する回数をn1、通信方法Bを選択する回数をn2とする。通信方法選択部163は、該当の送信データサイズについて、比較的大きなNに対して、n1/N〜p1となるように通信方法Aを選択する。また、通信方法選択部163は、該当の送信データサイズについて、比較的大きなNに対して、n2/N〜p2となるように通信方法Bを選択する。通信方法選択部163は、通信方法の決定結果を通信処理部164に通知する。
(S16)通信処理部164は、通信方法選択部163により決定された通信方法により、送信処理を開始する。通信処理部164は、送信処理の開始を通信方法選択部163に通知する。
(S17)通信方法選択部163は、記憶部161に現在時刻t1を記録する。現在時刻t1は、図10で説明した送信開始時刻161dに相当する。
(S18)通信処理部164は、バッファ162に記憶された送信データをノード200へ送出する。
(S19)通信処理部164は、ACK受信を待機する。
(S20)通信処理部164は、ステップS18のデータ送信に対して、ノード200からACKを受信する。通信処理部164は、ACK受信を通信方法選択部163に通知する。
(S21)通信方法選択部163は、現在時刻t2を取得する。
(S22)通信方法選択部163は、ACKからステップS17で記録した時刻t1を特定し、時刻t1,t2の時間差を求めることで、今回の通信の通信応答時間を算出する。ここで、算出された通信応答時間をTcとする。
(S23)通信処理部164は、ACK受信処理を完了する。
(S24)通信方法選択部163は、記憶部161に記憶された平均応答時間テーブル161bを更新する。具体的には、通信方法選択部163は、今回の送信データサイズおよび通信方法に対応する平均応答時間Taを、平均応答時間テーブル161bから取得する。通信方法選択部163は、該当の送信データサイズの該当の通信方法の今回までの選択回数をnとし、Ta’={(n−1)Ta+Tc}/nを、更新後の平均応答時間として、平均応答時間テーブル161bに記録する。
(S25)通信方法選択部163は、平均応答時間テーブル161bについて、ステップS24の更新前後における各通信方法の平均応答時間の大小関係の変化を確認する。
(S26)通信方法選択部163は、ステップS25の確認に応じて、通信方法の選択確率を更新するか否かを判定する。更新する場合、処理をステップS27に進める。更新しない場合、処理を終了する。具体的には、通信方法選択部163は、該当の送信データサイズについて、通信方法Aの平均応答時間と、通信方法Bの平均応答時間との大小関係が、今回の更新によって逆転した場合、選択確率を更新すると判定する。一方、通信方法選択部163は、該当の送信データサイズについて、通信方法Aの平均応答時間と、通信方法Bの平均応答時間との大小関係が、今回の更新によって逆転していない場合、選択確率を更新しないと判定する。
(S27)通信方法選択部163は、該当の送信データサイズについて、選択確率テーブル161aの各通信方法の選択確率を更新する。通信方法選択部163は、各通信方法の選択確率が0よりも大きくなるように、選択確率を更新する。何れかの通信方法の選択確率を0にしてしまうと、該当の通信方法が選択されなくなり、当該通信方法による平均応答時間の変化を監視できなくなるからである。選択確率の更新方法の詳細は後述される。
なお、図11の手順では、ある送信データの送信が完了したタイミングで、選択確率を更新するか否かを判定するものとしたが、選択確率を更新するか否かの判定タイミングは別のタイミングでもよい。例えば、通信方法選択部163は、選択確率を更新するか否かの判定を、所定の周期(例えば、数十分、数時間などの周期)で行って、選択確率を更新してもよい。あるいは、通信方法選択部163は、選択確率が小さい方の通信方法を選択して通信を行った際に、平均応答時間を更新した後で、選択確率を更新するか否かの判定を行い、当該判定に応じて選択確率を更新してもよい。このようにすれば、選択確率を更新するかの判定を頻繁に行わずに済む。
次に、ノード200のiSERターゲット270による処理手順を説明する。
図12は、iSERターゲット処理の例を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。
(S31)通信処理部272は、ノード100から受信したデータ(受信データ)から通信方法を判定する。例えば、通信処理部272は、今回の通信に、通信方法A、または、通信方法Bの何れが用いられているかを判定する。
(S32)通信処理部272は、判定した通信方法に応じて受信処理を開始する。
(S33)通信処理部272は、受信データをバッファ271に保存する。例えば、前述のように、通信処理部272は、バッファ271に確保された受信バッファ271aに受信データを格納する。
(S34)通信処理部272は、今回の通信方法に応じてACKの送信処理を開始する。こうして、ノード200は、ノード100へACKを応答する。
続いて、ノード100による通信方法の選択確率更新の具体例を説明する。
図13は、選択確率更新の具体例(その1)を示す図である。ここで、図13において、“−>”の記号は、当該記号の左側の数値から、当該記号の右側の数値への更新を表す。図13の平均応答時間テーブル161bの例によれば、送信データの送信を通信方法Aを用いて行った結果、あるタイミングの通信方法Aの平均応答時間が次のように変化している。
送信データサイズ範囲D<1KBでは、通信方法Aの平均応答時間は、10マイクロ秒から、15マイクロ秒に変化している。同範囲について、通信方法Bの平均応答時間は30マイクロ秒である。すなわち、送信データサイズ範囲D<1KBでは、通信方法Aの平均応答時間と通信方法Bの平均応答時間との大小関係の逆転はない。
送信データサイズ範囲1KB≦D<10KBでは、通信方法Aの平均応答時間は、20マイクロ秒から、30マイクロ秒に変化している。同範囲について、通信方法Bの平均応答時間は30マイクロ秒である。すなわち、送信データサイズ範囲1KB≦D<10KBでは、通信方法Aの平均応答時間と通信方法Bの平均応答時間との大小関係の逆転はない。
送信データサイズ範囲10KB≦D<100KBでは、通信方法Aの平均応答時間は、30マイクロ秒から45マイクロ秒に変化している。同範囲について、通信方法Bの平均応答時間は35マイクロ秒である。すなわち、送信データサイズ範囲10KB≦D<100KBでは、通信方法Aの平均応答時間と通信方法Bの平均応答時間との大小関係が逆転している。
送信データサイズ範囲100KB≦D<1MBでは、通信方法Aの平均応答時間は、40マイクロ秒から60マイクロ秒に変化している。同範囲について、通信方法Bの平均応答時間は35マイクロ秒である。すなわち、送信データサイズ範囲100KB≦D<1MBでは、通信方法Aの平均応答時間と通信方法Bの平均応答時間との大小関係の逆転はない。
この場合、送信データサイズ範囲10KB≦D<100KBについて、平均応答時間の逆転を契機に、通信方法選択部163は、選択確率テーブル161aに記録された通信方法Aの選択確率、および、通信方法Bの選択確率を更新する。例えば、送信データサイズ範囲10KB≦D<100KBでは、通信方法Aよりも通信方法Bの方が有利である可能性があるため、通信方法選択部163は、通信方法Aの選択確率を減らし、通信方法Bの選択確率を増やす。通信方法Aの選択確率を増やす量、および、通信方法Bの選択確率を減らす量は、任意に与えられる。1つの例として、送信データサイズ範囲毎に、通信方法A,Bに対して付与する選択確率の最大値および最小値を予め定めておく。最大値および最小値は、0よりも大きく、1よりも小さい値とする。そして、一方の通信方法(平均応答時間が小さい方の通信方法)の選択確率を当該最大値、他方の通信方法(平均応答時間が大きい方の通信方法)の選択確率を当該最小値となるよう切り替えることが考えられる。
図14は、選択確率更新の具体例(その2)を示す図である。図14(A)は、選択確率更新の第1の例を示している。例えば、ある送信データサイズ範囲について、通信方法の選択確率の最大値が0.99、最小値が0.01であり、平均応答時間の大小関係の逆転により、通信方法Aの平均応答時間が通信方法Bの平均応答時間よりも大きくなった場合を考える。この場合、通信方法選択部163は、通信方法Aの選択確率を0.99から0.01に更新する。一方、通信方法選択部163は、通信方法Bの選択確率を0.01から0.99に更新する。このように、通信方法選択部163は、1度の更新で、両通信方法の選択確率を急激に増減させてもよい。
図14(B)は、選択確率更新の第2の例を示している。通信方法選択部163は、通信方法Aの選択確率を0.99から0.01へ、通信方法Bの選択確率を0.01から0.99へ、所定割合ずつ、一定の変化量で増減させてもよい。図14(B)では、選択確率を0.1ずつ増やし、選択確率を0.1ずつ減らす例(1段階目の更新後)を示している。この場合、通信方法選択部163は、所定の周期で、選択確率を0.1ずつ段階的に増減させる(最終段の増減量は例外的に0.08となる)。したがって、選択確率の更新開始から、更新終了までに一定の期間(更新期間と称する)が生じる。更新期間中に、再度、通信方法Aの平均応答時間と、通信方法Bの平均応答時間との大小関係が逆転した場合(大小関係が元に戻った場合)、通信方法選択部163は、通信方法Aの選択確率、および、通信方法Bの選択確率の更新を中止する。そして、通信方法選択部163は、両方の選択確率を更新期間前の値に戻す。選択確率を戻す場合、本例では、通信方法選択部163は、通信方法Aの選択確率を0.99に戻し、通信方法Bの選択確率を0.01に戻す。このように、選択確率を段階的に更新することで、一時的な要因による性能特性の変化にも適切に対応できる。
図14(C)は、選択確率更新の第3の例を示している。通信方法選択部163は、両選択確率の差分に応じて、選択確率を段階的に増減する際の変化量Δpを決定してもよい。例えば、通信方法選択部163は、通信方法Aの選択確率、および、通信方法Bの選択確率の差分dを求め、差分dに応じて変化量を求めてもよい。一例として、通信方法選択部163は、変化量Δpを、Δp=d/4+0.05と決定することが考えられる。
なお、上記の例では、送信データサイズ(バッファ162に格納された送信データのサイズ)に対して、通信方法毎の選択確率や平均応答時間を管理するものとした。一方、通信方法選択部163は、通信パケットサイズに対して、通信方法毎の選択確率や平均応答時間を管理してもよい。すなわち、通信パケットを通信データの一例と考えてもよく、また、通信パケットサイズを通信データサイズの一例と考えてもよい。
図15は、通信パケットサイズに対するテーブル例を示す図である。図15(A)は、選択確率テーブル161fを例示している。図15(B)は、平均応答時間テーブル161gを例示している。選択確率テーブル161fは、通信パケットサイズ範囲に対して通信方法Aの選択確率、および、通信方法Bの選択確率が登録される点が、選択確率テーブル161aと異なる。平均応答時間テーブル161gは、通信パケットサイズ範囲に対して、通信方法Aの平均応答時間、および、通信方法Bの平均応答時間が登録される点が、平均応答時間テーブル161bと異なる。
例えば、通信パケットサイズDpの範囲(通信パケットサイズ範囲)は、Dp<1KB、1KB≦Dp<2KB、・・・のように区分される。選択確率テーブル161fには、通信パケットサイズ範囲毎に、通信方法Aの選択確率、および、通信方法Bの選択確率が登録される。同様に、平均応答時間テーブル161gには、通信パケットサイズ範囲毎に、通信方法Aの平均応答時間、および、通信方法Bの平均応答時間が登録される。
通信方法選択部163は、選択確率テーブル161fに基づいて、今回の通信パケットサイズに対して、通信方法Aの選択確率、および、通信方法Bの選択確率を取得し、両選択確率に応じて、通信方法A,Bの何れかを選択することもできる。通信方法選択部163は、当該通信パケットサイズによる通信に対して、選択した通信方法による通信の平均応答時間を平均応答時間テーブル161gに記録する。そして、通信方法選択部163は、平均応答時間テーブル161gにおける通信方法Aの平均応答時間、および、通信方法Bの平均応答時間の大小関係の逆転に応じて、通信方法Aの選択確率、および、通信方法Bの選択確率を更新することもできる。
また、上記の説明では、選択候補の通信方法が2つの場合を例示したが、選択候補の通信方法は3つ以上でもよい。選択候補の通信方法が3つ以上のときも、例えば、通信方法選択部163は、第1の通信方法の平均応答時間が、第2の通信方法の平均応答時間よりも大きくなった場合に、第1の通信方法の選択確率を減らし、第2の通信方法の選択確率を増やすことが考えられる。通信方法選択部163は、第1の通信方法の平均応答時間が、複数の第2の通信方法の平均応答時間よりも大きくなった場合に、第1の通信方法の選択確率を減らし、複数の第2の通信方法の選択確率を増やしてもよい。
ここで、例えば、通信方法の選択候補が複数ある場合、通信データサイズ(送信バッファ内の送信データサイズや通信パケットサイズ)に応じた通信性能を、通信方法毎に、装置開発時などに予め測定することが考えられる。そして、通信データサイズ毎に選択すべき通信方法を定めた条件(静的な条件)を、ノード100,200に予め格納しておくことが考えられる。
ところが、このように静的な条件で通信方法を決定すると、図6でも例示したように、通信方法の決定が当該条件により固定化してしまう。このため、状況の変化(例えば、ノード100,200の負荷の変動による通信性能の変化など)に対応できないことがあるという問題がある。
一方、ノード100によれば、選択確率に応じて通信方法を選択し、通信結果に基づいて選択確率を更新する。このとき、ある通信データサイズにおいて、相対的に高い通信性能を実現できる通信方法の選択確率を相対的に高くし、相対的に低い通信性能となる通信方法の選択確率を相対的に低くする。そうすると、比較的高い通信性能を実現しながら、かつ、各通信方法の通信性能の比較により、性能特性の変化を把握することが可能となる。こうして、ノード100は、状況の変化に応じて適切な通信方法を決定することができる。
なお、第1の実施の形態の情報処理は、演算部1bにプログラムを実行させることで実現できる。また、第2の実施の形態の情報処理は、プロセッサ101にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体13に記録できる。
例えば、プログラムを記録した記録媒体13を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体13に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やHDD103などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。
以上の第1,第2の実施の形態を含む実施形態に関し、更に以下の付記を開示する。
(付記1) 通信データのサイズに対して通信方法の選択確率を記憶する記憶部と、
前記通信データのサイズに対する前記選択確率に応じて複数の通信方法から今回の通信に用いる前記通信方法を選択し、選択した前記通信方法による通信結果を記録し、前記通信結果に基づいて前記記憶部に記憶された前記選択確率を更新する演算部と、
を有する情報処理装置。
(付記2) 前記演算部は、第1の通信方法による第1の平均応答時間と第2の通信方法による第2の平均応答時間との比較に応じて、前記第1の通信方法の第1の選択確率、および、前記第2の通信方法の第2の選択確率を更新する、付記1記載の情報処理装置。
(付記3) 前記演算部は、前記第1の平均応答時間が前記第2の平均応答時間よりも大きくなると、前記第1の選択確率を減らし、前記第2の選択確率を増やす、付記2記載の情報処理装置。
(付記4) 前記演算部は、前記第1の選択確率、および、前記第2の選択確率を、所定の変化量ずつ段階的に更新する、付記2または3記載の情報処理装置。
(付記5) 前記演算部は、前記第1の選択確率と前記第2の選択確率との差に応じて、前記変化量を決定する、付記4記載の情報処理装置。
(付記6) 前記演算部は、前記第1の通信方法および前記第2の通信方法のうち、前記選択確率が小さい方の通信方法を用いて通信を行った際に、前記選択確率を更新する、付記2乃至5の何れか1つに記載の情報処理装置。
(付記7) 前記演算部は、前記第1の選択確率、および、前記第2の選択確率を段階的に更新している間に、前記第1の平均応答時間と前記第2の平均応答時間との大小関係が更新開始前の関係に戻ると、前記第1の選択確率および前記第2の選択確率の更新を中止する、付記4乃至6の何れか1つに記載の情報処理装置。
(付記8) 前記演算部は、更新の停止後に、前記第1の選択確率と、前記第2の選択確率とを、更新開始前の値に戻す、付記7記載の情報処理装置。
(付記9) 前記演算部は、前記選択確率を0よりも大きい値とする、付記1乃至8の何れか1つに記載の情報処理装置。
(付記10) 前記通信データのサイズは、通信パケットサイズである、付記1乃至9の何れか1つに記載の情報処理装置。
(付記11) コンピュータに、
通信データのサイズに対して通信方法の選択確率を記憶する記憶部を参照して、前記通信データのサイズに対する前記選択確率に応じて複数の通信方法から今回の通信に用いる前記通信方法を選択し、
選択した前記通信方法による通信結果を記録し、
前記通信結果に基づいて前記記憶部に記憶された前記選択確率を更新する、
処理を実行させる通信方法決定プログラム。
(付記12) コンピュータが、
通信データのサイズに対して通信方法の選択確率を記憶する記憶部を参照して、前記通信データのサイズに対する前記選択確率に応じて複数の通信方法から今回の通信に用いる前記通信方法を選択し、
選択した前記通信方法による通信結果を記録し、
前記通信結果に基づいて前記記憶部に記憶された前記選択確率を更新する、
通信方法決定方法。
1,2 情報処理装置
1a 記憶部
1b 演算部
3 ネットワーク
T1 選択確率情報
T2 通信結果情報
T1a,T2a レコード

Claims (8)

  1. 通信データのサイズに対して通信方法の選択確率を記憶する記憶部と、
    前記通信データのサイズに対する前記選択確率に応じて複数の通信方法から今回の通信に用いる前記通信方法を選択し、選択した前記通信方法による通信結果を記録し、前記通信結果に基づいて前記記憶部に記憶された前記選択確率を更新する演算部と、
    を有する情報処理装置。
  2. 前記演算部は、第1の通信方法による第1の平均応答時間と第2の通信方法による第2の平均応答時間との比較に応じて、前記第1の通信方法の第1の選択確率、および、前記第2の通信方法の第2の選択確率を更新する、請求項1記載の情報処理装置。
  3. 前記演算部は、前記第1の平均応答時間が前記第2の平均応答時間よりも大きくなると、前記第1の選択確率を減らし、前記第2の選択確率を増やす、請求項2記載の情報処理装置。
  4. 前記演算部は、前記第1の選択確率、および、前記第2の選択確率を、所定の変化量ずつ段階的に更新する、請求項2または3記載の情報処理装置。
  5. 前記演算部は、前記第1の選択確率と前記第2の選択確率との差に応じて、前記変化量を決定する、請求項4記載の情報処理装置。
  6. 前記通信データのサイズは、通信パケットサイズである、請求項1乃至5の何れか1項に記載の情報処理装置。
  7. コンピュータに、
    通信データのサイズに対して通信方法の選択確率を記憶する記憶部を参照して、前記通信データのサイズに対する前記選択確率に応じて複数の通信方法から今回の通信に用いる前記通信方法を選択し、
    選択した前記通信方法による通信結果を記録し、
    前記通信結果に基づいて前記記憶部に記憶された前記選択確率を更新する、
    処理を実行させる通信方法決定プログラム。
  8. コンピュータが、
    通信データのサイズに対して通信方法の選択確率を記憶する記憶部を参照して、前記通信データのサイズに対する前記選択確率に応じて複数の通信方法から今回の通信に用いる前記通信方法を選択し、
    選択した前記通信方法による通信結果を記録し、
    前記通信結果に基づいて前記記憶部に記憶された前記選択確率を更新する、
    通信方法決定方法。
JP2016137587A 2016-07-12 2016-07-12 情報処理装置、通信方法決定プログラムおよび通信方法決定方法 Pending JP2018011148A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016137587A JP2018011148A (ja) 2016-07-12 2016-07-12 情報処理装置、通信方法決定プログラムおよび通信方法決定方法
US15/610,788 US20180019837A1 (en) 2016-07-12 2017-06-01 Method for determining communication method, information processing apparatus, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016137587A JP2018011148A (ja) 2016-07-12 2016-07-12 情報処理装置、通信方法決定プログラムおよび通信方法決定方法

Publications (1)

Publication Number Publication Date
JP2018011148A true JP2018011148A (ja) 2018-01-18

Family

ID=60941387

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016137587A Pending JP2018011148A (ja) 2016-07-12 2016-07-12 情報処理装置、通信方法決定プログラムおよび通信方法決定方法

Country Status (2)

Country Link
US (1) US20180019837A1 (ja)
JP (1) JP2018011148A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102224327B1 (ko) * 2019-11-22 2021-03-09 아주대학교산학협력단 Rdma 기반의 노드 간 데이터 전송 방법 및 노드 장치

Also Published As

Publication number Publication date
US20180019837A1 (en) 2018-01-18

Similar Documents

Publication Publication Date Title
JP7214295B2 (ja) 分散型システムのデータ同期方法、装置、コンピュータプログラム、及び電子機器
US9594650B2 (en) Storage system and a method used by the storage system
US10831654B2 (en) Cache management using multiple cache history lists
CN108228647B (zh) 用于数据拷贝的方法和设备
WO2014030221A1 (ja) 仮想計算機システム、管理計算機及び仮想計算機管理方法
US20190188086A1 (en) Redundancy reduction in blockchains
US20130055371A1 (en) Storage control method and information processing apparatus
EP4216515A1 (en) Method and apparatus for transmitting data processing request
US10116746B2 (en) Data storage method and network interface card
CN108733310B (zh) 用于管理存储系统的方法、设备和计算机可读存储介质
US9276879B2 (en) Memory transfer optimization of network adapter data placement when performing header-data split operations
US20180337993A1 (en) Sharding over multi-link data channels
JP2014026529A (ja) ストレージシステムおよびその制御方法
US20140067886A1 (en) Information processing apparatus, method of outputting log, and recording medium
US20210117822A1 (en) System and method for persistent storage failure prediction
JP2017228241A (ja) 画面送信方法、画面送信装置、及びプログラム
US20200348840A1 (en) System and method for event driven storage management
JP2018011148A (ja) 情報処理装置、通信方法決定プログラムおよび通信方法決定方法
JP2017184175A (ja) 情報生成プログラム、情報生成方法及び情報生成装置
CN106933646B (zh) 一种创建虚拟机的方法及装置
CN113448770A (zh) 用于恢复数据的方法、电子设备和计算机程序产品
US11720397B2 (en) Information processing method and apparatus to migrate tasks between resources
US20210144217A1 (en) Service communication proxy apparatus and method
CN111181864A (zh) 确定从应用至服务器的链路拥塞状态的方法与设备
CN112306372A (zh) 用于处理数据的方法、设备和程序产品