JPH06290159A - 並列計算機のプロセス割当方法 - Google Patents
並列計算機のプロセス割当方法Info
- Publication number
- JPH06290159A JPH06290159A JP5093791A JP9379193A JPH06290159A JP H06290159 A JPH06290159 A JP H06290159A JP 5093791 A JP5093791 A JP 5093791A JP 9379193 A JP9379193 A JP 9379193A JP H06290159 A JPH06290159 A JP H06290159A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- program
- group
- executed
- time
- 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.)
- Pending
Links
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】
【目的】 並列計算機で実行されるべき各プロセスに対
して、割当るべきプロセッサを含むプロセッサグループ
をユーザに指定させ、プロセスへのプロセッサ割当を半
自動化することにより、プログラマーのプログラミング
およびデバッグの手間を低減する。 【構成】 並列計算機で実行されるべき高級言語プログ
ラムのコンパイル時に、後の実行時に入力される、各プ
ロセスに割りつけるべきプロセッサグループを表わすパ
ラメータ6を解析して、そのプロセスへのそのグループ
内の一つのプロセッサを割り当てるコード3,4を付加
したオブジェクトプログラムを生成し、そのプログラム
の実行時に、その時入力されるパラメータ6を解析し
て、各プロセスを、それに対して指定されたプロセッサ
グループ内の一つのプロセッサに対して自動的に割り当
てる。なお、各プロセスに対するプロセッサグループの
指定は、コンパイル時あるいは高級言語プログラム内に
おいて行うようにすることもできる。
して、割当るべきプロセッサを含むプロセッサグループ
をユーザに指定させ、プロセスへのプロセッサ割当を半
自動化することにより、プログラマーのプログラミング
およびデバッグの手間を低減する。 【構成】 並列計算機で実行されるべき高級言語プログ
ラムのコンパイル時に、後の実行時に入力される、各プ
ロセスに割りつけるべきプロセッサグループを表わすパ
ラメータ6を解析して、そのプロセスへのそのグループ
内の一つのプロセッサを割り当てるコード3,4を付加
したオブジェクトプログラムを生成し、そのプログラム
の実行時に、その時入力されるパラメータ6を解析し
て、各プロセスを、それに対して指定されたプロセッサ
グループ内の一つのプロセッサに対して自動的に割り当
てる。なお、各プロセスに対するプロセッサグループの
指定は、コンパイル時あるいは高級言語プログラム内に
おいて行うようにすることもできる。
Description
【0001】
【産業上の利用分野】本発明は、並列計算機の複数のプ
ロセッサへのプロセスの割当方法に関する。
ロセッサへのプロセスの割当方法に関する。
【0002】
【従来の技術】並列計算機のプログラミングでは、プロ
グラマーがプロセッサの数および構成を十分注意して、
プログラム中にプロセッサ指定を表記することによっ
て、プロセス割当を実現している。
グラマーがプロセッサの数および構成を十分注意して、
プログラム中にプロセッサ指定を表記することによっ
て、プロセス割当を実現している。
【0003】例えば、I COT((財)新世代コンピュー
タ技術開発機構)の開発した並列論理型言語KL1(9
2年6月無償公開)では、プロセスをプロセッサノード
に割り当てる方法として、後に図7に関して説明するよ
うに、ノードプラグマという表記手段が用意されてお
り、プログラマーが各々独自のアルゴリズムに基づい
て、各プロセスを割当てるべきプロセッサをプログラム
中に表現している。
タ技術開発機構)の開発した並列論理型言語KL1(9
2年6月無償公開)では、プロセスをプロセッサノード
に割り当てる方法として、後に図7に関して説明するよ
うに、ノードプラグマという表記手段が用意されてお
り、プログラマーが各々独自のアルゴリズムに基づい
て、各プロセスを割当てるべきプロセッサをプログラム
中に表現している。
【0004】
【発明が解決しようとする課題】従来のように、プロセ
ス割当をすべてプログラマーがプログラミングしている
場合、大規模プログラムのプログラミングでは、全体の
プロセス割当の把握・管理が難しい。
ス割当をすべてプログラマーがプログラミングしている
場合、大規模プログラムのプログラミングでは、全体の
プロセス割当の把握・管理が難しい。
【0005】また、プロセッサ数や構造の異なる並列計
算機にプログラムを移植する場合、移植者は原プログラ
ムのプロセスのプロセッサへの割当を解析して、プログ
ラムを変更する場合が多く、それにともなってバグの発
生頻度が高くなる。
算機にプログラムを移植する場合、移植者は原プログラ
ムのプロセスのプロセッサへの割当を解析して、プログ
ラムを変更する場合が多く、それにともなってバグの発
生頻度が高くなる。
【0006】さらに、プロセッサ構成を変えて性能測定
を行ないたい場合も、プログラム移植の際と同じ問題が
発生する。
を行ないたい場合も、プログラム移植の際と同じ問題が
発生する。
【0007】本発明の目的は、プロセスのプロセッサへ
の割当のためのプログラミングの手間を低減できるプロ
セス割当て方法を提供することである。
の割当のためのプログラミングの手間を低減できるプロ
セス割当て方法を提供することである。
【0008】
【課題を解決するための手段】複数のプロセッサから構
成される並列計算機に対して、プロセッサを変数で指定
可能な高級言語プログラムから、(1)複数プロセッサ
をグループで指定できる関数、(2)プロセッサグルー
プから任意の1つのプロセッサを選ぶ関数、および、
(3)プロセスをプロセッサに割り当てる関数を備えた
目的プログラムを生成する。ユーザは、コンパイル時や
コンパイル後のプログラムの実行時のパラメータとし
て、プロセッサグループを指定したり、または、高級言
語プログラム中でプロセッサグループを指定すればよ
い。こうして、コンパイル後のプログラムの実行時に各
プロセスを、そのプロセスに対してユーザが指定したプ
ロセッサグループ内のいずれか一つのプロセッサに割り
当てる。
成される並列計算機に対して、プロセッサを変数で指定
可能な高級言語プログラムから、(1)複数プロセッサ
をグループで指定できる関数、(2)プロセッサグルー
プから任意の1つのプロセッサを選ぶ関数、および、
(3)プロセスをプロセッサに割り当てる関数を備えた
目的プログラムを生成する。ユーザは、コンパイル時や
コンパイル後のプログラムの実行時のパラメータとし
て、プロセッサグループを指定したり、または、高級言
語プログラム中でプロセッサグループを指定すればよ
い。こうして、コンパイル後のプログラムの実行時に各
プロセスを、そのプロセスに対してユーザが指定したプ
ロセッサグループ内のいずれか一つのプロセッサに割り
当てる。
【0009】
【作用】プログラマーは、基本的には、各プロセスに対
して、いずれかのプロセッサグループを指定するだけで
よい。したがってプログラムは、プログラムを変更せず
に、実験的にさまざまな組み合わせのプロセスープロセ
ッサ割当を実行できるので、より稼働率のよいプロセス
割当方法が容易に導きだせる。さらに、プログラマー
は、異構造計算機間のプログラムの移植の際にプログラ
ムを変更なく使用できるので、プロセス割当に関するプ
ログラミング効率が向上する。
して、いずれかのプロセッサグループを指定するだけで
よい。したがってプログラムは、プログラムを変更せず
に、実験的にさまざまな組み合わせのプロセスープロセ
ッサ割当を実行できるので、より稼働率のよいプロセス
割当方法が容易に導きだせる。さらに、プログラマー
は、異構造計算機間のプログラムの移植の際にプログラ
ムを変更なく使用できるので、プロセス割当に関するプ
ログラミング効率が向上する。
【0010】
【実施例】以下、本発明の1実施例を詳細に説明する。
【0011】図1は本処理の流れの概要を示す。オブジ
ェクトコード生成とプログラム実行時における処理の特
徴を示している。図2で示すように、プロセス割当をプ
ロセッサグループ単位で指定したい場合に有効である。
ェクトコード生成とプログラム実行時における処理の特
徴を示している。図2で示すように、プロセス割当をプ
ロセッサグループ単位で指定したい場合に有効である。
【0012】図2は、並列計算機の構成およびプロセス
割当方法を示す。20は、原プログラムで記述したプロ
セスの構成である。全体を管理するマスタープロセス2
1と、プロセスa,b (22、23)から成る。30は
並列計算機の構成を表している。31はプロセッサで、
並列計算機は番号付けられたプロセッサPE1〜PEnで構成
されている。
割当方法を示す。20は、原プログラムで記述したプロ
セスの構成である。全体を管理するマスタープロセス2
1と、プロセスa,b (22、23)から成る。30は
並列計算機の構成を表している。31はプロセッサで、
並列計算機は番号付けられたプロセッサPE1〜PEnで構成
されている。
【0013】このとき、プロセッサグループa,bを、そ
れぞれプロセッサの集合である、プロセッサグループa
={PE0,PE1,PE2,PE3,PE4,PE5,PE6,PE7}、プロセッサグ
ループb={PE8,PE9,PE16,PE17}とする。プロセッサグル
ープの定義は、ユーザが任意に決めてよい。
れぞれプロセッサの集合である、プロセッサグループa
={PE0,PE1,PE2,PE3,PE4,PE5,PE6,PE7}、プロセッサグ
ループb={PE8,PE9,PE16,PE17}とする。プロセッサグル
ープの定義は、ユーザが任意に決めてよい。
【0014】プロセスaをプロセッサグループaに、プロ
セスbをプロセッサグループbに、割り当てたいとする。
プロセスはプロセッサグループのうちのいずれかのプロ
セッサ上で実行され、プロセッサグループ以外のプロセ
ッサで実行されることはない。プロセッサグループの定
義、プロセス割当の指定は、プログラム実行ごとに変更
できる。プロセッサグループの定義、およびプロセス割
当指定規則は、ユーザが定義してもよいし、また、あら
かじめシステムで固有の割当方法を定義しておいてもよ
い。
セスbをプロセッサグループbに、割り当てたいとする。
プロセスはプロセッサグループのうちのいずれかのプロ
セッサ上で実行され、プロセッサグループ以外のプロセ
ッサで実行されることはない。プロセッサグループの定
義、プロセス割当の指定は、プログラム実行ごとに変更
できる。プロセッサグループの定義、およびプロセス割
当指定規則は、ユーザが定義してもよいし、また、あら
かじめシステムで固有の割当方法を定義しておいてもよ
い。
【0015】例えば、1回目の実行で、「プロセスaを
プロセッサグループaに、プロセスbをプロセッサグルー
プbに」割り当てて実行する。次の実行では、「プロセ
スaをプロセッサグループc={PE0,PE1,PE8,PE9}に、プ
ロセスbをプロセッサグループd={PE2,PE3,PE10,PE11}
に」割り当てて実行する。ユーザはこの2回の実行性能
を比較して、よりよいプロセス割り当てを導き出せる。
また、並列計算機のプロセッサ数や結合状態が変化した
場合にも、同様にプロセス割り当てを変更すればよい。
プロセッサグループaに、プロセスbをプロセッサグルー
プbに」割り当てて実行する。次の実行では、「プロセ
スaをプロセッサグループc={PE0,PE1,PE8,PE9}に、プ
ロセスbをプロセッサグループd={PE2,PE3,PE10,PE11}
に」割り当てて実行する。ユーザはこの2回の実行性能
を比較して、よりよいプロセス割り当てを導き出せる。
また、並列計算機のプロセッサ数や結合状態が変化した
場合にも、同様にプロセス割り当てを変更すればよい。
【0016】次に、図3を用いて、図2のようなプロセ
ス割当が可能になるためのコンパイル処理の流れを説明
する。通常のオブジェクト生成処理にプロセッサ割り付
け表記解析部41を組み込むことで、実現する。プロセ
ッサ割り付け表記解析部41では、原プログラム中にプ
ロセッサを変数で指定した箇所があるか判定し(ステッ
プ42)、そのような箇所があった場合、まず、プロセ
ッサグループ指定命令を発生し(ステップ43)、この
命令で指定したプロセッサグループから一つのプロセッ
サを選択する関数を生成し(ステップ44)、さらに、
プロセッサ割り付け命令を生成する(ステップ45)。
たとえば、図7のような原プログラムが与えられたと
き、図8に示すプログラムと同等のオブジェクトコード
を生成する。プログラム例についての詳細は、後述す
る。
ス割当が可能になるためのコンパイル処理の流れを説明
する。通常のオブジェクト生成処理にプロセッサ割り付
け表記解析部41を組み込むことで、実現する。プロセ
ッサ割り付け表記解析部41では、原プログラム中にプ
ロセッサを変数で指定した箇所があるか判定し(ステッ
プ42)、そのような箇所があった場合、まず、プロセ
ッサグループ指定命令を発生し(ステップ43)、この
命令で指定したプロセッサグループから一つのプロセッ
サを選択する関数を生成し(ステップ44)、さらに、
プロセッサ割り付け命令を生成する(ステップ45)。
たとえば、図7のような原プログラムが与えられたと
き、図8に示すプログラムと同等のオブジェクトコード
を生成する。プログラム例についての詳細は、後述す
る。
【0017】図7は、原プログラム例を示す。並列論理
型言語KL1で記述している。並列論理型言語KL1は、ICOT
((財)新世代コンピュータ技術開発機構)の開発した
言語である。80で、master は述語といい、()内
の","で区切られた文字列は引き数である。変数名は、
大文字を頭とする文字列で表記する。
型言語KL1で記述している。並列論理型言語KL1は、ICOT
((財)新世代コンピュータ技術開発機構)の開発した
言語である。80で、master は述語といい、()内
の","で区切られた文字列は引き数である。変数名は、
大文字を頭とする文字列で表記する。
【0018】述語master(X,Y,Sum,Diff,A,B)というの
は、”整数X,Y、実行プロセッサノードA,Bを指定する
と、プロセッサノードAでX,Yの和add(81)、プロセ
ッサノードBでX,Yの差subtract(82)を計算し、それ
ぞれ、変数Sum, Diff に答えを返す”というプログラム
である。X,Yの和addと、X,Yの差subtractの計算は並列
に実行できる。@node(A),@node(B)は、ノードプラグマ
といい、add(X,Y,Sum)およびsubtract(X,Y,Diff)の実行
プロセッサA,Bを指定する。81、82でプロセッサノ
ードは変数で与えられている。これは、この計算に至る
までの間に、プロセッサノードA,Bの値が定数に具体化
される事を示している。プロセッサノードA,Bの値が決
まって始めて、X,Yの和add、X,Yの差subtractの値が計
算される。
は、”整数X,Y、実行プロセッサノードA,Bを指定する
と、プロセッサノードAでX,Yの和add(81)、プロセ
ッサノードBでX,Yの差subtract(82)を計算し、それ
ぞれ、変数Sum, Diff に答えを返す”というプログラム
である。X,Yの和addと、X,Yの差subtractの計算は並列
に実行できる。@node(A),@node(B)は、ノードプラグマ
といい、add(X,Y,Sum)およびsubtract(X,Y,Diff)の実行
プロセッサA,Bを指定する。81、82でプロセッサノ
ードは変数で与えられている。これは、この計算に至る
までの間に、プロセッサノードA,Bの値が定数に具体化
される事を示している。プロセッサノードA,Bの値が決
まって始めて、X,Yの和add、X,Yの差subtractの値が計
算される。
【0019】図8は、図7のプログラムの変換例であ
る。原プログラム図7をコンパイルすると、図8プログ
ラムをコンパイルした場合と同等なオブジェクトコード
を生成する。83は変換後のプログラム例である。Para
m は、{ プロセス名, { プロセッサグループ名, プロセ
ッサリスト } }のような要素をもつパラメータである。
変数A,Bに対応させるプロセッサを述語select_processo
r84で選択する。述語select_processor84は、プロ
セッサリストからプロセッサを一つ選択する述語であ
る。add,subtractはそれぞれ選択されたプロセッサ上で
実行する。84でfunctionは、プロセッサグループProc
essor_Grの中から、プロセッサProcessorを1つ選び出
す任意の関数である。
る。原プログラム図7をコンパイルすると、図8プログ
ラムをコンパイルした場合と同等なオブジェクトコード
を生成する。83は変換後のプログラム例である。Para
m は、{ プロセス名, { プロセッサグループ名, プロセ
ッサリスト } }のような要素をもつパラメータである。
変数A,Bに対応させるプロセッサを述語select_processo
r84で選択する。述語select_processor84は、プロ
セッサリストからプロセッサを一つ選択する述語であ
る。add,subtractはそれぞれ選択されたプロセッサ上で
実行する。84でfunctionは、プロセッサグループProc
essor_Grの中から、プロセッサProcessorを1つ選び出
す任意の関数である。
【0020】図4は、プログラム実行の流れを示す。オ
ブジェクトプログラムを読み込み(ステップ50)、プ
ロセッサ指定をしたいプロセス名、および、そのプロセ
スに割り付けたいプロセッサグループをユーザが指定す
る(ステップ51)。プロセス名、プロセッサグループ
のパラメータがユーザより入力されると、プログラムが
実行される。プログラムがプロセス割り当ての部分に到
達すると、選択関数によりプロセッサグループから実行
プロセッサを一つ選択し(ステップ52)、選択された
プロセッサにプロセスを割り付ける53。
ブジェクトプログラムを読み込み(ステップ50)、プ
ロセッサ指定をしたいプロセス名、および、そのプロセ
スに割り付けたいプロセッサグループをユーザが指定す
る(ステップ51)。プロセス名、プロセッサグループ
のパラメータがユーザより入力されると、プログラムが
実行される。プログラムがプロセス割り当ての部分に到
達すると、選択関数によりプロセッサグループから実行
プロセッサを一つ選択し(ステップ52)、選択された
プロセッサにプロセスを割り付ける53。
【0021】選択関数とは、複数のプロセッサから成る
プロセッサグループのうちから、任意のプロセッサを1
つ選択する関数である。選択の方法は、例えば、 (1)プロセッサの若い番号順に選ぶ (2)乱数で選択する (3)一番暇なプロセッサを選ぶ など、自由である。
プロセッサグループのうちから、任意のプロセッサを1
つ選択する関数である。選択の方法は、例えば、 (1)プロセッサの若い番号順に選ぶ (2)乱数で選択する (3)一番暇なプロセッサを選ぶ など、自由である。
【0022】また、この関数は、 (1)システムがあらかじめいくつかの関数を用意して
おき、ユーザが選ぶ (2)ユーザが関数を作成、指定できる などの方法が有効である。
おき、ユーザが選ぶ (2)ユーザが関数を作成、指定できる などの方法が有効である。
【0023】こうして、ユーザはプログラムの実行時に
プロセッサグループを指定すればよいので、元のプログ
ラムの作成あるいは変更が容易にできる。しかも、プロ
グラムの変更なくして、プロセッサへのプロセスの割り
当てを変えられる。
プロセッサグループを指定すればよいので、元のプログ
ラムの作成あるいは変更が容易にできる。しかも、プロ
グラムの変更なくして、プロセッサへのプロセスの割り
当てを変えられる。
【0024】図5は他の実施例である。
【0025】図5では、コンパイル時にプロセッサグル
ープをユーザが指定する場合のコンパイル処理を示す。
コンパイルの段階で、例えば、「プロセスaをプロセッ
サグループaに、プロセスbをプロセッサグループbに割
り当てる」という割り付け範囲を指定をする。図9の原
プログラム90をコンパイルする際に、ユーザーはパラ
メータ91を入力する。ParamA,ParamBは、{ プロセス
名, { プロセッサグループ名, プロセッサリスト } }の
ような要素をもつパラメータである。ここでは、「プロ
セスaddをプロセッサグループgroup_aで、プロセスsubt
ractをプロセッサグループgroup_bで、実行する」よう
にパラメータを指定している。図5では、ステップ60
はこのパラメータを読み込む処理をさす。図5におい
て、図3と異なるのは、このとき指定されたプロセッサ
グループを用いて点以外は、実質的に同じ処理(ステッ
プ61〜67)を行う。コンパイル後のオブジェクトコ
ードは、図10の原プログラムをコンパイルしたときに
得られるオブジェクトコードと同等になる。述語master
97の引き数の内、小文字を頭とする文字列(process_
add, group_a,など)は、定数である。プロセッサグル
ープを実行時に指定する図8の場合と比べると、パラメ
ータの部分が定数に置き替わっている。
ープをユーザが指定する場合のコンパイル処理を示す。
コンパイルの段階で、例えば、「プロセスaをプロセッ
サグループaに、プロセスbをプロセッサグループbに割
り当てる」という割り付け範囲を指定をする。図9の原
プログラム90をコンパイルする際に、ユーザーはパラ
メータ91を入力する。ParamA,ParamBは、{ プロセス
名, { プロセッサグループ名, プロセッサリスト } }の
ような要素をもつパラメータである。ここでは、「プロ
セスaddをプロセッサグループgroup_aで、プロセスsubt
ractをプロセッサグループgroup_bで、実行する」よう
にパラメータを指定している。図5では、ステップ60
はこのパラメータを読み込む処理をさす。図5におい
て、図3と異なるのは、このとき指定されたプロセッサ
グループを用いて点以外は、実質的に同じ処理(ステッ
プ61〜67)を行う。コンパイル後のオブジェクトコ
ードは、図10の原プログラムをコンパイルしたときに
得られるオブジェクトコードと同等になる。述語master
97の引き数の内、小文字を頭とする文字列(process_
add, group_a,など)は、定数である。プロセッサグル
ープを実行時に指定する図8の場合と比べると、パラメ
ータの部分が定数に置き替わっている。
【0026】この実施例でも、各プロセスに対して割り
当てるべきプロセッサが属するプロセッサグループを入
力パラメータで指定しているので、その割り当ては簡単
に、かつ、実行時に変更できる。
当てるべきプロセッサが属するプロセッサグループを入
力パラメータで指定しているので、その割り当ては簡単
に、かつ、実行時に変更できる。
【0027】図6はさらに他の実施例である。図6で
は、原プログラムの中であらかじめプロセッサグループ
を指定する場合のコンパイル処理を示している。プログ
ラムの例を図11に示す。述語masterの引き数の内、小
文字で指定された値group_a,group_bは、定数である。p
rocessor_group101は、プロセッサグループ名group_
a,group_bを与えたときに、プロセッサ集合として、そ
れぞれ、{pe0,pe1,pe2,pe3,pe4,pe5,pe6,pe7}, {pe8,pe
9,pe16,pe17} を与えることを意味する。100では、@
processor_group(A)のように、add, subtractの割り当
てプロセッサをグループとして指定する。この実施例で
はステップ70において、プログラム内で指定されたプ
ロセッサグループの割り付け範囲を読み込む点でこれま
での実施例と異なる。コンパイル後のオブジェクトコー
ドは、図10の原プログラムをコンパイルして得られる
オブジェクトコードと同等になる。
は、原プログラムの中であらかじめプロセッサグループ
を指定する場合のコンパイル処理を示している。プログ
ラムの例を図11に示す。述語masterの引き数の内、小
文字で指定された値group_a,group_bは、定数である。p
rocessor_group101は、プロセッサグループ名group_
a,group_bを与えたときに、プロセッサ集合として、そ
れぞれ、{pe0,pe1,pe2,pe3,pe4,pe5,pe6,pe7}, {pe8,pe
9,pe16,pe17} を与えることを意味する。100では、@
processor_group(A)のように、add, subtractの割り当
てプロセッサをグループとして指定する。この実施例で
はステップ70において、プログラム内で指定されたプ
ロセッサグループの割り付け範囲を読み込む点でこれま
での実施例と異なる。コンパイル後のオブジェクトコー
ドは、図10の原プログラムをコンパイルして得られる
オブジェクトコードと同等になる。
【0028】この例でも、原プログラムでは、各プロセ
スに対してプロセッサグループを指定しているので、プ
ログラムの作成、修正は従来よりも平易となる。
スに対してプロセッサグループを指定しているので、プ
ログラムの作成、修正は従来よりも平易となる。
【0029】
【発明の効果】プログラマーが割当プロセッサパラメー
タとしてプロセッサグループを指定すればよいので、指
定が容易である。また、指定の変更も容易であるので、
何種類ものプロセッサ割当の組み合わせを実験すること
ができ、最良なプロセッサ割当組み合わせを導きだせ
る。また、プロセッサ構造や、プロセッサ台数の異なる
並列計算機間のプログラム移植が容易である。
タとしてプロセッサグループを指定すればよいので、指
定が容易である。また、指定の変更も容易であるので、
何種類ものプロセッサ割当の組み合わせを実験すること
ができ、最良なプロセッサ割当組み合わせを導きだせ
る。また、プロセッサ構造や、プロセッサ台数の異なる
並列計算機間のプログラム移植が容易である。
【図1】本発明による処理の概略的流れ図。
【図2】並列計算機の構成およびプロセス割当方法を模
式的に示す図。
式的に示す図。
【図3】コンパイル処理の流れ図。
【図4】プログラム実行の流れ図。
【図5】別の実施例のコンパイル処理の流れ図。
【図6】別の実施例によるコンパイル処理の流れ図。
【図7】並列論理型言語KL1で記述した原プログラム例
を示す図。
を示す図。
【図8】本処理の変換後プログラム例を示す図。
【図9】上記別の実施例で用いる原プログラム例を示す
図。
図。
【図10】変換後のプログラム例を示す図。
【図11】上記さらに別の実施例で用いる原プログラム
の例を示す図。
の例を示す図。
20…プロセス構成、21…マスタープロセス、22,
23…プロセス、30…並列計算機、31…プロセッ
サ、32,33…プロセッサグループ、41…プロセッ
サ割り付け表記解析部。
23…プロセス、30…並列計算機、31…プロセッ
サ、32,33…プロセッサグループ、41…プロセッ
サ割り付け表記解析部。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 井門 徳安 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内
Claims (3)
- 【請求項1】並列計算機で実行されるべき複数のプロセ
スを並列計算機を構成する複数のプロセッサに割り当て
る方法であって、 高級言語プログラムをコンパイルする時に、後にユーザ
が各プロセスに対して指定するプロセッサグループの中
の一つのプロセッサをあらかじめ定めた基準で選択する
コードを付加したオブジェクトプログラムを生成し、そ
のオブジェクトプログラムの実行時に、その時に各プロ
セスに対してユーザが指定するプロセッサグループに基
づいて、そのコードを実行し、それにより各プロセス
を、そのプロセスに対して実行時にユーザが指定したプ
ロセッサグループ内の一つのプロセッサに割り当てるこ
とを特徴とするプロセス割当方法。 - 【請求項2】並列計算機で実行されるべき複数のプロセ
スを並列計算機を構成する複数のプロセッサに割り当て
る方法であって、 高級言語プログラムでコンパイルする時に、その時にユ
ーザが各プロセスに対して指定したプロセッサグループ
の内の一つのプロセッサをあらかじめ定めた基準で選択
するコードを付加したオブジェクトプログラムを生成
し、そのオブジエクトプログラムの実行時にそのコード
を実行し、それにより、各プロセスを、そのプロセスに
対してコンパイル時にユーザが指定したプロセッサグル
ープ内の一つのプロセッサに割り当てることを特徴とす
るプロセス割当方法。 - 【請求項3】並列計算機で実行されるべき複数のプロセ
スを並列計算機を構成する複数のプロセッサに割り当て
る方法であって、 高級言語プログラムをコンパイルする時に、そのプログ
ラム内の特定のプログラム文が各プロセスに対して指定
するプロセッサグループの中の一つのプロセッサをあら
かじめ定めた基準で選択するコードを付加したオブジェ
クトプログラムを生成し、そのオブジェクトプログラム
の実行時に、そのコードを実行し、それにより各プロセ
スを、そのプロセスに対してプログラム文が指定したプ
ロセッサグループ内の一つのプロセッサに割り当てるこ
とを特徴とするプロセス割当方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5093791A JPH06290159A (ja) | 1993-03-30 | 1993-03-30 | 並列計算機のプロセス割当方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5093791A JPH06290159A (ja) | 1993-03-30 | 1993-03-30 | 並列計算機のプロセス割当方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH06290159A true JPH06290159A (ja) | 1994-10-18 |
Family
ID=14092244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5093791A Pending JPH06290159A (ja) | 1993-03-30 | 1993-03-30 | 並列計算機のプロセス割当方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH06290159A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120031759A (ko) * | 2010-09-27 | 2012-04-04 | 삼성전자주식회사 | 프로세싱 유닛의 동적 자원 할당을 위한 방법 및 장치 |
JP2012252413A (ja) * | 2011-05-31 | 2012-12-20 | Toshiba Corp | 情報処理装置、情報処理方法及び制御プログラム |
JP2020519979A (ja) * | 2017-05-12 | 2020-07-02 | グーグル エルエルシー | 設定可能な数のアクティブなコアを有する画像処理プロセッサおよびサポートする内部ネットワーク |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0447357A (ja) * | 1990-06-12 | 1992-02-17 | Hitachi Ltd | 仮想計算機システムの制御方式 |
-
1993
- 1993-03-30 JP JP5093791A patent/JPH06290159A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0447357A (ja) * | 1990-06-12 | 1992-02-17 | Hitachi Ltd | 仮想計算機システムの制御方式 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120031759A (ko) * | 2010-09-27 | 2012-04-04 | 삼성전자주식회사 | 프로세싱 유닛의 동적 자원 할당을 위한 방법 및 장치 |
JP2013537991A (ja) * | 2010-09-27 | 2013-10-07 | サムスン エレクトロニクス カンパニー リミテッド | プロセッシングユニットの動的リソース割り当てのための方法及び装置 |
US9311157B2 (en) | 2010-09-27 | 2016-04-12 | Samsung Electronics Co., Ltd | Method and apparatus for dynamic resource allocation of processing units on a resource allocation plane having a time axis and a processing unit axis |
JP2012252413A (ja) * | 2011-05-31 | 2012-12-20 | Toshiba Corp | 情報処理装置、情報処理方法及び制御プログラム |
JP2020519979A (ja) * | 2017-05-12 | 2020-07-02 | グーグル エルエルシー | 設定可能な数のアクティブなコアを有する画像処理プロセッサおよびサポートする内部ネットワーク |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zima et al. | SUPERB: A tool for semi-automatic MIMD/SIMD parallelization | |
US5293631A (en) | Analysis and optimization of array variables in compiler for instruction level parallel processor | |
Allen et al. | A framework for determining useful parallelism | |
US8949809B2 (en) | Automatic pipeline parallelization of sequential code | |
US5367684A (en) | Register allocation using an improved register candidate usage matrix | |
Agullo et al. | Bridging the gap between OpenMP and task-based runtime systems for the fast multipole method | |
Rajbhandari et al. | On fusing recursive traversals of Kd trees | |
Bloch et al. | Programming heterogeneous cpu-gpu systems by high-level dataflow synthesis | |
Sbirlea et al. | Dfgr an intermediate graph representation for macro-dataflow programs | |
Leupers et al. | Software compilation techniques for heterogeneous embedded multi-core systems | |
Lee et al. | Performing data flow analysis in parallel | |
Wolski et al. | Program partitioning for NUMA multiprocessor computer systems | |
Shirazi et al. | PARSA: A parallel program scheduling and assessment environment | |
Watson et al. | Static program decomposition among machines in an SIMD/SPMD heterogeneous environment with non-constant mode switching costs | |
Ejjaaouani et al. | , a Programming Model to Decouple Performance from Algorithm in HPC Codes | |
JPH06290159A (ja) | 並列計算機のプロセス割当方法 | |
Cosnard et al. | Compact dag representation and its symbolic scheduling | |
Ştirb et al. | Improving performance and energy consumption with loop fusion optimization and parallelization | |
Shashidhar et al. | Lighthouse: An automatic code generator for graph algorithms on gpus | |
US20080282237A1 (en) | Method and Apparatus For Generating Execution Equivalence Information | |
Foley et al. | Efficient partitioning of fragment shaders for multiple-output hardware | |
Fumero et al. | Using compiler snippets to exploit parallelism on heterogeneous hardware: a Java reduction case study | |
Long et al. | FusionStitching: Boosting execution efficiency of memory intensive computations for DL workloads | |
Marker | Design by transformation: from domain knowledge to optimized program generation | |
Ringenburg et al. | Optimizing loop-level parallelism in Cray XMTTM applications |