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

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

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

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