JP7434925B2 - 情報処理装置、情報処理方法およびプログラム - Google Patents

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

Info

Publication number
JP7434925B2
JP7434925B2 JP2020009086A JP2020009086A JP7434925B2 JP 7434925 B2 JP7434925 B2 JP 7434925B2 JP 2020009086 A JP2020009086 A JP 2020009086A JP 2020009086 A JP2020009086 A JP 2020009086A JP 7434925 B2 JP7434925 B2 JP 7434925B2
Authority
JP
Japan
Prior art keywords
processing unit
information
processing
storage area
unit
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.)
Active
Application number
JP2020009086A
Other languages
English (en)
Other versions
JP2021117577A (ja
Inventor
武 早坂
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 JP2020009086A priority Critical patent/JP7434925B2/ja
Publication of JP2021117577A publication Critical patent/JP2021117577A/ja
Application granted granted Critical
Publication of JP7434925B2 publication Critical patent/JP7434925B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)

Description

本発明は、情報処理装置、情報処理方法およびプログラムに関する。
特許文献1に記載されている情報処理装置は、複数のプロセスを並列に実行する際に、プロセス間の通信にて通信待ち合わせが発生した場合、通信待ち合わせ時間、データ転送時間等を測定し、所定のファイルに記憶する。その場合、特許文献1に記載されている情報処理装置は、通信待ち合わせ開始時刻、通信待ち合わせ終了時刻、およびデータ転送終了時刻を採取し、各時刻の差分から通信待ち合わせ時間とデータ転送時間を算出する。さらに、特許文献1に記載されている情報処理装置は、データ転送後にデータサイズや通信相手プロセス情報等のその他の情報を採取してそのファイルに記憶する。
特開2009-199121号公報
特許文献1に記載されている情報処理装置は、プロセス間のデータ転送後に通信相手プロセス情報等のその他の情報を採取して所定のファイルに記憶する。そのため、例えば待ち合わせ時間の開始時と終了時で内容が変化する情報があった場合に、その内容の変化を記憶することができないという課題があった。
本発明は、上記課題を解決する情報処理装置、情報処理方法およびプログラムを提供することを目的とする。
上記課題を解決するため本発明の一態様は、複数の処理単位を並列して処理する装置であって、前記複数の処理単位のうちの自己の処理単位が、他の処理単位が読み出し可能である前記自己の処理単位の記憶領域に前記自己の処理単位の動作状態に係る情報(以下、動作情報)を記憶する動作情報記憶部と、前記自己の処理単位と前記他の処理単位との間で所定の条件が成立するまでに時間差がある場合に、前記時間差の開始時と終了時とにおいて、前記他の処理単位の記憶領域から前記他の処理単位の前記動作情報を読み出し、前記動作情報のうちの少なくとも一部を所定の記憶部に記憶する情報取得部と、を含み、前記自己の処理単位の前記記憶領域と前記他の処理単位の前記記憶領域とは、互いに異なる、情報処理装置である。
また、本発明の一態様は、複数の処理単位を並列して処理する方法であって、前記複数の処理単位のうちの自己の処理単位において、他の処理単位が読み出し可能である前記自己の処理単位の記憶領域に前記自己の処理単位の動作状態に係る情報(以下、動作情報)を記憶するステップと、前記自己の処理単位と前記他の処理単位との間で所定の条件が成立するまでに時間差がある場合に、前記時間差の開始時と終了時とにおいて、前記他の処理単位の記憶領域から前記他の処理単位の前記動作情報を読み出し、前記動作情報のうち少なくとも一部を所定の記憶部に記憶するステップと、を含み、前記自己の処理単位の前記記憶領域と前記他の処理単位の前記記憶領域とは、互いに異なる、情報処理方法である。
また、本発明の一態様は、複数の処理単位を並列して処理する際に、前記複数の処理単位のうちの自己の処理単位において、他の処理単位が読み出し可能である前記自己の処理単位の記憶領域に前記自己の処理単位の動作状態に係る情報(以下、動作情報)を記憶するステップと、前記自己の処理単位と前記他の処理単位との間で所定の条件が成立するまでに時間差がある場合に、前記時間差の開始時と終了時とにおいて、前記他の処理単位の記憶領域から前記他の処理単位の前記動作情報を読み出し、前記動作情報のうち少なくとも一部を所定の記憶部に記憶するステップと、をコンピュータに実行させ、前記自己の処理単位の前記記憶領域と前記他の処理単位の前記記憶領域とは、互いに異なる、プログラムである。
本発明の各態様によれば、並列処理に係る待ち合わせ時間の開始時と終了時に応じた情報を記憶することができる。
本発明に係る情報処理装置の一実施形態の基本的構成例を示すブロック図である。 本発明の第1実施形態に係る情報処理装置の機能的構成例を示すブロック図である。 図2に示すノード1-1の動作例を示すフローチャートである。 本発明の第2実施形態に係る情報処理装置の機能的構成例を示すブロック図である。 図4に示すノード1-1の動作例を示すフローチャートである。 本発明の一実施形態による情報処理装置の最小構成を示す図である。 本発明の一実施形態による最小構成の情報処理装置の処理フローを示す図である。
以下、図面を参照して本発明の実施形態について説明する。なお、各図において同一または対応する構成には同一の符号を用いて説明を適宜省略する。
<実施形態の基本的構成例>
図1は、本発明の一実施形態に係る情報処理装置の基本的構成例を示すブロック図である。図1に示す情報処理装置10は、サーバ、パーソナルコンピュータ、タブレット端末等のコンピュータ、あるいはそのコンピュータと周辺装置とから構成することができる。また、情報処理装置10は、情報処理装置10を構成するコンピュータ(あるいはコンピュータと周辺装置)が有する1または複数のCPU(中央処理装置)、主記憶装置、補助記憶装置等の記憶装置、入出力装置、通信装置等のハードウェアと、1または複数のCPUが実行するプログラム等のソフトウェアとの組み合わせで構成される機能的構成として、処理ユニット(処理単位)20と処理ユニット21を有する。処理ユニット20と処理ユニット21は1つの処理を分散して並列して処理する機能的構成であり、例えば、分散並列プログラムの場合のプロセスとそのプロセスを実行するハードウェアとの組み合わせ、共有並列プログラムの場合のスレッド(あるいはタスク(以下省略))とそのスレッドを実行するハードウェアとの組み合わせ等に対応する。本実施形態において、情報処理装置10は、複数の処理ユニット20および21を並列して処理する装置である。なお、情報処理装置10は、3以上の複数の処理ユニットを含んでいてもよい。
処理ユニット20は、動作情報記憶部20-1と、動作情報20-3を記憶する記憶領域20-2と、情報取得部20-4と、記憶部20-5とを含む。また、処理ユニット21は、動作情報記憶部21-1と、動作情報21-3を記憶する記憶領域21-2と、情報取得部21-4と、記憶部21-5とを含む。処理ユニット20と処理ユニット21は基本的構成は同一である。すなわち、動作情報記憶部20-1と動作情報記憶部21-1、記憶領域20-2と記憶領域21-2、動作情報20-3と動作情報21-3、情報取得部20-4と情報取得部21-4、そして、記憶部20-5と記憶部21-5は、それぞれ、互いに対応し、また、基本的構成が互いに同一である。以下、処理ユニット20について主に説明し、処理ユニット21についての説明は適宜省略する。なお、処理ユニット20と処理ユニット21は、例えばユーザプログラムを含み、ユーザプログラムの構成要素として図示してない他の1または複数の機能的構成を含む。なお、記憶部20-5と記憶部21-5は、同一の構成(1つの記憶部)であってもよい。
動作情報記憶部20-1は、他の処理ユニット21が直接読み出し可能な記憶領域20-2に、自己の処理ユニット20の動作状態に係る情報(動作情報20-3)を記憶する。記憶領域20-2は、自己の処理ユニット20がデータを読み書き可能な領域であり、かつ、他の処理ユニット21がデータを直接読み出し可能な領域である。ここで、他の処理ユニット21が直接読み出し可能とは、例えば、処理ユニット20と処理ユニット21間のデータ転送用のプログラムを実行することなく、他の処理ユニット21が例えばメモリ読み出し用コマンドやレジスタ読み出し用コマンドを実行することで読み出すことができる、という意味である。また、動作情報20-3は、例えば、実行カウンタ(PC(プログラムカウンタ)等)の値、性能カウンタの値(実行命令数、メモリアクセス回数、分岐予測成功率、キャッシュメモリヒット率等)、実行中のユーザルーチン、ユーザルーチンの呼び出し履歴の情報等を含む。なお、動作情報記憶部20-1が記憶領域20-2に動作情報20-3を記憶する動作やタイミングに限定はない。
情報取得部20-4は、他の処理ユニット21で所定の条件が成立するまでに所定の待ち合わせ時間が発生した場合に、その待ち合わせ時間の開始時と終了時に他の処理ユニット21の記憶領域21-2から他の処理ユニット21の動作情報21-3を読み出し、読み出した動作情報21-3に応じた情報を所定の記憶部20-5に記憶する。ここで、所定の条件が成立するとは、例えば、自己の処理ユニット20が他の処理ユニット21に対する通信を行おうと待機している場合に、他の処理ユニット21が自己の処理ユニット20との間の通信を行える状態になったこと(あるいは状態であったこと)である。あるいは、所定の条件が成立するとは、例えば、自己の処理ユニット20が他の処理ユニット21と同期を成立させようとする場合に、他の処理ユニット21が自己の処理ユニット20と同期を成立できる状態になったこと(あるいは状態であったこと)である。所定の待ち合わせ時間は、例えば、所定の条件の成否を少なくとも1回判断するのに要する時間より長い待機時間である。また、動作情報21-3に応じた情報とは、動作情報21-3そのもの、または動作情報21-3に基づいて生成した情報である。動作情報21-3に基づいて生成した情報は、例えば、動作情報21-3が数値情報を含む場合に、開始時の数値と終了時の数値の差分を表す情報である。
上述したように、図1に示す情報処理装置10では、処理ユニット20において、情報取得部20-4が、他の処理ユニット21で所定の条件が成立するまでに所定の待ち合わせ時間が発生した場合に、その待ち合わせ時間の開始時と終了時に記憶領域21-2から他の処理ユニット21の動作情報21-3を読み出し、読み出した動作情報21-3に応じた情報を所定の記憶部20-5に記憶する。また、処理ユニット21においては、情報取得部21-4が、他の処理ユニット20で所定の条件が成立するまでに所定の待ち合わせ時間が発生した場合に、その待ち合わせ時間の開始時と終了時に記憶領域20-2から他の処理ユニット20の動作情報20-3を読み出し、読み出した動作情報20-3に応じた情報を所定の記憶部21-5に記憶する。以上の構成によれば、並列処理に係る待ち合わせ時間の開始時と終了時に応じた情報を記憶部20-5および21-5に記憶することができる。
また、情報処理装置10では、動作情報記憶部20-1が、他の処理ユニット21が読み出し可能な記憶領域20-2に自己の処理ユニット20の動作状態に係る情報である動作情報20-3を記憶する。また、動作情報記憶部21-1が、他の処理ユニット20が読み出し可能な記憶領域21-2に自己の処理ユニット21の動作情報21-3を記憶する。この構成によれば、情報取得部20-4および21-4は、他の処理ユニット21および20の動作情報21-3および20-3を効率的に読み出すことができる。
なお、記憶領域20-2が自己の処理ユニット20における実行中のユーザルーチンおよびユーザルーチンの呼び出し履歴を格納するスタック領域を含んでいてもよい。この場合、実行中のユーザルーチンおよびユーザルーチンの呼び出し履歴は、動作情報20-3に含まれる。また、記憶領域21-2が自己の処理ユニット21における実行中のユーザルーチンおよびユーザルーチンの呼び出し履歴を格納するスタック領域を含んでいてもよい。この場合、実行中のユーザルーチンおよびユーザルーチンの呼び出し履歴は、動作情報21-3に含まれる。また、この場合、情報取得部20-4は、他の処理ユニット21における実行中のユーザルーチンおよびユーザルーチンの呼び出し履歴を含む動作情報21-3を直接読み出すことができる。また、この場合、情報取得部21-4は、他の処理ユニット21における実行中のユーザルーチンおよびユーザルーチンの呼び出し履歴を含む動作情報21-3を直接読み出すことができる。
また、動作情報20-3および21-3は、処理ユニット20および21の動作状態に応じて変化する数値情報を含んでいてもよい。この場合、情報取得部20-4および21-4は、例えば、待ち合わせ時間の開始時の数値情報と終了時の数値情報の差分を記憶部20-5または21-5に記憶することができる。
<第1実施形態>
次に、図2および図3を参照して、本発明の第1実施形態について説明する。図2は、本発明の第1実施形態に係る情報処理装置の構成例をノード1-1として示すブロック図である。ここで、ノードとは、通信ネットワークを構成するコンピュータ、端末、通信装置等の構成要素を論理的(あるいは機能的)に表現したものである。この場合、図2に示す複数のノード1-1は、ノード間インタコネクト1-7で接続されたクラスタシステム100を構成している。また、図3は、図2に示す各ノード1-1の動作例を示すフローチャートである。
図2に示す各ノード1-1は、サーバ、パーソナルコンピュータ、タブレット端末等のコンピュータ、あるいはそのコンピュータと周辺装置とを用いて構成することができる。また、各ノード1-1は、複数のCPUコア1-3と、それら全てのCPUコア1-3からアクセス可能な共有メモリ1-6を有している。この場合、CPUコア1-3はそれぞれ1つのプロセス1-2を処理し、各ノード1-1は複数のCPUコア1-3を用いて複数のプロセス1-2を並列処理する。
第1実施形態において、複数のプロセス1-2は、分散並列プログラムを構成する。各プロセス1-2は、そのプロセスを実行するCPUコア1-3と、共有メモリ1-6に確保されたプロセスメモリ1-5を備える。
各CPUコア1-3は、実行カウンタ(PC:プログラムカウンタ等)、および、性能カウンタ(実行命令数、メモリアクセス回数、分岐予測成功率、キャッシュメモリヒット率等を格納する記憶領域)を有している。これらを称して実行カウンタおよび性能カウンタ群1-4とする。各CPUコア1-3は、他CPUコア1-3の実行カウンタおよび性能カウンタ群1-4へアクセスする手段を有する。また、各CPUコア1-3は、他の各CPUコア1-3に割り当てられた各プロセスメモリ1-5にアクセスする手段を有する。
次に、図3を参照して、図2に示す各ノード1-1の動作例として、プロセス間通信処理について説明する。図3に示す処理は、あるノード1-1が実行しているプロセス1-2(第1プロセスとする)が、他のノード1-1が実行しているプロセス1-2(第2プロセスとする)との間でデータ転送処理を行うときに実行される。図3に示すプロセス間通信処理では、第1プロセスが最初に通信対象の第2プロセスとの間で通信が可能か否かを判定する(3-1)。通信可能である場合(3-1で「真」の場合)、第1プロセスは、第1プロセスと第2プロセスとの間でデータ転送処理(3-10)を行い、プロセス間通信処理を完了する。この場合、通信待合せは発生しないため、プロファイル情報の採取は行われない。
3-1において、通信対象の第2プロセスとの間でまだ通信が行えない状況と判定された場合(3-1で「偽」の場合)、通信待合せとなる。通信待合せ処理では、第1プロセスは、通信待合せを開始した時刻(T0)を参照する(3-2)。その後、第1プロセスは、現在時刻(T1)を参照しつつ、あらかじめ定めた一定時間を経過するまで(T1-T0>一定時間となるまで)通信可能か否かの判定を続ける(3-3、3-4、3-5)。ここで、一定時間とは、通信処理時間と比較して十分小さな時間とする。
一定時間以内に通信可能となった場合は(3-3で「真」の場合は)、データ転送処理3-10へと移行する。この場合、通信待合せは発生しているが、その通信待ちは十分小さいため、プロファイル情報の採取は行わない。
3-5において、待ち時間が一定時間を超えた場合(3-5で「真」の場合は)、第1プロセスは、プロファイル情報の採取を行う(3-6)。ここで、第1プロセスは、プロファイル情報として、通信相手の第2プロセスのメモリを参照し、そのスタック領域から、実行中のユーザルーチン、および、ユーザルーチンの呼び出し履歴の情報を得る。また、第1プロセスは、第2プロセスの性能カウンタ情報を採取する。
その後、第1プロセスは、通信可能となるまで待合せを継続し(3-7)、通信可能となった後、プロファイル情報の採取を行う(3-8)。続いて、第1プロセスは、3-9において、採取したプロファイル情報を例えば図示していない所定の記憶部に保存する。ここで、第1プロセスが、第2プロセス(および第1プロセス)が実行中のユーザルーチンおよび呼び出し履歴、さらに、3-6と3-8で採取した性能カウンタの差分を算出し、例えば図示していない所定の記憶部に保存する。図3に示すプロセス間通信処理では、性能カウンタの差分を採用することにより、当該プロセスが通信待合せを行っている間、通信相手プロセスがどの様な処理を行っていたかを判断することができる。第1プロセスは、最後にデータ転送処理3-10を行い、プロセス間通信処理を完了する。
なお、実行カウンタおよび性能カウンタ群1-4とプロセスメモリ1-5への情報の書き込み(更新)は、例えば、プロセス1-2内の所定のプログラム、ノード1-1内でプロセス1-2等の実行を管理するオペレーティングシステム、CPU1-3を制御するファームウェアやハードウェア等によって行うことができる。
第1実施形態によれば、分散並列処理に係るプロセス間通信処理における通信待ち合わせ時間の開始時と終了時にプロファイル情報と性能カウンタ情報を取得し、それらの情報やそれらの情報の差分を記憶するので、開始時と終了時に応じた情報を記憶することができる。
なお、第1実施形態における各構成と図1に示す各構成との対応関係は次のとおりである。図2に示すノード1-1が、図1に示す情報処理装置10に対応する。図2に示すプロセス1-2が、図1に示す処理ユニット20および21に対応する。図2に示す実行カウンタおよび性能カウンタ群1-4とプロセスメモリ1-5が、図1に示す記憶領域20-2および21-2に対応する。図3に示す(3-6)、(3-8)および(3-9)の処理を実行するプロセス1-2内の構成(プログラム)が、図1に示す情報取得部20-4および21-4に対応する。図2に示す実行カウンタおよび性能カウンタ群1-4とプロセスメモリ1-5に記憶される情報(あるいは図3に示す(3-6)および(3-8)で採取される情報)が、図1に示す動作情報20-3および21-3に対応する。図3に示す(3-9)でプロファイル情報を保存する際の保存先が、図1に示す記憶部20-5および21-5に対応する。図2に示すノード1-1が有する実行カウンタおよび性能カウンタ群1-4とプロセスメモリ1-5に所定の情報を書き込む構成(プロセス1-2内のプログラム等)が、図1に示す動作情報記憶部20-1および21-1に対応する。
<第2実施形態>
次に、図4および図5を参照して、本発明の第2実施形態について説明する。図4は、本発明の第2実施形態に係る情報処理装置の構成例をノード1-1として示すブロック図である。また、図5は、図4に示すノード1-1の動作例を示すフローチャートである。
図4に示すノード1-1は、図2に示すノード1-1に対応する構成であり、サーバ、パーソナルコンピュータ、タブレット端末等のコンピュータ、あるいはそのコンピュータと周辺装置とを用いて構成することができる。また、ノード1-1は、複数のCPUコア1-3と、それら全てのCPUコア1-3からアクセス可能な共有メモリ1-6を有している。また、各CPUコア1-3はそれぞれ実行カウンタおよび性能カウンタ群1-4を有している。図4に示すノード1-1、CPUコア1-3、実行カウンタおよび性能カウンタ群1-4、および共有メモリ1-6の各構成は、図2に示す同一の符号を付けた各構成と同一である。
なお、第2実施形態において、複数のスレッド2-2から構成されるプロセス2-1は、共有並列プログラムを構成する。また、各スレッド2-2は、各CPUコア1-3によって実行され、共有メモリ1-6に確保されたプロセスメモリ2-3と、他のスレッド2-2を処理するCPUコア1-3が有する実行カウンタおよび性能カウンタ群1-4とにアクセスすることができる。
次に、図5を参照して、図4に示すノード1-1の動作例として、スレッド間同期処理について説明する。図5に示す処理は、プロセス2-1のあるスレッド2-2(第1スレッドとする)が、他のスレッド2-2(第2スレッドとする)との間で同期を成立させるときに実行される。図5に示すスレッド間同期処理では、第1スレッドが、最初に同期対象の第2スレッドとの間で同期が成立しているか否かを判定する(4-1)。同期が成立している場合(4-1で「真」の場合)、第1スレッドはスレッド間同期処理を完了する。この場合、同期待合せは発生しないため、プロファイル情報の採取は行われない。
4-1において、同期対象の第2スレッドとの間でまだ同期が成立していないと判定された場合(4-1で「偽」の場合)、同期待合せとなる。同期待合せ処理では、第1スレッドは、同期待合せを開始した時刻(T0)を参照する(4-2)。その後、第1スレッドは、現在時刻(T1)を参照しつつ、あらかじめ定めた一定時間を経過するまで(T1-T0>一定時間となるまで)同期成立か否かの判定を続ける(4-3、4-4、4-5)。ここで、一定時間とは、同期処理時間と比較して十分小さな時間とする。
一定時間以内に通信可能となった場合は(4-3で「真」の場合は)、第1スレッドはスレッド間同期処理を完了する。この場合、同期待合せは発生しているが、その同期待ちは十分小さい(一定時間以内の)ため、プロファイル情報の採取は行わない。
4-5において、待ち時間が一定時間を超えた場合(4-5で「真」の場合は)、第1スレッドは、プロファイル情報の採取を行う(4-6)。ここで、第1スレッドは、プロファイル情報として、同期相手の第2スレッドのメモリを参照し、そのスタック領域から、実行中のユーザルーチン、および、ユーザルーチンの呼び出し履歴の情報を得る。また、第1スレッドは、第2スレッドの性能カウンタ情報を採取する。
その後、第1スレッドは、同期が成立するまで待合せを継続し(4-7)、同期が成立した後、プロファイル情報の採取を行う(4-8)。続いて、第1プロセスは、4-9において、採取したプロファイル情報を例えば図示していない所定の記憶部に保存する。ここで、第1スレッドは、第2スレッド(および第1スレッド)が実行中のユーザルーチンおよび呼び出し履歴、さらに、4-6と4-8で採取した性能カウンタの差分を算出し、例えば図示していない所定の記憶部に保存する。図5に示すスレッド間同期処理では、性能カウンタの差分を採用することにより、当該スレッド(第1スレッド)が同期待合せを行っている間、同期対象スレッド(第2スレッド)がどの様な処理を行っていたかを判断することができる。第1スレッドは、4-9の後、スレッド間同期処理を完了する。
第2実施形態によれば、共有並列処理に係るスレッド間同期処理における同期待ち合わせ時間の開始時と終了時にプロファイル情報と性能カウンタ情報を取得し、それらの情報やそれらの情報の差分を記憶するので、開始時と終了時に応じた情報を記憶することができる。
なお、第2実施形態における各構成と図1に示す構成との対応関係は次のとおりである。図4に示すノード1-1が、図1に示す情報処理装置10に対応する。図4に示すプロセス2-1が有するスレッド2-2が、図1に示す処理ユニット20および21に対応する。図4に示す実行カウンタおよび性能カウンタ群1-4とプロセスメモリ2-3が、図1に示す記憶領域20-2および21-2に対応する。図5に示す(4-6)および、(4-8)および(4-9)の処理を実行するスレッド2-2内の構成(プログラム)が、図1に示す情報取得部20-4および21-4に対応する。図4に示す実行カウンタおよび性能カウンタ群1-4とプロセスメモリ2-3に記憶される情報(あるいは図5に示す(4-6)および(4-8)で採取される情報)が、図1に示す動作情報20-3および21-3に対応する。図5に示す(4-9)でプロファイル情報を保存する際の保存先が、図1に示す記憶部20-5および21-5に対応する。図4に示すノード1-1が有する実行カウンタおよび性能カウンタ群1-4とプロセスメモリ2-3に所定の情報を書き込む構成(スレッド2-2内のプログラム等)が、図1に示す動作情報記憶部20-1および21-1に対応する。
<第1実施形態と第2実施形態の他の効果等>
上述したように、第1実施形態および第2実施形態では、分散並列プログラム(MPI(Message Passing Interface;メッセージ パッシング インターフェース)プログラム等)、あるいは、共有並列プログラム(OpenMP(Open MultiProcessing)プログラム等)の実行において、分散並列プログラムの場合はプロセス間通信処理中に通信待合せが発生した場合、共有並列プログラムの場合はスレッド(あるいはタスク)間の同期待合せが発生した場合、さらに、それら通信待合せ、あるいは、同期待合せが一定時間以上継続した事を契機として、通信相手プロセス、あるいは、同期待合せ対象スレッドのプロファイル情報を採取する。この構成によれば、情報採取用の追加処理コードよる影響(実行命令数の増加、メモリアクセスの増加、分岐予測の成功率の変動、キャッシュメモリのヒット率およびミス率の挙動の変動)が無く、したがって、ユーザプログラムの挙動を正確に表現するプロファイル情報を採取することが出来る。また、情報採取用に追加資源(CPUコア、メモリなど)が不要であり、したがって、ユーザプログラムの実行を妨げない。また、通信待合わせ、あるいは、同期待合せの要因となる処理(すなわち、通信相手プロセスの処理内容、あるいは、同期待ちスレッドの処理内容)について、ピンポイントで情報を採取することができる。また、通信待合せ、あるいは、同期待合せの処理中に情報採取を行うため、ユーザプログラム実行性能に影響を与えない。
なお、第1実施形態と第2実施形態は、例えば、分散並列プログラムの最適化および高速化を目的としたプロファイリングや、共有並列プログラムの最適化および高速化を目的としたプロファイリング等に適用することができる。
図6は、本発明の一実施形態による情報処理装置の最小構成を示す図である。
図7は、本発明の一実施形態による最小構成の情報処理装置の処理フローを示す図である。
情報処理装置10は、複数の処理ユニット(処理単位)を並列して処理する装置であって、図6に示すように、処理ユニット20は、動作情報記憶部20-1と、情報取得部20-4とを含む。
動作情報記憶部20-1は、他の処理単位が読み出し可能な記憶領域に自己の処理単位の動作状態に係る情報(以下、動作情報)を記憶する(ステップS7-1)。
情報取得部20-4は、他の処理単位で所定の条件が成立するまでに所定の待ち合わせ時間が発生した場合に、その待ち合わせ時間の開始時と終了時に記憶領域から他の処理単位の動作情報を読み出し、読み出した動作情報に応じた情報を所定の記憶部に記憶する(ステップS7-2)。
以上、この発明の実施形態について図面を参照して説明してきたが、具体的な構成は上記実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
また、上記実施形態でコンピュータが実行するプログラムの一部または全部は、コンピュータ読取可能な記憶媒体や通信回線を介して頒布することができる。
1-1 ノード
1-2、2-1 プロセス
1-3 CPUコア
1-4 実行カウンタおよび性能カウンタ群
1-5、2-3 プロセスメモリ
1-6 共有メモリ
1-7 ノード間インタコネクト
2-2 スレッド
10 情報処理装置
20、21 処理ユニット(処理単位)
20-1、21-1 動作情報記憶部
20-2、21-2 記憶領域
20-3、21-3 動作情報
20-4、21-4 情報取得部
20-5、21-5 記憶部

Claims (7)

  1. 複数の処理単位を並列して処理する装置であって、
    前記複数の処理単位のうちの自己の処理単位が、
    他の処理単位が読み出し可能である前記自己の処理単位の記憶領域に前記自己の処理単位の動作状態に係る情報(以下、動作情報)を記憶する動作情報記憶部と、
    前記自己の処理単位と前記他の処理単位との間で所定の条件が成立するまでに時間差がある場合に、前記時間差の開始時と終了時とにおいて、前記他の処理単位の記憶領域から前記他の処理単位の前記動作情報を読み出し、前記動作情報のうちの少なくとも一部を所定の記憶部に記憶する情報取得部と、を含み、
    前記自己の処理単位の前記記憶領域と前記他の処理単位の前記記憶領域とは、互いに異なる、情報処理装置。
  2. 前記記憶領域が、前記自己の処理単位における実行中のユーザルーチンおよび前記ユーザルーチンの呼び出し履歴を格納するスタック領域を含み、
    前記情報取得部が、他の前記処理単位における前記実行中のユーザルーチンおよび前記ユーザルーチンの呼び出し履歴を含む前記動作情報を読み出す
    請求項1に記載の情報処理装置。
  3. 前記動作情報が、前記処理単位の動作状態に応じて変化する数値情報を含み、
    前記情報取得部は、前記開始時の前記数値情報と前記終了時の前記数値情報の差分を前記記憶部に記憶する
    請求項1または2に記載の情報処理装置。
  4. 前記処理単位が、プロセスまたはスレッドである
    請求項1から3のいずれか1項に記載の情報処理装置。
  5. 前記他の処理単位が、前記自己の処理単位が読み出し可能である前記他の処理単位の記憶領域に前記他の処理単位の動作情報を記憶する動作情報記憶部を備える、請求項1に記載の情報処理装置。
  6. 複数の処理単位を並列して処理する方法であって、
    前記複数の処理単位のうちの自己の処理単位において、
    他の処理単位が読み出し可能である前記自己の処理単位の記憶領域に前記自己の処理単位の動作状態に係る情報(以下、動作情報)を記憶するステップと、
    前記自己の処理単位と前記他の処理単位との間で所定の条件が成立するまでに時間差がある場合に、前記時間差の開始時と終了時とにおいて、前記他の処理単位の記憶領域から前記他の処理単位の前記動作情報を読み出し、前記動作情報のうち少なくとも一部を所定の記憶部に記憶するステップと、を含み、
    前記自己の処理単位の前記記憶領域と前記他の処理単位の前記記憶領域とは、互いに異なる、情報処理方法。
  7. 複数の処理単位を並列して処理する際に、
    前記複数の処理単位のうちの自己の処理単位において、
    他の処理単位が読み出し可能である前記自己の処理単位の記憶領域に前記自己の処理単位の動作状態に係る情報(以下、動作情報)を記憶するステップと、
    前記自己の処理単位と前記他の処理単位との間で所定の条件が成立するまでに時間差がある場合に、前記時間差の開始時と終了時とにおいて、前記他の処理単位の記憶領域から前記他の処理単位の前記動作情報を読み出し、前記動作情報のうち少なくとも一部を所定の記憶部に記憶するステップと、をコンピュータに実行させ、
    前記自己の処理単位の前記記憶領域と前記他の処理単位の前記記憶領域とは、互いに異なる、プログラム。
JP2020009086A 2020-01-23 2020-01-23 情報処理装置、情報処理方法およびプログラム Active JP7434925B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020009086A JP7434925B2 (ja) 2020-01-23 2020-01-23 情報処理装置、情報処理方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020009086A JP7434925B2 (ja) 2020-01-23 2020-01-23 情報処理装置、情報処理方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2021117577A JP2021117577A (ja) 2021-08-10
JP7434925B2 true JP7434925B2 (ja) 2024-02-21

Family

ID=77174867

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020009086A Active JP7434925B2 (ja) 2020-01-23 2020-01-23 情報処理装置、情報処理方法およびプログラム

Country Status (1)

Country Link
JP (1) JP7434925B2 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009059316A (ja) 2007-09-04 2009-03-19 Nec Corp 測定装置、測定プログラム、および、測定方法
JP2009199121A (ja) 2008-02-19 2009-09-03 Nec Corp 情報処理装置、通信情報採取方法、及び、プログラム
JP2011175459A (ja) 2010-02-24 2011-09-08 Nec Corp 性能情報採取装置、性能情報採取方法、及び性能情報採取プログラム
JP2014092873A (ja) 2012-11-01 2014-05-19 Nec Corp ハイブリッド並列処理システム、ハイブリッド並列処理方法およびコンピュータプログラム
JP2019521413A (ja) 2016-05-09 2019-07-25 オラクル・インターナショナル・コーポレイション メモリ使用量判断技術

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009059316A (ja) 2007-09-04 2009-03-19 Nec Corp 測定装置、測定プログラム、および、測定方法
JP2009199121A (ja) 2008-02-19 2009-09-03 Nec Corp 情報処理装置、通信情報採取方法、及び、プログラム
JP2011175459A (ja) 2010-02-24 2011-09-08 Nec Corp 性能情報採取装置、性能情報採取方法、及び性能情報採取プログラム
JP2014092873A (ja) 2012-11-01 2014-05-19 Nec Corp ハイブリッド並列処理システム、ハイブリッド並列処理方法およびコンピュータプログラム
JP2019521413A (ja) 2016-05-09 2019-07-25 オラクル・インターナショナル・コーポレイション メモリ使用量判断技術

Also Published As

Publication number Publication date
JP2021117577A (ja) 2021-08-10

Similar Documents

Publication Publication Date Title
Cho et al. Natjam: Design and evaluation of eviction policies for supporting priorities and deadlines in mapreduce clusters
EP1916601A2 (en) Multiprocessor system
KR101400286B1 (ko) 다중 프로세서 시스템에서 작업을 이동시키는 방법 및 장치
WO2014090008A1 (zh) 一种任务处理的方法和虚拟机
US20060015542A1 (en) Performance metric-based selection of one or more database server instances to perform database recovery
CN109983440A (zh) 数据处理
CN106293881B (zh) 一种基于非一致性i/o访问构架的性能监控器及其监控方法
CN110457261B (zh) 数据访问方法、装置及服务器
TW405090B (en) Predictive cache loading by program address discontinuity history
CN101563674A (zh) 对来自多处理器系统上的多线程程序的存储器访问进行管理的方法和系统
Wang et al. Hybrid pulling/pushing for i/o-efficient distributed and iterative graph computing
JP2012160014A (ja) データ分析及び機械学習処理装置及び方法及びプログラム
Liu et al. Optimizing shuffle in wide-area data analytics
Zhang et al. Scalable adaptive NUMA-aware lock
US20170371707A1 (en) Data analysis in storage system
US7921220B2 (en) Reducing occurrences of two-phase commits in a multi-node computing system
CN105988856A (zh) 解释器访存优化方法及装置
JP7434925B2 (ja) 情報処理装置、情報処理方法およびプログラム
JP7089530B2 (ja) データ処理
US9015717B2 (en) Method for processing tasks in parallel and selecting a network for communication
CN110647357B (zh) 同步多线程处理器
Zhu et al. A tool to detect performance problems of multi-threaded programs on numa systems
Ren et al. Efficient shuffle management for DAG computing frameworks based on the FRQ model
CN111756802A (zh) 一种数据流任务在numa平台上的调度方法及系统
Kukreti et al. CloneHadoop: Process Cloning to Reduce Hadoop's Long Tail

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230814

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230815

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231013

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: 20240109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240122

R151 Written notification of patent or utility model registration

Ref document number: 7434925

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151