JP2015094974A - 情報処理装置、情報処理方法、プログラム、計算処理装置、計算処理方法 - Google Patents

情報処理装置、情報処理方法、プログラム、計算処理装置、計算処理方法 Download PDF

Info

Publication number
JP2015094974A
JP2015094974A JP2013232197A JP2013232197A JP2015094974A JP 2015094974 A JP2015094974 A JP 2015094974A JP 2013232197 A JP2013232197 A JP 2013232197A JP 2013232197 A JP2013232197 A JP 2013232197A JP 2015094974 A JP2015094974 A JP 2015094974A
Authority
JP
Japan
Prior art keywords
calculation
core
processing
exception
control
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
JP2013232197A
Other languages
English (en)
Other versions
JP5867482B2 (ja
Inventor
青山 俊一
Shunichi Aoyama
俊一 青山
照之 今井
Teruyuki Imai
照之 今井
康雄 石井
Yasuo Ishii
康雄 石井
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 JP2013232197A priority Critical patent/JP5867482B2/ja
Priority to KR1020167014916A priority patent/KR101783164B1/ko
Priority to EP14860668.4A priority patent/EP3067796A4/en
Priority to PCT/JP2014/005561 priority patent/WO2015068382A1/ja
Priority to US15/035,065 priority patent/US10241829B2/en
Priority to CN201480061338.6A priority patent/CN105723340B/zh
Publication of JP2015094974A publication Critical patent/JP2015094974A/ja
Application granted granted Critical
Publication of JP5867482B2 publication Critical patent/JP5867482B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/481Exception handling

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Hardware Redundancy (AREA)

Abstract

【課題】OSジッタやキャッシュ汚染が生じるという問題、及び、汎用性の喪失、開発費の高騰という問題、を解決すること。【解決手段】オペレーティングシステムが組み込まれた制御コアと、制御コアにて制御され、所定の計算処理を行う少なくとも一つの計算コアと、を備え、制御コアは、停止している計算コアに対して当該計算コアが行う計算処理の開始を指示する計算コア制御部を備え、計算コアは、計算コア制御部からの計算処理の開始の指示に応じて計算処理の開始を行うように当該計算コアを制御する計算処理制御部と、計算処理の実行中に発生した予め設定された例外処理を検出し、当該例外処理が発生した計算処理の実行を停止する例外検出部と、を備える。【選択図】図2

Description

本発明は、情報処理装置、情報処理方法、プログラム、計算処理装置、計算処理方法に係り、特に、複数のプロセッサを備え並列計算を行う情報処理装置、情報処理方法、プログラム、計算処理装置、計算処理方法に関する。
プロセッサとメモリの対からなる複数のノードをインターコネクトで接続した、NUMA(Non−Uniform Memory Access)型の並列計算機が知られている。NUMA型の並列計算機は、プロセッサと同一ノードのローカルメモリに対するアクセスコストと、他ノードのリモートメモリに対するアクセスコストと、が不均一になるシステムである。
このような並列計算機の一例として、1台以上のプロセッサと、該1台以上のプロセッサにより使用される主メモリと、からなる複数のクラスタを備え、プロセスの仮想空間の一部に実メモリに常駐する通信領域を設けた並列計算機が知られている。このように構成することで、プロセス間データ通信のオーバーヘッドを削減することが可能な並列計算機を構成することが出来る(特許文献1)
また、制御用ノードと演算用ノードとを備え、演算用ノードにリモートプロセスのみを実行するように設定することが出来る計算機システムが知られている(特許文献2)。
特開平06−019856号公報 特開2008−165318号公報
一般に、このような並列計算機では、OS等のシステム制御プログラムからの干渉(タイマ割り込み等)に起因する割り込み処理が発生することで、各ノードのアプリケーションの実行速度にばらつきが出ることがある。その結果、他プロセッサとの同期待ちが必要となり、並行プログラムの実行速度が低下するOSジッタ問題と呼ばれる問題が発生することがある。
また、カーネルプロセス等のOS処理が動作した時に発生したメモリアクセスにより、キャッシュにアプリケーションプログラムが利用しないデータが格納されることがある。その結果、アプリケーションプログラムが利用するデータがキャッシュから追い出されるキャッシュ汚染と呼ばれる問題が発生することがある。
このような問題を解決する手法としては、例えば、SMP計算機におけるロックの制約によるシステムコールを実行するプロセッサの限定、マイクロカーネルによる分散OS、などがある。しかしながら、これらOS機能の他のノードへの権限移譲(オフロード)という方法では、接続されるI/Oデバイス毎に専用のデバイスドライバを開発する必要が生じることになる。その結果、多様なデバイスのサポートをすることが困難になっていた。
また、このような問題を緩和する方法として、アクセラレータ型の計算機を採用することも考えられる。しかしながら、アクセラレータ型の計算機ではOSが動作しないため、広く普及しているプラグラミング言語(C言語など)が期待するAPI(POSIX API等)がなく、基本的なシステム制御を行うことができない。そのため、アクセラレータ型計算機においては、専用言語での開発が必要となっており、過去のプログラミング資産の活用を困難なものにしていた。また、最適化などにも困難を伴う場合を生じていた。
ここで、OS開発コストを低減するための技術としては、仮想機械による仮想化も考えられる。例えば、コモディティとは異なるアーキテクチャの計算機に対して、コモディティのアーキテクチャをエミュレートする仮想機械を導入することで、OSやデバイスドライバの開発を不要とすることが出来る。一般に、仮想機械は通常OSよりも単純である。そのため、仮想機械を導入することで開発コストを低減することが出来ると考えられる。しかしながら、仮想機械による仮想化を行うと、仮想機械によるエミュレーションのためにオーバーヘッドが発生してしまう。また、仮想機械による仮想化では、上述したジッタやキャッシュの汚染という問題を解決することは出来ない。
このように、並列計算機にはOSジッタやキャッシュ汚染の問題が生じており、それを解決しようとすると、汎用性を失ったり開発費が高騰するなどの問題が生じていた。
そこで、本発明の目的は、上述した課題である、並列計算機にはOSジッタやキャッシュ汚染が生じるという問題、及び、汎用性の喪失、開発費の高騰という問題、を解決する情報処理装置を提供することにある。
かかる目的を達成するため本発明の一形態である情報処理装置は、
オペレーティングシステムが組み込まれた制御コアと、前記制御コアにて制御され、所定の計算処理を行う少なくとも一つの計算コアと、を備え、
前記制御コアは、停止している前記計算コアに対して当該計算コアが行う前記計算処理の開始を指示する計算コア制御部を備え、
前記計算コアは、前記計算コア制御部からの前記計算処理の開始の指示に応じて前記計算処理の開始を行うように当該計算コアを制御する計算処理制御部と、前記計算処理の実行中に発生した予め設定された例外処理を検出し、当該例外処理が発生した前記計算処理の実行を停止する例外検出部と、を備えた、
という構成を採る。
また、本発明の他の形態であるプログラムは、
オペレーティングシステムが組み込まれた制御コアと、前記制御コアにて制御され、所定の計算処理を行う少なくとも一つの計算コアと、を備えた情報処理装置の前記制御コアに、停止している前記計算コアに対して当該計算コアが行う計算処理の開始を指示する計算コア制御手段を実現させ、
前記計算コアに、前記計算コア制御手段からの前記計算処理の開始の指示に応じて前記計算処理の開始を行うように当該計算コアを制御する計算処理制御手段と、前記計算処理の実行中に発生した予め設定された例外処理を検出し、当該例外処理が発生した計算処理の実行を停止する例外検出手段と、を実現させるための、
プログラムである。
また、本発明の他の形態である情報処理方法は、
制御コアからの計算処理の開始の指示に応じて計算コアが所定の前記計算処理を開始し、
前記計算コアは、前記計算コアによる前記計算処理の実行中に予め設定された例外処理が発生した場合には、当該例外処理を検出し、当該例外処理が発生した前記計算処理を停止する、
という構成を採る。
また、本発明の他の形態である計算処理装置は、
外部装置からの制御により所定の計算処理を行う計算処理装置であって、
外部装置からの計算処理の開始の指示に応じて前記計算処理の開始を行うように前記計算処理装置を制御する計算処理制御部と、前記計算処理の実行中に発生した予め設定された例外処理を検出し、当該例外処理が発生した前記計算処理の実行を停止する例外検出部と、を備えた、
という構成を採る。
また、本発明の他の形態であるプログラムは、
計算処理装置に、
外部装置からの計算処理の開始の指示に応じて前記計算処理の開始を行うように前記計算処理装置を制御する計算処理制御手段と、前記計算処理の実行中に発生した予め設定された例外処理を検出し、当該例外処理が発生した前記計算処理の実行を停止する例外検出手段と、を実現させるための、
プログラムである。
また、本発明の他の形態である計算処理方法は、
外部装置からの計算処理の開始の指示に応じて所定の前記計算処理を開始し、
前記計算処理の実行中に予め設定された例外処理が発生した場合には、当該例外処理を検出し、当該例外処理が発生した前記計算処理を停止する、
という構成を採る。
本発明は、以上のように構成されることにより、OSジッタやキャッシュ汚染の問題を解決しつつ安価で汎用性のある情報処理装置を提供することが出来る。
第1の実施形態が想定する並列計算機の構成を示すブロック図である。 第1の実施形態における並列計算機の構成を示すブロック図である。 図2で示す計算ノードが備える計算コアの構成を示すブロック図である。 図2で示す代理プロセスの構成を示す機能ブロック図である。 第1の実施形態におけるプロセス対応表522に対応づけて格納するデータの一例を示す表である。 第1の実施形態における計算プロセスDB521に格納するデータの一例を示す表である。 第1の実施形態において、計算プロセスが開始してから終了するまでに、必要となる動作がどのように作用するかを示したフローチャートである。 計算プロセスの開始時の動作を示すフローチャートである。 計算プロセスの実行を停止させるときの動作を示すフローチャートである。 計算プロセス上で発生した例外を処理する際の動作を示すフローチャートである。 計算プロセスがOSサービスを必要とする場合の動作を示すフローチャートである。 計算プロセスの計算コアへの割り当ての変更を行う際の動作を示すフローチャートである 計算プロセスを終了させる際の動作を示すフローチャートである。 第2の実施形態における情報処理装置の構成を示すブロック図である。 第3の実施形態における情報処理装置の構成の概略を示すブロック図である。 図4の実施形態における計算処理装置の構成の概略を示すブロック図である。
<実施形態1>
本発明の第1の実施形態を、図1乃至図13を用いて説明する。図1は、本実施形態が想定する並列計算機1の構成を示すブロック図である。図2は、本実施形態における並列計算機1の構成を示すブロック図である。図3は、計算ノード6が備える計算コア611の構成を示すブロック図である。図4は、代理プロセス511の構成を示す機能ブロック図である。図5は、プロセス対応表522に対応づけて格納するデータの一例を示す表である。図6は、計算プロセスDB521に格納するデータの一例を示す表である。図7は、第1の実施形態において、計算プロセスが開始してから終了するまでに、必要となる動作がどのように作用するかを示したフローチャートである。図8乃至13は、計算プロセスが開始してから終了するまでに必要となる動作を示すフローチャートである。
(構成)
本発明の第1の実施形態では、NUMA型のメモリを持つ並列計算機1について説明する。NUMAとは、メモリとプロセッサとの対からなるノードが複数存在し、それらをインターコネクトで接続したものである。本実施形態における並列計算機1は、例えば、HPC(High Performance Computing)分野において利用される。
まず、本発明の対象となる並列計算機1の基本的な構成について図1を用いて説明する。図1で示すように、本実施形態における並列計算機1は、CPU21(Central Processing Unit)と、メモリ22と、データ転送手段23と、を備えるノード2と、CPU31と、メモリ32と、データ転送手段33と、を備えるノード3と、を備えて構成されている。また、ノード2とノード3との間は、ノード間通信手段4(データ転送手段の一部)を介して通信可能なように接続されている。
このように、本実施形態における並列計算機1が備えるノード2とノード3とは共に、CPU(21、31)と、メモリ(22、32)と、データ転送手段(23、33)(データ転送手段の一部)と、を備えて構成されている。また、ノード2とノード3とが備える各構成は、同様のものとなる。そのため、以下においては、ノード2の構成について説明する。
なお、本実施形態においては、並列計算機1が備えるノードの数が2つの場合について説明する。しかしながら、本発明における並列計算機1は、2つ以上の複数のノードを備えて構成しても構わない。また、各ノードは、x86とARM等のように、異なるアーキテクチャを採用しても構わない。
CPU21は、単数、または、複数のプロセッサコアを備えて構成されている。本実施形態においては、CPU21は、プロセッサコア211、212、…、21mの複数のプロセッサコアを備えている(以下、特に区別しない場合は、プロセッサコア211とする)。また、それぞれのプロセッサコア211は、メモリ22と、データ転送手段23と、に対する通信経路を備えている。つまり、CPU21が備える複数のプロセッサコア211のそれぞれは、メモリ22、データ転送手段23、と通信可能なように構成されている。
メモリ22は、データや実行するプログラムなどを記憶する部分である。メモリ22は、CPU21が備える複数のプロセッサコア211(同一ノードのプロセッサコア)が共有する。本実施形態におけるメモリ22は、例えば、RAM(Random Access Memory)などの半導体メモリにより構成される。
データ転送手段23は、DMA(Direct
Memory Access)エンジン機能231と、対CPU通信機能232と、の2つの機能を備えて構成されている。DMAエンジン機能231は、CPU21を介さずにメモリ22に対してアクセスするための機能である。対CPU通信機能232は、CPU21上のレジスタなどの資源に対してアクセスするための機能である。つまり、データ転送手段23は、CPU21を介さずにメモリ22に対してアクセスする機能と、CPU21上のレジスタなどの資源に対してアクセスする機能と、を備えている。なお、対CPU通信機能232は、CPU21上のレジスタ等の資源をメモリ空間に割り当てて、DMAエンジン機能231からアクセスするように構成しても構わない。
以上が、本実施形態における並列計算機1が備えるノード2の構成である。上述したように、ノード3もノード2と同様の構成を備えている。つまり、ノード3は、CPU31と、メモリ32と、データ転送手段33と、を備えている。また、CPU31は複数のプロセッサコア311、312、…、31m(以下、特に区別しない場合は、プロセッサコア311とする)を備えている。そして、データ転送手段33は、DMAエンジン機能331と対CPU通信機能332とを備えている。なお、各構成の詳細については、ノード2を用いて既に説明したため省略する。
また、ノード2とノード3とは、上述したように、ノード間通信手段4を介して通信可能なように接続されている。ノード間通信手段4は、例えば、PCI Express、InfinibandなどのDMA機能、もしくは、RDMA機能を持つインターコネクトによって実現することが出来る。
本実施形態においては、このような並列計算機1が備える複数のノードのうち、1つのノードを制御ノードと呼び、残りのノード(制御ノード以外のノード)を計算ノードと呼び区別する。つまり、本実施形態における並列計算機1は、1つの制御ノードと1つ以上の計算ノードとから構成される。また、本実施形態における並列計算機1は、制御ノードがOS機能を持つ一方で、計算ノードはOS機能を持たない。
従って、制御ノードは、通常のOSが行うように、計算ノード上に複数のプロセスを展開して、同時に計算処理の実行を行う機能を備えている。以下において、制御ノードにより計算ノード上に展開されたプロセスを計算プロセスと呼ぶ。後述するように、計算プロセスは、計算ノード上で動作するアプリケーションプログラムの開始などに伴い生成され、その実行の終了に伴って破棄されることになる。
以下、図1で示すノード2を制御ノード5とし、ノード3を計算ノード6として並列計算機1を構築した場合について、図2を用いて詳細に説明する。また、以降の説明では、計算ノード6上のプロセッサコア311を計算コアと呼ぶ。
まず、計算ノード6の構成について説明する。計算ノード6は、上述したように、OSが動作しない(OSが組み込まれていない)ノードである。後述するように、本実施形態における並列計算機1は、OSが動作しない計算ノード6上で一般の計算機が実現する計算モデルを採用することが出来るように構成されている。つまり、計算ノード6は、ノード間通信手段4を介して制御ノード5とデータの送受信を行うことで、一般のOSが提供するサービスの代替機能を実現することになる。
本実施形態における計算ノード6(図1のノード3に相当する)は、上述したように、CPU31と、メモリ32と、データ転送手段33と、を備えて構成されている(図1参照)。また、CPU31は、複数のプロセッサコア311を備えて構成されている。さらに、計算ノード6は、図2で示すように、複数の計算コア611、612、…、61m(以下、特に区別しない場合においては、計算コア611とする)を備えている。
ここで、既に説明したように、図2で示す複数の計算コア611のそれぞれは、図1で示す複数のプロセッサコア311のそれぞれと同一である(上述したように、計算ノード6上のプロセッサコア311を計算コア611と呼ぶ)。つまり、計算ノード6が備えるCPU31は、複数の計算コア611を備えて構成されている。また、複数の計算コア611はそれぞれ、メモリ32、データ転送手段33、と通信可能なように構成されている。なお、上述したように、プロセッサコア311は、単数であっても構わない。つまり、計算コア611は、単数であっても構わない。計算コア611の詳細な構成については後述する。
メモリ32は、上述したように、同一の計算ノード6上の計算コア611が共有している。また、計算ノード6上のメモリ32は、図2で示すように、計算プロセスに関連するデータを複数格納することが出来るように構成されている。以下において、このメモリ32上に格納される計算プロセスに関連するデータを、プロセスイメージ321、322、…、32n(以下、特に区別しない場合においては、プロセスイメージ321とする)と呼ぶ。
各プロセスイメージ321はそれぞれ、制御ノード5から計算プロセスのデータを読み書きするための通信バッファ領域3211、3221、…、32n1(以下、特に区別しない場合においては、通信バッファ領域3211とする)を有している。また、プロセスイメージ321を操作するための計算コア611のアーキテクチャ状態をコンテキスト611A、612B、…、61mC(以下、特に区別しない場合においては、コンテキスト611Aとする)と呼ぶ。
ここで、メモリ32に格納可能なプロセスイメージ321の総数は、その総容量が物理メモリの容量を超えない範囲で任意の値をとることが出来るとする。そのため、計算コア611の数と、メモリ32が記憶するプロセスイメージ321の数とは、必ずしも一致しなくても構わない。
また、上述したように、計算ノード6上では、OSが動作しない。そのため、計算ノード6上では、OSのシステム管理機能を用いたハードウェア(計算コア611、メモリ32)の仮想化を行うことは出来ない。従って、各計算コア611にはそれぞれ、1つの計算プロセスのコンテキスト611Aが格納されることになる。そして、各計算コア611は、格納されたコンテキスト611Aに対応するメモリ32上に格納されたプロセスイメージ321を用いて、計算プロセスの処理を行うことになる。
なお、プロセスイメージ321の総数が計算コア611の総数よりも多い場合には、計算コア611に格納できなかったコンテキスト611Aはその時点では実行できない。その場合には、計算コア611に格納するコンテキスト611Aを入れ替えることで仮想的に計算コア611の総数を増やしたように見せかけることが出来る。このようなコンテキスト611Aの入れ替え方法(コンテキストスイッチ)の詳細については、後述する。
データ転送手段33は、ノード2の構成で説明した機能と特に変わりはない。そのため、詳細な説明については省略する。
以上が、計算ノード6の構成についての詳細な説明である。ここで、計算コア611の構成について図3を用いて詳細に説明する。
計算コア611は、図3で示すように、汎用レジスタ群6111と、制御レジスタ群6112(計算処理制御部)と、例外検出手段6113(例外検出部)と、例外通知手段6114(例外検出部)と、レジスタ群アクセス手段6115(データ転送手段の一部)と、を備えて構成されている。また、計算コア611は、データ転送手段33を介してノード間通信手段4と通信可能なように構成されている。さらに、計算コア611は、メモリ32と、通信可能なように構成されている。
汎用レジスタ群6111は、x86やARMなどの一般的なプロセッサと同様の構成を備えている。つまり、汎用レジスタ群6111は、プログラムカウンタ(PC、Program Counter)や演算結果を格納する汎用レジスタ(GPR、General−Purpose Register)などから構成される。
そのため、汎用レジスタ群6111が有する各レジスタが記憶するデータは、計算コア611での命令(計算処理、プログラム)の実行に伴い書き換えられることになる。また、計算コア611がロード命令やストア命令(書き込み、読み出しなど)を実行することで、汎用レジスタ群6111が有する汎用レジスタとメモリ32との間でデータの転送が行われることになる。
制御レジスタ群6112は、計算コア611による命令の実行を制御するためのレジスタである。制御ノード5は、データ転送手段23、33及びノード間通信手段4を介して、制御レジスタ群6112に対して、命令の実行を指示する「実行の開始」、又は、命令の実行の停止を指示する「実行の停止」、を指示することになる。
例えば、制御ノード5が制御レジスタ群6112に対して「実行の開始」を指示したとする。すると、計算コア611は、汎用レジスタ群6111の内容に従って計算処理を開始することになる。具体的には、制御レジスタ群6112が「実行の開始」の指示を受信すると、計算コア611は、汎用レジスタ群6111が記憶するプログラムカウンタの値に従い、メモリ32が記憶する命令をフェッチする。そして、計算コア611は、フェッチした命令をデコードして実行する。その後、計算コア611は、命令の実行に応じて、汎用レジスタ群6111、メモリ32の内容の更新を実行する。このような計算コア611により命令が実行されている(計算処理が行われている)状態を、「命令実行状態」と呼ぶ。
また、例えば、制御ノード5が制御レジスタ群6112に対して「実行の停止」を指示したとする。すると、計算コア611は新規の命令実行を停止する。その結果、計算コア611は、命令の実行を停止することになる。このような、「実行の停止」が指示された状態で計算コア611上に仕掛中の命令がない状態を、「命令実行停止状態」と呼ぶ。なお、一旦「命令実行停止状態」に遷移すると、計算コア611は、制御ノード5から再度の「実行の開始」指示があるまで、新規の命令実行(計算処理)は行わない。
また、制御レジスタ群6112は、計算コア611の状態(命令実行状態又は命令実行停止状態)を、制御ノード5から参照することが出来るように構成される。又は、制御レジスタ群6112(計算コア611)に参照を行う機能がない場合などには、後述する例外情報の送出によって計算コア611の状態を制御ノード5に対して通知することが出来るように、計算コア611を構成することが出来る。
例外検出手段6113は、制御レジスタ群6112による命令の実行中に何らかの例外が発生した場合に、当該発生した例外を検出する部分である。具体的には、例外検出手段6113は、命令の実行中に何らかの例外を検出した場合、制御レジスタ群6112に対して「実行の停止」の指示を行う。同時に(又はその前後に)、例外検出手段6113は、例外通知手段6114に対して例外通知の依頼を行う(例外の発生の通知を行う)。例外検出手段6113による例外通知手段6114に対する例外通知の依頼は、例えば、例外検出手段6113が例外通知手段6114に対して、例外検出情報を送信することで行う。
ここで、例外検出手段6113が検出する例外とは、例えば、ゼロ除算例外などの演算例外のことを指す。また、例えば、メモリアクセス境界違反などのメモリアクセス系例外や、システムコール呼び出しのためのソフトウェアトラップなどの一般のプロセッサに搭載される例外などのことを指す。例外検出手段6113は、命令の実行中にこのような例外が発生した場合に、当該発生した例外を検出することになる。
例外通知手段6114は、制御ノード5に対して計算コア611の実行停止を通知する。具体的には、例外通知手段6114は、例外検出手段6113から取得した例外検出情報に基づき、ノード間通信手段4を介して制御ノード5に対して、計算コア611の「実行の停止」を通知する。
例外通知手段6114により行われる例外の発生の通知の手段は、例外の発生を制御ノード5に通知することが出来れば、その実装方法は問わない。例外通知手段6114の実装方法としては、例えば、PCI ExpressのMSI/MSI−Xのような、ノード間通信手段4が持つ割込み機能を用いるという方法がある。また、例えば、事前に予約したメモリ領域(制御ノード5が備えるメモリ22)へのDMA書き込みを行うという方法を用いることも考えられる。このようなメモリ22へのDMA書き込みにより例外の発生を制御ノード5に通知する方法をとる場合には、制御ノード5(上の後述する計算ノード管理プロセス)は、計算ノード6からの例外の通知の有無をポーリング等の方式で監視することになる。
なお、例外通知手段6114は、制御ノード5の側から設定することで、制御ノード5への例外発生の通知を抑止することが出来るように構成することが出来る。また、このように例外通知手段6114が例外発生の通知を抑止した場合に備えて、制御ノード5が直接、制御レジスタ群6112の実行状態を監視(ポーリングなど)することが出来るように、制御ノード5を構成しても構わない。
レジスタ群アクセス手段6115は、制御ノード5から発行された指示に基づいて、汎用レジスタ群6111、制御レジスタ群6112の各レジスタに対して読み出しや書き込みを行う。汎用レジスタ群6111や制御レジスタ群6112は、レジスタ群アクセス手段6115、データ転送手段33を介して、ノード間通信手段4を通じて制御ノード5とデータの送受信を行うことになる。
なお、レジスタ群アクセス手段6115は、「命令実行状態」の計算コア611の汎用レジスタ群6111への読み出し、書き込みは許可しないように構成することができる。つまり、レジスタ群アクセス手段6115による汎用レジスタ群6111への読み出し、書き込みは、「命令実行停止状態」の計算コア611に対してのみ発行が許可されるように、レジスタ群アクセス手段6115を構成することが出来る。この場合、「命令実行状態」の計算コア611に対しての、レジスタ群アクセス手段6115による汎用レジスタ群6111へのアクセス時の動作は、不定となる(例えば、無視する)。
以上が、計算コア611の構成についての詳細な説明である。次に、制御ノード5の構成について詳細に説明する。
制御ノード5は、OSを採用する通常のスタンドアローン型の計算機システムと同じ構成をしている。上述したように、制御ノード5は、計算ノード6に対してOS機能のサービスを提供することが出来るように構成されている。
なお、以降の説明においては、制御ノード5上に搭載されるOSを制御ノード用OS50と呼ぶ。制御ノード用OS50としては、例えば、LinuxやWindowsなどに代表される、一般的な計算機に用いられるコモディティのOSを用いることが出来る。
本実施形態における制御ノード5(図1のノード2に相当する)は、上述したように、CPU21(制御コア、例外処理代理部、計算コア制御部)と、メモリ22と、データ転送手段23と、を備えて構成されている(図1参照)。また、CPU21は、複数のプロセッサコア211を備えて構成されている。
上述したように、制御ノード5上では、制御ノード用OS50が動作する。そのため、計算ノード6とは異なり、制御ノード5は、OSのシステム管理機能を用いてハードウェア(プロセッサコア211、メモリ22)の仮想化を行うことが出来る。従って、以下においては、制御ノード5上のプロセスの構成に関して図3を用いて説明する。
制御ノード5は、制御ノード用OS50の上に、複数の代理プロセス511、512、…、51n(以下、特に区別しない場合は代理プロセス511とする)(例外処理代理部に相当する)と、計算ノード用管理プロセス52(計算コア制御部に相当する)と、を展開する。また、計算ノード用管理プロセス52は、計算プロセスDB(DataBase)521と、プロセス対応表522と、を有している。
なお、これらのプロセスは、制御ノード5のCPU21が、メモリ22が記憶するプログラムを読み取って実行することで実現することが出来る。
代理プロセス511は、計算ノード6上に展開された計算プロセスの1つ1つに対応して生成されるプロセスである。つまり、代理プロセス511は、計算ノード6上のメモリ32が記憶する複数のプロセスイメージ321に対してそれぞれ、1対1で対応する形で生成されることになる。従って、制御ノード5上に展開される代理プロセス511の数と、計算ノード6のメモリ32が記憶するプロセスイメージ321の数と、は同数になる。
本実施形態において、代理プロセス511は、対応する計算ノード6上の計算プロセスが発行するOSへの要求を、ノード間通信手段4を介して受け付ける。そして、代理プロセス511は、計算ノード6上に存在するべきOSの代替として、必要な処理を行うことになる。つまり、代理プロセス511は、計算コア611上で命令を実行中にシステムコールを呼び出す必要が生じた際に、OSを持たない計算ノード6の代わりに、システムコールの処理を行うために用いられる。また、代理プロセス511は、後述するように、計算プロセスを開始する際などに用いられる。
代理プロセス511は、図4で示すように、引数書き込み領域5111と、データバッファ領域5112と、を有している。なお、データバッファ領域5112に関しては、当該領域を必要に応じて確保するように、代理プロセス511を構成しても構わない。
引数書き込み領域5111は、システムコール番号と引数とを書き込むための領域である。また、引数書き込み領域5111は、システムコールの引数にポインタがある時に、当該ポインタの参照先データが書き込まれることになる領域である。このようなシステムコールを呼び出す際、一般的なABI(Application Binary Interface)では、プロセッサコア311(計算コア611)上の汎用レジスタやスタックにシステムコールの番号と引数とを書き込むことになる。しかしながら、本発明の計算コア611には、OSが組み込まれていない。そこで、本発明のシステムでは、代理プロセス511内の引数書き込み領域5111に、システムコールの番号と引数とを書き込むことになる。
データバッファ領域5112は、例えば、システムコールの内容からバッファの転送が必要であると判断される場合に、計算コア611から代理プロセス511へとバッファを転送する際に用いる領域である。バッファの転送は、例えば、writeシステムコールで必要となる。
このように、代理プロセス511は、計算コア611でシステムコールを発行する必要が生じた際に用いるプロセスである。また、引数書き込み領域5111と、データバッファ領域5112と、の2つの領域は、計算コア611でシステムコールを発行する際に必要なデータの受け渡しを行うために、ソフトウェア例外を発生させる前後で利用する領域である。ここで、引数書き込み領域5111と、データバッファ領域5112と、の2つの領域は、それぞれの領域が必要となる前に(又は、必要となった際に)、計算コア611へと通知するように代理プロセス511を構成する。そのため、計算コア611は、命令を実行している最中にシステムコールを要求する必要が生じた場合には、適切なデータを各領域に書き込むことが可能である。そして、必要なデータを各領域に書き込んだ後に、計算コア611は、ソフトウェア例外を発生させることになる。このように構成することで、計算コア611は、制御ノード5にシステムコールの処理をさせることが可能となる。
計算ノード用管理プロセス52は、計算ノード6に対して生成されるプロセスである。計算ノード用管理プロセス52は、計算ノード6上の計算コア611(プロセッサコア311)、メモリ32、などのハードウェア資源の管理を行う。また、計算ノード用管理プロセス52は、一部のリソースに対する、代理プロセス511から計算コア611へのアクセスの仲介なども実施する。
具体的には、例えば、計算ノード用管理プロセス52は、計算ノード6上で実行する計算プロセスの総数が計算コア611の総数を上回る場合に、計算プロセスを実行する計算コア611の割り当てを行う。また、計算ノード用管理プロセス52は、計算ノード6上のメモリ管理などを行う。このように、計算ノード用管理プロセス52は、プロセス間の調停が必要な操作を行うことになる。
このような操作を実現するために、計算ノード用管理プロセス52は、計算ノード6上の計算コア611、メモリ32などのハードウェア資源と、計算プロセス、代理プロセスなどの仮想化された資源と、の紐づけを行って管理する。
具体的には、本実施形態における計算ノード用管理プロセス52は、代理プロセス511と、計算コア611と、を対応づけて、プロセス対応表522に格納して管理する。ここで、プロセス対応表522に対応づけて格納するデータの一例を、図5で示す。
図5で示すように、本実施形態におけるプロセス対応表522には、「計算プロセスID」と、「割り当てられた計算コア番号」と、が対応付けて記憶されている。ここで、「計算プロセスID」とは、代理プロセス511(計算プロセス)毎に割り当てられるIDであり、代理プロセス511や計算プロセスを識別するために用いられるものである。また、「割り当てられた計算コア番号」とは、「計算プロセスID」が示す計算プロセスを実行中の計算コア611を識別するために、計算コア611に割り当てる番号である。このように、代理プロセス511(計算プロセス)と、計算プロセスを実行中の計算コア611と、を紐づけることで、計算ノード用管理プロセス52は、ハードウェア資源と、仮想化された資源と、を紐づけて管理することが出来るようになる。なお、計算プロセスが計算コア611を取得していない場合(計算プロセスを実行中の計算コア611がない場合)には、当該「計算プロセスID」に対応付けられた「割り当てられた計算コア番号」には、計算コア番号が記載されないことになる。
また、計算ノード用管理プロセス52は、計算ノード6上の計算プロセスの情報を、計算プロセスDB521に格納して管理を行う。
計算プロセスDB521に格納されているデータの一例を、図6で示す。図6は、計算プロセスが、計算コア611上の汎用レジスタ群6111に格納する情報を制御ノード5側に退避させることで生成したデータベースである。
図6で示すように、計算プロセスDB521は、計算プロセスID,プロセス状態、代理プロセスID、レジスタ群の値、などの、計算プロセス上の情報を項目に持っている。また、計算プロセスDB521には、例えば、割り当て済みのメモリ領域などの情報も記憶される。ここで、プロセス状態とは、計算プロセスが動作可能である、計算プロセスの動作が終了した、などの計算プロセスの状態を示す項目である。また、レジスタ群の値としては、汎用レジスタ群が有する各レジスタ(レジスタA、レジスタB、レジスタC…)の値が記憶されている。計算プロセスDB521が記憶する表の一行が、1つの計算プロセスのコンテキストに対応することになる。
以上が、制御ノード5上に展開されるプロセスの構成である。なお、計算ノードが複数ある場合には、それぞれの計算ノードに対して、複数の計算ノード管理プロセス52が生成されることになる。
ここで、本実施形態における並列計算機1において、各プロセスがアクセス可能な資源を列挙しておく。
まず、計算プロセスは、自身のプロセスイメージ321と、自身のコンテキスト611Aと、自身の代理プロセス511が登録した引数書き込み領域5111と、にアクセス可能である。
また、代理プロセス511は、対応する計算プロセスがアクセスできる資源と、制御ノード5上のプロセスとしてアクセス可能なすべての資源と、に対してアクセス可能である。つまり、代理プロセス511は、プロセスイメージ321と、コンテキスト611Aと、にアクセスすることができる。制御ノード5上のプロセスとしてアクセス可能な資源としては、例えば、制御ノード5上に存在するファイルシステムのファイルが該当する。
また、計算ノード用管理プロセス52は、計算ノード6上の全ての資源と、計算プロセスDB521と、プロセス対応表522と、にアクセス可能である。また、計算ノード用管理プロセス52は、全ての代理プロセス511に対して、計算プロセスによる例外発生を通知可能である。
ここで、計算ノード6上の全ての資源とは、計算ノード6上のメモリ32の全てと、計算ノード6上の全ての計算コア611の汎用レジスタ群6111と、制御レジスタ群6112と、である。計算ノード6上のメモリ32の全てにアクセスすることが出来ることから、計算ノード用管理プロセス52は、全ての計算プロセスのプロセスイメージ321に対するアクセス権を持つことになる。
また、計算ノード用管理プロセス52は、上述したように、計算プロセスDB521にアクセスすることが出来る。そのため、計算ノード用管理プロセス52は、全ての計算プロセスのコンテキスト611Aに対するアクセス権を持つことになる。
なお、計算ノード用管理プロセス52は、代理プロセス511が持つ資源、例えば、代理プロセス511のメモリ領域やコンテキストには、アクセス可能である必要は必ずしもない。
以上が、本実施形態における並列計算機1の構成である。このように、構成することで、OSジッタやキャッシュ汚染の問題を解決しつつ安価で汎用性のある並列計算機を構成することが出来る。
次に、本実施形態における並列計算機1の動作を、図7乃至図13を用いて説明する。
(動作)
図7は、上述した構成の並列計算機1で展開される計算プロセスが開始してから終了するまでに、必要となる動作がどのように作用するかを示したフローチャートである。図7で示すように、並列計算機1上で計算プロセスを展開する(計算プロセスを開始して計算プロセスを終了する)には、以下の動作が必要となる。
1.計算プロセスの開始(プログラムの開始)
2.計算プロセスの実行停止(プログラムの停止)
3.計算プロセス上で発生した例外処理(例外処理)
4.計算プロセスがOSのサービスを必要とする場合の処理(システムコール)
5.計算プロセスの計算コアへの割り当ての変更(コンテキストスイッチ)
6.計算プロセスの終了(プログラムの終了)
なお、一旦計算プロセスの実行が始まると、実行中のプログラムが終了するか、上記いずれかの動作で停止するまでは、計算コア611はプログラム(命令、計算処理)を実行し続けることになる。
上述した構成の並列計算機1で上記動作を実現することで、計算ノード6上のOSを排除した上で、計算ノード6上に、POSIX APIなどのOSの存在を前提にしたサービスを提供することが出来るようになる。つまり、上記動作を実現することで、一般的なOSのある環境におけるプロセスの動作を網羅することが出来る。以下、上記各動作の詳細について説明する。
まず、1.計算プロセスの開始(プログラムの開始)時の並列計算機1の動作について、図8を用いて説明する。図8は、計算ノード6上でプログラムの実行が開始される際の動作の一例を示すフローチャートである。
まず、制御ノード5上で動作する制御ノード用OS50が、代理プロセス511を生成する(S001)。
次に、代理プロセス511は、代理プロセス511にある引数書き込み領域5111を計算ノード用管理プロセス52に渡す。そして、代理プロセス511は、計算ノード用管理プロセス52に対して、プログラムを実行する計算プロセスの生成を要求する(S002)。
続いて、計算プロセスの生成を要求された計算ノード用管理プロセス52は、計算プロセスを生成する(S003)。
具体的には、計算ノード用管理プロセス52は、計算プロセスDB521に新しいコンテキスト611Aを生成する。また、計算ノード用管理プロセス52は、計算ノード6のメモリ32に、対応するプロセスイメージ321を生成する。そして、計算ノード用管理プロセス52は、計算プロセスDB521に、代理プロセス511と、生成したコンテキスト611Aと、の対応を追加する。また、計算ノード用管理プロセス52は、計算プロセスDB521に、代理プロセス511から渡された引数書き込み領域5111と、生成したコンテキスト611Aと、の対応を追加する。
そして、計算ノード用管理プロセス52は、生成した計算プロセスにアクセスするためのハンドルを、代理プロセス511に返す。ハンドルの一例としては、計算ノード用管理プロセス52が付与するIDや、プロセスID,ファイルディスクリプタなどがある。ハンドルの一部として、プロセスイメージ321をmmapによりマップした領域、または、マップした領域へのポインタを含んでもよい。
その後、代理プロセス511は、計算ノード6上で動作させるプログラムと、プログラムの実行に使用するデータと、を計算ノード6が備えるメモリ32のプロセスイメージ321に書き込む(S004)。
具体的には、まず、代理プロセス511は、計算コア611に実行させるプログラムを読み込む。プログラムの読み込みは、例えば、計算プロセスに実行させるプログラムがファイルに格納されている場合には、制御ノード用OS50のreadシステムコールを発行することで行われる。
続いて、代理プロセス511は、計算ノード用管理プロセス52から渡されたハンドルを用いて、計算コア611に実行させるプログラムを、メモリ32上のプロセスイメージ321におけるプログラムにより指定された場所に配置する。例えば、ハンドルが、プロセスイメージ321がメモリマップされた領域を含んでいる場合には、代理プロセス511はプログラムに指定された位置に対して直接メモリストアを発行する。また、例えば、ハンドルが、計算ノード用管理プロセス52が付与したIDやプロセスIDやファイルディスクリプタなどである場合には、代理プロセス511は、プロセスイメージ321上の位置と、書き込む内容と、を計算ノード用管理プロセス52に渡す。そして、代理プロセス511は、計算ノード用管理プロセス52に対して、プロセスイメージ321への書き込みを要求する。
また、代理プロセス511は、計算プロセスDB521に格納されたコンテキスト611A中のレジスタ値として、初期値をセットする。
その後、代理プロセス511は、計算プログラムの実行開始を要求する(S005)。具体的には、代理プロセス511は、計算ノード用プロセス52から取得したハンドルを用いて、計算プロセスを実行可能状態に変更する。このように計算プロセスを実行可能状態に変更することで、計算ノード6に使用していない(命令実行状態でない)計算コア611がある場合に、その計算コア611によりプログラムの実行が開始されることになる。なお、この動作の詳細は後述する(ステップS055参照)。
以上が、1.計算プロセスの開始(プログラムの開始)時の並列計算機1の動作である。次に、2.計算プロセスの実行停止(プログラムの停止)を行う際の並列計算機1の動作について、図9を用いて説明する。図9は、代理プロセス511に対応する計算コア611を制御ノード5の側から停止させる際の動作の一例を示すフローチャートである。
まず、計算ノード用管理プロセス52は、プロセス対応表522を参照し、停止対象のプロセスイメージ321に対応する「計算プロセスID」から、「割り当てられた計算コア番号」を取得する(S011)。
ここで、計算プロセスに計算コア611が割り当てられていない場合には、計算ノード用管理プロセス52は、以下で説明するステップS012と、S013と、を飛ばして、計算プロセスDB521のコンテキストの状態を更新することになる(S014)。つまり、計算ノード用管理プロセス52は、「計算プロセスID」に対応する「割り当てられた計算コア番号」を発見できなかった場合には、動作S012と、S013と、を行わずに、計算プロセスDB521のコンテキストの状態を更新する。
一方、計算プロセスに計算コア611が割り当てられている場合には、計算ノード用管理プロセス52は、計算コア611のレジスタ群アクセス手段6115を介して制御レジスタ群6112に対して、計算コア611の停止を指示する(S012)。つまり、計算プロセスに計算コア611が割り当てられている場合には、計算ノード用管理プロセス52は、制御レジスタ群6112に対して「実行の停止」を指示する。
その後、計算ノード用管理プロセス52は、レジスタ群アクセス手段6115を介して制御レジスタ群6112に対して、計算コア611の動作状態を確認する(S013)。ここで、計算コア611が命令実行停止状態にあることを確認できなかった場合には(計算コア611が未だ命令実行状態にある場合には)、計算ノード用管理プロセス52は、予め定められた一定の時間が経過した後、再度計算コア611の動作状態を確認する。
一方、計算コア611が命令実行停止状態にあることを確認できた場合には、計算ノード用管理プロセス52は、停止した計算コア番号(割り当てられた計算コア番号)に対応する、プロセス対応表の行と、計算プロセスDB521のコンテキスト611Aの状態と、を更新する(S014)。
以上が、2.計算プロセスの実行停止(プログラムの停止)を行う際の並列計算機1の動作である。次に、3.計算プロセス上で発生した例外処理(例外処理)を行う際の並列計算機1の動作について、図10を用いて説明する。図10は、計算コア611でプログラム(命令、計算処理)を実行中に例外が発生した場合の、当該例外を処理する際の動作の一例を示すフローチャートである。
まず、計算コア611にてプログラムを実行中に、例外が発生したとする(S021)。なお、例外の定義については、既に並列計算機1の構成を説明する際に説明済みであるため、省略する。
すると、例外検出手段6113が当該発生した例外を検出する。そして、例外検出手段6113は、制御レジスタ群6112に対して「実行の停止」の指示を行う(S022)。
続いて、例外検出手段6113は、例外通知手段6114に対して例外の発生を通知する。そして、例外検出手段6113から例外の発生の通知を受けた例外通知手段6114は、制御ノード5内の計算ノード用管理プロセス52へと、例外の発生の通知を行う(S023)。ここで、例外通知手段6114により行われる例外の発生の通知の手段は、上述した通り、様々な方法がある。例えば、ノード間通信手段4の持つI/O例外機能による通知、DMA機能を利用した制御ノード5への書き込み、制御ノード5から計算ノード6のレジスタ監視、などの方法がある。どの方法によって例外通知手段6114を実現しても構わない。
以上が、3.計算プロセス上で発生した例外処理(例外処理)を行う際の並列計算機1の動作である。次に、4.計算プロセスがOSのサービスを必要とする場合の処理(システムコール)を行う際の並列計算機1の動作について、図11を用いて説明する。図11は、計算ノード6で発行されたシステムコールの処理を行う際の動作の一例を示すフローチャートである。
なお、プロセスイメージ321が計算コア611で動作中にシステムコールを呼び出す場合、一般的なABI(Application Binary Interface)では、プロセッサコア311(計算コア611)上の汎用レジスタやスタックにシステムコールの番号と引数とを書き込むことになる。しかしながら、本発明の計算コア611には、OSが組み込まれていない。そのため、後述する動作を行う必要が出てくることになる。
まず、本発明の計算プロセスは、代理プロセス511内の引数書き込み領域5111にシステムコール番号と、引数と、を書き込む(S031)。
次に、システムコール番号と、引数と、を書き込まれた代理プロセス511は、呼び出したいシステムコールの引数にポインタがあるか否かの判定を行う(S032)。引数にポインタがない場合には、後述するステップS033とステップS034とを飛ばして、計算コア611により後述するステップS035の処理が行われることになる。一方、引数にポインタがある場合は、代理プロセス511は引き続き、そのポインタの参照するデータのサイズが引数書込み領域5111のサイズよりも小さいか否かの判定を行う。参照するデータのサイズの判定には、サイズを指定する引数の値を参照してもよい。または、サイズの判別に引数の型を用いてもよい(S033)。
そして、ポインタの参照するデータのサイズが引数書き込み領域5111のサイズよりも大きい場合には、後述するステップS034を飛ばして、計算コア611が後述するステップS035の処理を行うことになる。一方、ポインタの参照先の型が引数書き込み領域5111のサイズよりも小さい場合には、代理プロセス511は、引数書き込み領域5111にそのポインタの参照先データを書き込む(S034)。
その後、計算コア611が、システムコールの例外を発生させる(S035)。一般的には、システムコール例外は、同一のノード内(計算ノード6内)で処理される。しかしながら、本実施形態における並列計算機1の場合は、上述したように、計算ノード6から制御ノード5へと、例えば、割り込みなどの方法で通知されることになる。例外発生処理の詳細については既に説明したため、省略する。
例外発生処理が起きると、上述したように、例外の発生が制御ノード5の計算ノード用管理プロセス52へと通知されることになる。そこで、例外の発生の通知を受け取った計算ノード用管理プロセス52は、プロセス対応表522を参照して、例外発生元の計算コア611の番号から、計算プロセスIDを得る。つまり、計算ノード用管理プロセス52は、計算プロセスDB521を参照することで、例外発生元の計算コア611の番号と対応して記憶されている代理プロセス511を得る。以降の処理は、代理プロセス511が主体となって動作を進めることになる。
まず、代理プロセス511は、自身の引数書き込み領域5111に書き込まれた引数を解析して、システムコールを実施するためにバッファの転送が必要か否か確認する(S036)
バッファの転送が必要であると判断した場合、代理プロセス511は、代理プロセス511内にデータバッファ領域5112を確保する(S037)。そして、代理プロセス511は、対応するプロセスイメージ321のバッファを、代理プロセス511のデータバッファ領域5112へと転送するように、データ転送手段33(DMAエンジン機能331)へと命令する。これにより、計算ノード6から制御ノード5へとバッファが転送されることになる(S038)。このような計算ノード6から制御ノード5へのバッファの転送は、例えば、writeシステムコールで必要になる。
そして、上記DMA転送が終わった後、又は、代理プロセス511がバッファの転送は不要であると判断した場合に、代理プロセス511は、制御ノード用OS50に対してシステムコールを呼び出すことになる(関数を実行する)(S039)。
システムコールを呼び出した後、代理プロセス511は、代理プロセス511内のバッファを、対応するプロセスイメージ321の通信バッファ領域3211に転送する必要があるか否かの判定を行う(S040)。
バッファを転送する必要がある場合、代理プロセス511は、データ転送手段33(DMAエンジン331)へ命令して、バッファの転送を行う(S041)。この制御ノード5から計算ノード6へのバッファの転送は、例えば、readシステムコールで必要になる。
そして、上記バッファ転送が終わると、又は、代理プロセス511がバッファの転送は不要であると判断した場合には、計算ノード用管理プロセス52は、システムコールの返り値を汎用レジスタ群6111へと書き込むことになる(S042)。なお、計算ノード用管理プロセス52による汎用レジスタ群6111へのシステムコールの返り値の書き込みは、計算コア611内のレジスタ群アクセス6115を介して行われる。一般的なABIでは同一ノード内の汎用レジスタにシステムコールの返り値は書き込まれる。しかしながら、並列計算機1においては、制御ノード5から計算ノード6の汎用レジスタ群6111に対して、システムコールの返り値が書き込まれることになる。
その後、計算コア611は、プログラムの実行を再開することになる(S043)。なお、計算コア611がプログラムの実行を開始する際の動作は、既に説明したため省略する。
以上が、4.計算プロセスがOSのサービスを必要とする場合の処理(システムコール)を行う際の並列計算機1の動作である。次に、5.計算プロセスの計算コアへの割り当ての変更(コンテキストスイッチ)を行う際の並列計算機1の動作について、図12を用いて説明する。図12は、計算コア611の数よりも計算プロセスが多い場合に行われる、コンテキストスイッチを行う際の動作の一例を示すフローチャートである。
まず、制御ノード5内の計算ノード用管理プロセス52は、停止することになる計算コア611を選定する(S051)。このような計算ノード用管理プロセス52による停止する計算コア611の選定は、例えば、予め定められた一定時間が経過する毎に行われる。計算ノード用管理プロセス52による停止する計算コア611の選定方法は、任意の方法をとって構わない。
次に、計算ノード用管理プロセス52は、上記ステップS051で選定した計算コア611を停止させる(S052)。なお、計算コア611を停止させる際の動作については、既に説明したため省略する。
続いて、計算ノード用管理プロセス52は、停止した計算コア611内のレジスタ群アクセス手段6115を用いて、汎用レジスタ群6111にアクセスする。そして、計算ノード用管理プロセス52は、汎用レジスタ群6111からコンテキスト611Aを引き上げ、当該引き上げたコンテキスト611Aを計算プロセスDB521に記憶する(S053)。
ここで、上記動作を行う際に、計算ノード用管理プロセス52は、プロセスイメージ321を制御ノード5に複製するように構成することが出来る。このようにプロセスイメージ321を制御ノード5に複製することで、プロセス単位のチェックポイントデータを作成することが可能である。
次に、計算ノード用管理プロセス52は、次に計算コア611で動作する計算プロセスIDを基に、プロセス対応表522の更新を行う(S054)。ここで、本実施形態においては、次に計算コア611で動作する計算プロセスIDは、既存のスケジューリングアルゴリズムに従って選出されるとする。しかしながら、計算ノード用管理プロセス52は、何らかの方法で計算プロセスIDを選出することが出来るように構成されていれば構わない。
その後、計算ノード用管理プロセス52は、次に計算コア611で動作する計算プロセスIDを基に計算プロセスDB521を参照し、次に計算コア611で動作する計算プロセスIDのレジスタ値(コンテキスト)を得る。そして、計算ノード用管理プロセス52は、取得したレジスタ値を、計算コア611が備える汎用レジスタ群6111のコンテキスト611Aに、レジスタ群アクセス手段6115を介して保存する(S055)。
なお、次に計算コア611で動作する計算プロセスにチェックポイントデータがある場合には、このタイミングで計算ノードへと転送することで、チェックポイント取得時のプロセスイメージ321に復元することが可能である。
そして、コンテキスト611Aが復元された後、計算ノード用管理プロセス52は、コンテキストスイッチした計算コアの実行を開始する(S056)。
以上が、5.計算プロセスの計算コアへの割り当ての変更(コンテキストスイッチ)を行う際の並列計算機1の動作である。次に、6.計算プロセスの終了(プログラムの終了)を行う際の並列計算機1の動作について、図13を用いて説明する。図13は、計算ノード6上で実行中のプログラムを終了する際の動作の一例を示すフローチャートである。
計算コア611上で実行中のプログラムが終了した場合、計算コア611は、まず、計算プロセスを終了させる例外を代理プロセス511に通知する(S061)。計算プロセスを終了させる例外としては、例えば、exitシステムコールやメモリアクセス系例外などがある。なお、例外の発生についての説明は、既に説明したため省略する。
次に、例外の通知を受信した代理プロセス511は、計算ノード用管理プロセス52に対して、計算プロセスの終了を通知する(S062)。
そして、計算プロセスの終了を通知された計算ノード用管理プロセス52は、プロセス対応表522を検索して、計算プロセスが使用していた資源を解放する(S063)。これにより、計算プロセスは終了することになる。
具体的には、計算ノード用管理プロセス52は、まず、終了する代理プロセス511に対応する、計算プロセスDB521に格納されたコンテキスト611Aを削除する。また、計算ノード用管理プロセス52は、メモリ32から終了する代理プロセス511に対応するプロセスイメージ321を解放する。なお、終了する代理プロセス511に対応するコンテキスト611Aが計算ノード6にあるいずれかの計算コア611で動作中である場合には、計算ノード用管理プロセス52は、当該計算コア611を解放するように構成することが出来る。この場合には、計算コア611を解放する際に、当該解放する計算コア611のコンテキストを他のコンテキストにコンテキストスイッチするように、計算ノード用管理プロセス52を構成しても構わない。
そして、計算プロセスの終了後、代理プロセス511は終了することになる(S064)。
なお、上記ステップS062、S063、S064は、この順番通りに行われなくても構わない。例えば、ステップS061による終了システムコールの受信によって代理プロセス511が終了するように構成しても構わない。この場合には、例えば、制御ノード用OS50の機能による代理プロセス511が持っていたハンドルの解放処理によって、計算ノード用管理プロセス52に対して計算プロセスの終了の通知が行われることになる。そして、計算プロセスの終了の通知を受信した計算ノード用管理プロセス52が、終了する計算プロセスの資源の解放と計算プロセスの終了とを行うことになる。
以上が、並列計算機1によって行われる動作の流れである。このような動作により、並列計算機1は、OSが動作しない計算ノード6上で一般の計算機が実現する計算モデルを採用することが出来る。
なお、本実施形態では、1つの制御ノード5と、複数の計算ノード6と、からなる並列計算機1について説明した。しかしながら、並列計算機1は、例えば、1つの制御ノード5と、複数の計算ノード6と、から構成されるノード群を複数備えていても構わない。つまり、必ずしも制御ノード5の数は1に限定されない。
このように、本実施形態における並列計算機1は、OSが組み込まれた制御ノード5と、OSが組み込まれていない計算ノード6と、を備えている。また、制御ノード5上には代理プロセス511と計算ノード用管理プロセス52とが展開されている。さらに、計算ノード6は、汎用レジスタ群6111と制御レジスタ群6112とを備えている。このような構成により、制御ノード5は、計算ノード6の動作を管理することが出来るようになる。つまり、並列計算機1は、OSが動作しない計算ノード6上で一般の計算機が実現する計算モデルを採用することが可能となる。その結果、並列計算機1は、計算ノード6上でOSが動作することによるOSジッタやキャッシュ汚染の問題を解決することが出来る。
また、上記構成にすることで、特権が必要なI/Oデバイスの制御を、制御ノード5が代理で実施することが出来るようになる。その結果、制御ノード5がコモディティのハードウェア構成を採用していれば、計算ノード6のために専用のデバイスドライバを記述する必要がなくなる。つまり、汎用性の喪失や、開発費の高騰という問題を解決することが出来る。
また、本実施形態における計算コア611は、例外検出手段6113と、例外通知手段6114と、を備えている。このように構成することで、計算コア611による命令の実行中に例外処理が発生した場合に、当該例外処理を検出してOSを備える制御コア6へ通知することが出来るようになる。その結果、計算ノード6は、例外処理が発生した計算処理の実行を停止することが出来るようになる。また、制御ノード5は、例えば、システムコールなどのOS機能を計算ノードに提供することが出来るようになる。つまり、OSが動作しない計算ノード6上で一般の計算機が実現する計算モデルを採用することが可能となる。
<実施形態2>
次に、本発明の第2の実施形態について、図14を用いて説明する。図14は、本実施形態における情報処理装置7の構成を示すブロック図である。
第1の実施形態において説明したように、本発明は、OS機能を備える制御部(制御ノード)と、OS機能を備えない計算部(計算ノード)と、を備えている。そのため、OS機能が動作する領域と、OS機能が動作しない領域と、を備えていれば、必ずしも第1の実施形態で説明した並列計算機1によらなくても、本発明は実施可能である。
そこで、本実施形態においては、OSの支配下に置かれる領域と、OSの支配下に置かれない領域と、の2つの領域を備える情報処理装置7について説明する。本実施形態における情報処理装置7は、例えば、上記2つの領域を備える半導体集積回路などにより実現される。
図14で示すように、本実施形態における情報処理装置7は、OSの支配下に置かれる領域であるOS稼動制御部8と、OSの支配下に置かれない領域であるOS非稼動計算部9と、を備えて構成されている。そして、本実施形態における情報処理装置7は、OSが動作しない(OSの支配下にない)OS非稼動計算部9上で一般の計算機が実現する計算モデルを採用することが出来るように、OS稼動制御部8とOS非稼動計算部9とを構成する。なお、以下において、OS稼動制御部8で稼動するOSを、制御部用OS80とする。制御部用OS80としては、例えば、LinuxやWindowsなどのコモディティのOSを用いることが出来る。また、OS稼動制御部8とOS非稼動計算部9とは、互いに通信可能なように接続されている。
まず、OS稼動制御部8の構成について説明する。OS稼動制御部8は、図示しない記憶装置(メモリなど)と、演算装置(CPUなど)と、を備えて構成されている。ここで、上述したように、OS稼動制御部8は、制御部用OS80の支配下に置かれる領域である。そのため、OS稼動制御部8では、その支配下にあるハードウェア(記憶装置、演算装置)の仮想化を行うことが可能となる。従って、以下においては、OS稼動制御部8上で展開するプロセスについて説明する。なお、これらのプロセスは、OS稼動制御部8の支配下にある演算装置が、OS稼動制御部8の支配下にある記憶装置が記憶するプログラムを読み取って実行することで実現することが出来る。
図14で示すように、OS稼動制御部8上において、制御部用OS80は、代理プロセス81と、OS非稼動計算部用管理プロセス82と、を展開する。また、OS非稼動計算部用管理プロセス82は、計算プロセスDB83と、プロセス対応表84と、を有している。ここで、代理プロセス81の構成は、第1の実施形態と同様である。また、OS非稼動計算部用管理プロセス82は、第1の実施形態における計算ノード用管理プロセスに相当する。そのため、各構成の詳細な説明については省略する。
以上が、OS稼動制御部8の構成である。次に、OS非稼動計算部9の構成について説明する。
図14で示すように、OS非稼動計算部9は、計算コア91と、メモリ92と、を備えて構成されている。また、OS非稼動計算部9は、図示しないデータ転送手段を備えている。ここで、計算コア91の構成は、第1の実施形態と同様である。また、メモリ92、データ転送手段、の構成も、第1の実施形態と同様である。そのため、各構成の詳細については、省略する。
本実施形態における情報処理装置7は、このように構成されている。このような構成により、情報処理装置7は、第1の実施形態と同様の動作を行うことになる。情報処理装置7の動作は、第1の実施形態と同様のため省略する。
このように、本実施形態における情報処理装置7は、OSの支配下にあるOS稼動制御部8と、OSの支配下にないOS非稼動計算部9と、を備えている。また、OS稼動制御部8上には代理プロセス81とOS非稼動計算部用管理プロセス82とが展開されている。さらに、OS非稼動計算部9は、計算コア91を備えている。そのため、OS非稼動計算部9は、OSを備えているのと同様に計算処理を実行することが出来ることになる。つまり、情報処理装置7は、OS非稼動計算部9上でOSが動作することによるOSジッタやキャッシュ汚染の問題を解決することが出来る。
また、上記構成にすることで、特権が必要なI/Oデバイスの制御を、OS稼動制御部8がOS非稼動計算部9の代理で実施することが出来るようになる。その結果、OS稼動制御部8がコモディティのハードウェア構成を採用していれば、OS非稼動計算部9のために専用のデバイスドライバを記述する必要がなくなる。つまり、汎用性の喪失や、開発費の高騰という問題を解決することが出来る。
<実施形態3>
次に、本発明の第3の実施形態について、図15を用いて説明する。図15は、本実施形態における情報処理装置70の構成の概略を示すブロック図である。
図15で示すように、本実施形態における情報処理装置70は、制御コア71と、計算コア72と、を備えて構成されている。また、制御コア71は、計算コア制御部711を備えている。そして、計算コア72は、計算処理制御部721と、例外検出部722と、を備えている。
なお、制御コア71は、オペレーティングシステム(OS)が組み込まれた演算部である。一方、計算コア72は、制御コア71にて制御されることにより所定の計算処理を行う演算部である。具体的には、計算コア72には、オペレーティングシステムが組み込まれていないことになる。
計算コア制御部711は、停止している計算コア72に対して当該計算コアが行う計算処理の開始を指示する部分である。後述するように、計算コア制御部711が停止している計算コア72に対して計算処理の開始を指示することで、当該停止している計算コア72は、計算処理を開始することになる。
計算処理制御部721は、計算コア制御部711からの計算処理の開始の指示に応じて計算処理の開始の指示を行うように、計算コア72を制御する部分である。また、例外検出部722は、計算処理の実行中に発生した予め設定された例外処理を検出し、当該例外処理が発生した前記計算処理の実行を停止する部分である。予め設定された例外処理としては、例えば、演算例外、メモリアクセス系例外、一般のプロセッサに搭載される例外、などが該当する。
なお、一度計算処理の実行を停止した計算コア72は、制御コア71の計算コア制御部711から再度の計算処理の開始の指示を受けるまで、新たな計算処理は開始せず停止し続けることになる。
このように、本実施形態における情報処理装置70は、OSが組み込まれた制御コア71と、計算コア72と、を備えている。また、制御コア71は計算コア制御部711を備え、計算コア72は計算処理制御部721を備えている。このような構成により、計算コア72は、制御コア71から制御されることにより所定の計算処理を行うことが出来る。つまり、情報処理装置70は、OSが動作しない計算コア72上で所定の計算処理を行うことが可能となる。その結果、情報処理装置70は、計算コア72上でOSが動作することによるOSジッタやキャッシュ汚染の問題を解決することが出来る。
また、上記構成にすることで、特権が必要なI/Oデバイスの制御を、制御コア71が代理で実施することが出来るようになる。その結果、制御コア71がコモディティのハードウェア構成を採用していれば、計算コア72のために専用のデバイスドライバを記述する必要がなくなる。つまり、汎用性の喪失や、開発費の高騰という問題を解決することが出来る。
また、本実施形態における計算コア72は、例外検出部722を備えている。このように構成することで、計算コア72は、計算処理の実行中に発生した例外処理を検出し、当該例外処理が発生した計算処理の実行を停止することが出来るようになる。その結果、情報処理装置70は、OSが動作しない情報処理装置70上で所定の計算処理をより完全に行うことが可能となる。
なお、上述した情報処理装置は、当該情報処理装置に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、オペレーティングシステムが組み込まれた制御コアと、制御コアにて制御され、所定の計算処理を行う少なくとも一つの計算コアと、を備えた情報処理装置の制御コアに、停止している計算コアに対して当該計算コアが行う計算処理の開始を指示する計算コア制御手段を実現させ、計算コアに、計算コア制御手段からの計算処理の開始の指示に応じて計算処理の開始を行うように当該計算コアを制御する計算処理制御手段と、計算処理の実行中に発生した予め設定された例外処理を検出し、当該例外処理が発生した計算処理の実行を停止する例外検出手段と、を実現させるための、プログラムである。
また、上述した情報処理装置が動作することにより実行される情報処理方法は、制御コアからの計算処理の開始の指示に応じて計算コアが所定の計算処理を開始し、計算コアは、計算コアによる計算処理の実行中に予め設定された例外処理が発生した場合には、当該例外処理を検出し、当該例外処理が発生した計算処理を停止する、という情報処理方法である。
上述した構成を有する、プログラム、又は、情報処理方法、の発明であっても、上記情報処理装置と同様の作用を有するために、上述した本発明の目的を達成することが出来る。
<実施形態4>
次に、本発明の第4の実施形態について、図16を用いて説明する。図16は、本実施形態における計算処理装置10の構成の概略を示すブロック図である。
計算処理装置10は、外部装置からの制御により所定の計算処理を行う装置である。つまり、計算処理装置10には、OSは組み込まれていない。図16で示すように、本実施形態における計算処理装置10は、計算処理制御部101と、例外検出部102と、を備えている。
計算処理制御部101は、外部装置からの計算処理の開始の指示に応じて計算処理の開始を行うように当該計算処理装置を制御する部分である。また、例外検出部102は、計算処理の実行中に発生した予め設定された例外処理を検出する部分である。予め設定された例外処理としては、例えば、演算例外、メモリアクセス系例外、一般のプロセッサに搭載される例外、などが該当する。
そして、計算処理装置10は、例外検出部102が例外処理を検出した場合に、当該例外処理が発生した計算処理の実行を停止するように構成する。なお、一度計算処理の実行を停止した計算処理装置10は、外部装置から再度の計算処理の開始の指示を受けるまで、計算処理は開始せず停止し続けることになる。
このように、本実施形態における計算処理装置10は、外部装置からの計算処理の開始の指示に応じて計算処理の開始を行う装置である。また、計算処理装置10は、計算処理制御部101を備えている。このような構成により、計算処理装置10は、OSを備えていないにもかかわらず、外部装置からの制御により所定の計算処理を行うことが出来る。その結果、計算処理装置10は、計算処理装置10上でOSが動作することによるOSジッタやキャッシュ汚染の問題を解決することが出来る。
また、本実施形態における計算処理装置10は、例外検出部102を備えている。このように構成することで、計算処理装置10は、計算処理の実行中に発生した例外処理を検出し、当該例外処理が発生した計算処理の実行を停止することが出来るようになる。つまり、計算処理装置10は、OSが動作しない計算処理装置10上で所定の計算処理をより完全に行うことが可能となる。
なお、上述した計算処理装置は、当該計算処理装置に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、計算処理装置に、外部装置からの計算処理の開始の指示に応じて計算処理の開始を行うように計算処理装置を制御する計算処理制御手段と、計算処理の実行中に発生した予め設定された例外処理を検出する例外検出手段と、を実現させ、例外検出手段が例外処理を検出した場合は、当該例外処理が発生した計算処理の実行を停止する機能を有する、プログラムである。
また、上述した計算処理装置が動作することにより実行される計算処理方法は、外部装置からの計算処理の開始の指示に応じて所定の計算処理を開始し、計算処理の実行中に予め設定された例外処理が発生した場合には、当該例外処理を検出し、当該例外処理が発生した計算処理を停止する、という計算処理方法である。
上述した構成を有する、プログラム、又は、情報処理方法、の発明であっても、上記情報処理装置と同様の作用を有するために、上述した本発明の目的を達成することが出来る。
<付記>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明における情報処理装置などの概略を説明する。但し、本発明は、以下の構成に限定されない。
(付記1)
オペレーティングシステムが組み込まれた制御コアと、前記制御コアにて制御され、所定の計算処理を行う少なくとも一つの計算コアと、を備え、
前記制御コアは、停止している前記計算コアに対して当該計算コアが行う前記計算処理の開始を指示する計算コア制御部を備え、
前記計算コアは、前記計算コア制御部からの前記計算処理の開始の指示に応じて前記計算処理の開始を行うように当該計算コアを制御する計算処理制御部と、前記計算処理の実行中に発生した予め設定された例外処理を検出し、当該例外処理が発生した前記計算処理の実行を停止する例外検出部と、を備えた、
情報処理装置。
この構成によると、情報処理装置が、オペレーティングシステムが組み込まれた制御コアと、制御コアにて制御され、所定の計算処理を行う少なくとも一つの計算コアと、を備えている。また、制御コアは計算コア制御部を備えている。さらに、計算コアは、計算処理制御部を備えている。このような構成により、OSが動作しない計算コア上で所定の計算処理を行うことが可能となる。その結果、情報処理装置は、計算処理を行う計算コア上でOSが動作することによるOSジッタやキャッシュ汚染の問題を解決することが出来る。
また、この構成によると、計算コアが、例外検出部を備えている。このように構成することで、計算コアは、計算処理の実行中に発生した例外処理を検出し、当該例外処理が発生した計算処理の実行を停止することが出来るようになる。その結果、情報処理装置は、OSが動作しない情報処理装置上で所定の計算処理をより完全に行うことが可能となる。
(付記2)
付記1に記載の情報処理装置であって、
前記制御コアの前記計算コア制御部は、前記例外検出部により検出した前記例外処理に応じて前記計算コアに対して前記計算処理の開始を指示するように構成され、
前記計算コアの前記計算処理制御部は、前記計算コア制御部から前記計算処理の開始の指示を受けた場合に、当該計算処理を開始するように前記計算コアを制御する、
情報処理装置。
この構成によると、情報処理装置の制御コアは、例外検出部が検出した例外処理に応じて計算コアに対して計算処理の開始を指示するように構成されることになる。これにより、情報処理装置は、OSが動作しない情報処理装置上で所定の計算処理をより完全に行うことが可能となる。
(付記3)
付記2に記載の情報処理装置であって、
前記計算コアの前記例外検出部は、当該例外検出部が前記例外処理を検出した旨を前記制御コアに通知するように構成され、
前記制御コアの前記計算コア制御部は、前記例外検出部から受けた通知が示す前記例外処理に応じて前記計算コアに対して前記計算処理の開始の指示をする、
情報処理装置。
この構成によると、計算コアは、例外を検出した場合に制御コアに通知するように構成されることになる。これにより、情報処理装置は、OSが動作しない情報処理装置上で所定の計算処理をより完全に行うことが可能となる。
(付記4)
付記1乃至3いずれか1項に記載の情報処理装置であって、
前記計算コアは、前記例外検出部により検出された前記例外処理を処理する際に必要なデータを前記制御コアに転送するデータ転送手段を備え、
前記制御コアは、前記データ転送手段により転送された前記データを用いて前記計算コアを代理して前記例外処理を処理する例外処理代理部を備える、
情報処理装置。
この構成によると、計算コアがデータ転送手段を備え、制御コアが例外処理代理部を備えている。このような構成により、計算コアに代理して制御コアが例外処理を処理することが出来るようになる。その結果、例えばシステムコールの処理を、計算コアに代理して制御コアで行うことが出来るようになる。
(付記5)
付記4に記載の情報処理装置であって、
前記データ転送手段は、前記計算コアにて発生した前記例外処理がシステムコールである場合、当該システムコールの処理に必要なデータを前記制御コアの前記例外処理代理部が有するバッファ領域に転送するように構成された、
情報処理装置。
(付記6)
付記1乃至5のいずれか1項に記載の情報処理装置であって、
前記制御コアの前記計算コア制御部は、前記計算コアに対して当該計算コアが行う前記計算処理の停止を指示することが出来るように構成されるとともに、前記計算処理を停止中の前記計算コアに対して当該計算コアによる処理の対象となる前記計算処理の内容を変更する指示を行うことが出来るように構成され、
前記計算コアの前記計算処理制御部は、前記計算コア制御部からの前記計算処理の停止の指示に応じて実行中の前記計算処理の停止を行うように前記計算コアを制御し、前記計算コア制御部からの前記計算処理の内容の変更の指示に応じて前記計算コアによる処理の対象となる前記計算処理の内容を変更する、
情報処理装置。
この構成によると、制御コアは計算コアに対して、計算処理の停止の指示と計算処理の変更の指示とを行うことが出来るように構成されることになる。また、計算コアは、制御コアからの指示に応じて計算処理の停止と変更を行うことが出来るようになる。その結果、情報処理装置は、例えば、コンテキストスイッチを行うことが出来るようになる。
(付記7)
付記6に記載の情報処理装置であって、
前記計算コアが行う前記計算処理の数が前記計算コアの数よりも多い場合、
前記制御コアの前記計算コア制御部は、予め定められた時間毎に、予め定められた基準により前記計算処理を実行中の前記計算コアを選択し、当該選択した計算コアによる前記計算処理を停止するように指示し、当該計算処理を停止した計算コアによる処理の対象となる前記計算処理の内容を変更する、
情報処理装置。
(付記8)
オペレーティングシステムが組み込まれた制御コアと、前記制御コアにて制御され、所定の計算処理を行う少なくとも一つの計算コアと、を備えた情報処理装置の前記制御コアに、停止している前記計算コアに対して当該計算コアが行う前記計算処理の開始を指示する計算コア制御手段を実現させ、
前記計算コアに、前記計算コア制御手段からの前記計算処理の開始の指示に応じて前記計算処理の開始を行うように当該計算コアを制御する計算処理制御手段と、前記計算処理の実行中に発生した予め設定された例外処理を検出し、当該例外処理が発生した計算処理の実行を停止する例外検出手段と、を実現させるための、
プログラム。
(付記8−1)
付記8に記載のプログラムであって、
前記計算コア制御手段は、前記例外検出手段が検出した前記例外処理に応じて、前記計算コアに対して前記計算処理の開始を指示する機能を有する、
プログラム。
(付記9)
付記8に記載のプログラムであって、
前記例外検出手段は、当該例外検出手段が前記例外処理を検出した旨を前記制御コアに通知する機能を有する
プログラム。
(付記10)
付記9に記載のプログラムであって、
前記計算コアに、前記例外検出手段により検出された前記例外処理を処理する際に必要なデータを前記制御コアに転送するデータ転送手段を実現させ、
前記制御コアに、前記データ転送手段により転送された前記データを用いて前記計算コアを代理して前記例外処理を処理する例外処理代理手段を実現させる、
プログラム。
(付記10−1)
付記10に記載のプログラムであって、
前記データ転送手段は、前記計算コアにて発生した例外処理がシステムコールである場合、当該システムコールの処理に必要なデータを前記制御コアの前記例外処理代理手段が備えるバッファ領域に転送する機能を有する、
プログラム。
(付記11)
付記8乃至10のいずれか1項に記載のプログラムであって、
前記計算コア制御手段は、前記計算コアに対して当該計算コアが行う前記計算処理の停止を指示する機能を有するとともに、前記計算処理を停止中の前記計算コアに対して、当該計算コアによる処理の対象となる前記計算処理の内容を変更する機能を有し、
前記計算処理制御手段は、前記計算コア制御手段からの前記計算処理の停止の指示に応じて実行中の前記計算処理を停止する機能と、前記計算コア制御部からの前記計算処理の内容の変更の指示に応じて前記計算コアによる処理の対象となる前記計算処理の内容を変更する機能と、を有する、
プログラム。
(付記11−1)
付記11に記載のプログラムであって、
前記計算コアが行う計算処理の数が当該計算コアの数よりも多い場合、
前記計算コア制御手段は、予め定められた時間毎に、予め定められた基準により前記計算処理を実行中の前記計算コアを選択し、当該選択した計算コアによる前記計算処理を停止するように指示し、当該計算コアによる処理の対象となる前記計算処理の内容を変更する機能を有する、
プログラム。
(付記12)
制御コアからの計算処理の開始の指示に応じて計算コアが所定の前記計算処理を開始し、
前記計算コアは、前記計算コアによる前記計算処理の実行中に予め設定された例外処理が発生した場合には、当該例外処理を検出し、当該例外処理が発生した前記計算処理を停止する、
情報処理方法。
(付記13)
付記12に記載の情報処理方法であって、
前記計算コアは、前記例外処理を検出した場合、当該例外処理を検出した旨を前記制御コアに通知する、
情報処理方法。
(付記14)
付記13に記載の情報処理方法であって、
前記計算コアは、前記例外処理を処理する際に必要なデータを前記制御コアに転送し、
前記制御コアは、転送された前記データを用いて前記計算コアを代理して前記例外処理を処理する、
情報処理方法。
(付記15)
付記12乃至14のいずれか1項に記載の情報処理方法であって、
前記制御コアは、前記計算処理を停止中の前記計算コアに対して、当該計算コアによる処理の対象となる前記計算処理の内容の変更を指示し、
前記計算コアは、前記計算コア制御部からの前記計算処理の内容の変更の指示に応じて前記計算コアによる処理の対象となる前記計算処理の内容を変更する、
情報処理方法。
(付記15−1)
前記計算コアが行う計算処理の数が当該計算コアの数よりも多い場合、
予め定められた時間毎に、予め定められた基準により前記計算処理を実行中の前記計算コアを選択し、当該選択した計算コアによる前記計算処理を停止させ、当該計算処理を停止した計算コアによる処理の対象となる前記計算処理の内容を変更する、
情報処理方法。
(付記16)
外部装置からの制御により所定の計算処理を行う計算処理装置であって、
外部装置からの計算処理の開始の指示に応じて前記計算処理の開始を行うように前記計算処理装置を制御する計算処理制御部と、前記計算処理の実行中に発生した予め設定された例外処理を検出し、当該例外処理が発生した前記計算処理の実行を停止する例外検出部と、を備えた、
計算処理装置。
(付記17)
付記16に記載の計算処理装置であって、
前記例外検出部は、当該例外検出部が前記例外処理を検出した旨を前記外部装置へと通知するように構成した、
計算処理装置。
(付記18)
付記16又は17に記載の計算処理装置であって、
前記例外検出部により検出された当該例外処理を処理する際に必要なデータを前記外部装置へと転送するデータ転送手段を備える、
計算処理装置。
(付記19)
付記16乃至18いずれか1項に記載の計算処理装置であって、
前記計算処理制御部は、前記外部装置からの前記計算処理の停止の指示に応じて実行中の前記計算処理の停止を行うように前記計算処理装置を制御し、前記外部装置からの前記計算処理の内容の変更の指示に応じて前記計算処理装置による処理の対象となる前記計算処理の内容を変更する、
計算処理装置。
(付記20)
計算処理装置に、
外部装置からの計算処理の開始の指示に応じて前記計算処理の開始を行うように前記計算処理装置を制御する計算処理制御手段と、前記計算処理の実行中に発生した予め設定された例外処理を検出し、当該例外処理が発生した前記計算処理の実行を停止する例外検出手段と、を実現させるための、
プログラム。
(付記21)
付記20に記載のプログラムであって、
前記例外検出手段は、当該例外検出手段が前記例外処理を検出した旨を外部装置へと通知する機能を有する、
プログラム。
(付記22)
付記20又は21に記載のプログラムであって、
前記例外検出手段により検出された当該例外処理を処理する際に必要なデータを前記外部装置に転送するデータ転送手段を実現させる、
プログラム。
(付記23)
付記20乃至22いずれか1項に記載の計算処理装置であって、
前記計算処理制御手段は、前記外部装置からの前記計算処理の停止の指示に応じて実行中の前記計算処理を停止する機能と、前記外部装置からの前記計算処理の内容の変更の指示に応じて前記計算コアによる処理の対象となる前記計算処理の内容を変更する機能と、を有する、
プログラム。
(付記24)
外部装置からの計算処理の開始の指示に応じて所定の前記計算処理を開始し、
前記計算処理の実行中に予め設定された例外処理が発生した場合には、当該例外処理を検出し、当該例外処理が発生した前記計算処理を停止する、
計算処理方法。
(付記25)
付記24に記載の計算処理方法であって、
前記例外処理を検出した場合、当該例外処理を検出した旨を前記外部装置に通知する、
計算処理方法。
(付記26)
付記25に記載の計算処理方法であって、
前記例外処理を検出した場合、当該例外処理を処理する際に必要なデータを前記制御コアに転送する、
計算処理方法。
なお、上記各実施形態及び付記において記載したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されている。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることが出来る。
1 並列計算機
2、3 ノード
21、31 CPU
211、311 プロセッサコア
22、32 メモリ
321 プロセスイメージ
3211 通信バッファ領域
23、33 データ転送手段
231、331 DMAエンジン機能
232、332 対CPU通信機能
4 ノード間通信手段
5 制御ノード
511 代理プロセス
5111 引数書き込み領域
5112 データバッファ領域
52 計算ノード用管理プロセス
521 計算プロセスDB
522 プロセス対応表
6 計算ノード
611 計算コア
611A コンテキスト
6111 汎用レジスタ群
6112 制御レジスタ群
6113 例外検出手段
6114 例外通知手段
6115 レジスタ群アクセス手段
7、70 情報処理装置
71 制御コア
711 計算コア制御部
72 計算コア
721 計算処理制御部
722 例外検出部
8 OS稼動制御部
80 制御用OS
81 代理プロセス
82 OS非稼動計算部用管理プロセス
9 OS非稼動計算部
91 計算コア
92 メモリ
10 計算処理装置
101 計算処理制御部
102 例外検出部

Claims (26)

  1. オペレーティングシステムが組み込まれた制御コアと、前記制御コアにて制御され、所定の計算処理を行う少なくとも一つの計算コアと、を備え、
    前記制御コアは、停止している前記計算コアに対して当該計算コアが行う前記計算処理の開始を指示する計算コア制御部を備え、
    前記計算コアは、前記計算コア制御部からの前記計算処理の開始の指示に応じて前記計算処理の開始を行うように当該計算コアを制御する計算処理制御部と、前記計算処理の実行中に発生した予め設定された例外処理を検出し、当該例外処理が発生した前記計算処理の実行を停止する例外検出部と、を備えた、
    情報処理装置。
  2. 請求項1に記載の情報処理装置であって、
    前記制御コアの前記計算コア制御部は、前記例外検出部により検出した前記例外処理に応じて前記計算コアに対して前記計算処理の開始を指示するように構成され、
    前記計算コアの前記計算処理制御部は、前記計算コア制御部から前記計算処理の開始の指示を受けた場合に、当該計算処理を開始するように前記計算コアを制御する、
    情報処理装置。
  3. 請求項2に記載の情報処理装置であって、
    前記計算コアの前記例外検出部は、当該例外検出部が前記例外処理を検出した旨を前記制御コアに通知するように構成され、
    前記制御コアの前記計算コア制御部は、前記例外検出部から受けた通知が示す前記例外処理に応じて前記計算コアに対して前記計算処理の開始の指示をする、
    情報処理装置。
  4. 請求項1乃至3いずれか1項に記載の情報処理装置であって、
    前記計算コアは、前記例外検出部により検出された前記例外処理を処理する際に必要なデータを前記制御コアに転送するデータ転送手段を備え、
    前記制御コアは、前記データ転送手段により転送された前記データを用いて前記計算コアを代理して前記例外処理を処理する例外処理代理部を備える、
    情報処理装置。
  5. 請求項4に記載の情報処理装置であって、
    前記データ転送手段は、前記計算コアにて発生した前記例外処理がシステムコールである場合、当該システムコールの処理に必要なデータを前記制御コアの前記例外処理代理部が有するバッファ領域に転送するように構成された、
    情報処理装置。
  6. 請求項1乃至5のいずれか1項に記載の情報処理装置であって、
    前記制御コアの前記計算コア制御部は、前記計算コアに対して当該計算コアが行う前記計算処理の停止を指示することが出来るように構成されるとともに、前記計算処理を停止中の前記計算コアに対して当該計算コアによる処理の対象となる前記計算処理の内容を変更する指示を行うことが出来るように構成され、
    前記計算コアの前記計算処理制御部は、前記計算コア制御部からの前記計算処理の停止の指示に応じて実行中の前記計算処理の停止を行うように前記計算コアを制御し、前記計算コア制御部からの前記計算処理の内容の変更の指示に応じて前記計算コアによる処理の対象となる前記計算処理の内容を変更する、
    情報処理装置。
  7. 請求項6に記載の情報処理装置であって、
    前記計算コアが行う前記計算処理の数が前記計算コアの数よりも多い場合、
    前記制御コアの前記計算コア制御部は、予め定められた時間毎に、予め定められた基準により前記計算処理を実行中の前記計算コアを選択し、当該選択した計算コアによる前記計算処理を停止するように指示し、当該計算処理を停止した計算コアによる処理の対象となる前記計算処理の内容を変更する、
    情報処理装置。
  8. オペレーティングシステムが組み込まれた制御コアと、前記制御コアにて制御され、所定の計算処理を行う少なくとも一つの計算コアと、を備えた情報処理装置の前記制御コアに、停止している前記計算コアに対して当該計算コアが行う前記計算処理の開始を指示する計算コア制御手段を実現させ、
    前記計算コアに、前記計算コア制御手段からの前記計算処理の開始の指示に応じて前記計算処理の開始を行うように当該計算コアを制御する計算処理制御手段と、前記計算処理の実行中に発生した予め設定された例外処理を検出し、当該例外処理が発生した計算処理の実行を停止する例外検出手段と、を実現させるための、
    プログラム。
  9. 請求項8に記載のプログラムであって、
    前記例外検出手段は、当該例外検出手段が前記例外処理を検出した旨を前記制御コアに通知する機能を有する、
    プログラム。
  10. 請求項9に記載のプログラムであって、
    前記計算コアに、前記例外検出手段により検出された前記例外処理を処理する際に必要なデータを前記制御コアに転送するデータ転送手段を実現させ、
    前記制御コアに、前記データ転送手段により転送された前記データを用いて前記計算コアを代理して前記例外処理を処理する例外処理代理手段を実現させる、
    プログラム。
  11. 請求項8乃至10のいずれか1項に記載のプログラムであって、
    前記計算コア制御手段は、前記計算コアに対して当該計算コアが行う前記計算処理の停止を指示する機能を有するとともに、前記計算処理を停止中の前記計算コアに対して、当該計算コアによる処理の対象となる前記計算処理の内容を変更する機能を有し、
    前記計算処理制御手段は、前記計算コア制御手段からの前記計算処理の停止の指示に応じて実行中の前記計算処理を停止する機能と、前記計算コア制御部からの前記計算処理の内容の変更の指示に応じて前記計算コアによる処理の対象となる前記計算処理の内容を変更する機能と、を有する、
    プログラム。
  12. 制御コアからの計算処理の開始の指示に応じて計算コアが所定の前記計算処理を開始し、
    前記計算コアは、前記計算コアによる前記計算処理の実行中に予め設定された例外処理が発生した場合には、当該例外処理を検出し、当該例外処理が発生した前記計算処理を停止する、
    情報処理方法。
  13. 請求項12に記載の情報処理方法であって、
    前記計算コアは、前記例外処理を検出した場合、当該例外処理を検出した旨を前記制御コアに通知する、
    情報処理方法。
  14. 請求項13に記載の情報処理方法であって、
    前記計算コアは、前記例外処理を処理する際に必要なデータを前記制御コアに転送し、
    前記制御コアは、転送された前記データを用いて前記計算コアを代理して前記例外処理を処理する、
    情報処理方法。
  15. 請求項12乃至14のいずれか1項に記載の情報処理方法であって、
    前記制御コアは、前記計算処理を停止中の前記計算コアに対して、当該計算コアによる処理の対象となる前記計算処理の内容の変更を指示し、
    前記計算コアは、前記計算コア制御部からの前記計算処理の内容の変更の指示に応じて前記計算コアによる処理の対象となる前記計算処理の内容を変更する、
    情報処理方法。
  16. 外部装置からの制御により所定の計算処理を行う計算処理装置であって、
    外部装置からの計算処理の開始の指示に応じて前記計算処理の開始を行うように前記計算処理装置を制御する計算処理制御部と、前記計算処理の実行中に発生した予め設定された例外処理を検出し、当該例外処理が発生した前記計算処理の実行を停止する例外検出部と、を備えた、
    計算処理装置。
  17. 請求項16に記載の計算処理装置であって、
    前記例外検出部は、当該例外検出部が前記例外処理を検出した旨を前記外部装置へと通知するように構成した、
    計算処理装置。
  18. 請求項16又は17に記載の計算処理装置であって、
    前記例外検出部により検出された前記例外処理を処理する際に必要なデータを前記外部装置へと転送するデータ転送手段を備える、
    計算処理装置。
  19. 請求項16乃至18いずれか1項に記載の計算処理装置であって、
    前記計算処理制御部は、前記外部装置からの前記計算処理の停止の指示に応じて実行中の前記計算処理の停止を行うように前記計算処理装置を制御し、前記外部装置からの前記計算処理の内容の変更の指示に応じて前記計算処理装置による処理の対象となる前記計算処理の内容を変更する、
    計算処理装置。
  20. 計算処理装置に、
    外部装置からの計算処理の開始の指示に応じて前記計算処理の開始を行うように前記計算処理装置を制御する計算処理制御手段と、前記計算処理の実行中に発生した予め設定された例外処理を検出し、当該例外処理が発生した前記計算処理の実行を停止する例外検出手段と、を実現させるための、
    プログラム。
  21. 請求項20に記載のプログラムであって、
    前記例外検出手段は、当該例外検出手段が前記例外処理を検出した旨を外部装置へと通知する機能を有する、
    プログラム。
  22. 請求項20又は21に記載のプログラムであって、
    前記例外検出手段により検出された当該例外処理を処理する際に必要なデータを前記外部装置に転送するデータ転送手段を実現させる、
    プログラム。
  23. 請求項20乃至22いずれか1項に記載の計算処理装置であって、
    前記計算処理制御手段は、前記外部装置からの前記計算処理の停止の指示に応じて実行中の前記計算処理を停止する機能と、前記外部装置からの前記計算処理の内容の変更の指示に応じて前記計算コアによる処理の対象となる前記計算処理の内容を変更する機能と、を有する、
    プログラム。
  24. 外部装置からの計算処理の開始の指示に応じて所定の前記計算処理を開始し、
    前記計算処理の実行中に予め設定された例外処理が発生した場合には、当該例外処理を検出し、当該例外処理が発生した前記計算処理を停止する、
    計算処理方法。
  25. 請求項24に記載の計算処理方法であって、
    前記例外処理を検出した場合、当該例外処理を検出した旨を前記外部装置に通知する、
    計算処理方法。
  26. 請求項25に記載の計算処理方法であって、
    前記例外処理を検出した場合、当該例外処理を処理する際に必要なデータを前記制御コアに転送する、
    計算処理方法。
JP2013232197A 2013-11-08 2013-11-08 情報処理装置、情報処理方法、プログラム、計算処理装置、計算処理方法 Active JP5867482B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2013232197A JP5867482B2 (ja) 2013-11-08 2013-11-08 情報処理装置、情報処理方法、プログラム、計算処理装置、計算処理方法
KR1020167014916A KR101783164B1 (ko) 2013-11-08 2014-11-05 정보 처리 장치, 정보 처리 방법, 기록 매체, 계산 처리 장치, 계산 처리 방법
EP14860668.4A EP3067796A4 (en) 2013-11-08 2014-11-05 Information processing device, information processing method, recording medium, calculation processing device, calculation processing method
PCT/JP2014/005561 WO2015068382A1 (ja) 2013-11-08 2014-11-05 情報処理装置、情報処理方法、記録媒体、計算処理装置、計算処理方法
US15/035,065 US10241829B2 (en) 2013-11-08 2014-11-05 Information processing device, information processing method, recording medium, calculation processing device, calculation processing method
CN201480061338.6A CN105723340B (zh) 2013-11-08 2014-11-05 信息处理设备、信息处理方法、记录介质、计算处理设备、计算处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013232197A JP5867482B2 (ja) 2013-11-08 2013-11-08 情報処理装置、情報処理方法、プログラム、計算処理装置、計算処理方法

Publications (2)

Publication Number Publication Date
JP2015094974A true JP2015094974A (ja) 2015-05-18
JP5867482B2 JP5867482B2 (ja) 2016-02-24

Family

ID=53041177

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013232197A Active JP5867482B2 (ja) 2013-11-08 2013-11-08 情報処理装置、情報処理方法、プログラム、計算処理装置、計算処理方法

Country Status (6)

Country Link
US (1) US10241829B2 (ja)
EP (1) EP3067796A4 (ja)
JP (1) JP5867482B2 (ja)
KR (1) KR101783164B1 (ja)
CN (1) CN105723340B (ja)
WO (1) WO2015068382A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6249119B1 (ja) * 2017-03-15 2017-12-20 日本電気株式会社 制御装置、制御方法、プログラム、情報処理装置
JP2018049444A (ja) * 2016-09-21 2018-03-29 日本電気株式会社 並列計算機システムおよび管理方法
JP7405008B2 (ja) 2020-06-08 2023-12-26 富士通株式会社 情報処理装置、情報処理プログラム、及び、情報処理方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101870492B1 (ko) * 2015-06-22 2018-06-22 엘에스산전 주식회사 Plc 시스템
WO2017099184A1 (ja) 2015-12-09 2017-06-15 旭硝子株式会社 硬化性組成物および硬化物
CN111291373B (zh) * 2020-02-03 2022-06-14 思客云(北京)软件技术有限公司 用于分析数据污染传播的方法、设备和计算机可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000029866A (ja) * 1998-05-14 2000-01-28 Advanced Risc Mach Ltd ベクトル命令の処理の間に生じる例外の処理

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3375649B2 (ja) 1991-09-20 2003-02-10 株式会社日立製作所 並列計算機
TW200502847A (en) * 2003-07-08 2005-01-16 Benq Corp Control device and method for reducing number of interrupts in a processor
JP2008165318A (ja) 2006-12-27 2008-07-17 Hitachi Ltd 計算機システム
CN107066862B (zh) 2007-09-24 2022-11-25 苹果公司 电子设备中的嵌入式验证系统
JP5239752B2 (ja) * 2008-10-31 2013-07-17 富士通株式会社 同期メッセージ発行システム、同期メッセージ発行方法および同期メッセージ発行プログラム
US8271990B2 (en) * 2009-02-27 2012-09-18 International Business Machines Corporation Removing operating system jitter-induced slowdown in virtualized environments
US8260996B2 (en) * 2009-04-24 2012-09-04 Empire Technology Development Llc Interrupt optimization for multiprocessors
US8537832B2 (en) * 2010-03-12 2013-09-17 Lsi Corporation Exception detection and thread rescheduling in a multi-core, multi-thread network processor
WO2012014285A1 (ja) * 2010-07-27 2012-02-02 富士通株式会社 割込制御方法、マルチコアプロセッサシステム、および割込制御プログラム
WO2012067903A2 (en) 2010-11-17 2012-05-24 Luvata Appleton Llc Alkaline collector anode
US20140351617A1 (en) * 2013-05-27 2014-11-27 Motorola Mobility Llc Method and Electronic Device for Bringing a Primary Processor Out of Sleep Mode

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000029866A (ja) * 1998-05-14 2000-01-28 Advanced Risc Mach Ltd ベクトル命令の処理の間に生じる例外の処理

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6015014706; 永田卓也ほか: 'SPE Observer: Cell/B.E.のSPEを用いたOS監視システム' 情報処理学会研究報告 Vol. 2012-OS-120 No. 2, 20120228, 1-8頁, 一般社団法人情報処理学会 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018049444A (ja) * 2016-09-21 2018-03-29 日本電気株式会社 並列計算機システムおよび管理方法
JP6249119B1 (ja) * 2017-03-15 2017-12-20 日本電気株式会社 制御装置、制御方法、プログラム、情報処理装置
JP2018152019A (ja) * 2017-03-15 2018-09-27 日本電気株式会社 制御装置、制御方法、プログラム、情報処理装置
US10467149B2 (en) 2017-03-15 2019-11-05 Nec Corporation Control apparatus, control method, program, and information processing apparatus
JP7405008B2 (ja) 2020-06-08 2023-12-26 富士通株式会社 情報処理装置、情報処理プログラム、及び、情報処理方法

Also Published As

Publication number Publication date
US10241829B2 (en) 2019-03-26
CN105723340B (zh) 2019-12-10
KR20160083916A (ko) 2016-07-12
CN105723340A (zh) 2016-06-29
US20160371113A1 (en) 2016-12-22
KR101783164B1 (ko) 2017-09-28
WO2015068382A1 (ja) 2015-05-14
JP5867482B2 (ja) 2016-02-24
EP3067796A1 (en) 2016-09-14
EP3067796A4 (en) 2017-07-19

Similar Documents

Publication Publication Date Title
JP5867482B2 (ja) 情報処理装置、情報処理方法、プログラム、計算処理装置、計算処理方法
JP5180373B2 (ja) 仮想化環境における割り込みメッセージ終了のレイジー処理
US9652247B2 (en) Capturing snapshots of offload applications on many-core coprocessors
JP5479802B2 (ja) ハイブリッド・コンピューティング環境におけるデータ処理のための方法、装置、およびプログラム
US8387075B1 (en) Common scheduling and synchronization primitives
US8544010B2 (en) Providing notification to speculatively waking up target virtual machine for an I/O event using multiple virtual machines and processors
US9946870B2 (en) Apparatus and method thereof for efficient execution of a guest in a virtualized enviroment
KR101936950B1 (ko) 컴퓨팅 디바이스, 코프로세서와 비휘발성 메모리 사이의 데이터 이동 방법 및 이를 포함하는 프로그램
WO2014090008A1 (zh) 一种任务处理的方法和虚拟机
JP6249961B2 (ja) プログラムによる警告追跡割り込みファシリティの使用
US10565135B2 (en) Information processing device, information processing method, main processor core, program, information processing method, and sub processor core
Dai et al. A lightweight VMM on many core for high performance computing
JP6249119B1 (ja) 制御装置、制御方法、プログラム、情報処理装置
KR102000721B1 (ko) 컴퓨팅 디바이스, 코프로세서와 비휘발성 메모리 사이의 데이터 이동 방법 및 이를 포함하는 프로그램
WO2016067496A1 (ja) 情報処理装置
Mouzakitis et al. Lightweight and generic RDMA engine para-virtualization for the KVM hypervisor
van der Grinten et al. Managarm: A Fully Asynchronous Operating System
Bauer Fip-see: A low latency, high throughput IPC mechanism
JP2020095446A (ja) 情報処理装置、メモリ初期化制御方法及びプログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150414

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150608

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150811

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151028

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20151105

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151208

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151221

R150 Certificate of patent or registration of utility model

Ref document number: 5867482

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150