JPH0343835A - 並列化処理方式 - Google Patents
並列化処理方式Info
- Publication number
- JPH0343835A JPH0343835A JP17805289A JP17805289A JPH0343835A JP H0343835 A JPH0343835 A JP H0343835A JP 17805289 A JP17805289 A JP 17805289A JP 17805289 A JP17805289 A JP 17805289A JP H0343835 A JPH0343835 A JP H0343835A
- Authority
- JP
- Japan
- Prior art keywords
- program
- processors
- target
- parallel
- processor
- 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
- Multi Processors (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、所定のプログラムを複数のプロセッサを使用
して並列に処理する並列化処理方式に関する。
して並列に処理する並列化処理方式に関する。
〔従来の技術]
従来、あるプログラムを複数のプロセッサを使用して並
列に処理しようとした場合、プロセッサの確保/解放は
周知のマルヂタスキング機能を使用したときにはシステ
ムのタスク管理機能にまかせられていた。
列に処理しようとした場合、プロセッサの確保/解放は
周知のマルヂタスキング機能を使用したときにはシステ
ムのタスク管理機能にまかせられていた。
また、利用者又はシステムが固定的にプロセッサを確保
して低オーバーヘッドの並列処理を行なわせることが可
能なシステムもあった。
して低オーバーヘッドの並列処理を行なわせることが可
能なシステムもあった。
しかしながら、マルチタスキング機能を使用する方式で
は、システムのタスク管理におけるオーバーヘッドが大
きく、並列処理される計算量が少ない場合には性能が出
ないという問題があった。
は、システムのタスク管理におけるオーバーヘッドが大
きく、並列処理される計算量が少ない場合には性能が出
ないという問題があった。
また、利用者又はシステムがプロセッサ数を固定して確
保するシステムでは、プロセッサ確保/解放のオーバー
ヘッドを抑えるために、広い範囲でプロセンサ確保/解
放を行なう必要があり、これによってプロセンサの使用
効率が落ちたり、またプログラム全体を調べてプロセッ
サの確保/解放のタイミングを決めなければならないの
で最適なプロセッサ割当てが困難であるというような問
題もあった。
保するシステムでは、プロセッサ確保/解放のオーバー
ヘッドを抑えるために、広い範囲でプロセンサ確保/解
放を行なう必要があり、これによってプロセンサの使用
効率が落ちたり、またプログラム全体を調べてプロセッ
サの確保/解放のタイミングを決めなければならないの
で最適なプロセッサ割当てが困難であるというような問
題もあった。
本発明はこのような従来の欠点を改善したもので、その
目的は、並列処理時のプロセッサの確保/解放を効率化
し、多数のプロセッサの有効利用を図り、プロセッサの
確保/解放のオーバーヘッドを著しく削減することの可
能な並列化処理方式を提供することにある。
目的は、並列処理時のプロセッサの確保/解放を効率化
し、多数のプロセッサの有効利用を図り、プロセッサの
確保/解放のオーバーヘッドを著しく削減することの可
能な並列化処理方式を提供することにある。
〔課題を解決するための手段]
本発明の並列化処理方式は、ソースプログラムを入力し
て複数個のプロセッサで動作可能な目的プログラムを生
成するコンパイラと、目的プログラムを入力して実行時
プログラムを生成するリンカとを有し、前記コンパイラ
は、ソースプログラムを解析して中間テキストを生成す
る解析手段と、中間テキストを解析して並列動作可能な
部分を抽出し、並列化中間テキストを生威するとともに
並列動作させるプロセッサ数を決定する並列化手段と、
並列化中間テキストから目的プログラムを生威し、この
際に前記並列化手段で決定された数のプロセッサを確保
するような命令を生成し、また該プロセッサを必要でな
くなった時点で解放するような命令列を生成する目的プ
ログラム生成手段とを備え、前記リンカは、全ての目的
プログラドに対して該目的プログラムと関連している目
的プログラムを調べ、前記コンパイラで設定されたプロ
セッサ数のうち適切なものを当該プログラムで確保する
プロセッサ数として確定し、プログラム中に埋め込むプ
ロセッサ数確定手段と、必要な目的プログラムを結合し
実行時プログラムを生成する実行時プログラム生成手段
とを備えている。
て複数個のプロセッサで動作可能な目的プログラムを生
成するコンパイラと、目的プログラムを入力して実行時
プログラムを生成するリンカとを有し、前記コンパイラ
は、ソースプログラムを解析して中間テキストを生成す
る解析手段と、中間テキストを解析して並列動作可能な
部分を抽出し、並列化中間テキストを生威するとともに
並列動作させるプロセッサ数を決定する並列化手段と、
並列化中間テキストから目的プログラムを生威し、この
際に前記並列化手段で決定された数のプロセッサを確保
するような命令を生成し、また該プロセッサを必要でな
くなった時点で解放するような命令列を生成する目的プ
ログラム生成手段とを備え、前記リンカは、全ての目的
プログラドに対して該目的プログラムと関連している目
的プログラムを調べ、前記コンパイラで設定されたプロ
セッサ数のうち適切なものを当該プログラムで確保する
プロセッサ数として確定し、プログラム中に埋め込むプ
ロセッサ数確定手段と、必要な目的プログラムを結合し
実行時プログラムを生成する実行時プログラム生成手段
とを備えている。
〔作 用]
コンパイラでは、解析手段によってソースプログラムを
解析して中間テキストを生威し、並列化手段によって中
間テキストを解析し、並列動作可能な部分を抽出して並
列化中間テキストを生成するとともに並列動作させるプ
ロセッサ数を決定する。しかる後、目的プログラム生成
手段は、並列化中間テキストから目的プログラムを生成
するがこの際に、並列化手段で決定された数のプロセッ
サが、プログラムの必要時点で確保されていなければこ
れを確保するような命令列を生成し、またプログラムで
プロセッサを確保している場合に該プロセッサがプログ
ラムで必要でなくなった時点で解放するような命令列を
生成する。リンカでは、プロセッサ数確定手段において
、コンパイラで設定されたプロセッサ数のうち適切なも
のをプログラムで確保するプロセッサ数として確定し、
プログラム中に埋め込み、実行時プログラム生成手段に
おいて、必要な目的プログラムを結合し、実行時プログ
ラムを生成する。
解析して中間テキストを生威し、並列化手段によって中
間テキストを解析し、並列動作可能な部分を抽出して並
列化中間テキストを生成するとともに並列動作させるプ
ロセッサ数を決定する。しかる後、目的プログラム生成
手段は、並列化中間テキストから目的プログラムを生成
するがこの際に、並列化手段で決定された数のプロセッ
サが、プログラムの必要時点で確保されていなければこ
れを確保するような命令列を生成し、またプログラムで
プロセッサを確保している場合に該プロセッサがプログ
ラムで必要でなくなった時点で解放するような命令列を
生成する。リンカでは、プロセッサ数確定手段において
、コンパイラで設定されたプロセッサ数のうち適切なも
のをプログラムで確保するプロセッサ数として確定し、
プログラム中に埋め込み、実行時プログラム生成手段に
おいて、必要な目的プログラムを結合し、実行時プログ
ラムを生成する。
次に、本発明の一実施例について図面を参照して説明す
る。
る。
第1図は本発明の並列化処理方式を適用したシステムの
ブロック図である。
ブロック図である。
第1図において、コンパイラ2は、ソースプログラムl
を読み込み、構文解析を行なって中間テキスト24を生
成する解析部21と、中間テキスト24からソースプロ
グラム1の並列性を解析し、解析結果に基づき並列化中
間テキスト25を生成する並列化部22と、並列化中間
テキスト25から目的プログラム4を生成する目的プロ
グラム生成部23から構成されている。並列化部22は
さらに、プログラムの並列性の解析及び、並列化中間テ
キストを生成する並列性解析部221と、並列動作させ
る最適なプロセッサ数を決定するブロセッサ数決定部2
22とを有し、また、目的プログラム生成部23は、プ
ロセッサ確保命令列生成部231と、通常命令生成部2
32とを有している。プロセッサ確保命令生成部231
は、該プログラムが並列化部22で決定された数のプロ
セッサを必要とする時点で確保していなければ確保し、
確保していればそのプロセッサを使用するような命令列
を生成し、該プログラムがプロセッサを確保している場
合には該プロセッサが該プログラムで必要なくなった時
点で解放するような命令列を生成するようになっており
、通常命令列生成部232は、通常の命令列を生成する
ようになっている。
を読み込み、構文解析を行なって中間テキスト24を生
成する解析部21と、中間テキスト24からソースプロ
グラム1の並列性を解析し、解析結果に基づき並列化中
間テキスト25を生成する並列化部22と、並列化中間
テキスト25から目的プログラム4を生成する目的プロ
グラム生成部23から構成されている。並列化部22は
さらに、プログラムの並列性の解析及び、並列化中間テ
キストを生成する並列性解析部221と、並列動作させ
る最適なプロセッサ数を決定するブロセッサ数決定部2
22とを有し、また、目的プログラム生成部23は、プ
ロセッサ確保命令列生成部231と、通常命令生成部2
32とを有している。プロセッサ確保命令生成部231
は、該プログラムが並列化部22で決定された数のプロ
セッサを必要とする時点で確保していなければ確保し、
確保していればそのプロセッサを使用するような命令列
を生成し、該プログラムがプロセッサを確保している場
合には該プロセッサが該プログラムで必要なくなった時
点で解放するような命令列を生成するようになっており
、通常命令列生成部232は、通常の命令列を生成する
ようになっている。
またリンカ3は、プロセッサ数確定部31と、実行時プ
ログラム生成部32とを有している。プロセッサ数確定
部31は、目的プログラム4を読み込み、該目的プログ
ラム4で確保するプロセッサ数と該目的プログラム4か
ら参照している。他の目的プログラム5を、該参照目的
プログラムからさらに参照している目的プログラムまで
含めて調べ、上記プロセッサ確保命令列生成部231で
設定されたプロセッサ数のうち適切なものを当該プログ
ラムで確保するプロセッサ数として確定し、プログラム
中に埋め込むようになっており、実行時プログラム生成
部32は、必要な目的プログラムを結合し、実行時プロ
グラム6を生成するようになっている。
ログラム生成部32とを有している。プロセッサ数確定
部31は、目的プログラム4を読み込み、該目的プログ
ラム4で確保するプロセッサ数と該目的プログラム4か
ら参照している。他の目的プログラム5を、該参照目的
プログラムからさらに参照している目的プログラムまで
含めて調べ、上記プロセッサ確保命令列生成部231で
設定されたプロセッサ数のうち適切なものを当該プログ
ラムで確保するプロセッサ数として確定し、プログラム
中に埋め込むようになっており、実行時プログラム生成
部32は、必要な目的プログラムを結合し、実行時プロ
グラム6を生成するようになっている。
次にこのような構成における並列化処理について第2図
、第3図を用いて具体的に説明する。
、第3図を用いて具体的に説明する。
第2図には、本実施例が適用されるプログラムA、B、
C及びBBが示されており、第2図において“n a
= 1 ”はプログラムAがプロセッサを1個必要とし
、 n b = 3 ”はプログラムBがプロセッサを
3個必要とし、 nc=1”はプログラムCがプロセッ
サを1個必要とし、“nbb=4”はプログラムBBが
プロセッサを4個必要とすることを示している。
C及びBBが示されており、第2図において“n a
= 1 ”はプログラムAがプロセッサを1個必要とし
、 n b = 3 ”はプログラムBがプロセッサを
3個必要とし、 nc=1”はプログラムCがプロセッ
サを1個必要とし、“nbb=4”はプログラムBBが
プロセッサを4個必要とすることを示している。
また、プログラムAはプログラムBとプログラムCを呼
び出しており、プログラムBはプログラムBBを呼び出
している。さらにプログラムBとプログラムBBは並列
実行部分すなわちプロセッサを複数個使用する部分を含
んでいる。
び出しており、プログラムBはプログラムBBを呼び出
している。さらにプログラムBとプログラムBBは並列
実行部分すなわちプロセッサを複数個使用する部分を含
んでいる。
なお第3図は第2図を基にして生成される実行時プログ
ラム6を示している。
ラム6を示している。
コンパイラlは先づ、第2図に示すプログラムを1個つ
づ読み込んで解析部゛21により中間テキス1〜24を
生成する。並列化部22中の並列性解析部221は例え
ばプログラムBの並列実行部分を検出し、並列化中間テ
キスト25を生成する。
づ読み込んで解析部゛21により中間テキス1〜24を
生成する。並列化部22中の並列性解析部221は例え
ばプログラムBの並列実行部分を検出し、並列化中間テ
キスト25を生成する。
また並列化時のプロセッサ数をプロセッサ数決定部22
2により“n b = 3 ”と決定する。目的プログ
ラム生成部23は、プロセッサを確保する命令列、例え
ば第3図のプログラムAの“get ”及びプロセッサ
を解放する命令列、例えば第3図のプログラムAの“r
elease ”を並列実行部分及び外部のプログラム
呼び出しの前後にプロセッサ確保命令列生成部231に
よって挿入する。通常命令列生成部232によって目的
プログラム4が生成されると、リンカ3に渡される。
2により“n b = 3 ”と決定する。目的プログ
ラム生成部23は、プロセッサを確保する命令列、例え
ば第3図のプログラムAの“get ”及びプロセッサ
を解放する命令列、例えば第3図のプログラムAの“r
elease ”を並列実行部分及び外部のプログラム
呼び出しの前後にプロセッサ確保命令列生成部231に
よって挿入する。通常命令列生成部232によって目的
プログラム4が生成されると、リンカ3に渡される。
リンカ3のプロセッサ数確定部31は、例えば第2図の
プログラムAに対する目的プログラムを入力し、プログ
ラムAから呼び出しているプログラムB、C1さらにプ
ログラムBから呼び出しているプログラムBBを調べる
。ここで、プログラムAはti、プログラムBは3個、
プログラムCは1個、プログラムBBは4個のプロセッ
サを要求しているので、プログラムAに対しては例えば
プロセッサの個数として4個を確保し、以後プロセッサ
の追加要求が発生しないようにするというようにプロセ
ッサ数を確定する。また確定数は、実行時プログラム生
成部32によってプログラム中に設定される。実行時プ
ログラム生成部32は、入力目的プログラムに対して前
記の処理を施した後に、目的プログラムを結合し、第3
図に示すような実行時プログラム6を生成する。
プログラムAに対する目的プログラムを入力し、プログ
ラムAから呼び出しているプログラムB、C1さらにプ
ログラムBから呼び出しているプログラムBBを調べる
。ここで、プログラムAはti、プログラムBは3個、
プログラムCは1個、プログラムBBは4個のプロセッ
サを要求しているので、プログラムAに対しては例えば
プロセッサの個数として4個を確保し、以後プロセッサ
の追加要求が発生しないようにするというようにプロセ
ッサ数を確定する。また確定数は、実行時プログラム生
成部32によってプログラム中に設定される。実行時プ
ログラム生成部32は、入力目的プログラムに対して前
記の処理を施した後に、目的プログラムを結合し、第3
図に示すような実行時プログラム6を生成する。
第3図のプログラム実行時において、プログラムAにお
いてプロセッサが確保された後は、プログラムBでプロ
セッサ確保要求がなされても、無視される。また、プロ
グラムBでプロセッサ解放要求がなされても無視される
。プログラムBBにおけるプロセッサの確保/解放要求
も同様に無視される。プログラムB、BBの実行が終了
しプログラムAでプロセッサ解放要求が出されたときに
は、プログラムAがプロセッサを確保したプログラムで
あるので、その要求を受は入れプロセッサを解放する。
いてプロセッサが確保された後は、プログラムBでプロ
セッサ確保要求がなされても、無視される。また、プロ
グラムBでプロセッサ解放要求がなされても無視される
。プログラムBBにおけるプロセッサの確保/解放要求
も同様に無視される。プログラムB、BBの実行が終了
しプログラムAでプロセッサ解放要求が出されたときに
は、プログラムAがプロセッサを確保したプログラムで
あるので、その要求を受は入れプロセッサを解放する。
なおプログラムAにおいてプログラムCが呼び出されて
いるがプログラムCは並列に実行されないので、プロセ
ッサの確保/解放はなされない。
いるがプログラムCは並列に実行されないので、プロセ
ッサの確保/解放はなされない。
(発明の効果)
以上説明したように本発明では、コンパイラにおいて、
目的プログラムを生成する際に必要な個数のプロセッサ
を確保し、また必要でなくなった時点でこれを解放する
ような命令列を自動的に生威し、リンカにおいて、コン
パイラで設定されたプロセッサ数のうち適切なものをプ
ログラムで6在保するプロセッサ数として確保するよう
にしているので、必要とするプロセッサを自動的に効率
よく確保/解放することができて、これにより多数のプ
ロセッサの有効利用を図り、プロセッサ確保/解放のオ
ーバーヘッドを自動的に削減することができるという効
果がある。
目的プログラムを生成する際に必要な個数のプロセッサ
を確保し、また必要でなくなった時点でこれを解放する
ような命令列を自動的に生威し、リンカにおいて、コン
パイラで設定されたプロセッサ数のうち適切なものをプ
ログラムで6在保するプロセッサ数として確保するよう
にしているので、必要とするプロセッサを自動的に効率
よく確保/解放することができて、これにより多数のプ
ロセッサの有効利用を図り、プロセッサ確保/解放のオ
ーバーヘッドを自動的に削減することができるという効
果がある。
第1図は本発明の一実施例のブロック図、第2図は本発
明が適用されるプログラムの一例を示す図、第3図は第
2図に示すプログラムに対して本発明を適用した後のプ
ログラムの状態を示す図である。 第1図において、1・・・ソースプログラム、2・・・
コンパイラ、3・・・リンカ、4・・・目的プログラム
、5・・・他の目的プログラム、6・・・実行時プログ
ラム、21・・・解析部、22・・・並列化部、23・
・・目的プログラム生成部、24・・・中間テキスト、
25並列化中間テキスト、31・・・プロセッサ数確定
部、32・・・実行時プログラム生成部、221・・・
並列性解析部、222・・・プロセンサ数決定部、23
1・・・プロセッサ確保命令列生成部、232・・・通
常命令生成部である。
明が適用されるプログラムの一例を示す図、第3図は第
2図に示すプログラムに対して本発明を適用した後のプ
ログラムの状態を示す図である。 第1図において、1・・・ソースプログラム、2・・・
コンパイラ、3・・・リンカ、4・・・目的プログラム
、5・・・他の目的プログラム、6・・・実行時プログ
ラム、21・・・解析部、22・・・並列化部、23・
・・目的プログラム生成部、24・・・中間テキスト、
25並列化中間テキスト、31・・・プロセッサ数確定
部、32・・・実行時プログラム生成部、221・・・
並列性解析部、222・・・プロセンサ数決定部、23
1・・・プロセッサ確保命令列生成部、232・・・通
常命令生成部である。
Claims (1)
- 1、ソースプログラムを入力して複数個のプロセッサで
動作可能な目的プログラムを生成するコンパイラと、目
的プログラムを入力して実行時プログラムを生成するリ
ンカとを有し、前記コンパイラは、ソースプログラムを
解析して中間テキストを生成する解析手段と、中間テキ
ストを解析して並列動作可能な部分を抽出し、並列化中
間テキストを生成するとともに並列動作させるプロセッ
サ数を決定する並列化手段と、並列化中間テキストから
目的プログラムを生成し、この際に前記並列化手段で決
定された数のプロセッサを確保するような命令列を生成
し、また該プロセッサを必要でなくなった時点で解放す
るような命令列を生成する目的プログラム生成手段とを
備え、前記リンカは、全ての目的プログラムに対して該
目的プログラムと関連している目的プログラムを調べ、
前記コンパイラで設定されたプロセッサ数のうち適切な
ものを当該プログラムで確保するプロセッサ数として確
定し、プログラム中に埋め込むプロセッサ数確定手段と
、必要な目的プログラムを結合し実行時プログラムを生
成する実行時プログラム生成手段とを備えていることを
特徴とする並列化処理方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP17805289A JPH0343835A (ja) | 1989-07-12 | 1989-07-12 | 並列化処理方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP17805289A JPH0343835A (ja) | 1989-07-12 | 1989-07-12 | 並列化処理方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0343835A true JPH0343835A (ja) | 1991-02-25 |
Family
ID=16041763
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP17805289A Pending JPH0343835A (ja) | 1989-07-12 | 1989-07-12 | 並列化処理方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0343835A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5752030A (en) * | 1992-08-10 | 1998-05-12 | Hitachi, Ltd. | Program execution control in parallel processor system for parallel execution of plural jobs by selected number of processors |
-
1989
- 1989-07-12 JP JP17805289A patent/JPH0343835A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5752030A (en) * | 1992-08-10 | 1998-05-12 | Hitachi, Ltd. | Program execution control in parallel processor system for parallel execution of plural jobs by selected number of processors |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR101738641B1 (ko) | 멀티 코어 시스템의 프로그램 컴파일 장치 및 방법 | |
| US20100229161A1 (en) | Compile method and compiler | |
| JP5036523B2 (ja) | プログラム並列化装置 | |
| JP6428476B2 (ja) | 並列化コンパイル方法、及び並列化コンパイラ | |
| JPH0343835A (ja) | 並列化処理方式 | |
| JP2910676B2 (ja) | 負荷均等化装置 | |
| JP2817349B2 (ja) | 並列化処理方式 | |
| JPH0991258A (ja) | 階層型並列化コンパイラ | |
| JP2560491B2 (ja) | 並列化手続き実行方式 | |
| Barbosa et al. | Overlapping MPI communications with Intel TBB computation | |
| US20090187895A1 (en) | Device, method, program, and recording medium for converting program | |
| JPH05204875A (ja) | スレッドのスケジュール方式 | |
| JP2001184320A (ja) | 分散実行装置および記録媒体 | |
| Obuchi et al. | Efficient translation and execution method for automated parallel processing system by using valgrind | |
| JP2682215B2 (ja) | 並列処理時の手続き呼出し方式 | |
| JP2518504B2 (ja) | 目的プログラム生成装置 | |
| JPH02163831A (ja) | オブジェクトプログラム削減方式 | |
| JPH0744507A (ja) | 並列プログラムのコンパイル方法 | |
| JPH03257534A (ja) | メモリ割り当て方式 | |
| JPH0650470B2 (ja) | 動的ディスパッチング方式 | |
| JPS62259142A (ja) | 命令のスケジユ−リング処理方式 | |
| JP2004078617A (ja) | アプリケーションの並列処理方法 | |
| JPH0240721A (ja) | 並列コンパイル方式 | |
| JPH11272473A (ja) | プログラム言語処理装置のコード最適化方式 | |
| JPS63163636A (ja) | 並列処理実行方式 |