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

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

Info

Publication number
JPH01295336A
JPH01295336A JP12673788A JP12673788A JPH01295336A JP H01295336 A JPH01295336 A JP H01295336A JP 12673788 A JP12673788 A JP 12673788A JP 12673788 A JP12673788 A JP 12673788A JP H01295336 A JPH01295336 A JP H01295336A
Authority
JP
Japan
Prior art keywords
local
critical section
program
sentence
arithmetic
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
JP12673788A
Other languages
English (en)
Other versions
JP2871693B2 (ja
Inventor
Shoichi Sakon
彰一 左近
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 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)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は情報処理装置分野に利用される。
本発明は、マルチプロセッサシステムにおける、プログ
ラムの実行のターンアラウンドタイムを減少させるため
のコンパイラのクリティカルセクション最適化方式に関
する。
本明細書で、クリティカルセクションとは、プログラム
の中で、2台以上のプロセッサで同時に実行してはいけ
ない文の集まりをいう。
〔概要〕
本発明は、マルチプロセッサシステムにおけるクリティ
カルセクション最適化方式において、プログラム中でク
リティカルセクションと指定された部分の中の文を一つ
ずつ取り出し、この文中のプロセッサ間で共有されてい
ない要素のみを含むローカル演算を検出し、この検出さ
れたローカル演算を前記クリティカルセクションの前に
移動させることにより、 前記ローカル演算を並列実行可能とし、プログラムの実
行のターンアラウンドタイムの短縮化を図ったものであ
る。
〔従来の技術〕
マルチプロセッサシステムでは、プログラムのいくつか
の部分を複数のプロセッサで同時並列に実行することに
よって、プログラムのターンアラウンドタイムを短縮す
ることができる。
しかし、プロセッサ間で共有している要素を更新する部
分など、同時に実行すると結果が不正になるときは、そ
の部分をクリティカルセクションと指定することにより
、従来はコンパイラが指定された部分全体の同時実行を
禁止していた。
〔発明が解決しようとする問題点〕
前述した従来の技術では、指定されたクリティカルセク
ション内に、プロセッサごとに独立に実行してもよい演
算が含まれている場合であっても、あるプロセッサがク
リティカルセクションを実行中は、対応するクリティカ
ルセクションの実行に入ろうとした他のプロセッサは、
クリティカルセクション実行中のプロセッサがクリティ
カルセクション内の全演算の実行を終了するまで待たさ
れる。従ってこのような場合、並列実行の効率が悪くな
り、ターンアラウンドタイムを短縮することができない
欠点があった。
本発明の目的は、前記の欠点を除去することにより、ク
リティカルセクション内にローカルな要素の演算を含む
場合、それをクリティカルセクションの外に移動して実
行することにより、そのローカルな要素の演算を並列実
行可能とし、プログラムの実行のターンアラウンドタイ
ムを短縮するクリティカルセクション最適化方式を提供
することである。
〔問題点を解決するための手段〕
本発明は、プログラムが格納されたプログラム部および
コンパイラが格納されたコンパイラ部を備えたマルチプ
ロセッサシステムにおけるクリティカルセクション最適
化方式において、前記コンパイラは、前記プログラム中
でクリティカルセクションと指定された部分の中の文を
一つずつ取り出す文取り出し手段と、前記文の中のプロ
セッサ間で共有されていない要素のみを含むローカル演
算を検出するローカル演算検出手段と、検出されたロー
カル演算を前記クリティカルセクションの前に移動する
ローカル演算移動手段とを含むことを特徴とする。
〔作用〕
文取り手段は、プログラム中でクリティカルセクション
と指定された部分の中の文を一つずつ取り出し、ローカ
ル演算検出手段は取り出された文の中のプロセッサ間で
共有されていない要素のみを含むローカル演算を検出す
る。そしてローカル演算移動手段は、検出されたローカ
ル演算を前記クリティカルセクションの前に移動する。
従って、前記ローカル演算は並列実行することができる
ようになり、プログラムの実行のターンアラウンドタイ
ムを短縮することが可能となる。
〔実施例〕
以下、本発明の実施例について図面を参照して説明する
第1図は本発明の一実施例の要部を示すブロック構成図
である。
本実施例は、プログラム10が格納されたプログラム部
10aおよびコンパイラ20が格納されたコンパイラ部
20aを備えたマルチプロセッサシステムにおけるクリ
ティカルセクション最適化方式において、 コンパイラ20は、プログラム10中でクリティカルセ
クションと指定された部分の中の文21を一つずつ取り
出す文取り出し手段22と、文21の中のプロセッサ間
で共有されていない要素のみを含むローカル演算を検出
するローカル演算検出手段23と、検出されたローカル
演算を前記クリティカルセクションの前に移動するロー
カル演算移動手段24とを含んでいる。
本発明の特徴は、第1図において、文取り出し手段22
、ローカル演算検出手段23およびローカル演算移動手
段24を設けたことにある。
次に本実施例の動作について説明する。プログラム部1
0aから取り出されたプログラム10は、コンパイラ部
20aに格納されたコンパイラ20に人力される。文取
り出し手段22はプログラムの文21を順に調ベクリテ
ィカルセクションに含まれる文を取り出す。ローカル演
算検出手段23は、その文中に、ローカル変数のみから
なるローカル演算があるかどうかを調べる。ローカル演
算移動手段24は、ローカル演算検出手段23によって
、ローカル演算があるとされた場合に、そのローカル演
算を元の文から分離して別の文としてクリティカルセク
ションの前に移動する。
次に、本実施例によるコンパイラの処理手順を第2図に
示す流れ図を参照してより詳細に説明する。
文取り出し手段22は、プログラムの文21を順に取り
出して(ステップ31)、クリティカルセクションに含
まれる文かどうかを調べる(ステップ32)。
クリティカルセクションに含まれる文でなければステッ
プ31を繰り返す。クリティカルセクションに含まれる
文であるとき、ローカル演算検出手段23は、その文2
1中に、ローカル変数のみからなるローカル演算がある
かどうかを調べる(ステップ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図のプログラムに対応する変形されたプロ
グラムを示す説明図。 1ト・・プログラム、lOa・・・プログラム部、20
・・・コンパイラ、20a・・・コンパイラ部、21.
41.51.52・・・文、22・・・文取り出し手段
、23・・・ローカル演算検出手段、24・・・ローカ
ル演算移動手段、31〜34・・・ステップ。

Claims (1)

  1. 【特許請求の範囲】 1、プログラム(10)が格納されたプログラム部(1
    0a)およびコンパイラ(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 true JPH01295336A (ja) 1989-11-29
JP2871693B2 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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03188529A (ja) * 1989-12-18 1991-08-16 Nec Corp タスク内共有変数検出処理方式
JPH04107737A (ja) * 1990-08-29 1992-04-09 Nec Corp 最適化方式

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03188529A (ja) * 1989-12-18 1991-08-16 Nec Corp タスク内共有変数検出処理方式
JPH04107737A (ja) * 1990-08-29 1992-04-09 Nec Corp 最適化方式

Also Published As

Publication number Publication date
JP2871693B2 (ja) 1999-03-17

Similar Documents

Publication Publication Date Title
JPH01295336A (ja) クリティカルセクション最適化方式
CN112313626B (zh) 异步处理器架构上的死锁检测及同步感知优化的方法
JPS61259341A (ja) ル−プ検出処理方式
US4885712A (en) Method and apparatus for partial test-cause generation
JP4952317B2 (ja) 退避データ判別方法、退避データ判別プログラムおよび退避データ判別装置
JPH07152578A (ja) 最大スタック使用量検出方式
JPH0659905A (ja) コンパイラの並列化処理方式
JPH03122722A (ja) 目的プログラム生成方式
JP2527055B2 (ja) タスク内共有変数検出処理方式
JPH0352033A (ja) 共有変数の参照箇所検出方式
CN105446822A (zh) 基于Linux的软件异常处理系统及方法
JPH06236261A (ja) 手続き型言語プログラム・コンポーネントの分離方式
JPH0831091B2 (ja) コンパイル処理方式
JPH0431933A (ja) 原始プログラム解析装置
JPH05127945A (ja) プログラム実行状況解析方式
JPH0546444A (ja) ログ機能付きデバツカ
JPH03223926A (ja) プログラム部品の二重登録防止装置
JPH02264332A (ja) 英字名の検索・登録方式
JPH0477840A (ja) 障害解析情報収集方式
JPH0250731A (ja) コンパイル装置
JPS62206668A (ja) 目的プログラムの並列化処理方式
JPH06175839A (ja) プログラム内容解析装置
JPH0677235B2 (ja) 情報処理装置
Reynolds et al. A recognizer and post-recognizer for optimizing execution times of programs
JPH03266029A (ja) 論理型言語処理システムにおけるリスト出力方法