JP2871693B2 - クリティカルセクション最適化方式 - Google Patents

クリティカルセクション最適化方式

Info

Publication number
JP2871693B2
JP2871693B2 JP12673788A JP12673788A JP2871693B2 JP 2871693 B2 JP2871693 B2 JP 2871693B2 JP 12673788 A JP12673788 A JP 12673788A JP 12673788 A JP12673788 A JP 12673788A JP 2871693 B2 JP2871693 B2 JP 2871693B2
Authority
JP
Japan
Prior art keywords
critical section
statement
program
local operation
local
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.)
Expired - Lifetime
Application number
JP12673788A
Other languages
English (en)
Other versions
JPH01295336A (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
Nippon Electric Co Ltd
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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP12673788A priority Critical patent/JP2871693B2/ja
Publication of JPH01295336A publication Critical patent/JPH01295336A/ja
Application granted granted Critical
Publication of JP2871693B2 publication Critical patent/JP2871693B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は情報処理装置分野に利用される。
本発明は、マルチプロセッサシステムにおける、プロ
グラムの実行のターンアラウンドタイムを減少させるた
めのコンパイラのクリティカルセクション最適化方式に
関する。
本明細書で、クリティカルセクションとは、プログラ
ムの中で、2台以上のプロセッサで同時に実行してはい
けない文の集まりをいう。
〔概要〕
本発明は、マルチプロセッサシステムにおけるクリテ
ィカルセクション最適化方式において、 プログラム中でクリティカルセクションと指定された
部分の中の文を一つずつ取り出し、この文中のプロセッ
サ間で共有されていない要素のみを含むローカル演算を
検出し、この検出されたローカル演算を前記クリティカ
ルセクションの前に移動させることにより、 前記ローカル演算を並列実行可能とし、プログラムの
実行のターンアラウンドタイムの短縮化を図ったもので
ある。
〔従来の技術〕
マルチプロセッサシステムでは、プログラムのいくつ
かの部分を複数のプロセッサで同時並列に実行すること
によって、プログラムのターンアラウンドタイムを短縮
することができる。
しかし、プロセッサ間で共有している要素を更新する
部分を同時に実行すると結果が不正になるときは、その
部分をクリティカルセクションと指定して複数のプロセ
ッサによって同時に実行されることを禁止していた。例
えば、第3図のプロセッサ間で共有される変数「X」を
含む文「X=X+A*B」について、あるプロセッサが
「X」をロードして「A*B」を加算した後でかつ
「X」にストアする前に、別のプロセッサがその「X」
をロードすると「A*B」が加算されていない「X」を
ロードしてしまうことになる。このようなことを防ぐた
めに、この「X=X+A*B」のようなプロセッサ間で
共有される変数を更新する文をクリティカルセクション
と指定して複数のプロセッサによって同時に実行される
ことを禁止していた。
〔発明が解決しようとする問題点〕
前述した従来の技術では、指定されたクリティカルセ
クション内に、プロセッサごとに独立に実行してもよい
演算が含まれている場合であっても、あるプロセッサが
クリティカルセクションを実行中は、対応するクリティ
カルセクションの実行に入ろうとした他のプロセッサ
は、クリティカルセクション実行中のプロセッサがクリ
ティカルセクション内の全演算の実行を終了するまで待
たされる。従ってこのような場合、並列実行の効率が悪
くなり、ターンアラウンドタイムを短縮することができ
ない欠点があった。
本発明の目的は、前記の欠点を除去することにより、
クリティカルセクション内にローカルな要素の演算を含
む場合、それをクリティカルセクションの外に移動して
実行することにより、そのローカルな要素の演算を並列
実行可能とし、プログラムの実行のターンアラウンドタ
イムを短縮するクリティカルセクション最適化方式を提
供することである。
〔問題点を解決するための手段〕
本発明は、プログラムが格納されたプログラム部およ
びコンパイラが格納されたコンパイラ部を備えたマルチ
プロセッサシステムにおけるクリティカルセクション最
適化方式において、前記コンパイラは、前記プログラム
中でクリティカルセクションと指定された部分の中の文
を一つずつ取り出す文取り出し手段と、前記文の中のプ
ロセッサ間で共有されていない要素のみを含むローカル
演算を検出するローカル演算検出手段と、検出されたロ
ーカル演算を前記クリティカルセクションの前に移動す
るローカル演算移動手段とを含むことを特徴とする。
〔作用〕
文取り手段は、プログラム中でクリティカルセクショ
ンと指定された部分の中の文を一つずつ取り出し、ロー
カル演算検出手段は取り出された文の中のプロセッサ間
で共有されていない要素のみを含むローカル演算を検出
する。そしてローカル演算移動手段は、検出されたロー
カル演算を前記クリティカルセクションの前に移動す
る。
従って、前記ローカル演算は並列実行することができ
るようになり、プログラムの実行のターンアラウンドタ
イムを短縮することが可能となる。
〔実施例〕
以下、本発明の実施例について図面を参照して説明す
る。
第1図は本発明の一実施例の要部を示すブロック構成
図である。
本実施例は、プログラム10が格納されたプログラム部
10aおよびコンパイラ20が格納されたコンパイラ部20aを
備えたマルチプロセッサシステムにおけるクリティカル
セクション最適化方式において、 コンパイラ20は、プログラム10中でクリティカルセク
ションと指定された部分の中の文21を一つずつ取り出す
文取り出し手段22と、文21の中のプロセッサ間で共有さ
れていない要素のみを含むローカル演算、すなわちロー
カル変数のみから構成される演算文を検出するローカル
演算検出手段23と、検出されたローカル演算を前記クリ
ティカルセクションの前に移動するローカル演算移動手
段24とを含んでいる。
本発明の特徴は、第1図において、文取り出し手段2
2、ローカル演算検出手段23およびローカル演算移動手
段24を設けたことにある。
次に本実施例の動作について説明する。プログラム部
10aから取り出されたプログラム10は、コンパイラ部20a
に格納されたコンパイラ20に入力される。文取り出し手
段22はプログラムの文21を順に調べクリティカルセクシ
ョンに含まれる文を取り出す。ローカル演算検出手段23
は、その文中に、ローカル変数のみからなるローカル演
算があるかどうかを調べる。ローカル演算移動手段24
は、ローカル演算検出手段23によって、ローカル演算が
あるとされた場合に、そのローカル演算を元の文から分
離して別の文としてクリティカルセクションの前に移動
する。
次に、本実施例によるコンパイラの処理手順を第2図
に示す流れ図を参照してより詳細に説明する。
文取り出し手段22は、プログラムの文21を順に取り出
して(ステップ31)、クリティカルセクションに含まれ
る文かどうかを調べる(ステップ32)。クリティカルセ
クションに含まれる文でなければステップ31を繰り返
す。クリティカルセクションに含まれる文であるとき、
ローカル演算検出手段23は、その文21中に、ローカル変
数のみからなるローカル演算があるかどうかを調べる
(ステップ33)。ローカル演算がなければ次の文21を調
べるためステップ31へ行く。ローカル演算があればロー
カル演算移動手段24は、そのローカル演算を元の文から
分離して別の文としクリティカルセクションの前に移動
する(ステップ34)。
次に、第3図および第4図を参照して、特に前述した
ステップ32よりステップ34までの手順を、具体例につい
て説明する。
第3図はプログラム10の一例で変更前のプログラムを
示し、第4図はその変更後のプログラムを示す。
文取り出し手段22は、文41をクリティカルセクション
に含まれる文として取り出す。ローカル演算検出手段23
は、この文41中の、AおよびBがローカル変数であるの
で、A*Bをローカル演算として検出する。ローカル演
算移動手段24は、一時ローカル変数Tを作り、ローカル
演算A*BをTに代入する文51を新たに作ってクリティ
カルセクションの前に置く。そしてもとの文41のローカ
ル演算A*BをTに置き換え文52とする。
〔発明の効果〕
以上説明したように、本発明は、マルチプロセッサシ
ステムにおいて、クリティカルセクション内にローカル
な要素の演算を含む場合、それをクリティカルセクショ
ンの外に移動して実行することにより、そのローカルな
要素の演算を並列実行可能とし、プログラムの実行の最
適化を行いターンアラウンドタイムを短縮することがで
きる効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例の要部を示すブロック構成
図。 第2図はその動作を示す流れ図。 第3図はそのプログラムの一例を示す説明図。 第4図は第3図のプログラムに対応する変形されたプロ
グラムを示す説明図。 10……プログラム、10a……プログラム部、20……コン
パイラ、20a……コンパイラ部、21、41、51、52……
文、22……文取り出し手段、23……ローカル演算検出手
段、24……ローカル演算移動手段、31〜34……ステッ
プ。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 日経エレクトロニクス、314、(1983. 4.11)、日経マグロウヒル社、p. 168−169、「ベクトル処理化率の向上を 図るFortran自動ベクトル・コン パイラ」 情報処理学会第34回(昭和62年前期) 全国大会講演論文集(▲III▼)、 p.847−848、「並列処理用プログラミ ング言語PARACの言語仕様とその処 理系」

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】プログラム(10)が格納されたプログラム
    部(10a)およびコンパイラ(20)が格納されたコンパ
    イラ部(20a)を備えたマルチプロセッサシステムにお
    けるクリティカルセクション最適化方式において、 前記コンパイラは、 前記プログラム中でクリティカルセクションと指定され
    た部分の中の文(21)をを一つずつ取り出す文取り出し
    手段(22)と、 前記文の中のプロセッサ間で共有されていない要素のみ
    を含むローカル演算、すなわちローカル変数のみから構
    成される演算文を検出するローカル演算検出手段(23)
    と、 検出されたローカル演算を前記クリティカルセクション
    の前に移動するローカル演算移動手段(24)と を含むことを特徴とするクリティカルセクション最適化
    方式。
JP12673788A 1988-05-23 1988-05-23 クリティカルセクション最適化方式 Expired - Lifetime JP2871693B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP12673788A JP2871693B2 (ja) 1988-05-23 1988-05-23 クリティカルセクション最適化方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12673788A JP2871693B2 (ja) 1988-05-23 1988-05-23 クリティカルセクション最適化方式

Publications (2)

Publication Number Publication Date
JPH01295336A JPH01295336A (ja) 1989-11-29
JP2871693B2 true JP2871693B2 (ja) 1999-03-17

Family

ID=14942650

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12673788A Expired - Lifetime JP2871693B2 (ja) 1988-05-23 1988-05-23 クリティカルセクション最適化方式

Country Status (1)

Country Link
JP (1) JP2871693B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2527055B2 (ja) * 1989-12-18 1996-08-21 日本電気株式会社 タスク内共有変数検出処理方式
JPH04107737A (ja) * 1990-08-29 1992-04-09 Nec Corp 最適化方式

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
情報処理学会第34回(昭和62年前期)全国大会講演論文集(▲III▼)、p.847−848、「並列処理用プログラミング言語PARACの言語仕様とその処理系」
日経エレクトロニクス、314、(1983.4.11)、日経マグロウヒル社、p.168−169、「ベクトル処理化率の向上を図るFortran自動ベクトル・コンパイラ」

Also Published As

Publication number Publication date
JPH01295336A (ja) 1989-11-29

Similar Documents

Publication Publication Date Title
US6412109B1 (en) Method for optimizing java bytecodes in the presence of try-catch blocks
CN100414503C (zh) 用于在受控运行时环境中恢复同步到面向对象的软件应用的装置和方法
JPH0776921B2 (ja) データ処理方法及び装置
JP2871693B2 (ja) クリティカルセクション最適化方式
JPS61245239A (ja) 論理回路方式
JPH0581069A (ja) プログラムのデバツグ方法
JP2697817B2 (ja) ジョブ処理システム
JPH0659905A (ja) コンパイラの並列化処理方式
JP2527055B2 (ja) タスク内共有変数検出処理方式
JP2002073347A (ja) 例外処理方法及びコンパイラ
JP2503210B2 (ja) マイクロプログラム制御装置
Reynolds et al. A recognizer and post-recognizer for optimizing execution times of programs
JPH08263300A (ja) インライン展開方式
JPS6297031A (ja) 仮数部のビツト数整合方式
JPH0447337B2 (ja)
JPH0250731A (ja) コンパイル装置
JPH04104330A (ja) 並列処理時の手続き呼出し方式
JPS638841A (ja) 割込み受取り装置
JPH05173788A (ja) 計算機装置
Kunc Asynchronous serioparallel execution of the loop
JPH02165339A (ja) コンパイル装置
JPH04107605A (ja) 制御プログラム用言語処理装置
JPS62113238A (ja) 電子計算機システムにおけるプログラム修正装置
JPH02264332A (ja) 英字名の検索・登録方式
JPS63308659A (ja) 並列処理方法