JP2020095446A - 情報処理装置、メモリ初期化制御方法及びプログラム - Google Patents

情報処理装置、メモリ初期化制御方法及びプログラム Download PDF

Info

Publication number
JP2020095446A
JP2020095446A JP2018232472A JP2018232472A JP2020095446A JP 2020095446 A JP2020095446 A JP 2020095446A JP 2018232472 A JP2018232472 A JP 2018232472A JP 2018232472 A JP2018232472 A JP 2018232472A JP 2020095446 A JP2020095446 A JP 2020095446A
Authority
JP
Japan
Prior art keywords
memory
node
core
calculation
cores
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.)
Granted
Application number
JP2018232472A
Other languages
English (en)
Other versions
JP7147531B2 (ja
Inventor
才将 中曽根
Toshimasa Nakasone
才将 中曽根
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2018232472A priority Critical patent/JP7147531B2/ja
Publication of JP2020095446A publication Critical patent/JP2020095446A/ja
Application granted granted Critical
Publication of JP7147531B2 publication Critical patent/JP7147531B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Advance Control (AREA)
  • Memory System (AREA)

Abstract

【課題】並列計算機におけるユーザプロセスへのメモリ割当に際して、実行中のユーザプロセスの処理への影響を抑制すること。【解決手段】情報処理装置は、オペレーティングシステムが動作する制御コアを備える第1のノードと、当該制御コアにより制御され、所定の計算処理を行う複数の計算コアと当該複数の計算コアが使用するメモリとを備え、当該第1のノードと所定のデータ転送機構を介して通信を行う第2のノードとを含み、制御コアは、複数の計算コアのうちいずれかで実行中のユーザプロセスから、メモリ内の指定領域の解放要求を受信した場合に、第2のノードの動作状況を判定し、動作状況に応じてメモリの指定領域の初期化を行う。【選択図】図1

Description

本発明は、情報処理装置、メモリ初期化制御方法及びプログラムに関し、特に、メモリの初期化を制御するための情報処理装置、メモリ初期化制御方法及びプログラムに関する。
Linux(登録商標)/x86_64のような一般的なコンピュータアーキテクチャでは、ユーザプロセスがメモリ確保や解放を行う場合、OS(Operating System)に対してシステムコールを発行し、OSがユーザプロセスに対して物理メモリの割り当て及び削除を行う。この時、割り当てるメモリは初期化されている必要がある。初期化されたメモリがない場合、ユーザプロセスはOSのメモリ初期化を待つことになり遅延が生じる。
特許文献1には、プログラム言語に依存することなく、マルチプロセッサの環境において主記憶領域を安全にクリーンアップする技術が開示されている。特許文献1では、1台のデータ処理装置に2つのCPUコアA及びBと1つの主記憶装置と各種制御手段とが搭載されている。そして、主記憶装置内を2つの領域A及びBに分割して使用する。ここで、CPUコアAと主記憶領域Aを現用系システムとし、CPUコアBと主記憶領域Bを待機系システムとしている。そして、CPUコアAは、主記憶装置の使用量が閾値を超えた場合に、制御手段に対して主記憶装置のクリーンアップ要求を行う。制御手段は、待機系システムのCPUコアBを起動し、主記憶領域Aと主記憶領域Bとを入れ替える。特許文献1では、このようにして、CPUコアAに対して主記憶領域Aのクリーンアップが行われたように見せるものである。
ここで、近年、高速で計算を行うための並列計算機のアーキテクチャには、汎用サーバのモジュールとしてアクセラレータを組み込む形態で実現するものが増えてきている。このような形態をとることで、開発コストの削減に加え、ユーザにとっても慣れた汎用サーバの環境を用いて、並列計算機を利用することができる。
特許文献2には、並列計算機に関する技術が開示されている。特許文献2にかかる並列計算機は、プロセッサとメモリの対からなる複数のノードを備える。そして、一方のノード(制御ノード)内のプロセッサコア(制御コア)は、他方のノード(計算ノード、アクセラレータ)内の各プロセッサコア(計算コア)とメモリとを制御する。ここで、計算ノード内のメモリは、当該計算ノード内の複数の計算コアにより共用される。
特開2007−257259号公報 特許第5867482号公報
ここで、ある計算コアで実行中のユーザプロセスは、メモリ確保の必要が生じた場合、制御コアに対してメモリ割当要求を送信する。そして、制御コアは、メモリ割当要求に応じて計算ノード内のメモリを割り当てる。このとき、並列計算機には、メモリの割当を行う際に、実行中のユーザプロセスの処理に影響を与えてしまう可能性があるという問題点がある。その理由は、例えば、並列計算機ではノード間が物理的に離れているためにノード間の通信が発生し、一般的なLinux(登録商標)/x86_64アーキテクチャと比べて、割り当て対象のメモリ初期化に時間を要するためである。
尚、上述した特許文献1にかかる技術は、1台の計算機内の一方のCPUコアと主記憶領域の半分とを待機系システムとする必要があり、リソースの活用が不十分である。そのため、計算機のリソースを有効活用して高速な演算を目的とする並列計算機には適用できない。また、特許文献2ではメモリ初期化を対象としていない。
本開示は、このような問題点を解決するためになされたものであり、並列計算機におけるユーザプロセスへのメモリ割当に際して、実行中のユーザプロセスの処理への影響を抑制するための情報処理装置、メモリ初期化制御方法及びプログラムを提供することを目的とする。
本開示の第1の態様にかかる情報処理装置は、
オペレーティングシステムが動作する制御コアを備える第1のノードと、当該制御コアにより制御され、所定の計算処理を行う複数の計算コアと当該複数の計算コアが使用するメモリとを備え、当該第1のノードと所定のデータ転送機構を介して通信を行う第2のノードとを含み、
前記制御コアは、
前記複数の計算コアのうちいずれかで実行中のユーザプロセスから、前記メモリ内の指定領域の解放要求を受信した場合に、前記第2のノードの動作状況を判定し、
前記動作状況に応じて前記メモリの前記指定領域の初期化を行う。
本開示の第2の態様にかかる情報処理装置は、
オペレーティングシステムが動作する制御コアと、
当該制御コアにより制御され、所定の計算処理を行う複数の計算コアと当該複数の計算コアが使用するメモリとを備えるノードと所定のデータ転送機構を介して通信を行なうデータ転送部と、
を備え、
前記制御コアは、
前記複数の計算コアのうちいずれかで実行中のユーザプロセスから、前記メモリ内の指定領域の解放要求を受信した場合に、前記ノードの動作状況を判定し、
前記動作状況に応じて前記メモリの前記指定領域の初期化を行う。
本開示の第3の態様にかかるメモリ初期化制御方法は、
オペレーティングシステムが動作する制御コアを備える第1のノードと、当該制御コアにより制御され、所定の計算処理を行う複数の計算コアと当該複数の計算コアが使用するメモリとを備え、当該第1のノードと所定のデータ転送機構を介して通信を行う第2のノードとを含む情報処理装置における前記制御コアが、
前記複数の計算コアのうちいずれかで実行中のユーザプロセスから、前記メモリ内の指定領域の解放要求を受信した場合に、前記第2のノードの動作状況を判定し、
前記動作状況に応じて前記メモリの前記指定領域の初期化を行う。
本開示の第4の態様にかかるプログラムは、
オペレーティングシステムが動作する制御コアを備える第1のノードと、当該制御コアにより制御され、所定の計算処理を行う複数の計算コアと当該複数の計算コアが使用するメモリとを備え、当該第1のノードと所定のデータ転送機構を介して通信を行う第2のノードとを含む情報処理装置における前記制御コアに、
前記複数の計算コアのうちいずれかで実行中のユーザプロセスから、前記メモリ内の指定領域の解放要求を受信した場合に、前記第2のノードの動作状況を判定する処理と、
前記動作状況に応じて前記メモリの前記指定領域の初期化を行う処理と、
を実行させる。
本開示により、並列計算機におけるユーザプロセスへのメモリ割当に際して、実行中のユーザプロセスの処理への影響を抑制するための情報処理装置、メモリ初期化制御方法及びプログラムを提供することができる。
本実施の形態1にかかる情報処理装置の構成を示すブロック図である。 本実施の形態1にかかるメモリ初期化制御方法の流れを示すフローチャートである。 本実施の形態2にかかる並列計算機のハードウェア構成を示すブロック図である。 本実施の形態2にかかる並列計算機の機能構成を示すブロック図である。 本実施の形態2にかかる制御ノードの計算ノード制御用OSの起動時の処理の流れを説明するためのフローチャートである。 本実施の形態2にかかるユーザプロセスの処理の流れを説明するためのフローチャートである。 本実施の形態2にかかるメモリ初期化制御処理の流れを説明するためのフローチャートである。 本実施の形態2にかかるメモリ初期化プロセスの処理の流れを説明するためのフローチャートである。 本実施の形態2にかかるメモリ使用量が閾値未超過の概念を示す図である。 本実施の形態2にかかるメモリ使用量が閾値超過の概念を示す図である。
以下では、本開示の実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一又は対応する要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
<実施の形態1>
図1は、本実施の形態1にかかる情報処理装置1000の構成を示すブロック図である。情報処理装置1000は、第1のノード1100と、第2のノード1200とを備える。第1のノード1100は、制御コア1110を備える。制御コア1110は、オペレーティングシステムが動作し、第1のノード1200内の構成の動作を制御するプロセッサコアである。尚、第1のノード1100は、図示しない構成としてメモリを有するものである。また、第1のノード1100は、2以上のプロセッサコアを有し、当該メモリを共用してもよい。
第2のノード1200は、複数の計算コア1211、1212、・・・121n(nは2以上の自然数。)と、メモリ1220とを備える。計算コア1211等とメモリ1220とは、制御コア1110により制御される。計算コア1211から121nのそれぞれは、所定の計算処理を行うプロセッサコアである。例えば、計算コア1211等のそれぞれは、独立して異なるユーザプロセスを実行することができる。メモリ1220は、計算コア1211から121nのそれぞれにより使用される主記憶装置である。メモリ1220は、例えば、RAM(Random Access Memory)等の揮発性記憶装置である。また、メモリ1220は、計算コア1211から121nのそれぞれにより共用される。
第1のノード1100と第2のノード1200とは、所定のデータ転送機構を介して相互に通信を行うことができる。
制御コア1110は、複数の計算コア1211等のうちいずれかで実行中のユーザプロセスから、メモリ1220内の指定領域の解放要求を受信した場合に、第2のノード1200の動作状況を判定する。ここで、動作状況とは、計算コア1211等及びメモリ1220がどのように動作しているかを示す情報である。動作状況としては例えば、計算コア1211等で実行中のプロセスの有無や、メモリの使用量もしくはメモリの使用率等であってもよい。制御コア1110は、動作状況に応じてメモリ1220の指定領域の初期化を行う。例えば、制御コア1110は、所定のデータ転送機構を介して第2のノード1200のデータ転送回路に対してメモリ1220の指定領域を初期化させるための指示を行う。または、制御コア1110は、所定のデータ転送機構を介して第2のノード1200内の任意の計算コアに対してメモリ1220の指定領域を初期化させるための指示を行う。または、制御コア1110は、動作状況により実行中のプロセスが無いと判定された計算コアを特定し、特定した計算コアに対してメモリ1220の指定領域を初期化させるための指示を行う。
図2は、本実施の形態1にかかるメモリ初期化制御方法の流れを示すフローチャートである。まず、制御コア1110は、計算コア1211から121nのいずれかで実行中のユーザプロセスから、メモリ解放要求を受信する(S11)。このとき、メモリ解放要求には、メモリ1220内で解放対象となる領域が指定されているものとする。
次に、制御コア1110は、第2のノード1200の動作状況を判定する(S12)。そして、制御コア1110は、動作状況に応じて、上述したようにメモリ1220の指定領域の初期化を行う(S13)。
このように本実施形態では、第2のノード1200内のメモリ1220の指定領域の初期化を、ユーザプロセスのメモリ解放要求に応じて第1のノード1100内の制御コア1110が指示を行う。例えば、メモリ解放要求に応じてメモリ解放と共にメモリ初期化を開始しておくことで、その後の他のユーザプロセスによるメモリ割当要求時に速やかに初期化済のメモリを割り当てることができる。特に、制御コア1110は、所定のデータ転送機構を介して接続された第2のノード1200の動作状況に応じてメモリ1220の初期化を行う。例えば、第2のノード1200のメモリ1220の使用状況や計算コア1211等のプロセスの実行状況を加味して適切なメモリ初期化手法を選択して実行できる。そのため、メモリ割当要求時に計算コア1211等で実行中のユーザプロセスへの影響を極力抑えて初期化済のメモリを割り当てることができる。つまり、並列計算機におけるユーザプロセスへのメモリ割当に際して、実行中のユーザプロセスの処理への影響を抑制することができる。
尚、第1のノード1100は、図示しない構成としてさらに記憶装置等を備えるものである。また、当該記憶装置には、本実施の形態にかかるメモリ初期化制御方法の処理が実装されたコンピュータプログラムが記憶されている。そして、制御コア1110は、記憶装置からコンピュータプログラムを第1のノード1100内のメモリへ読み込み、当該コンピュータプログラムを実行する。これにより、制御コア1110は、上述したメモリ初期化制御方法を実現する。
<実施の形態2>
ここで、本実施の形態が解決しようとする課題について詳述する。まず、一般的なLinux(登録商標)/x86_64アーキテクチャ(以下、「x86アーキテクチャ」と呼ぶ。)では、メモリ割当要求時に要求元のプロセスに物理メモリを割り当てず、仮想メモリを割り当てる。そして、実際にプロセスにより割り当て先のメモリへデータの書き込みが発生した際に初めて、必要なページサイズの物理メモリを初期化して、初期化後の物理メモリを割り当てた上でデータを書き込む。このような方式は、デマンドページング又はコピーオンライトと呼ばれる。ここで、x86アーキテクチャでは、ページングサイズが4KBであり、同一ノード内のコアとメモリとのやり取りであるため、デマンドページング方式でもメモリ割り当ての遅延は小さく、ユーザプロセスの実行効率への影響も小さい。
これに対して、上述した並列計算機の場合、x86アーキテクチャと比べて、ページングサイズが64MBと大きい。また、メモリ初期化の指示を出す制御コアと初期化対象のメモリとが別ノードであるため、ノード間通信が発生する。そのため、並列計算機では、x86アーキテクチャと比べてメモリ初期化処理に長時間を要し、メモリ確保の要求コストが大きいといえる。よって、並列計算機では、ユーザプロセスの実行遅延につながるため、デマンドページング方式を採用できない。
そこで、並列計算機では、ユーザプロセスからのメモリ解放要求時に、制御コアから計算ノード内のDMA(Direct Memory Access)エンジンを介してメモリをページフレーム単位で順次、物理ページを解放及び初期化することが考えられる。つまり、メモリ解放要求に応じて解放後に要求元でユーザプロセスの実行を再開させ、バックグラウンド処理にてメモリ初期化を開始することで、その後のメモリ割当要求前に予め割当可能なメモリを準備しておくものである。これにより、その後に他のユーザプロセスから発生したメモリ割当要求時には、メモリ初期化が完了している場合があり、即時に初期化済のメモリ領域を割り当てることができ、ユーザプロセスの実行効率への影響を抑制できる。
ここで、計算ノードのメモリ使用率が高い場合(例えば、割当済のメモリ容量と解放済かつ未初期化のメモリ容量とが多い場合)には、メモリ解放要求とメモリ割当要求が連続して発行される可能性がある。そのような場合には、メモリ解放及び初期化をした直後に、当該メモリ領域を割り当てる必要がある。しかしながら、DMAエンジンを用いたメモリ初期化は、計算コアによるメモリ初期化処理と比べると実行速度が遅い。そのため、メモリ使用率が高い場合にはメモリ割当要求に対して初期化処理が完了するまでの待ち時間が発生し、ユーザプロセスの実行効率への影響が懸念される。
ここで、x86アーキテクチャでは、DMAエンジンを用いずとも、同一ノード内のコアがメモリに対してメモリ初期化処理を実行できる。そこで、並列計算機においても、ユーザプロセスからのメモリ解放要求時に、DMAエンジンを用いずに、制御コアから計算コアに対してメモリ初期化プロセスを実行させることが考えられる。但しこの場合、計算コアがユーザプロセスを実行中の場合、制御コアがコンテキストスイッチにより当該計算コアの実行プロセスをメモリ初期化プロセスに切り替えることとなる。しかしながら、並列計算機では、上述した通り、ノード間通信が発生するためx86アーキテクチャと比べてコンテキストスイッチに時間を要し、ユーザプロセスの実行遅延につながるという懸念がある。
そこで、本実施の形態2は、上述した実施の形態1の具体的な一実施例であり、以下では上述した課題の少なくとも一部を解決するものについて説明する。図3は、本実施の形態2にかかる並列計算機2000のハードウェア構成を示すブロック図である。並列計算機2000は、上述した情報処理装置1000の一例であり、制御ノード1と計算ノード2とを備える情報処理システムである。尚、制御ノード1と計算ノード2とはハードウェア構成上は同等のものを用いても構わない。
並列計算機2000は、メモリとプロセッサとの対からなるノードが複数存在し、それらをインターコネクトで接続したものである。例えば、並列計算機2000は、NUMA(Non-Uniform Memory Access)型のメモリを持つ並列計算機である。また、並列計算機2000は、例えば、HPC(High Performance Computing)分野において利用される。そして、並列計算機2000は、上述したデマンドページング方式を採用していないアーキテクチャである。また、並列計算機2000は、ベクトル演算機ということもできる。
制御ノード1は、上述した第1のノード1100の一例であり、CPU(Central Processing Unit)11と、メモリ12と、データ転送部13とを備える。CPU11は、複数のプロセッサコア111、・・・11m(mは2以上の自然数。)を有する。但し、CPU11は、少なくとも1つのプロセッサコアを有するものであればよい。例えば、プロセッサコア111は、本実施の形態にかかるメモリ初期化方法が実装されたOSを実行する。
メモリ12は、データや実行するプログラムなどを記憶する主記憶装置であり、例えば、RAM等の揮発性記憶装置である。メモリ12は、プロセッサコア111等のそれぞれにより共用される。
データ転送部13は、バス3を介して計算ノード2と接続され、制御ノード1内の構成と計算ノード2との間でデータ転送を行う回路ブロックである。データ転送部13は、DMAエンジン131と対CPU通信部132とを備える。DMAエンジン131は、CPU11を介さずにメモリ12に対してアクセスするためのデータ転送回路である。対CPU通信部132は、CPU11内のレジスタ(不図示)等などの資源にアクセスするための機能を有する。
計算ノード2は、上述した第2のノード1200の一例であり、CPU21と、メモリ22と、データ転送部23とを備える。CPU21は、複数のプロセッサコア211、212・・・21nを有する。但し、CPU21は、少なくとも2以上のプロセッサコアを有するものであればよい。プロセッサコア211のそれぞれは、プロセッサコア111からの制御により独立にユーザプロセスや後述するメモリ初期化プロセスを実行可能である。尚、計算ノード2は、OS機能を持たず、制御ノード1の制御によりユーザプロセスが実行されるものとする。
メモリ22は、データや実行するプログラムなどを記憶する主記憶装置であり、例えば、RAM等の揮発性記憶装置である。メモリ22は、プロセッサコア211等のそれぞれにより共用される。
データ転送部23は、バス3を介して制御ノード1と接続され、計算ノード2内の構成と制御ノード1との間でデータ転送を行う回路ブロックである。データ転送部23は、DMAエンジン231と対CPU通信部232とを備える。DMAエンジン231は、CPU21を介さずにメモリ22に対してアクセスするためのデータ転送回路である。対CPU通信部232は、CPU21内のレジスタ(不図示)等などの資源にアクセスするための機能を有する。
尚、以下の説明において、プロセッサコア111等を代表して単にプロセッサコア111と記載し、同様に、プロセッサコア211等を代表して単にプロセッサコア211と記載して説明する場合がある。
制御ノード1と計算ノード2とはバス3を介して接続されている。そして、制御ノード1と計算ノード2とは、所定のデータ転送機構を介して相互に通信を行うことができる。例えば、制御ノード1と計算ノード2は、PCI(Peripheral Component Interconnect)、Infiniband等のDMA機能、または、RDMA機能を持つインターコネクトによって通信を実現できる。
図4は、本実施の形態2にかかる並列計算機2000のソフトウェアを中心とした機能構成を示すブロック図である。制御ノード1は、制御コア14と記憶装置(不図示)を備える。ここで、制御コア14は、プロセッサコア111から11mのいずれかである。また、当該記憶装置は、本実施の形態にかかるメモリ初期化制御方法の処理が実装されたコンピュータプログラムが記憶されている。そして、制御コア14は、記憶装置からコンピュータプログラムをメモリ12へ読み込み実行することにより、以下の計算ノード制御用OS15として機能する。尚、メモリ初期化制御方法の処理が実装されたコンピュータプログラムは、既存のOSに改良を加えたものか、別途、実装されたプログラムでありOSと共に実行されるものであればよい。
計算ノード2は、DMAエンジン231と、メモリ22と、計算コア1_241、計算コア2_242、・・・計算コアn_24nとを備える。尚、計算コア1_241等は、上述したプロセッサコア211等に対応する構成である。計算コア1_241は、例えば、ユーザプロセスa_251が実行中であることを示す。また、計算コア2_242は、例えば、ユーザプロセスb_252が実行中であることを示す。また、計算コアn_24nは、例えば、メモリ初期化プロセス25nが実行中であることを示す。
メモリ22は、例えば、領域220から225が存在することを示す。領域220は、初期化済かつプロセスへ未割当であるメモリ領域である。領域221は、ユーザプロセスa_251に割当済であるメモリ領域である。領域222は、ユーザプロセスa_251が解放したメモリ領域である。但し、領域222は、未初期化である。領域223は、ユーザプロセスb_252に割当済であるメモリ領域である。領域224は、計算コア1用に割り当てられたメモリ初期化プロセスの実行イメージが格納されたメモリ領域である。領域225は、計算コアn用に割り当てられたメモリ初期化プロセスの実行イメージが格納されたメモリ領域である。尚、計算コア2から計算コアn−1用にそれぞれ割り当てられたメモリ初期化プロセスの実行イメージが可能されたメモリ領域も存在するものとする。
計算ノード制御用OS15は、計算ノード2の資源管理を行う計算ノードメモリ管理部151と、計算ノード2のプロセスを管理する計算ノードプロセス管理部152とを備える。計算ノードメモリ管理部151は、メモリ22内の物理メモリの各領域について割当済、未初期化、初期化済の状態を管理する。具体的には、計算ノードメモリ管理部151は、割当済物理メモリ管理部1511、未初期化物理メモリ管理部1512、初期化済物理メモリ管理部1513、閾値管理部1514を含む。割当済物理メモリ管理部1511は、メモリ22のうちプロセスに割当済の物理メモリに関する情報を管理する。未初期化物理メモリ管理部1512は、メモリ22のうちプロセスから解放済みであるが初期化前である未初期化の物理メモリに関する情報を管理する。初期化済物理メモリ管理部1513は、メモリ22のうちプロセスに割当前かつ初期化済である物理メモリに関する情報を管理する。閾値管理部1514は、メモリ使用率の閾値を管理する。閾値管理部1514は、計算ノード制御用OS15の起動時又は任意のタイミングで、任意の入力手段により読み込まれた閾値を受け付けて、メモリ12に格納する。尚、割当済物理メモリ管理部1511、未初期化物理メモリ管理部1512及び初期化済物理メモリ管理部1513で管理される物理メモリに関する情報、並びに、閾値のデータは、メモリ12に保持されているものとする。
計算ノードプロセス管理部152は、計算ノード2に対するスケジューリングやコンテキストスイッチなどのプロセス管理を行う。また、計算ノードプロセス管理部152は、各計算コア241等のそれぞれに対応するプロセスキュー1521、・・・152nを管理する。尚、プロセスキュー1521、・・・152nは、メモリ12上で保持される。
計算ノード制御用OS15は、計算ノード2上の計算コア1_241等に対してユーザプロセスやメモリ初期化プロセスの実行や停止の指示といった各種制御を行う。ここで、本実施形態では、ユーザプロセスとメモリ初期化プロセスとを区別する。すなわち、計算ノード制御用OS15は、メモリ初期化プロセスを特権的なプロセスとしてメモリ22上に生成する。例えば、計算ノード制御用OS15は、起動時に計算コア1_241等の少なくとも1以上に対応付けてメモリ初期化プロセスを生成し、メモリ22内にロードする。併せて、計算ノード制御用OS15は、対応する計算コア1プロセスキュー1521から計算コアnプロセスキュー152nにメモリ初期化プロセスを登録する。このとき、計算ノード制御用OS15は、各メモリ初期化プロセスの優先度をプロセスキュー内で最低値とする。そのため、各計算コアは、プロセスキュー内にメモリ初期化プロセスよりも優先度の高いユーザプロセスが登録されていれば、そのユーザプロセスがディスパッチされて実行を開始する。一方、各計算コアは、プロセスキュー内にメモリ初期化プロセスよりも優先度の高いプロセスが存在しなければ、計算ノード制御用OS15の指示によりメモリ初期化プロセスがディスパッチされて、メモリ22に割当済のメモリ初期化プロセスの実行を開始する。つまり、メモリ初期化プロセスはメモリ22に常駐するが、通常は実行されない。また、メモリ初期化プロセスは少なくとも1つがメモリ22に常駐していればよい。
また、計算ノード制御用OS15は、複数の計算コアのうちいずれかで実行中のユーザプロセスから、メモリ22内の指定領域の解放要求を受信した場合に、計算ノード2の動作状況を判定する。そして、計算ノード制御用OS15は、動作状況に応じてメモリ22の指定領域の初期化を行う。具体的には、計算ノード制御用OS15は、複数の計算コアのそれぞれにおけるプロセスの実行状況を動作状況として判定する。そして、計算ノード制御用OS15は、判定された実行状況において実行中のプロセスがない空きコアに対して、指定領域の初期化を指示する。
さらに、計算ノード制御用OS15は、解放要求を受信した場合においてメモリ22の使用量が所定の閾値を超えている場合に、複数の計算コアのそれぞれの実行状況を判定することが望ましい。これにより、メモリ使用率が高い場合には、メモリ解放要求の直後にメモリ割当要求を受信する場合があり、その際に、即時に、解放済みかつ初期化済みのメモリを割り当てることができる。
また、計算ノード制御用OS15は、解放要求を受信した場合においてメモリ22の使用量が所定の閾値を超えていない場合に、計算ノード2内のDMAエンジン231に対して指定領域の初期化を指示するとよい。これにより、メモリの空きに余裕がある場合には、メモリ初期化にコアを用いないことで、他のプロセスによるコアの利用を促進することができる。
さらに、計算ノード制御用OS15は、複数の計算コアで実行中のプロセスに割当済みのメモリ容量と未割当かつ未初期化のメモリ容量とを合計してメモリの使用量として算出し、メモリの使用量が所定の閾値を超えているか否かを判定すると良い。これにより、より正確にメモリの使用状況を把握して判定できる。
また、計算ノード制御用OS15は、空きコアに対応付けられたメモリ初期化プロセスに対して、指定領域の初期化を指示する。尚、空きコアが複数存在する場合は、任意のコアを選択してもよい。
さらに、計算ノード制御用OS15は、複数の計算コアのそれぞれに対応し、各計算コアにおける実行対象のプロセスを管理するための複数のプロセスキュー(1521等)を保持する。そして、計算ノード制御用OS15は、初期化プロセスに最低の優先度を付加して、複数のプロセスキューの少なくとも1以上に登録する。計算ノード制御用OS15は、実行状況を判定する際に、プロセスキュー内に初期化プロセス以外のプロセスが登録されているか否かを判定し、初期化プロセス以外のプロセスが登録されていないプロセスキューに対応する計算コアを、空きコアと判定する。
また、計算ノード制御用OS15は、複数の計算コアのうちいずれかで実行中の第2のユーザプロセスから、メモリ22内の前記指定領域のサイズ以下のメモリの割当要求を受信した場合、前記初期化された指定領域から前記割当要求のサイズのメモリを当該第2のユーザプロセスに割り当てる。
ここで、メモリ初期化プロセスは、計算ノード制御用OS15からの実行開始指示(初期化指示)を受信するまで待機している。そして、メモリ初期化プロセスは、実行開始指示を受信した場合に、指定された領域(物理ページ)についてメモリ22の初期化処理を行う。そして、初期化処理の完了後に、メモリ初期化プロセスは、計算ノード制御用OS15に対して完了通知を送信する。
また、計算ノード制御用OS15は、計算ノード2上の各プロセスとプロセス間通信等が可能である。プロセス間通信としては、例えば、ソケットやシグナルによる通信が用いられる。そのため、計算ノード制御用OS15は、一般的なOS(例えばLinux(登録商標)カーネル)と同様にユーザプロセスに対しこれらの管理機能を提供する形で計算ノード2のリソース管理を行うことができる。例えば、ユーザプロセスは、計算ノード制御用OS15に対してシステムコールなど一般的なOSに対して行う要求を送信し、計算ノード制御用OS15は、要求に応じた処理と結果の返答を行うことができる。
図5は、本実施の形態2にかかる制御ノードの計算ノード制御用OSの起動時の処理の流れを説明するためのフローチャートである。まず、計算ノード制御用OS15は起動時に、閾値管理部1514を更新する(S201)。例えば、計算ノード制御用OS15は、外部から入力された閾値を受け付け、閾値管理部1514に登録する。ここで、計算ノード制御用OS15は、起動時のコマンドライン引数、設定ファイル、又は、ユーザ等による入力装置を介した入力等により閾値を受け付ける。
次に、計算ノード制御用OS15は、起動直後に初期化されたメモリ22の全物理メモリの情報を初期化済物理メモリ管理部1513に登録する(S202)。その後、計算ノード制御用OS15は、計算コア1_241から計算コアn_24nのそれぞれに対応付けてn個のメモリ初期化プロセスをメモリ22上に生成し(S203)、計算コア1プロセスキュー1521から計算コアnプロセスキュー152nに登録する。
図6は、本実施の形態2にかかるユーザプロセスの処理の流れを説明するためのフローチャートである。ここでは、例としてユーザプロセスa_251がメモリ解放を要求する場合について説明する。まず、ユーザプロセスa_251は、何らかの処理を完了した後、メモリ22内の領域222について解放するためにメモリ解放関数を呼び出す。これに応じて、ユーザプロセスa_251から領域222を指定領域としたメモリ解放要求が計算ノード制御用OS15へ発行される(S211)。その後、ユーザプロセスa_251は、計算ノード制御用OS15からのメモリ解放の処理結果を待ち受ける(S212)。メモリ解放の処理結果を受け付けた後、制御が戻るため、ユーザプロセスa_251は、実行を再開する(S213)。
図7は、本実施の形態2にかかるメモリ初期化制御処理の流れを説明するためのフローチャートである。まず、計算ノード制御用OS15は、ユーザプロセスa_251からメモリ解放要求を受信する(S221)。そして、計算ノード制御用OS15は、メモリ解放要求に指定された領域222に対応する論理アドレスを解放する(S222)。このとき、計算ノード制御用OS15は、解放対象の物理メモリの情報を割当済物理メモリ管理部1511から削除し、未初期化物理メモリ管理部1512に登録する(S223)。そして計算ノード制御用OS15は、ユーザプロセスa_251へ解放済みを示す解放処理完了通知(処理結果)を返信する(S224)。
次に、計算ノード制御用OS15は、未初期化メモリを選択する(S225)。すなわち、計算ノード制御用OS15は、未初期化物理メモリ管理部1512に登録されている物理メモリのページフレーム単位で1つ以上選択する。ここで、複数のメモリ解放要求が近い時間に受信されていた場合、または、スレッドによる並行処理等により、ステップS225の処理タイミングによっては、未初期化のページフレームが選択できない場合がある。例えば、一方の要求に対して既にステップS225が実行済みとなり、他方の要求においては未初期化のページフレームが選択できない場合などである。その場合、ステップS225でNOとなり、処理を終了する。
一方、未初期化メモリが選択された場合(ステップS225でYES)、計算ノード制御用OS15は、メモリ22の使用率を確認する(S226)。具体的には、計算ノードメモリ管理部151は、割当済物理メモリ管理部1511と未初期化物理メモリ管理部1512で管理される物理メモリの合計値を算出する。そして、計算ノードメモリ管理部151は、合計値が物理メモリ全体に占める割合をメモリ使用率として算出する。すなわち、計算ノードメモリ管理部151は、割当済物理メモリ管理部1511と未初期化物理メモリ管理部1512から取得した情報に基づいて計算ノード2でプロセスに割当済と解放済みだが未初期化であるの物理メモリのページフレーム数を合計する。そして、計算ノードメモリ管理部151は、合計値がメモリ22全体のページフレーム数に占める割合を算出する。そして、計算ノードメモリ管理部151は、算出されたメモリ使用率が閾値管理部1514で管理される閾値を超えるか否かを判定する。
メモリ使用率が閾値を超えないと判定した場合(ステップS226で低)、計算ノード制御用OS15は、DMAエンジン231に対して、選択されたページフレーム(領域222)について初期化することを指示する(S227)。図9は、本実施の形態2にかかるメモリ使用量が閾値未超過の概念を示す図である。この場合、メモリ22内の初期化済のメモリ容量が十分であるため、直後にメモリ割当要求が発生したとしても、即座に初期化済のメモリ領域を割り当てることが可能である。また、DMAエンジン231を用いて初期化を行うため、計算コア1_241等で実行中の各ユーザプロセスにコンテキストスイッチを行う必要がない。そのため、実行中のユーザプロセスへの影響を与えない。つまり、このケースでは、DMAエンジンを用いたメモリ初期化方法が最適であるといえる。
一方、メモリ使用率が閾値を超えたと判定した場合(ステップS226で高)、計算ノード制御用OS15は、空きコアがあるか否かを判定する(S228)。具体的には、計算ノードプロセス管理部152は、計算コア1プロセスキュー1521から計算コアnプロセスキュー152nを参照し、各計算コアのプロセスの実行状況を判定する。つまり、計算ノードプロセス管理部152は、ユーザプロセスのスケジューリングがされていない計算コア、すなわち、プロセスが実行されていない空きコアの有無を判定する。空きコアが有る場合(ステップS228で有)、計算ノード制御用OS15は、空きコアに対してメモリ初期化プロセスによる初期化指示を行う(S229)。図10は、本実施の形態2にかかるメモリ使用量が閾値超過の概念を示す図である。すなわち、計算ノード制御用OS15は、空きコアに対応付けられたメモリ初期化プロセスに対して、選択されたページフレーム(領域222)について初期化することを指示する。このように、メモリの空き容量が少ない場合には、DMAエンジンによるメモリ初期化と比べて高速にメモリ初期化を行うことで、メモリ初期化をより速く完了させることができる。そして、直後にメモリ割当要求が発生したとしても、メモリ初期化による待ち時間を削減し、初期化済のメモリ領域をより速く割り当てることができる。また、空きコアであるため、実行中のユーザプロセスへの影響を与えない。つまり、このケースでは、メモリ初期化プロセスを用いたメモリ初期化方法が最適であるといえる。尚、空きコアが複数存在する場合、任意の計算コアを選択してよい。また、各メモリ初期化プロセスへのページフレームの割当方は任意である。
空きコアが無い場合(ステップS228で無)、計算ノード制御用OS15は、DMAエンジン231に対して、選択されたページフレーム(領域222)について初期化することを指示する(S227)。この場合に、メモリ初期化プロセスを実行させてしまうと、いずれかの計算コアで実行中のユーザプロセスをメモリ初期化プロセスへコンテキストスイッチにより切り替えることになり、実行中のユーザプロセスへの影響を与えてしまう。そのため、このケースでは、メモリ初期化プロセスではなく、DMAエンジンを用いたメモリ初期化方法が最適であるといえる。
ステップS227又はS229の後、計算ノード制御用OS15は、計算ノード2からのメモリ初期化完了通知を待つ(S230)。そして、メモリ初期化完了通知を受信した後、計算ノード制御用OS15は、未初期化物理メモリ管理部1512から初期化が完了した領域を削除し、当該領域を初期化済物理メモリ管理部1513へ登録する(S231)。
図8は、本実施の形態2にかかるメモリ初期化プロセスの処理の流れを説明するためのフローチャートである。まず、メモリ初期化プロセス25nは、計算ノード制御用OS15からの初期化指示を受信したか否かを判定する(S241)。未受信の場合、待機し、所定時間経過後、再度、ステップS241を実行する。初期化指示を受信した場合、メモリ初期化プロセス25nは、指定されたページフレームについてメモリ22の初期化処理を実行する(S242)。そして、初期化処理終了後に、メモリ初期化プロセス25nは、計算ノード制御用OS15に対して、処理完了通知を返信する(S243)。その後、待機し、所定時間経過後、再度、ステップS241を実行する。このとき、常駐状態に戻る。
尚、この後、例えば、ユーザプロセスb_252がメモリ割当要求を発行したとする。その場合、計算ノード制御用OS15は、初期化済物理メモリ管理部1513の中から、要求されたサイズの任意のページフレームを選択し、ユーザプロセスb_252に割り当てる。すなわち、初期化済物理メモリ管理部1513から選択したページフレームを削除し、割当済物理メモリ管理部1511に登録する。
以上のことから本実施の形態により次のような効果を奏する。
まず、計算ノードのメモリ及びコアの使用状況(動作状況)によって、メモリ解放手法を切り替えることにより、メモリ初期化時のユーザプロセスへの影響を小さくすることができる。例えば、メモリ使用率が高く、コアが空いている場合には、コアによるメモリ初期化を行うと良い。この場合、ユーザプロセスはコアを使っていないので、ユーザプロセスの実行に割り込んではいない。逆に、コアが空いていない場合は、コアを使わずDMAエンジンを利用することにより、ユーザプロセスの実行に割り込まない。そのため、実行中のユーザプロセスへの影響を抑制できる。
また、ユーザプロセスによるメモリ解放要求時に初期化済みメモリが十分に無く、未初期化のメモリが多くあった場合、実行中のユーザプロセスへ影響を与えることなく、最も早くメモリを初期化する方法を選択して初期化することが可能となる。この場合、上記に加えて、DMAエンジンによる初期化に比べて高速なコアを利用する初期化を選択するためである。
また、メモリ初期化をx86アーキテクチャより短時間で実行可能となるため、メモリ割当待ちの時間が短縮し、ユーザプロセスの実行効率向上につながる。上記により実行中のユーザプロセスへ影響を与えずに、メモリ割当時にメモリ初期化による遅延が発生する場合には、これを短縮できるためである。
また、本実施形態は、メモリ初期化方法として、DMAエンジン経由と、計算コアにより実行させるメモリ初期化プロセスとを提供し、計算ノードのメモリ負荷と計算コアの使用状況に応じて最適なメモリ初期化方法を選択するものといえる。これにより、計算ノードのメモリ負荷が高い場合におけるメモリ確保に伴うユーザプロセスの遅延を緩和するものである。
また、本実施形態では、メモリ初期化プロセス専用のコアを設けないことにより、並列計算機の資源を有効活用することができる。
<その他の実施の形態>
尚、上述した実施形態2では全ての計算コアに最低優先度のメモリ初期化プロセスを生成し、各計算コアにスケジューリングする方針としたが、一部のコアに対してだけメモリ初期化プロセスを生成し、メモリ上に常駐させても良い。この場合、実行可能なユーザプロセスの存在しないコアが見つかった場合にその都度スケジューリングすることで同様に効果を期待できる。
または、メモリ初期化用プロセスを1プロセスとし、当該メモリ初期化用プロセスからコア数分のスレッドを生成しても良い。すなわち、各メモリ初期化用スレッドを複数の計算コアに分散して割り当ててもよい。この場合、空きコアにおいて割り当て済みのスレッドを実行することにより、計算コアによるメモリ初期化処理を実現できる。特に、スレッドはプロセスのメモリ領域を共有するため、メモリの使用率を抑えつつ同様の効果を期待できる。
尚、上述の実施の形態では、ハードウェアの構成として説明したが、これに限定されるものではない。本開示は、任意の処理を、CPUにコンピュータプログラムを実行させることにより実現することも可能である。
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、DVD(Digital Versatile Disc)、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
なお、本開示は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。また、本開示は、それぞれの実施の形態を適宜組み合わせて実施されてもよい。
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
(付記A1)
オペレーティングシステムが動作する制御コアを備える第1のノードと、当該制御コアにより制御され、所定の計算処理を行う複数の計算コアと当該複数の計算コアが使用するメモリとを備え、当該第1のノードと所定のデータ転送機構を介して通信を行う第2のノードとを含み、
前記制御コアは、
前記複数の計算コアのうちいずれかで実行中のユーザプロセスから、前記メモリ内の指定領域の解放要求を受信した場合に、前記第2のノードの動作状況を判定し、
前記動作状況に応じて前記メモリの前記指定領域の初期化を行う
情報処理装置。
(付記A2)
前記制御コアは、
前記複数の計算コアのそれぞれにおけるプロセスの実行状況を前記動作状況として判定し、
前記判定された実行状況において実行中のプロセスがない空きコアに対して、前記指定領域の初期化を指示する
付記A1に記載の情報処理装置。
(付記A3)
前記制御コアは、
前記解放要求を受信した場合において前記メモリの使用量が所定の閾値を超えている場合に、前記複数の計算コアのそれぞれの前記実行状況を判定する
付記A2に記載の情報処理装置。
(付記A4)
前記制御コアは、
前記解放要求を受信した場合において前記メモリの使用量が所定の閾値を超えていない場合に、前記第2のノード内のデータ転送回路に対して前記指定領域の初期化を指示する
付記A2又はA3に記載の情報処理装置。
(付記A5)
前記制御コアは、
前記複数の計算コアで実行中のプロセスに割当済みのメモリ容量と未割当かつ未初期化のメモリ容量とを合計して前記メモリの使用量として算出し、
前記メモリの使用量が前記所定の閾値を超えているか否かを判定する
付記A3又はA4に記載の情報処理装置。
(付記A6)
前記メモリには、前記複数の計算コアのうち少なくとも1以上に対応付けて生成された1以上のメモリ初期化プロセスが常駐しており、
前記制御コアは、
前記空きコアに対応付けられた前記メモリ初期化プロセスに対して、前記指定領域の初期化を指示する
付記A2乃至A5のいずれか1項に記載の情報処理装置。
(付記A7)
前記制御コアは、
前記複数の計算コアのそれぞれに対応し、各計算コアにおける実行対象のプロセスを管理するための複数のプロセスキューを保持し、
前記メモリ初期化プロセスに最低の優先度を付加して、前記複数のプロセスキューの少なくとも1以上に登録し、
前記実行状況を判定する際に、前記プロセスキュー内に前記メモリ初期化プロセス以外のプロセスが登録されているか否かを判定し、
前記メモリ初期化プロセス以外のプロセスが登録されていないプロセスキューに対応する計算コアを、前記空きコアと判定する
付記A6に記載の情報処理装置。
(付記B1)
オペレーティングシステムが動作する制御コアと、
当該制御コアにより制御され、所定の計算処理を行う複数の計算コアと当該複数の計算コアが使用するメモリとを備えるノードと所定のデータ転送機構を介して通信を行なうデータ転送部と、
を備え、
前記制御コアは、
前記複数の計算コアのうちいずれかで実行中のユーザプロセスから、前記メモリ内の指定領域の解放要求を受信した場合に、前記ノードの動作状況を判定し、
前記動作状況に応じて前記メモリの前記指定領域の初期化を行う
情報処理装置。
(付記B2)
前記制御コアは、
前記複数の計算コアのそれぞれにおけるプロセスの実行状況を前記動作状況として判定し、
前記判定された実行状況において実行中のプロセスがない空きコアに対して、前記指定領域の初期化を指示する
付記B1に記載の情報処理装置。
(付記C1)
オペレーティングシステムが動作する制御コアを備える第1のノードと、当該制御コアにより制御され、所定の計算処理を行う複数の計算コアと当該複数の計算コアが使用するメモリとを備え、当該第1のノードと所定のデータ転送機構を介して通信を行う第2のノードとを含む情報処理装置における前記制御コアが、
前記複数の計算コアのうちいずれかで実行中のユーザプロセスから、前記メモリ内の指定領域の解放要求を受信した場合に、前記第2のノードの動作状況を判定し、
前記動作状況に応じて前記メモリの前記指定領域の初期化を行う
メモリ初期化制御方法。
(付記D1)
オペレーティングシステムが動作する制御コアを備える第1のノードと、当該制御コアにより制御され、所定の計算処理を行う複数の計算コアと当該複数の計算コアが使用するメモリとを備え、当該第1のノードと所定のデータ転送機構を介して通信を行う第2のノードとを含む情報処理装置における前記制御コアに、
前記複数の計算コアのうちいずれかで実行中のユーザプロセスから、前記メモリ内の指定領域の解放要求を受信した場合に、前記第2のノードの動作状況を判定する処理と、
前記動作状況に応じて前記メモリの前記指定領域の初期化を行う処理と、
を実行させるプログラム。
1000 情報処理装置
1100 第1のノード
1110 制御コア
1200 第2のノード
1211 計算コア
1212 計算コア
121n 計算コア
1220 メモリ
2000 並列計算機
1 制御ノード
11 CPU
111 プロセッサコア
11m プロセッサコア
12 メモリ
13 データ転送部
131 DMAエンジン
132 対CPU通信部
14 制御コア
15 計算ノード制御用OS
151 計算ノードメモリ管理部
1511 割当済物理メモリ管理部
1512 未初期化物理メモリ管理部
1513 初期化済物理メモリ管理部
1514 閾値管理部
152 計算ノードプロセス管理部
1521 計算コア1プロセスキュー
152n 計算コアnプロセスキュー
2 計算ノード
21 CPU
211 プロセッサコア
212 プロセッサコア
21n プロセッサコア
22 メモリ
23 データ転送部
231 DMAエンジン
232 対CPU通信部
3 バス
220 領域
221 領域
222 領域
223 領域
224 領域
225 領域
241 計算コア1_
242 計算コア2_
24n 計算コアn_
251 ユーザプロセスa_
252 ユーザプロセスb_
25n メモリ初期化プロセス

Claims (10)

  1. オペレーティングシステムが動作する制御コアを備える第1のノードと、当該制御コアにより制御され、所定の計算処理を行う複数の計算コアと当該複数の計算コアが使用するメモリとを備え、当該第1のノードと所定のデータ転送機構を介して通信を行う第2のノードとを含み、
    前記制御コアは、
    前記複数の計算コアのうちいずれかで実行中のユーザプロセスから、前記メモリ内の指定領域の解放要求を受信した場合に、前記第2のノードの動作状況を判定し、
    前記動作状況に応じて前記メモリの前記指定領域の初期化を行う
    情報処理装置。
  2. 前記制御コアは、
    前記複数の計算コアのそれぞれにおけるプロセスの実行状況を前記動作状況として判定し、
    前記判定された実行状況において実行中のプロセスがない空きコアに対して、前記指定領域の初期化を指示する
    請求項1に記載の情報処理装置。
  3. 前記制御コアは、
    前記解放要求を受信した場合において前記メモリの使用量が所定の閾値を超えている場合に、前記複数の計算コアのそれぞれの前記実行状況を判定する
    請求項2に記載の情報処理装置。
  4. 前記制御コアは、
    前記解放要求を受信した場合において前記メモリの使用量が所定の閾値を超えていない場合に、前記第2のノード内のデータ転送回路に対して前記指定領域の初期化を指示する
    請求項2又は3に記載の情報処理装置。
  5. 前記制御コアは、
    前記複数の計算コアで実行中のプロセスに割当済みのメモリ容量と未割当かつ未初期化のメモリ容量とを合計して前記メモリの使用量として算出し、
    前記メモリの使用量が前記所定の閾値を超えているか否かを判定する
    請求項3又は4に記載の情報処理装置。
  6. 前記メモリには、前記複数の計算コアのうち少なくとも1以上に対応付けて生成された1以上のメモリ初期化プロセスが常駐しており、
    前記制御コアは、
    前記空きコアに対応付けられた前記メモリ初期化プロセスに対して、前記指定領域の初期化を指示する
    請求項2乃至5のいずれか1項に記載の情報処理装置。
  7. 前記制御コアは、
    前記複数の計算コアのそれぞれに対応し、各計算コアにおける実行対象のプロセスを管理するための複数のプロセスキューを保持し、
    前記メモリ初期化プロセスに最低の優先度を付加して、前記複数のプロセスキューの少なくとも1以上に登録し、
    前記実行状況を判定する際に、前記プロセスキュー内に前記メモリ初期化プロセス以外のプロセスが登録されているか否かを判定し、
    前記メモリ初期化プロセス以外のプロセスが登録されていないプロセスキューに対応する計算コアを、前記空きコアと判定する
    請求項6に記載の情報処理装置。
  8. オペレーティングシステムが動作する制御コアと、
    当該制御コアにより制御され、所定の計算処理を行う複数の計算コアと当該複数の計算コアが使用するメモリとを備えるノードと所定のデータ転送機構を介して通信を行なうデータ転送部と、
    を備え、
    前記制御コアは、
    前記複数の計算コアのうちいずれかで実行中のユーザプロセスから、前記メモリ内の指定領域の解放要求を受信した場合に、前記ノードの動作状況を判定し、
    前記動作状況に応じて前記メモリの前記指定領域の初期化を行う
    情報処理装置。
  9. オペレーティングシステムが動作する制御コアを備える第1のノードと、当該制御コアにより制御され、所定の計算処理を行う複数の計算コアと当該複数の計算コアが使用するメモリとを備え、当該第1のノードと所定のデータ転送機構を介して通信を行う第2のノードとを含む情報処理装置における前記制御コアが、
    前記複数の計算コアのうちいずれかで実行中のユーザプロセスから、前記メモリ内の指定領域の解放要求を受信した場合に、前記第2のノードの動作状況を判定し、
    前記動作状況に応じて前記メモリの前記指定領域の初期化を行う
    メモリ初期化制御方法。
  10. オペレーティングシステムが動作する制御コアを備える第1のノードと、当該制御コアにより制御され、所定の計算処理を行う複数の計算コアと当該複数の計算コアが使用するメモリとを備え、当該第1のノードと所定のデータ転送機構を介して通信を行う第2のノードとを含む情報処理装置における前記制御コアに、
    前記複数の計算コアのうちいずれかで実行中のユーザプロセスから、前記メモリ内の指定領域の解放要求を受信した場合に、前記第2のノードの動作状況を判定する処理と、
    前記動作状況に応じて前記メモリの前記指定領域の初期化を行う処理と、
    を実行させるプログラム。
JP2018232472A 2018-12-12 2018-12-12 情報処理装置、メモリ初期化制御方法及びプログラム Active JP7147531B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018232472A JP7147531B2 (ja) 2018-12-12 2018-12-12 情報処理装置、メモリ初期化制御方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018232472A JP7147531B2 (ja) 2018-12-12 2018-12-12 情報処理装置、メモリ初期化制御方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2020095446A true JP2020095446A (ja) 2020-06-18
JP7147531B2 JP7147531B2 (ja) 2022-10-05

Family

ID=71085079

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018232472A Active JP7147531B2 (ja) 2018-12-12 2018-12-12 情報処理装置、メモリ初期化制御方法及びプログラム

Country Status (1)

Country Link
JP (1) JP7147531B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0764852A (ja) * 1993-08-23 1995-03-10 Nec Corp 動的確保領域の保証方式
JP2015143943A (ja) * 2014-01-31 2015-08-06 富士通株式会社 情報処理装置、制御方法、および制御プログラム
JP2018152019A (ja) * 2017-03-15 2018-09-27 日本電気株式会社 制御装置、制御方法、プログラム、情報処理装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0764852A (ja) * 1993-08-23 1995-03-10 Nec Corp 動的確保領域の保証方式
JP2015143943A (ja) * 2014-01-31 2015-08-06 富士通株式会社 情報処理装置、制御方法、および制御プログラム
JP2018152019A (ja) * 2017-03-15 2018-09-27 日本電気株式会社 制御装置、制御方法、プログラム、情報処理装置

Also Published As

Publication number Publication date
JP7147531B2 (ja) 2022-10-05

Similar Documents

Publication Publication Date Title
JP7313381B2 (ja) ハードウェアアクセラレーションのためのハードウェアリソースの埋込みスケジューリング
US9710310B2 (en) Dynamically configurable hardware queues for dispatching jobs to a plurality of hardware acceleration engines
US11093297B2 (en) Workload optimization system
US8826270B1 (en) Regulating memory bandwidth via CPU scheduling
US9098337B2 (en) Scheduling virtual central processing units of virtual machines among physical processing units
US8402470B2 (en) Processor thread load balancing manager
CN113918101B (zh) 一种写数据高速缓存的方法、系统、设备和存储介质
US10579416B2 (en) Thread interrupt offload re-prioritization
US10932202B2 (en) Technologies for dynamic multi-core network packet processing distribution
US10614004B2 (en) Memory transaction prioritization
WO2019028682A1 (zh) 一种多系统共享内存的管理方法及装置
US10331581B2 (en) Virtual channel and resource assignment
US10459771B2 (en) Lightweight thread synchronization using shared memory state
US9697047B2 (en) Cooperation of hoarding memory allocators in a multi-process system
US8245229B2 (en) Temporal batching of I/O jobs
JP7147531B2 (ja) 情報処理装置、メモリ初期化制御方法及びプログラム
JP5557612B2 (ja) 計算機及び転送プログラム
US10051087B2 (en) Dynamic cache-efficient event suppression for network function virtualization
CN113176950B (zh) 报文处理方法、装置、设备及计算机可读存储介质
JP6364827B2 (ja) 情報処理装置、及び、そのリソースアクセス方法、並びに、リソースアクセスプログラム
KR20210007417A (ko) 멀티-코어 시스템 및 그 동작 제어 방법
US11914512B2 (en) Writeback overhead reduction for workloads
US20220058062A1 (en) System resource allocation for code execution
US20230305720A1 (en) Reservation of memory in multiple tiers of memory
US20240069965A1 (en) Systems and methods for executing compute functions

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211102

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220817

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220823

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220905

R151 Written notification of patent or utility model registration

Ref document number: 7147531

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151