JPH11259437A - 不要バリア命令の削減方式 - Google Patents

不要バリア命令の削減方式

Info

Publication number
JPH11259437A
JPH11259437A JP10061508A JP6150898A JPH11259437A JP H11259437 A JPH11259437 A JP H11259437A JP 10061508 A JP10061508 A JP 10061508A JP 6150898 A JP6150898 A JP 6150898A JP H11259437 A JPH11259437 A JP H11259437A
Authority
JP
Japan
Prior art keywords
barrier
instruction
parallel processing
processing object
parameter
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
Application number
JP10061508A
Other languages
English (en)
Inventor
Yoshihiro Ito
芳浩 伊藤
Megumi Nakajima
恵 中島
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP10061508A priority Critical patent/JPH11259437A/ja
Priority to US09/266,634 priority patent/US6292939B1/en
Publication of JPH11259437A publication Critical patent/JPH11259437A/ja
Priority to US09/924,580 priority patent/US20010047511A1/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/458Synchronisation, e.g. post-wait, barriers, locks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)
  • Multi Processors (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】 コンパイル時に依存解析不可能な参照に対す
る不要バリア命令を動的に削減してマルチプロセッサシ
ステムのオブジェクト実行の性能向上を図る。 【解決手段】 コンパイラ12は、ソースプログラム1
1を並列処理オブジェクト13に分割する際、並列処理
オブジェクトの直前にバリア要否判定のためのパラメー
タ134〜136をハードウェアに渡すプリ動的バリア
命令131を発行し、また、並列処理オブジェクト後に
参照される変数・配列のバリア要否判定のための情報を
パラメータに持つポスト動的バリア命令133を参照位
置の直前に発行する。並列処理オブジェクトを実行する
図示しない装置は、データ依存の有無を判定するハード
ウェア機構を使用し、前記プリ動的バリア命令とポスト
動的バリア命令とのパラメータに基づいて不要バリア命
令を動的に削減する

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、不要バリア命令の
削減方式に係り、特に、マルチプロセッサシステムにお
ける並列処理オブジェクトの実行性能の向上を図るため
の不要バリア命令の削減方式に関する。
【0002】
【従来の技術】マルチプロセッサシステムにおける一般
的なバリア命令発行条件は、「データ参照とその後続の
データ参照との間に依存が存在するか、依存関係が、不
明であること」であり、この依存の有無が命令の実行時
にしか判定することができない場合、すなわち、コンパ
イラによる依存解析が不可能な場合、並列処理オブジェ
クトにおいてバリア命令が常に出力され、実行されてい
た。
【0003】このバリア命令のうち不要なものを削減す
るための従来技術として、ユーザー指示文によるコンパ
イラに対するバリア命令削減指示文、または、データ依
存解消指示文をソースに挿入するという方法が知られて
いる。
【0004】図3は不要なバリア命令を削減するための
指示文を挿入したソースプログラムの例を説明する図で
あり、このソースプログラムは、並列化機能実装用に拡
張されたフォートラン(FORTRAN)言語により記述した
ものである。以下、これについて説明する。
【0005】図3に示す例のソースプログラムは、i=
1〜nの値を順次a(i)で示される配列に代入して繰返
し処理を実行するDOループ31を含んで構成されてい
る。そして、このDOループ31における配列aの参照
範囲と後続の配列33の参照との重なりがコンパイル時
に判らずに命令の実行時にしか判らない場合、ユーザの
手により、ユーザー指示文によるコンパイラに対するバ
リア命令削減指示文32を挿入するしか方法がなかっ
た。なお、この指示文32は、データ依存解消指示文で
あってもよい。また、バリア命令削減指示文32におけ
る“POPTION”は、並列化機能実装FORTRAN処理
系が自動並列化できない部分に対して、ユーザーが並列
化の指示を与える指示文を示す識別子である。
【0006】
【発明が解決しようとする課題】一般に、バリア命令の
実行は、実行に伴うオーバーヘッドが常に生じることに
なり、そのため、不要なバリア命令の実行分だけ、オー
バーヘッドによる処理システムの実行性能を低下させて
しまうことになる。
【0007】前述した従来技術は、不要なバリア命令を
削減して処理システムの実行性能の低下を防止するもの
であるが、ユーザーが並列化プログラムの挙動を熟知し
ていないと全ての不要バリア命令を摘出することができ
ず、全ての不要なバリア命令を削減することが困難であ
るという問題点を有している。
【0008】本発明の目的は、前記従来技術の問題点を
解決し、人手を要することなく不要なバリア命令を動的
に削減してオブジェクトの実行性能を向上させることを
可能とした不要バリア命令の削減方式を提供することに
ある。
【0009】
【課題を解決するための手段】本発明によれば前記目的
は、ソースプログラムから並列処理オブジェクトを生成
するコンパイラにおける不要バリア命令の削減方式にお
いて、前記コンパイラが、ソースプログラムを並列処理
オブジェクトに変換する際、並列処理実行部の直前にバ
リア要否判定のためのパラメータを持つプリ動的バリア
命令を発行し、また、並列処理実行部の後に参照される
変数・配列のバリア要否判定のための情報をパラメータ
に持つポスト動的バリア命令を後続参照位置の直前に発
行し、並列処理オブジェクトを実行する装置が、データ
依存の有無を判定するハードウェア機構を使用し、前記
プリ動的バリア命令とポスト動的バリア命令とのパラメ
ータに基づいて不要バリア命令を動的に削減することに
より達成される。
【0010】また、前記目的は、前記コンパイラが、ソ
ースプログラムを並列処理オブジェクトに変換する際、
バリア要否判定のためのパラメータと、並列処理実行部
の後に参照される変数・配列のバリア要否判定のための
パラメータとを生成し、これらのパラメータに基づくデ
ータ依存の有無を実行時に判定し、バリア命令の実行、
非実行を動的に切り替えることにより達成される。
【0011】さらに具体的には、前記目的は、以下に説
明する〜のバリア命令削除可能条件のいずれかを満
たすか否かを、ハードウェアにパラメタを渡すことによ
りチェックし、バリア動作の要否を動的に決定する手段
を並列処理オブジェクトを実行する装置に備え、コンパ
イラが前記手段が使用する命令列を生成することによ
り、あるいは、コンパイラが、、のバリア命令削除
可能条件を判定式とする分岐命令によりバリア命令の実
行、非実行を切り替えるコードを生成する手段を備える
ことにより達成される。
【0012】バリア命令削除可能条件は、 各PE(プロセッサエレメント)間で、変数または配
列の参照とその後続の参照間とに依存が存在しない場合
と、 各PE間で、変数または配列参照とその後続の参照と
の間に依存があっても、同一PE上のみの依存であり、
他のPEとの間での依存が無い場合と、 ハードウェア上、PE間で依存関係が生じるメモリ位
置におけるメモリコヒーレンス処理が完了している場合
とである。
【0013】
【発明の実施の形態】以下、本発明による不要バリア命
令の削減方式の一実施形態を図面を参照して説明する。
【0014】図1は本発明の一実施形態によるハードウ
ェア機構を利用した不要バリア削減方式を説明する擬似
FORTRAN言語コード及びシステムの概略構成を示
す図、図2は本発明が適用されるマルチプロセッサの構
成例を示すブロック図である。図1、図2において、1
1はソースプログラム、12はコンパイラ、13は並列
処理オブジェクト、14はプログラム読み込み装置、1
5はプログラム格納媒体、21はマルチプロセッサシス
テム、22はCPU、23はプロセッサエレメント(P
E)である。
【0015】本発明が適用されるマルチプロセッサシス
テム21は、図2に示すように、プログラム格納媒体1
5に格納されているプログラムを読み込むプログラム読
み込み装置14と、プログラムを各PE23に分配する
CPU22と、分配されたプログラムを並列に実行する
複数のPE24とにより構成される。そして、図示シス
テム21は、図1を参照して後述するコンパイラ12に
より並列化されたプログラムである並列処理オブジェク
トをプログラム格納媒体15を介して、あるいは、コン
パイラ12から直接プログラム読み込み装置14で受け
取り、CPU23が、並列化されている各プログラムを
複数のPE23のそれぞれに分配して処理を実行する。
【0016】次に、図1を参照して本発明の一実施形態
による不要バリアの削減の方法を説明する。
【0017】図1において、ソースプログラム11は、
図3により説明した従来技術におけるDOループ31と
同一のDOループ111を有するものとする。コンパイ
ラ12は、このソースプログラム11を、並列処理オブ
ジェクト13に変換する。並列処理オブジェクト13
は、並列処理対象であるソースプログラム11のDOル
ープ111を、図2に示すマルチプロセッサシステム2
1の各PE上で並列実行される並列処理ループ132を
含むコードである。
【0018】そして、本発明の一実施形態は、ソースプ
ログラム11のDOループ111を並列処理ループ13
2に変換する際、バリア要否判定のためのパラメータを
ハードウェアに渡すプリ動的バリア命令131とポスト
動的バリア命令133とをそれぞれ挿入する。プリ動的
バリア命令131は、並列処理ループ132の内部で参
照される変数・配列バリア要否判定のための情報をパラ
メータに持ち、並列処理ループ132の直前に発行され
る。また、ポスト動的バリア命令133は、並列処理ル
ープ132後に参照される変数・配列のバリア要否判定
のための情報をパラメータに持ち、参照位置の直前に発
行される。これらの命令は、引数として、変数・配列の
ベースアドレス134、ストライド幅135、要素長1
36を指定する。
【0019】コンパイラ12により前述のようにして作
成された並列処理オブジェクト13によるプログラム
は、プログラム読み込み装置14によりプログラム記憶
媒体15に格納され、マルチプロセッサシステムに渡さ
れる。プログラム記憶媒体15としては、DAT,CM
T,FD,CD−ROM,MO等を使用することができ
る。
【0020】図4は各PE上におけるプリ動的バリア命
令、ポスト動的バリア命令の挙動を説明する図、図5は
動的バリア実行装置によるバリアを要するデータ依存の
有無判定、及び、その命令の実行が完了しているか否か
の判定の処理動作を説明するフローチャートである。
【0021】まず、図4を参照して各PE上におけるプ
リ動的バリア命令、ポスト動的バリア命令の挙動につい
て説明する。各PEは、プリ動的バリア命令41を実行
した時点で、引数内容であるベースアドレス411、ス
トライド幅412、要素長413の各情報を、図2に示
すシステム21内に設けられる図示しないコミュニケー
ションレジスタ42の各PEのフィールドに格納する。
また、図2に示すシステム21内に設けられる図示しな
いハードによる動的バリア実行装置(DBED)44
は、ポスト動的バリア命令43が発行されたとき、ポス
ト動的バリア命令43に指定された引数内容であるベー
スアドレス431、ストライド幅432、要素長433
の各情報とプリ動的バリア命令41の実行時コミュニケ
ーションレジスタ42に格納された情報とを用いて、バ
リアを要するデータ依存の有無判定、及び、その命令の
実行が完了している(メモリコヒーレンス処理が完了し
ている)か否かの判定45を行う。
【0022】次に、図5を参照して、動的バリア実行装
置(DBED)が行う前述の判定処理を説明する。
【0023】(1)まず、バリア命令を要するデータ依
存が存在するか否かチェックし、バリア命令を要するデ
ータ依存がないと判定された場合、NOP(空命令)を
発行する(ステップ51、512)。
【0024】(2)ステップ51のチェックで、バリア
命令を要するデータ依存があると判定された場合、デー
タ依存に対応する並列ループ中のメモリアクセス命令が
発行済みか否かをチェックし、メモリアクセス命令が未
発行であると判定された場合、BARRIER(バリア
命令)を発行する(ステップ52、521)。
【0025】(3)ステップ52のチェックで、メモリ
アクセス命令が発行済であると判定された場合、その命
令の実行が完了している(コヒーレンス処理が完了して
いる)か否かをチェックし、メモリアクセス命令の実行
が完了していると判定された場合、NOP(空命令)を
発行する(ステップ53、532)。
【0026】(4)ステップ53のチェックで、メモリ
アクセス命令の実行が完了していないと判定された場
合、BARRIER(バリア命令)を発行する(ステッ
プ531)。
【0027】前述した処理フローにおいて、バリア命令
を要するデータ依存が存在するか否かのチェックを行う
ステップ51の処理は、具体的には以下のチェックを行
うことにより実現される。
【0028】すなわち、図4で説明した各PEi(0≦i
≦maxIPno,maxIPno:最大PE番号)が、プリ動的バリ
ア命令によってコミュニケーションレジスタ42に格納
した変数・配列参照のベースアドレス、ストライド幅、
要素長のそれぞれを、BAj,Swi,LEiとし、ま
た、各PEj(0≦j≦maxIPno,maxIPno:最大PE番号)
が、ポスト動的バリア命令によってコミュニケーション
レジスタ42に格納した変数・配列参照のベースアドレ
ス、ストライド幅、要素長のそれぞれを、BAj,S
j,LEj とした場合、集合Wi=BAi+Swi*ni
{0≦ni≦(LEi−BAi)/SWi}と、集合Rj
BAj+Swj*nj{0≦nj≦(LEj−BAj)/SW
j}とに対して、 Wij≠φ{0≦∃i≠∃j≦maxIPno} ……(式1) となる場合、バリアを要するデータ依存有りと判定す
る。
【0029】図6は本発明の他の実施形態によるソフト
ウェアを利用した不要バリア削減方式を説明する擬似F
ORTRAN言語コード及びシステムの概略構成を示す
図であり、次に、図6を参照して、前述したバリアを要
するデータ依存の有無を判別するステップ51の処理を
説明する。図6に示す例は、ソースプログラム61、変
換される並列処理オブジェクトである並列分割ループ6
2の形式が、図1により説明した場合と相違するだけ
で、その他は図1の構成と同一である。
【0030】すなわち、前述した式1の判定は、図6に
示すように、ソースプログラム61をコンパイラ12
が、if文621の判定式を含む並列処理オブジェクト
62に変換することによって行うことができる。このi
f文621に前述した式1を適用することにより、バリ
ア命令622の、実行、非実行を切り替える目的コード
としての分岐命令を生成することができる。そして、並
列処理オブジェクトを実行する装置は、この分岐命令を
実行することによりバリア命令の、実行、非実行を切り
替えることができ、不要バリア命令を削減することがで
きる。
【0031】前述した本発明の実施形態によれば、 各PE間で、変数または配列の参照とその後続の参照
との間に依存が存在しない場合、 各PE間で、変数または配列の参照とその後続の参照
との間に依存があっても、同一PE上のみの依存であ
り、他のPEとの間での依存が無い場合、 ハードウェア上、PE間で依存関係が生じるメモリ位
置におけるメモリコヒーレンス処理が完了している場
合、 の3つをバリア命令削除可能条件とし、この条件〜
のいずれか少なくとも1つを満たすか否かを、コンパイ
ラが、のバリア命令削除可能条件を判定式とする分
岐命令によりバリア命令の実行、非実行を切り替えるコ
ードを生成することにより、バリア動作の要否を動的に
決定することができ、これにより、不要バリア命令を一
定の条件下で動的に削除することが可能となり、結果と
してマルチプロセッサシステムの実行性能の向上を図る
ことができる。
【0032】
【発明の効果】以上説明したように本発明によれば、命
令の実行時にしか判らない依存関係がある並列処理プロ
グラム中の不要バリア命令を、一定の条件下で動的に削
除することが可能となり、これにより、結果としてマル
チプロセッサシステムの実行性能の向上を図ることがで
きる。
【図面の簡単な説明】
【図1】本発明の一実施形態によるハードウェア機構を
利用した不要バリア削減方式を説明する擬似FORTR
AN言語コード及びシステムの概略構成を示す図であ
る。
【図2】本発明が適用されるマルチプロセッサの構成例
を示すブロック図である。
【図3】不要なバリア命令を削減するための指示文を挿
入したソースプログラムの例を説明する図である。
【図4】各PE上におけるプリ動的バリア命令、ポスト
動的バリア命令の挙動を説明する図である。
【図5】動的バリア実行装置によるバリアを要するデー
タ依存の有無判定、及び、その命令の実行が完了してい
るか否かの判定の処理動作を説明するフローチャートで
ある。
【図6】本発明の他の実施形態によるソフトウェアを利
用した不要バリア削減方式を説明する擬似FORTRA
N言語コード及びシステムの概略構成を示す図である。
【符号の説明】
11 ソースプログラム 12 コンパイラ 13 並列処理オブジェクト 14 プログラム読み込み装置 15 プログラム格納媒体 21 プログラム読み込み装置 22 CPU 23 プロセッサエレメント(PE)

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 ソースプログラムから並列処理オブジェ
    クトを生成するコンパイラにおける不要バリア命令の削
    減方式において、前記コンパイラは、ソースプログラム
    を並列処理オブジェクトに変換する際、並列処理実行部
    の直前にバリア要否判定のためのパラメータを持つプリ
    動的バリア命令を発行し、また、並列処理実行部の後に
    参照される変数・配列のバリア要否判定のための情報を
    パラメータに持つポスト動的バリア命令を参照位置の直
    前に発行し、並列処理オブジェクトを実行する装置は、
    データ依存の有無を判定するハードウェア機構を使用
    し、前記プリ動的バリア命令とポスト動的バリア命令と
    のパラメータに基づいて不要バリア命令を動的に削減す
    ることを特徴とする不要バリア命令の削減方式。
  2. 【請求項2】 ソースプログラムから並列処理オブジェ
    クトを生成するコンパイラにおける不要バリア命令の削
    減方式において、前記コンパイラは、ソースプログラム
    を並列処理オブジェクトに変換する際、バリア要否判定
    のためのパラメータと、並列処理オブジェクト後に参照
    される変数・配列のバリア要否判定のためのパラメータ
    とに基づくデータ依存の有無を実行的に判定する分岐命
    令を発行し、並列処理オブジェクトを実行する装置は、
    この分岐命令の実行により、バリア命令の実行、非実行
    を動的に切り替えることを特徴とする不要バリア命令の
    削減方式。
  3. 【請求項3】 ソースプログラムを並列処理オブジェク
    トに変換し、その際、バリア要否判定のためのパラメー
    タと並列処理実行部の後に参照される変数・配列のバリ
    ア要否判定のためのパラメータとを持つプリ動的バリア
    命令とポスト動的バリア命令とを発行するコンパイラ、
    または、前記パラメータに基づくデータ依存の有無を実
    行的に判定する分岐命令を生成するコンパイラとを格納
    したことを特徴とする記憶媒体。
JP10061508A 1998-03-12 1998-03-12 不要バリア命令の削減方式 Pending JPH11259437A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP10061508A JPH11259437A (ja) 1998-03-12 1998-03-12 不要バリア命令の削減方式
US09/266,634 US6292939B1 (en) 1998-03-12 1999-03-11 Method of reducing unnecessary barrier instructions
US09/924,580 US20010047511A1 (en) 1998-03-12 2001-08-09 Method of reducing unnecessary barrier instructions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10061508A JPH11259437A (ja) 1998-03-12 1998-03-12 不要バリア命令の削減方式

Publications (1)

Publication Number Publication Date
JPH11259437A true JPH11259437A (ja) 1999-09-24

Family

ID=13173113

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10061508A Pending JPH11259437A (ja) 1998-03-12 1998-03-12 不要バリア命令の削減方式

Country Status (2)

Country Link
US (2) US6292939B1 (ja)
JP (1) JPH11259437A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007042134A (ja) * 2002-09-17 2007-02-15 Internatl Business Mach Corp <Ibm> マルチプロセッサ・メモリ整合性の効率のよいエミュレーションのための方法
US7844446B2 (en) 2002-09-17 2010-11-30 International Business Machines Corporation Method and system for multiprocessor emulation on a multiprocessor host system
US8108843B2 (en) 2002-09-17 2012-01-31 International Business Machines Corporation Hybrid mechanism for more efficient emulation and method therefor
JP2014182795A (ja) * 2013-03-15 2014-09-29 Intel Corp 共有メモリへのアクセスの同期を緩和するプロセッサ、方法及びシステム
JP2016515262A (ja) * 2013-03-14 2016-05-26 クアルコム,インコーポレイテッド 命令処理回路における冗長同期バリアの削除と、関連プロセッサシステム、方法、およびコンピュータ可読媒体

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3641997B2 (ja) * 2000-03-30 2005-04-27 日本電気株式会社 プログラム変換装置及び方法並びに記録媒体
US7487330B2 (en) * 2001-05-02 2009-02-03 International Business Machines Corporations Method and apparatus for transferring control in a computer system with dynamic compilation capability
KR20030042319A (ko) * 2001-11-22 2003-05-28 한국전자통신연구원 병렬 프로그램 수행중 경합 탐지를 위한 병렬 루프 변형방법
US7200738B2 (en) * 2002-04-18 2007-04-03 Micron Technology, Inc. Reducing data hazards in pipelined processors to provide high processor utilization
US7000095B2 (en) * 2002-09-06 2006-02-14 Mips Technologies, Inc. Method and apparatus for clearing hazards using jump instructions
US8224636B2 (en) * 2002-12-17 2012-07-17 Cadence Design Systems, Inc. Method and system for implementing parallel execution in a computing system and in a circuit simulator
US7185215B2 (en) 2003-02-24 2007-02-27 International Business Machines Corporation Machine code builder derived power consumption reduction
CA2434280A1 (en) * 2003-07-03 2005-01-03 Zhong L. Wang Method and apparatus to guarantee type and initialization safety in multihreaded programs
CA2442803A1 (en) * 2003-09-26 2005-03-26 Ibm Canada Limited - Ibm Canada Limitee Structure and method for managing workshares in a parallel region
JPWO2005078579A1 (ja) * 2004-02-12 2007-10-18 松下電器産業株式会社 プログラム変換装置およびプログラム変換方法
US8392900B1 (en) * 2005-03-17 2013-03-05 Hewlett-Packard Development Company, L.P. Methods and systems for barrier reduction in parallel processing systems
JP4372043B2 (ja) * 2005-05-12 2009-11-25 株式会社ソニー・コンピュータエンタテインメント コマンド実行制御装置、コマンド実行指示装置およびコマンド実行制御方法
JP4784827B2 (ja) * 2006-06-06 2011-10-05 学校法人早稲田大学 ヘテロジニアスマルチプロセッサ向けグローバルコンパイラ
US8375368B2 (en) * 2006-06-20 2013-02-12 Google Inc. Systems and methods for profiling an application running on a parallel-processing computer system
US8146066B2 (en) 2006-06-20 2012-03-27 Google Inc. Systems and methods for caching compute kernels for an application running on a parallel-processing computer system
US8108844B2 (en) 2006-06-20 2012-01-31 Google Inc. Systems and methods for dynamically choosing a processing element for a compute kernel
US8136102B2 (en) 2006-06-20 2012-03-13 Google Inc. Systems and methods for compiling an application for a parallel-processing computer system
US8381202B2 (en) * 2006-06-20 2013-02-19 Google Inc. Runtime system for executing an application in a parallel-processing computer system
US8261270B2 (en) 2006-06-20 2012-09-04 Google Inc. Systems and methods for generating reference results using a parallel-processing computer system
US7814486B2 (en) * 2006-06-20 2010-10-12 Google Inc. Multi-thread runtime system
US8443348B2 (en) 2006-06-20 2013-05-14 Google Inc. Application program interface of a parallel-processing computer system that supports multiple programming languages
US8136104B2 (en) 2006-06-20 2012-03-13 Google Inc. Systems and methods for determining compute kernels for an application in a parallel-processing computer system
US8024708B2 (en) 2006-06-20 2011-09-20 Google Inc. Systems and methods for debugging an application running on a parallel-processing computer system
EP2093667A4 (en) * 2006-12-14 2012-03-28 Fujitsu Ltd COMPILATION METHOD AND COMPILER
US8782627B2 (en) * 2007-11-29 2014-07-15 Microsoft Corporation Path specializations for runtime code with phase behavior
US8078843B2 (en) 2008-01-31 2011-12-13 International Business Machines Corporation Facilitating processing in a computing environment using an extended drain instruction
US8635437B2 (en) * 2009-02-12 2014-01-21 Via Technologies, Inc. Pipelined microprocessor with fast conditional branch instructions based on static exception state
US8521996B2 (en) * 2009-02-12 2013-08-27 Via Technologies, Inc. Pipelined microprocessor with fast non-selective correct conditional branch instruction resolution
US9146741B2 (en) 2012-04-26 2015-09-29 Qualcomm Incorporated Eliminating redundant masking operations instruction processing circuits, and related processor systems, methods, and computer-readable media
US20140143755A1 (en) * 2012-11-20 2014-05-22 Nvidia Corporation System and method for inserting synchronization statements into a program file to mitigate race conditions
US9698791B2 (en) 2013-11-15 2017-07-04 Scientific Concepts International Corporation Programmable forwarding plane
US9294097B1 (en) 2013-11-15 2016-03-22 Scientific Concepts International Corporation Device array topology configuration and source code partitioning for device arrays
US10326448B2 (en) 2013-11-15 2019-06-18 Scientific Concepts International Corporation Code partitioning for the array of devices
DE102017209697A1 (de) * 2016-06-13 2017-12-14 Denso Corporation Parallelisierungsverfahren, Parallelisierungswerkzeug und fahrzeuginterne Vorrichtung
JP2017228029A (ja) * 2016-06-21 2017-12-28 株式会社デンソー 並列化方法、並列化ツール、車載装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE68927946T2 (de) * 1988-08-02 1997-10-16 Philips Electronics Nv Verfahren und Vorrichtung für die Synchronisierung von parallelen Prozessoren unter Verwendung einer unscharf definierten Sperre
US5778423A (en) * 1990-06-29 1998-07-07 Digital Equipment Corporation Prefetch instruction for improving performance in reduced instruction set processor
CA2078315A1 (en) * 1991-09-20 1993-03-21 Christopher L. Reeve Parallel processing apparatus and method for utilizing tiling
JP3573546B2 (ja) * 1995-10-27 2004-10-06 富士通株式会社 並列計算機における並列プロセススケジューリング方法および並列計算機用処理装置
US6016505A (en) * 1996-04-30 2000-01-18 International Business Machines Corporation Program product to effect barrier synchronization in a distributed computing environment
US6098089A (en) * 1997-04-23 2000-08-01 Sun Microsystems, Inc. Generation isolation system and method for garbage collection
US5953736A (en) * 1997-04-23 1999-09-14 Sun Microsystems, Inc. Write barrier system and method including pointer-specific instruction variant replacement mechanism
US5873105A (en) * 1997-06-26 1999-02-16 Sun Microsystems, Inc. Bounded-pause time garbage collection system and method including write barrier associated with a source instance of a partially relocated object
US6314562B1 (en) * 1997-09-12 2001-11-06 Microsoft Corporation Method and system for anticipatory optimization of computer programs
US6505296B2 (en) * 1997-10-13 2003-01-07 Hewlett-Packard Company Emulated branch effected by trampoline mechanism
US6081665A (en) * 1997-12-19 2000-06-27 Newmonics Inc. Method for efficient soft real-time execution of portable byte code computer programs
US6106575A (en) * 1998-05-13 2000-08-22 Microsoft Corporation Nested parallel language preprocessor for converting parallel language programs into sequential code
US6292822B1 (en) * 1998-05-13 2001-09-18 Microsoft Corporation Dynamic load balancing among processors in a parallel computer
US6216174B1 (en) * 1998-09-29 2001-04-10 Silicon Graphics, Inc. System and method for fast barrier synchronization
JP3551353B2 (ja) * 1998-10-02 2004-08-04 株式会社日立製作所 データ再配置方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007042134A (ja) * 2002-09-17 2007-02-15 Internatl Business Mach Corp <Ibm> マルチプロセッサ・メモリ整合性の効率のよいエミュレーションのための方法
US7844446B2 (en) 2002-09-17 2010-11-30 International Business Machines Corporation Method and system for multiprocessor emulation on a multiprocessor host system
US8108843B2 (en) 2002-09-17 2012-01-31 International Business Machines Corporation Hybrid mechanism for more efficient emulation and method therefor
US8578351B2 (en) 2002-09-17 2013-11-05 International Business Machines Corporation Hybrid mechanism for more efficient emulation and method therefor
US9043194B2 (en) 2002-09-17 2015-05-26 International Business Machines Corporation Method and system for efficient emulation of multiprocessor memory consistency
JP2016515262A (ja) * 2013-03-14 2016-05-26 クアルコム,インコーポレイテッド 命令処理回路における冗長同期バリアの削除と、関連プロセッサシステム、方法、およびコンピュータ可読媒体
JP2014182795A (ja) * 2013-03-15 2014-09-29 Intel Corp 共有メモリへのアクセスの同期を緩和するプロセッサ、方法及びシステム
US9304940B2 (en) 2013-03-15 2016-04-05 Intel Corporation Processors, methods, and systems to relax synchronization of accesses to shared memory
JP2016207232A (ja) * 2013-03-15 2016-12-08 インテル・コーポレーション 共有メモリへのアクセスの同期を緩和するプロセッサ、方法、システム、及びプログラム
US10235175B2 (en) 2013-03-15 2019-03-19 Intel Corporation Processors, methods, and systems to relax synchronization of accesses to shared memory

Also Published As

Publication number Publication date
US20010047511A1 (en) 2001-11-29
US6292939B1 (en) 2001-09-18

Similar Documents

Publication Publication Date Title
JPH11259437A (ja) 不要バリア命令の削減方式
US20020056078A1 (en) Program optimization
US8336038B2 (en) System and method for parallel execution of a program
JPH05257709A (ja) 並列化判別方法およびそれを用いた並列化支援方法
JP2000315160A (ja) コード書き換えカーネルモジュールを使用したコンピュータプログラムの動的最適化
JPH06314203A (ja) コンパイラの最適化方法および装置
JP3539613B2 (ja) ループ飛び出し文を含むループに対する配列サマリ解析方法
JP2001125792A (ja) 最適化促進装置
JP7040187B2 (ja) コンパイラ
JP2005352894A (ja) 性能解析プログラム及び性能解析プログラムの生成方法
JP3566602B2 (ja) コンパイル方法、および、コンパイル用プログラムを記録した記録媒体
JPH09282173A (ja) プログラムの静的解析方法
JP3018783B2 (ja) コンパイル方式
JP2003131888A (ja) 手続き間命令スケジューリング方法
JPH11149380A (ja) コンパイラとプログラム最適化方法およびその処理プログラムを記録した記録媒体
JP2001154850A (ja) コンピュータプログラムのコンパイル方法
JP2682215B2 (ja) 並列処理時の手続き呼出し方式
JP2002099424A (ja) レジスタを格納領域に利用するコンパイル方法
JPH11120151A (ja) 不要通信を抑止するプログラム並列化方法
JP3604936B2 (ja) 最適化方法,最適化装置及び記録媒体
JPH0573335A (ja) プログラムの自動インライン展開方式
JPH08263300A (ja) インライン展開方式
JPH11250035A (ja) 編集方式及び方法
JPH0512033A (ja) 並列化コンパイル方式
JPH0962512A (ja) 低級言語から高級言語への記述言語変換機能を有するプログラム変換装置及び方法