IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特開2024-88963データ制御プログラム,データ制御方法および情報処理装置
<>
  • 特開-データ制御プログラム,データ制御方法および情報処理装置 図1
  • 特開-データ制御プログラム,データ制御方法および情報処理装置 図2
  • 特開-データ制御プログラム,データ制御方法および情報処理装置 図3
  • 特開-データ制御プログラム,データ制御方法および情報処理装置 図4
  • 特開-データ制御プログラム,データ制御方法および情報処理装置 図5
  • 特開-データ制御プログラム,データ制御方法および情報処理装置 図6
  • 特開-データ制御プログラム,データ制御方法および情報処理装置 図7
  • 特開-データ制御プログラム,データ制御方法および情報処理装置 図8
  • 特開-データ制御プログラム,データ制御方法および情報処理装置 図9
  • 特開-データ制御プログラム,データ制御方法および情報処理装置 図10
  • 特開-データ制御プログラム,データ制御方法および情報処理装置 図11
  • 特開-データ制御プログラム,データ制御方法および情報処理装置 図12
  • 特開-データ制御プログラム,データ制御方法および情報処理装置 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024088963
(43)【公開日】2024-07-03
(54)【発明の名称】データ制御プログラム,データ制御方法および情報処理装置
(51)【国際特許分類】
   G06F 9/50 20060101AFI20240626BHJP
   G06F 9/48 20060101ALI20240626BHJP
【FI】
G06F9/50 150D
G06F9/48 110B
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022204031
(22)【出願日】2022-12-21
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110003649
【氏名又は名称】弁理士法人真田特許事務所
(74)【代理人】
【識別番号】100189201
【弁理士】
【氏名又は名称】横田 功
(72)【発明者】
【氏名】加藤 純
(57)【要約】
【課題】OSノイズを削減できるようにする。
【解決手段】複数の第1プロセッサと、複数の第1プロセッサに対して処理速度が遅い第2プロセッサと、を有する情報処理装置において、複数の第1プロセッサ各々の状態に基づいて、複数の第1プロセッサのうちから、割り込み処理にかかる割り込み先を決定する。
【選択図】図1
【特許請求の範囲】
【請求項1】
複数の第1プロセッサと、
前記複数の第1プロセッサに対して処理速度が遅い第2プロセッサと、を有する情報処理装置において、
前記複数の第1プロセッサ各々の状態に基づいて、前記複数の第1プロセッサのうちから、割り込み処理にかかる割り込み先を決定する
処理を前記第2プロセッサに実行させることを特徴とする、データ制御プログラム。
【請求項2】
決定した前記割り込み処理にかかる割り込み先の情報でハードウェアスイッチのスイッチプロファイルを書き換える
処理を前記第2プロセッサに実行させることを特徴とする、請求項1に記載のデータ制御プログラム。
【請求項3】
前記複数の第1プロセッサのそれぞれに対応するプロセッサ毎仮想ポートを設定し、
前記スイッチプロファイルに、決定した前記割り込み先に対応するプロセッサ毎仮想ポートを設定する
処理を前記第2プロセッサに実行させることを特徴とする、請求項2に記載のデータ制御プログラム。
【請求項4】
前記第2プロセッサは、DPU(Data Processing Unit)が有することを特徴とする請求項1~3のいずれか1項に記載のデータ制御プログラム。
【請求項5】
前記複数の第1プロセッサ各々の状態に基づいて、前記複数の第1プロセッサのうちのいずれかの第1プロセッサにおいて割り込みが多発している調整対象フローを特定し、
前記調整対象フローの次の割り込み先を、前記複数の第1プロセッサのうちの2以上の第1プロセッサ間において順次切り替える
処理を前記第2プロセッサに実行させることを特徴とする、請求項1~3のいずれか1項に記載のデータ制御プログラム。
【請求項6】
前記複数の第1プロセッサ各々の状態に基づいて、前記複数の第1プロセッサのうちのいずれかの第1プロセッサにおいて割り込みが多発している調整対象フローを特定し、
前記調整対象フローの次の割り込み先を、前記複数の第1プロセッサのうちのOS(Operating System)ノイズの影響を受けやすいアプリケーションを非実行中の第1プロセッサに切り替える
処理を前記第2プロセッサに実行させることを特徴とする、請求項1~3のいずれか1項に記載のデータ制御プログラム。
【請求項7】
複数の第1プロセッサと、
前記複数の第1プロセッサに対して処理速度が遅い第2プロセッサと、を有する情報処理装置において、
前記複数の第1プロセッサ各々の状態に基づいて、前記複数の第1プロセッサのうちから、割り込み処理にかかる割り込み先を決定する
処理を前記第2プロセッサが実行することを特徴とするデータ制御方法。
【請求項8】
複数の第1プロセッサと、
前記複数の第1プロセッサに対して処理速度が遅い第2プロセッサと、を有する情報処理装置であって、
前記第2プロセッサが、
前記複数の第1プロセッサ各々の状態に基づいて、前記複数の第1プロセッサのうちから、割り込み処理にかかる割り込み先を決定する
処理を実行することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ制御プログラム,データ制御方法および情報処理装置に関する。
【背景技術】
【0002】
データの処理と複雑な計算を高速で実行できる技術として、HPC(High Performance Computing)が知られている。HPC環境は、ユーザがスーパーコンピュータを使えることを前提とするため、ユーザが使い始めるためのハードルが高く、メーカ側においても新規ユーザの獲得が困難である。
【0003】
そこで、近年においては、HPCアプリケーションをクラウドサービスで動作させることが実現され、HPCへの参入障壁が大きく低下している。クラウドであればCPU(Central Processing Unit)やメモリ容量などをワークロードに合わせて調整できるので、安いコストで目標を達成しやすく、コストパフォーマンスを最適化しやすい。
【0004】
HPCアプリケーションは、MPI(Message Passing Interface)を使った並列処理を行なうことが一般的である。
【0005】
例えば、クラウドの仮想基盤として知られているKubernetes上のアプリケーションは、マイクロサービスアーキテクチャーを採用しているものが多く、独立した複数の小さなマイクロサービスを組み合わせて、基本的に逐次に処理を実行する。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2007―148746号公報
【特許文献2】特開2000-331150号公報
【特許文献3】米国特許第6189065号明細書
【特許文献4】米国特許出願公開第2004/0054834号明細書
【発明の概要】
【発明が解決しようとする課題】
【0007】
HPCアプリケーションでは複数のMPIプロセスが並列に処理を行なうが、常に並列で動いているわけではなく、どこかのタイミングで複数のMPIプロセス間において同期を行なう必要がある。
【0008】
HPCアプリケーションにおいて、MPIプロセスが同期を行なうタイミングにずれがあると、一番遅いプロセスに律速される。従って、アプリケーションレベルで複数のMPIプロセスの処理をまったく同じように書いても、OS(Operating System)ノイズによってずれが生じてしまう。OSノイズとは、OSデーモンやカーネルデーモン,割り込み処理など、アプリケーション以外の処理によるアプリケーション実行遅延の総称である。OSノイズはプロセッサの負荷状況に応じて発生するものであるので、プロセッサノイズといってよい。
【0009】
図13はHPCアプリケーションにおける複数のMPIプロセス間の同期タイミングを示す図であり、符号AはOSノイズなしの例を示し、符号BはOSノイズありの例を示す。
【0010】
図13の符号Bに示す例においては、MPIプロセスAにOSノイズが発生しており、この影響でMPIプロセスBおよびMPIプロセスCの同期待ち時間が長くなり、全プロセスに遅延が生じている。これにより、OSノイズなしの場合に比べて、全プロセスの完了が遅れ、効率が悪い。
【0011】
OSノイズが発生する原因の一つに割り込みがある。情報処理装置においては、一般的に、データ受信の通知が割り込みによって行なわれる。割り込みが入ると、実行中のプロセスが中断されて、当該割り込みに対する処理が行なわれる。
【0012】
なお、例えば、Linux(登録商標)のNAPI(New API)では、割り込みが多くなるとポーリングを行なうので、全てが割り込みで処理されるわけではないが、それなりに割り込み処理が発生してしまう。
【0013】
1つの側面では、本発明は、OSノイズを削減できるようにすることを目的とする。
【課題を解決するための手段】
【0014】
このため、このデータ制御プログラムは、複数の第1プロセッサと、前記複数の第1プロセッサに対して処理速度が遅い第2プロセッサと、を有する情報処理装置において、前記複数の第1プロセッサ各々の状態に基づいて、前記複数の第1プロセッサのうちから、割り込み処理にかかる割り込み先を決定する処理を前記第2プロセッサに実行させる。
【発明の効果】
【0015】
一実施形態によれば、OSノイズを削減することができる。
【図面の簡単な説明】
【0016】
図1】第1実施形態の一例としての情報処理装置の構成を模式的に示す図である。
図2】第1実施形態の一例としての情報処理装置のハードウェア構成図である。
図3】第1実施形態の一例としての情報処理装置のネットワークインタフェースのハードウェア構成を模式的に示す図である。
図4】は第1実施形態の一例としての情報処理装置における仮想ポートを説明するための図である。
図5】第1実施形態の一例としての情報処理装置における処理の概要を示す図である。
図6】第1実施形態の一例としての情報処理装置における制御用データを例示する図である。
図7】第1実施形態の一例としての情報処理装置における割り込み処理分散部の処理を説明するための図である。
図8】第1実施形態の一例としての情報処理装置における割り込み分散処理の概要を説明するための図である。
図9】第1実施形態の一例としての情報処理装置における割り込み分散処理の概要を説明するための図である。
図10】第1実施形態の一例としての情報処理装置におけるホストプロファイル取得部の処理を説明するためのフローチャートである。
図11】第1実施形態の一例としての情報処理装置における更新検出部の処理を説明するためのフローチャートである。
図12】第2実施形態の一例としての情報処理装置における割り込み処理分散部の処理を説明するための図である。
図13】HPCアプリケーションにおける複数のMPIプロセス間の同期タイミングを示す図である。
【発明を実施するための形態】
【0017】
以下、図面を参照して本データ制御プログラム,データ制御方法および情報処理装置にかかる実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【0018】
(I)第1実施形態の説明
(A)構成
図1は第1実施形態の一例としての情報処理装置1の構成を模式的に示す図である。
【0019】
本情報処理装置1は、クラウドコンピューティング環境を実現するものであり、例えば、コンテナ型仮想化技術により実現されるコンテナにおいてHPCアプリケーション100を実行する。情報処理装置1におけるクラウドの仮想基盤は、例えば、Kubernetesであってもよい。
【0020】
図2は第1実施形態の一例としての情報処理装置1のハードウェア構成図である。
【0021】
情報処理装置1は、例えば、プロセッサ11,メモリ12,記憶装置13,グラフィック処理装置14,入力インタフェース15,光学ドライブ装置16,機器接続インタフェース17およびネットワークインタフェース18を構成要素として有する。これらの構成要素11~18は、バス19を介して相互に通信可能に構成される。
【0022】
プロセッサ(処理部)11は、情報処理装置1全体を制御する第1プロセッサである。本第1実施形態においては、複数のプロセッサ11を有するマルチプロセッサとして構成されている。また、プロセッサ11は、マルチコアプロセッサであってよい。プロセッサ11は、例えばCPU(Central Processing Unit),MPU(Micro Processing Unit),DSP(Digital Signal Processor),ASIC(Application Specific Integrated Circuit),PLD(Programmable Logic Device),FPGA(Field Programmable Gate Array)のいずれか一つであってもよい。また、プロセッサ11は、CPU,MPU,DSP,ASIC,PLD,FPGAのうちの2種類以上の要素の組み合わせであってもよい。
【0023】
以下においては、プロセッサ11がCPUである例を示す。以下、プロセッサ11をCPU11といってよい。
【0024】
そして、複数のプロセッサ11のうち少なくとも一つが、例えばコンピュータ読み取り可能な非一時的な記録媒体に記録されたプログラム(データ制御プログラム,OSプログラム)を実行することで、図1に例示した、制御用データ管理部101およびホストプロファイル取得部102としての機能が実現される。
【0025】
また、各プロセッサ11がHPCアプリケーション100を実行することにより、情報処理装置1がHPCとしての機能を実現する。プロセッサ11をホストプロセッサもしくは単にホストといってよい。
【0026】
情報処理装置1に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、情報処理装置1に実行させるプログラムを記憶装置13に格納しておくことができる。プロセッサ11は、記憶装置13内のプログラムの少なくとも一部をメモリ12にロードし、ロードしたプログラムを実行する。
【0027】
また、情報処理装置1(プロセッサ11)に実行させるプログラムを、光ディスク16a,メモリ装置17a,メモリカード17c等の非一時的な可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ11からの制御により、記憶装置13にインストールされた後、実行可能になる。また、プロセッサ11が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0028】
メモリ12は、ROM(Read Only Memory)およびRAM(Random Access Memory)を含む記憶メモリである。メモリ12のRAMは情報処理装置1の主記憶装置として使用される。RAMには、プロセッサ11に実行させるプログラムの少なくとも一部が一時的に格納される。また、メモリ12には、プロセッサ11による処理に必要な各種データが格納される。このメモリ12に、制御用データ111を記憶してよい。
【0029】
記憶装置13は、ハードディスクドライブ(Hard Disk Drive:HDD)、SSD(Solid State Drive)、ストレージクラスメモリ(Storage Class Memory:SCM)等の記憶装置であって、種々のデータを格納するものである。記憶装置13は、制御用データ111を記憶してよい。
【0030】
なお、補助記憶装置としては、SCMやフラッシュメモリ等の半導体記憶装置を使用することもできる。また、複数の記憶装置13を用いてRAID(Redundant Arrays of Inexpensive Disks)を構成してもよい。
【0031】
グラフィック処理装置14には、モニタ14aが接続されている。グラフィック処理装置14は、プロセッサ11からの命令に従って、画像をモニタ14aの画面に表示させる。モニタ14aとしては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置等が挙げられる。
【0032】
入力インタフェース15には、キーボード15aおよびマウス15bが接続されている。入力インタフェース15は、キーボード15aやマウス15bから送られてくる信号をプロセッサ11に送信する。なお、マウス15bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル,タブレット,タッチパッド,トラックボール等が挙げられる。
【0033】
光学ドライブ装置16は、レーザ光等を利用して、光ディスク16aに記録されたデータの読み取りを行なう。光ディスク16aは、光の反射によって読み取り可能にデータを記録された可搬型の非一時的な記録媒体である。光ディスク16aには、DVD(Digital Versatile Disc),DVD-RAM,CD-ROM(Compact Disc Read Only Memory),CD-R(Recordable)/RW(ReWritable)等が挙げられる。
【0034】
機器接続インタフェース17は、情報処理装置1に周辺機器を接続するための通信インタフェースである。例えば、機器接続インタフェース17には、メモリ装置17aやメモリリーダライタ17bを接続することができる。メモリ装置17aは、機器接続インタフェース17との通信機能を搭載した非一時的な記録媒体、例えばUSB(Universal Serial Bus)メモリである。メモリリーダライタ17bは、メモリカード17cへのデータの書き込み、またはメモリカード17cからのデータの読み出しを行なう。メモリカード17cは、カード型の非一時的な記録媒体である。
【0035】
ネットワークインタフェース18は、ネットワークに接続される。ネットワークインタフェース18は、ネットワークを介してデータの送受信を行なう。ネットワークインタフェース18をNIC(Network Interface Card)といってもよい。
【0036】
図3は第1実施形態の一例としての情報処理装置1のネットワークインタフェース18のハードウェア構成を模式的に示す図である。
【0037】
図3に例示するネットワークインタフェース18は、プロセッサ21,メモリ22,記憶装置23,物理ポート31およびハードウェアスイッチ32を有するDPU(Data Processing Unit)である。ネットワークインタフェース18をDPU18といってもよい。
【0038】
プロセッサ(処理部)21は、ネットワークインタフェース18全体を制御する第2プロセッサである。プロセッサ21は、例えば、ARMプロセッサであってよい。プロセッサ21は、上述したプロセッサ11に対して処理速度が遅い。
【0039】
なお、プロセッサ21は、これに限定されるものではない。例えば、プロセッサ21は、マルチプロセッサやマルチコアプロセッサであってよい。また、プロセッサ21は、例えばCPU,MPU,DSP,ASIC,PLD,FPGAのいずれか一つであってもよい。また、プロセッサ21は、CPU,MPU,DSP,ASIC,PLD,FPGAのうちの2種類以上の要素の組み合わせであってもよい。
【0040】
そして、プロセッサ21が、例えばコンピュータ読み取り可能な非一時的な記録媒体に記録されたプログラム(DPU用データ制御プログラム)を実行することで、図1に例示した、スイッチプロファイル取得部103,更新検出部104,割り込み処理分散部105およびスイッチ制御部106としての機能が実現される。また、DPU18におけるスイッチプロファイル取得部103,更新検出部104,割り込み処理分散部105およびスイッチ制御部106と、ホストの制御用データ管理部101およびホストプロファイル取得部102とが協働して、仮想ポート33への割込みを制御する割り込み制御部110として機能する。
【0041】
プロセッサ21に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、プロセッサ21に実行させるプログラムを記憶装置23に格納しておくことができる。プロセッサ21は、記憶装置23内のプログラムの少なくとも一部をメモリ22にロードし、ロードしたプログラムを実行する。
【0042】
また、プロセッサ21に実行させるプログラムを、前述した、光ディスク16a,メモリ装置17a,メモリカード17c等の非一時的な可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ11やプロセッサ21からの制御により、記憶装置23にインストールされた後、実行可能になる。また、プロセッサ21が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0043】
メモリ22は、ROMおよびRAMを含む記憶メモリである。メモリ22のRAMはDPU18の主記憶装置として使用される。RAMには、プロセッサ21に実行させるプログラムの少なくとも一部が一時的に格納される。また、メモリ22には、プロセッサ21による処理に必要な各種データが格納される。また、メモリ22は、後述するスイッチプロファイル取得部102が取得したスイッチプロファイル(図示省略)を記憶してもよい。
【0044】
記憶装置23は、HDD、SSD、SCM等の記憶装置であって、種々のデータを格納するものである。記憶装置23は、DPU用データ制御プログラムを記憶してよい。また、記憶装置23が、スイッチプロファイル取得部102が取得したスイッチプロファイル(図示省略)を記憶してもよい。
【0045】
ネットワークインタフェース18には図示しないネットワークを介して、他の情報処理装置や通信機器等が接続されてもよい。例えば、HPCアプリケーション100が提供するクラウドコンピューティング環境を利用するユーザの情報処理装置が接続されてよい。
【0046】
物理ポート31には、図示しない外部装置からパケットが入力される。ハードウェアスイッチ32は、図示しないスイッチプロファイルを有し、物理ポート31から入力されたパケットを、スイッチプロファイルに設定されたルール(処理方法)に従って対応する仮想ポート33に転送する。
【0047】
なお、スイッチプロファイルにルールが設定されていないパケットが物理ポート31に入力された場合には、ハードウェアスイッチ32は、当該パケットを、一旦、プロセッサ21に送信する。プロセッサ21においては、仮想スイッチ制御機能により当該パケットに対するルール設定が行なわれ、ハードウェアスイッチ32のスイッチプロファイルに設定が登録される。その後、ハードウェアスイッチ32は、当該パケットをスイッチプロファイルに登録されたルールに従って、対応する仮想ポート33に転送する。仮想スイッチ制御機能は既知の技術を用いて実現してよく、例えば、Open vSwitchであってよい。また、ハードウェアスイッチ32としての機能も既知の技術を用いて実現してよく、例えば、E-Switchであってよい。
【0048】
また、図1に示すように、本情報処理装置1においては仮想ポート33が設定され、これにより、符号Aで示すような、物理ポート31,ハードウェアスイッチ32,仮想ポート33およびHPCアプリケーション100を連結するデータパスが形成される。
【0049】
図4は第1実施形態の一例としての情報処理装置1における仮想ポート33を説明するための図である。
【0050】
仮想ポート33は、HPCアプリケーション100が使用するポートであり、HPCアプリケーション100にDPU18から割り込み通知を入力するために用いられてよい。
【0051】
仮想ポート33は、Default port(デフォルトポート)33aとper-CPU port(CPU毎ポート)33bとを有する。これらのDefault port33aおよびper-CPU port33bは、いずれもハードウェアスイッチ32に接続されている。以下、Default port33aをデフォルトポート33aと表す場合があり、per-CPU port33bをCPU毎ポート33bと表す場合がある。
【0052】
デフォルトポート33aからは、本情報処理装置1に備えられた複数のプロセッサ(CPU)11のうち、どのプロセッサ(CPU)11に対しても割り込み通知を行なうことができる。ただし、RSS(Receive Side Scaling)が有効の場合には、パケットヘッダによって決定される。以下、「割り込み通知を行なう」ことを、「割り込む」と表現してもよい。
【0053】
per-CPU port(CPU毎ポート)33bは、特定のCPU11に対して専用に設けられたポートであり、対応する特定のCPU11に対して割り込み通知を入力するために用いられる。すなわち、CPU毎ポート33bからは、当該CPU毎ポート33bに対応付けられた特定のCPU11に対してのみ割り込み通知を入力することができる。
【0054】
本情報処理装置1においては、CPU11と同数のCPU毎ポート33bが設けられる。これらの複数のCPU毎ポート33bは、仮想ポート33間(HPCアプリケーション100間)で共有される。
【0055】
上述した仮想スイッチ制御機能が、複数のプロセッサ11のそれぞれに対応するCPU毎ポート33b(プロセッサ毎仮想ポート)を設定する。
【0056】
本情報処理装置1においては、CPU11への割り込みには、通常はデフォルトポート33aが用いられる。そして、必要に応じて、フロー毎にCPU毎ポート33bを用いて特定のCPU11に対する割り込み通知が行なわれる。
【0057】
具体的には、後述の如く、スイッチ制御部106が、ハードウェアスイッチ32のスイッチプロファイルを変更することで、CPU11に対して割り込み通知を行なうポート(受信ポート)をデフォルトポート33aからCPU毎ポート33bに変更される。
【0058】
図5は実施形態の一例としての情報処理装置1における処理の概要を示す図である。
【0059】
本情報処理装置1においては、割り込み分散処理機能をDPU18にオフロードし、この割り込み分散処理機能が、ホストのランタイムプロファイラ201と連携して、ホストのワークロードを考慮した割り込み処理を実現する。
【0060】
具体的には、割り込み処理分散部105が、ホストプロファイル取得部102が取得するホストのプロファイルに基づいて、柔軟に割り込み先を選択する。
【0061】
本情報処理装置1は、例えば、ストレージ制御に適用してもよく、また、データ通信制御に適用してもよい。
ホストのユーザ空間においてHPCアプリケーション100が実行される。HPCアプリケーション100は、例えば、複数のCPU11を用いて各種の演算処理を実現してよい。
【0062】
ホストプロファイル取得部102は、各CPU11の利用状況や各CPU11によるプロセスの実行状況を取得する。
【0063】
ホストプロファイル取得部102は、ホストにおけるプロファイル(性能プロファイル)を取得する。ホストにおけるプロファイルは、各CPU11の処理状況(負荷状況)を表す情報であってよい。例えば、ホストにおけるプロファイルは、各CPU11のフローの割り込みレートであってよい。
【0064】
ホストにおけるプロファイルは、例えば、図示しないホストプロファイル作成部が作成する。ホストプロファイル作成部は、CPU11の利用状況等のプロファイルを作成する際に、その作成時間や作成のたびにインクリメントするカウンタ値も設定することで、最新のプロファイルを特定できるようにしてよい。後述する更新検出部104はこのカウンタ値を参照することで、ホストのプロファイルが更新されたかを検出してよい。ホストプロファイル作成部は、更新した最新のプロファイルを更新検出部104に通知してもよい。
【0065】
各CPU11は、フロー単位でパケットを処理してよい。各CPU11が処理するパケットは、いずれかのフローに属していてもよい。
【0066】
フローの割り込みレートは、HPCアプリケーション100によって生成される1つ以上のフローが各CPU11に対して入力している割り込みの発生頻度(レート)である。割り込みレートは、パケットを受信して割り込まれる1秒間あたりの回数であってよく、例えば、「割り込み/秒」を単位とする値で表してよい。
ホストプロファイル取得部102としての機能は、ランタイムプロファイラによって実現されてもよい。ランタイムプロファイラをホストのプロファイラといってもよい。
【0067】
制御用データ管理部101は、制御用データ111を管理する。制御用データ管理部101は、ホストプロファイル取得部102が取得したホストにおけるプロファイル(性能プロファイル)を制御用データ111に登録する。
【0068】
図6は第1実施形態の一例としての情報処理装置1における制御用データ111を例示する図である。
【0069】
制御用データ111は、複数のCPU11の処理状況(負荷状況)を示す情報である。図6に例示する制御用データ111は、複数のCPU11のそれぞれについて、OS noise-sensitiveなアプリを実行中であるかの情報と、フローの割り込みレートとを示している。
【0070】
OS noise-sensitiveなアプリを実行中であるかの情報は、HPCアプリケーション100の実行状況を表す情報であり、当該CPU11が、OSノイズの影響を受けやすいHPCアプリケーション100を実行中であるか否か示す。複数種類のHPCアプリケーション100のそれぞれに対して、OSノイズの影響を受けやすいか否かを予め設定してよい。OSノイズの影響を受けやすいか否かは、各HPCアプリケーション100の特性等に基づいて決定してよい。
【0071】
図6に示す例においては、CPU番号0~3で特定される4つのCPU11の全てがOSノイズの影響を受けやすいHPCアプリケーション100を実行中であることを示す。
【0072】
すなわち、情報処理装置1において、CPU番号0~3の4つのCPU11を利用してHPCアプリケーション100が1つ動作していることを示す。
【0073】
以下、CPU番号が0のCPU11をCPU#0と表す。同様に、CPU番号が1のCPU11をCPU#1と、CPU番号が2のCPU11をCPU#2と、CPU番号が3のCPU11をCPU#3と、それぞれ表す。
【0074】
図6に示す例においては、フローA~Dの4つのフローについて、それぞれが各CPU11に入力している割り込みの割込みレートを示す。この図6に示す例においては、CPU#1において、フローBの割り込みレートの値が100[割り込み/秒]であり、割り込みレートが高いことがわかる。すなわち、CPU#1においてOSノイズが発生し易い状況となっている。
【0075】
この図6に示す例においては、フローAにかかる割り込み通知の入力先としてのCPU11が、CPU#0であることがわかる。割り込み通知の入力先を割り込み先といってよい。同様に、フローBにかかる割り込み先はCPU#1、フローCにかかる割り込み先はCPU#2、フローDにかかる割り込み先はCPU#3である。
【0076】
制御用データ111において、例えば、いずれかのCPU11における割り込みレートの値が所定の閾値以上のフローを割り込み多発フローといってよい。なお、割り込み多発フローの特定方法はこれに限定されるものではなく、種々変形して実施することができる。例えば、制御用データ111に記録された複数の割り込みレート値間での相対的な関係に基づき、割り込みレートの値が突出して高いフローを割り込み多発フローとして決定してもよい。
【0077】
制御用データ111を参照することで、割り込み多発フローを容易に把握することができる。制御用データ111は、ホストとDPU18とが連携するために用いられる。
【0078】
更新検出部104は、ホストの制御用データ111を取得する。更新検出部104は、制御用データ111からホストのプロファイルを読み出し、ホストのプロファイルが更新されたかを確認する。
【0079】
更新検出部104は、取得したホストのプロファイルを割り込み処理分散部105に受け渡す。更新検出部104は、取得したホストのプロファイルをメモリ22や記憶装置23等の所定の記憶領域に格納してもよい。
【0080】
更新検出部104は、制御用データ111に対して、RDMA(Remote Direct Memory Access) Readでプロファイルを取得する。
【0081】
更新検出部104としての機能は、コントロール(Control)スレッドによって実現されてよい。
【0082】
スイッチプロファイル取得部103は、ハードウェアスイッチ32のスイッチプロファイルを取得する。スイッチプロファイルには、ハードウェアスイッチ32の設定や統計情報が含まれてよい。
【0083】
スイッチプロファイル取得部103は、取得したスイッチプロファイルを割り込み処理分散部105に通知する。スイッチプロファイル取得部103は、取得したスイッチプロファイルをメモリ22や記憶装置23等の所定の記憶領域に格納してもよい。
【0084】
スイッチプロファイル取得部103としての機能は、コントロールスレッドによって実現されてよい。
【0085】
割り込み処理分散部105は、更新検出部104が取得したホストのプロファイルと、スイッチプロファイル取得部102が取得したハードウェアスイッチ32のスイッチプロファイルとに基づき、割り込み先としてのCPU11を決定する。
【0086】
割り込み処理分散部105は、制御用データ111を参照して、割り込み多発フローを特定し、この特定した割り込み多発フローを調整対象フローとして決定する。
【0087】
割り込み処理分散部105は、複数のプロセッサ11(第1プロセッサ11)各々の状態に基づいて、これらの複数のプロセッサ11のうちのいずれかのプロセッサ11において割り込みが多発している調整対象フローを特定する。
【0088】
また、割り込み処理分散部105は、複数のCPU11のうち、現在割り込み先となっているCPU11を除く他のCPU11であって割り込みレートの値が所定の閾値より低いCPU11を、次の割り込み先として決定する。
【0089】
割り込み処理分散部105は、制御用データ111を参照し、HPCアプリケーション100が全てのCPU11を用いて実行されている場合に、割り込み先のCPU11が高頻度(例えば、数μ秒~数10μ秒毎)に入れ替わるよう、割り込み先の決定(変更)を繰り返し行なう。
【0090】
割り込み処理分散部105は、複数のプロセッサ11各々の状態に基づいて、複数のプロセッサ11のうちから、割り込み処理にかかる割り込み先を決定するのである。
【0091】
割り込み処理分散部105は、スイッチ制御部106に対して、調整対象フローを特定する情報と、次の割り込み先として決定したCPU11を特定する情報とを通知するとともに、スイッチプロファイルの更新リクエストを発行することで、ハードウェアスイッチ32のスイッチプロファイルを書き換えさせる。
【0092】
図7は第1実施形態の一例としての情報処理装置1における割り込み処理分散部105の処理を説明するための図である。
【0093】
この図7において、符号Aは第一状態を、符号Bは第二状態を、符号Cは第三状態を、符号Dは第四状態を、それぞれ示す。また、フローBが割り込み多発フローである。
【0094】
また、CPU番号0~3で特定される4つのCPU11の全てがOSノイズの影響を受けやすいHPCアプリケーション100を実行中である。
【0095】
第一状態においては割り込み先がCPU#0である。この第一状態において、割り込み処理分散部105が、スイッチ制御部106に対して、スイッチプロファイルの更新リクエストとともに、調整対象フローとしてフローBを、また、次の割り込み先としてCPU#1をそれぞれ通知することで、第二状態に移行させる。
【0096】
第二状態においては割り込み先がCPU#1である。この第二状態において、割り込み処理分散部105が、スイッチ制御部106に対して、スイッチプロファイルの更新リクエストとともに、調整対象フローとしてフローBを、また、次の割り込み先としてCPU#2をそれぞれ通知することで、第三状態に移行させる。
【0097】
第三状態においては割り込み先がCPU#2である。この第三状態において、割り込み処理分散部105が、スイッチ制御部106に対して、スイッチプロファイルの更新リクエストとともに、調整対象フローとしてフローBを、また、次の割り込み先としてCPU#3をそれぞれ通知することで、第四状態に移行させる。
【0098】
第四状態においては割り込み先がCPU#3である。この第四状態において、割り込み処理分散部105が、スイッチ制御部106に対して、スイッチプロファイルの更新リクエストとともに、調整対象フローとしてフローBを、また、次の割り込み先としてCPU#0をそれぞれ通知することで、第一状態に移行させる。
【0099】
以下、同様の処理を繰り返し実行することで、第一状態から第四状態までの状態遷移が繰り返される。すなわち、割り込み処理分散部105は、調整対象フローの次の割り込み先として決定するCPU11を、複数のCPU11間においてローテーション(輪番)で決定してよい。
【0100】
割り込み処理分散部105は、調整対象フローの次の割り込み先を、複数のプロセッサ
のうちの2以上のプロセッサ11間において順次切り替えるのである。
【0101】
また、割り込み処理分散部105は、図7に例示した状態遷移の繰り返し(割り込み先のCPU11の切り替え)が高速(例えば、数μ秒~数10μ秒間隔)で実現されるよう、調整対象フローの特定と、割り込み先の決定(変更)と、スイッチ制御部106に対する更新リクエストの発行とを含む一連の処理を、例えば、数μ秒~数10μ秒間隔の短時間で繰り返し行なう。
【0102】
これにより、第一状態~第四状態の各状態では瞬間的に複数のCPU11間での負荷状態に偏りが生じるが、所定のスパン(例えば、1秒間)では複数のCPU11間において負荷状態の偏りが分散され、CPU11間において負荷が均等化される。
【0103】
また、このような割り込み処理分散部105による、複数のCPU11間における割り込み分散処理にかかる制御をDPU18において行なうことで、CPU11の切り替えにCPU11が用いられることがなく、OSノイズの発生を抑止することができる。
【0104】
割り込み処理分散部105としての機能は、コントロール用スレッドによって実現されてよい。
【0105】
スイッチ制御部106は、ハードウェアスイッチ32を制御する。
スイッチ制御部106は、割り込み処理分散部105から入力される、割り込み先の通知とスイッチプロファイルの更新リクエストとに従って、ハードウェアスイッチ32のスイッチプロファイルを書き換える。
【0106】
これにより、複数のCPU11間において、割り込み先が、高速(例えば、数μ秒~数10μ秒間隔)で順番に切り替わるように、ハードウェアスイッチ32のスイッチプロファイルが書き換えられる。
【0107】
スイッチ制御部106は、割り込み処理分散部105が決定した割り込み処理にかかる割り込み先の情報でハードウェアスイッチ32のスイッチプロファイルを書き換える。
【0108】
スイッチ制御部106は、割り込み処理分散部105の指示に従って、スイッチプロファイルに、決定した割り込み先に対応するCPU毎ポート33b(プロセッサ毎仮想ポート)を設定するのである。
【0109】
(B)動作
先ず、上述の如く構成された第1実施形態の一例としての情報処理装置1における割り込み分散処理の概要を図8および図9を用いて説明する。なお、図8はホスト側の処理を、図9はDPU18側の処理を、それぞれ示す。
【0110】
また、これらの図8および図9においては、プロセッサ11がランタイムプロファイラ201を実行することでホストプロファイル取得部102としての機能が実現される。また、DPU18のプロセッサ21が、コントロール用スレッド202を実行することで、通知検知部104およびスイッチプロファイル取得部103としての機能が実現される。
【0111】
図8に示すように、ランタイムプロファイラ201が、各CPU11の利用状況や各CPU11によるプロセスの実行状況を取得する。ランタイムプロファイラ201は、ホストにおけるプロファイル(性能プロファイル)を取得し、制御用データ111に記憶させる(図8の符号P1参照)。
【0112】
次に、図9に示すように、DPU18のコントロール用スレッド202が、RDMA Readで制御用データ111を取得する(図9の符号P1参照)。また、コントロール用スレッド202は、ハードウェアスイッチ32のスイッチプロファイルも取得する。
【0113】
コントロール用スレッド202は、ホストのプロファイルと、スイッチプロファイルとに基づき、割り込み通知入力先としてのCPU11を決定する。
【0114】
割り込み通知入力先として決定されたCPU11が、前回の割り込み通知入力先のCPU11から変更となる場合には、コントロール用スレッド202は、スイッチ制御部106に対して、スイッチプロファイルの更新リクエストを発行する(図9の符号P2参照)。
【0115】
スイッチ制御部106は、スイッチ制御部106から入力された、割り込み先の通知とスイッチプロファイルの更新リクエストとに従って、ハードウェアスイッチ32のスイッチプロファイルを書き換える(図9の符号P3参照)。
【0116】
次に、第1実施形態の一例としての情報処理装置1におけるホストプロファイル取得部102の処理を、図10に示すフローチャート(ステップA1~A4)に従って説明する。
【0117】
この図10に示す処理は、例えば、本情報処理装置1における割り込み分散処理の開始とともに開始され、割り込み分散処理の終了時(例えば、電源断時)とともに終了する。
【0118】
ステップA1において、ホストプロファイル取得部102は、ホストにおけるプロファイル(性能プロファイル)を取得する。
【0119】
ステップA2において、制御用データ管理部101が、ホストプロファイル取得部102が取得したプロファイル結果を制御用データ111に書き込む。
【0120】
ステップA3において、所定時間の待機(一時待機)が行なわれた後に、ステップA4においてホストプロファイル取得部102としての機能を終了するかを確認する。例えば、本情報処理装置1の電源断等の入力が行なわれた場合に、ホストプロファイル取得部102の終了条件が満たされたと判断してよい。
【0121】
ここで、ホストプロファイル取得部102の終了条件が満たされていない場合には(ステップA4のNoルート参照)、ステップA1に戻る。一方、ホストプロファイル取得部102の終了条件が満たされた場合には(ステップA4のYesルート参照)、処理を終了する。
【0122】
次に、第1実施形態の一例としての情報処理装置1における更新検出部104の処理を、図11に示すフローチャート(ステップB1~B4)に従って説明する。
【0123】
ステップB1において、更新検出部104は、ホストの制御用データ111を読み込む。
【0124】
ステップB2において、更新検出部104は、読み込んだ制御用データ111を参照して、ホストのプロファイルが更新されたかを検出する。
【0125】
更新が検出されない場合には(ステップB2のNoルート参照)、ステップB1に戻る。また、更新が検出された場合には(ステップB2のYesルート参照)、ステップB3に移行する。
【0126】
ステップB3において、更新検出部104は、取得したホストのプロファイルを割り込み処理分散部105に受け渡す。
【0127】
ステップB4において、更新検出部104としての機能を終了するかを確認する。例えば、本情報処理装置1の電源断等の入力が行なわれた場合に、更新検出部104の終了条件が満たされたと判断してよい。
【0128】
ここで、更新検出部104の終了条件が満たされていない場合には(ステップB4のNoルート参照)、ステップB1に戻る。一方、更新検出部104の終了条件が満たされた場合には(ステップB4のYesルート参照)、処理を終了する。
【0129】
(C)効果
このように、第1実施形態の一例としての情報処理装置1によれば、割り込み処理分散部105が、制御用データ111を参照して、割り込みが多発している調整対象フローを決定する。
【0130】
また、割り込み処理分散部105は、複数のCPU11のうち、現在割り込み先となっているCPU11を除く他のCPU11の中から、割り込みレートの値が所定の閾値より低いCPU11を、次の割り込み先として決定する。
【0131】
これにより、特定のCPU11に割り込みが集中して発生することを抑止し、OSノイズの発生を削減することができる。また、OSノイズの発生を抑止することで、クラウドでも性能低下を気にせずHPCアプリケーション100を動かすことができるようになり、コストパフォーマンスを向上させることができる。
【0132】
また、割り込み処理分散部105が、割り込み先のCPU11の切り替えが高速(例えば、数μ秒~数10μ秒間隔)で実現されるよう、調整対象フローの特定と、割り込み先の決定(変更)と、スイッチ制御部106に対する更新リクエストの発行とを含む一連の処理を、例えば、数μ秒~数10μ秒間隔の短時間で繰り返し行なう。
【0133】
これにより、所定のスパン(例えば、1秒間)では複数のCPU11間において負荷状態の偏りが分散され、CPU11間において負荷が均等化される。これによっても、OSノイズの発生を削減することができる。
【0134】
また、更新検出部104,割り込み処理分散部105およびスイッチプロファイル取得部102としての機能をDPU18において実現することで、割り込み先の切り替え制御にホストのCPU11が用いられることがない。これにより、各CPU11の負荷を軽減し、OSノイズの発生を抑止することができる。
【0135】
(II)第2実施形態の説明
上述した第1実施形態においては、割り込み処理分散部105が、全てのCPU11がOSノイズの影響を受けやすいHPCアプリケーション100を実行中である場合において、次の割り込み先として決定するCPU11を、複数のCPU11間においてローテーションで決定しているが、これに限定されるものではない。
【0136】
複数のCPU11のうち、一部のCPU11のみがOSノイズの影響を受けやすいHPCアプリケーション100を実行中の場合に、割り込み処理分散部105は、調整対象フローを、OSノイズの影響を受けやすいHPCアプリケーション100を実行していないCPU11に移動させてよい。
【0137】
OSノイズの影響を受けやすいHPCアプリケーション100を予め設定しておき、CPU11が実行中のアプリケーションが、この設定に登録されたHPCアプリケーション100であるか否かを確認することで、OSノイズの影響を受けやすいHPCアプリケーション100を実行中であるかを判断してよい。
【0138】
図12は第2実施形態の一例としての情報処理装置1における割り込み処理分散部105の処理を説明するための図である。
【0139】
第2実施形態の情報処理装置1は、割り込み処理分散部105における次の割り込み先の決定手法が第1実施形態と異なる他は、第1実施形態と同様に構成されている。
【0140】
図12において、符号Aは、割り込み処理分散部105による割り込み分散処理の実行前の状態を示し、符号Bは、割り込み処理分散部105による割り込み分散処理の実行後の状態を示す。
【0141】
この図12に示す例においては、CPU#0~#3のうち、CPU#0~#2の3つにおいてOSノイズの影響を受けやすいHPCアプリケーション100をそれぞれ実行中であることを示す。
【0142】
また、図12に示す例において、符号Aで示すように、割り込み処理分散部105による割り込み分散処理の実行前においては、CPU#3は、フローDを実行しているが、OSノイズの影響を受けやすいHPCアプリケーション100を実行していない。さらに、フローAにかかる割り込み先はCPU#0,フローBにかかる割り込み先はCPU#1、フローCにかかる割り込み先はCPU#2、フローDにかかる割り込み先はCPU#3である。また、調整対象フローはフローBである。
【0143】
このような場合に、割り込み処理分散部105は、符号Bに示すように、調整対象フローBの割り込み先を、現状のCPU#1から、OSノイズの影響を受けやすいHPCアプリケーション100を実行していないCPU#3に変更する。一方で、割り込み処理分散部105は、CPU#3が実行していたフローDの割り込み先をフロー#1に変更する。すなわち、割り込み処理分散部105は、フローBとフローCとで割り込み先を交換する。
【0144】
本第2実施形態において、割り込み処理分散部105は、調整対象フローの次の割り込み先を、複数のプロセッサ11のうちのプロセッサノイズの影響を受けやすいアプリケーションを非実行中のプロセッサ11に切り替える。
【0145】
このように、割り込み分散処理が、調整対象フローBの割り込み先を、OSノイズの影響を受けやすいHPCアプリケーション100を実行中のCPU11から、OSノイズの影響を受けやすいHPCアプリケーション100を実行していないCPU11に移動させる。これにより、OSノイズの影響を受けやすいHPCアプリケーション100を実行中のCPU11にOSノイズが発生することを抑止することができる。また、これにより、クラウドでも性能低下を気にせずHPCアプリケーション100を動かすことができるようになり、コストパフォーマンスを向上させることができる。
【0146】
(III)その他
本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【0147】
例えば、全てのCPU11がOSノイズの影響を受けやすいHPCアプリケーション100を実行中である第1実施形態の状態において、一部のCPU11がOSノイズの影響を受けやすいHPCアプリケーション100の実行を中止したことを検出した場合に、第2実施形態の如く、割り込み処理分散部105が、調整対象フローを、OSノイズの影響を受けやすいHPCアプリケーション100を実行していないCPU11に移動させてよい。
【0148】
また、一部のCPU11がOSノイズの影響を受けやすいHPCアプリケーション100を非実行中である第2実施形態の状態において、全てのCPU11がOSノイズの影響を受けやすいHPCアプリケーション100を実行中であることを検出した場合に、第1実施形態の如く、割り込み処理分散部105が、次の割り込み先として決定するCPU11を、複数のCPU11間においてローテーションで決定してよい。
【0149】
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
【0150】
例えば、上述した実施形態においては、クラウドの仮想基盤として、Kubernetesであってよい旨を示しているが、これに限定されるものではない。仮想基盤としてdocker等のKubernetes以外の手法を用いてもよい。また、仮想基盤として、VMware等の仮想マシン技術を用いてもよく、適宜変形して実施することができる。
【0151】
上述した第1実施形態において、割り込み処理分散部105が、調整対象フローの次の割り込み先として決定するCPU11を、複数のCPU11間においてローテーション(輪番)で決定しているが、これに限定されるものではない。例えば、割り込み処理分散部105は、調整対象フローの次の割り込み先として決定するCPU11を、複数のCPU11の中からランダムに選択してもよい。
【0152】
また、上述した実施形態においては、ホストプロファイル取得部102が、ホストにおけるプロファイルとして割り込みレートを取得する例を示したが、これに限定されるものではない。
【0153】
例えば、簡便のために、1packet受信するごとに1回割り込みが入ると単純化して、1秒間あたりのパケット数を1秒間あたりの割り込み数として取り扱ってもよい。1秒間あたりのパケット数の単位は、例えば、pps(packet per second)で表すことができる。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
【0154】
(IV)付記
以上の実施形態に関し、さらに以下の付記を開示する。
【0155】
(付記1)
複数の第1プロセッサと、
前記複数の第1プロセッサに対して処理速度が遅い第2プロセッサと、を有する情報処理装置において、
前記複数の第1プロセッサ各々の状態に基づいて、前記複数の第1プロセッサのうちから、割り込み処理にかかる割り込み先を決定する
処理を前記第2プロセッサに実行させることを特徴とする、データ制御プログラム。
【0156】
(付記2)
決定した前記割り込み処理にかかる割り込み先の情報でハードウェアスイッチのスイッチプロファイルを書き換える
処理を前記第2プロセッサに実行させることを特徴とする、付記1に記載のデータ制御プログラム。
【0157】
(付記3)
前記複数の第1プロセッサのそれぞれに対応するプロセッサ毎仮想ポートを設定し、
前記スイッチプロファイルに、決定した前記割り込み先に対応するプロセッサ毎仮想ポートを設定する
処理を前記第2プロセッサに実行させることを特徴とする、付記2に記載のデータ制御プログラム。
【0158】
(付記4)
前記第2プロセッサは、DPU(Data Processing Unit)が有することを特徴とする付記1~3のいずれか1項に記載のデータ制御プログラム。
【0159】
(付記5)
前記複数の第1プロセッサ各々の状態に基づいて、前記複数の第1プロセッサのうちのいずれかの第1プロセッサにおいて割り込みが多発している調整対象フローを特定し、
前記調整対象フローの次の割り込み先を、前記複数の第1プロセッサのうちの2以上の第1プロセッサ間において順次切り替える
処理を前記第2プロセッサに実行させることを特徴とする、付記1~4のいずれか1項に記載のデータ制御プログラム。
【0160】
(付記6)
前記複数の第1プロセッサ各々の状態に基づいて、前記複数の第1プロセッサのうちのいずれかの第1プロセッサにおいて割り込みが多発している調整対象フローを特定し、
前記調整対象フローの次の割り込み先を、前記複数の第1プロセッサのうちのOS(Operating System)ノイズの影響を受けやすいアプリケーションを非実行中の第1プロセッサに切り替える
処理を前記第2プロセッサに実行させることを特徴とする、付記1~5のいずれか1項に記載のデータ制御プログラム。
【0161】
(付記7)
複数の第1プロセッサと、
前記複数の第1プロセッサに対して処理速度が遅い第2プロセッサと、を有する情報処理装置において、
前記複数の第1プロセッサ各々の状態に基づいて、前記複数の第1プロセッサのうちから、割り込み処理にかかる割り込み先を決定する
処理を前記第2プロセッサが実行することを特徴とするデータ制御方法。
【0162】
(付記8)
決定した前記割り込み処理にかかる割り込み先の情報でハードウェアスイッチのスイッチプロファイルを書き換える
処理を前記第2プロセッサが実行することを特徴とする、付記7に記載のデータ制御方法。
【0163】
(付記9)
前記複数の第1プロセッサのそれぞれに対応するプロセッサ毎仮想ポートを設定し、
前記スイッチプロファイルに、決定した前記割り込み先に対応するプロセッサ毎仮想ポートを設定する
処理を前記第2プロセッサが実行することを特徴とする、付記8に記載のデータ制御方法。
【0164】
(付記10)
前記第2プロセッサは、DPUが有することを特徴とする付記7~9のいずれか1項に記載のデータ制御方法。
【0165】
(付記11)
前記複数の第1プロセッサ各々の状態に基づいて、前記複数の第1プロセッサのうちのいずれかの第1プロセッサにおいて割り込みが多発している調整対象フローを特定し、
前記調整対象フローの次の割り込み先を、前記複数の第1プロセッサのうちの2以上の第1プロセッサ間において順次切り替える
処理を前記第2プロセッサが実行することを特徴とする、付記7~10のいずれか1項に記載のデータ制御方法。
【0166】
(付記12)
前記複数の第1プロセッサ各々の状態に基づいて、前記複数の第1プロセッサのうちのいずれかの第1プロセッサにおいて割り込みが多発している調整対象フローを特定し、
前記調整対象フローの次の割り込み先を、前記複数の第1プロセッサのうちのOSノイズの影響を受けやすいアプリケーションを非実行中の第1プロセッサに切り替える
処理を前記第2プロセッサが実行することを特徴とする、付記7~11のいずれか1項に記載のデータ制御方法。
【0167】
(付記13)
複数の第1プロセッサと、
前記複数の第1プロセッサに対して処理速度が遅い第2プロセッサと、を有する情報処理装置であって、
前記第2プロセッサが、
前記複数の第1プロセッサ各々の状態に基づいて、前記複数の第1プロセッサのうちから、割り込み処理にかかる割り込み先を決定する
処理を実行することを特徴とする情報処理装置。
【0168】
(付記14)
前記第2プロセッサが、
決定した前記割り込み処理にかかる割り込み先の情報でハードウェアスイッチのスイッチプロファイルを書き換える
処理を実行することを特徴とする、付記13に記載の情報処理装置。
【0169】
(付記15)
前記第2プロセッサが、
前記複数の第1プロセッサのそれぞれに対応するプロセッサ毎仮想ポートを設定し、
前記スイッチプロファイルに、決定した前記割り込み先に対応するプロセッサ毎仮想ポートを設定する
処理を実行することを特徴とする、付記14に記載の情報処理装置
【0170】
(付記16)
前記第2プロセッサは、DPUが有することを特徴とする付記13~15のいずれか1項に記載の情報処理装置。
【0171】
(付記17)
前記第2プロセッサが、
前記複数の第1プロセッサ各々の状態に基づいて、前記複数の第1プロセッサのうちのいずれかの第1プロセッサにおいて割り込みが多発している調整対象フローを特定し、
前記調整対象フローの次の割り込み先を、前記複数の第1プロセッサのうちの2以上の第1プロセッサ間において順次切り替える
処理を前記第2プロセッサが実行することを特徴とする、付記13~16のいずれか1項に記載の情報処理装置。
【0172】
(付記18)
前記第2プロセッサが、
前記複数の第1プロセッサ各々の状態に基づいて、前記複数の第1プロセッサのうちのいずれかの第1プロセッサにおいて割り込みが多発している調整対象フローを特定し、
前記調整対象フローの次の割り込み先を、前記複数の第1プロセッサのうちのOSノイズの影響を受けやすいアプリケーションを非実行中の第1プロセッサに切り替える
処理を実行することを特徴とする、付記13~17のいずれか1項に記載の情報処理装置。
【符号の説明】
【0173】
1 情報処理装置
11 プロセッサ(第1プロセッサ)
21 プロセッサ(第2プロセッサ)
12,22 メモリ
13、23 記憶装置
14 グラフィック処理装置
14a モニタ
15 入力インタフェース
15a キーボード
15b マウス
16 光学ドライブ装置
16a 光ディスク
17 機器接続インタフェース
17a メモリ装置
17b メモリリーダライタ
17c メモリカード
18 ネットワークインタフェース
19 バス
31 物理ポート
32 ハードウェアスイッチ
33 仮想ポート
33a Default port
33b per-CPU port
100 HPCアプリケーション
101 制御用データ管理部
102 ホストプロファイル取得部
103 スイッチプロファイル取得部
104 更新検出部
105 割り込み処理分散部
106 スイッチ制御部
110 割り込み制御部
111 制御用データ
201 ランタイムプロファイラ
202 コントロール用スレッド
203 スイッチプロファイラ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13