JPH02110763A - 並列処理システム及び並列プロセッサの同期方法 - Google Patents

並列処理システム及び並列プロセッサの同期方法

Info

Publication number
JPH02110763A
JPH02110763A JP1198085A JP19808589A JPH02110763A JP H02110763 A JPH02110763 A JP H02110763A JP 1198085 A JP1198085 A JP 1198085A JP 19808589 A JP19808589 A JP 19808589A JP H02110763 A JPH02110763 A JP H02110763A
Authority
JP
Japan
Prior art keywords
processor
instruction
processors
parallel
shaded
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
JP1198085A
Other languages
English (en)
Other versions
JP2947356B2 (ja
Inventor
Rajiv Gupta
ラジブ・ギュプタ
Michael Abraham Epstein
マイケル・アブラハム・エプスタイン
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.)
Koninklijke Philips NV
Original Assignee
Philips Gloeilampenfabrieken NV
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 Philips Gloeilampenfabrieken NV filed Critical Philips Gloeilampenfabrieken NV
Publication of JPH02110763A publication Critical patent/JPH02110763A/ja
Application granted granted Critical
Publication of JP2947356B2 publication Critical patent/JP2947356B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • 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/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

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)

Abstract

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

Description

【発明の詳細な説明】 〔発明の分野〕 本発明は並列プロセッサを同期させる方法及び装置に関
するものである。特に本発明は斯種の同期化に対するバ
リヤ(barrier )の使用に関するものである。
〔発明の背景〕
従来の並列処理システムは並列命令ストリームに変換さ
れたコンピュータコードを実行する。コンピュータコー
ドを並列命令ストリームに分けることについては、例え
ばエム・ウォルフェ(M、Wolfe)外1名による論
文”Data Dependence and Its
 Application to Parallel 
Processing”  、 ”Internati
onal Journal of Parallel 
Programmingt VoL16、 No、 2
.1987年4月、第137〜178頁及びエッチ・ス
トーン(H,5tone )著による文献“旧ghPe
rformance Computer Archit
ecture ”  (AddisonWesley 
19B7年、第321頁及び第336〜338頁に記載
されている。命令ストリームの幾つかは字句的にフォワ
ードな従属性(lexically forward 
dependences )及び/又はループ繰上げ従
属性(1oopcarried dependence
s )を有している。字句的にフォワードな従属性の概
念については、1986年IEEE Internat
ional Conference on Paral
lelProcessingの第836〜844頁、特
に第838頁におけるアール・シトロン(RoCytr
on)による論文”Doacross : Beyon
d Vectorization for Multi
processors”に記載されている。字句的にフ
ォワード及びループ繰上げ従属性のために命令ストリー
ム間の同期をとる必要がある。
「バリヤ」を用いることによって斯様な同期をとること
ができる。バリヤとは、それぞれの並列命令ストリーム
において、各並列プロセッサが互いに同期をとるために
待たなければならない個所のことである。同期をとるた
めにバリヤを用いることについてはProceedin
gs 1986 InternationalConf
erence Parallel Processin
g、  1986年8月。
第528〜535頁におけるピー・タング(P、Tan
g)外1名による論文”Processor Self
−3chedulingfor Multiple−N
ested Parallel Loops”に記載さ
れている。
同期のために斯様な停止点を用いる並列処理システムの
詳細については米国特許第4,344,134号、第4
.365.292号及び第4.412.303号に開示
されている。
従来の並列処理シテスムでは、個々のプロセッサを同期
させる間これらのプロセッサを互いに待たせ、時間を浪
費しなければならない。これによりシステムの効率低下
をまねいている。待ち時間は一方のプロセッサがその割
当てコードを他方のプロセッサよりも速く実行し得るた
めに生じるのであり、又斯様な待ち時間は同期処理又は
同期用のハードウェアをアクセスしたり、又は他の共用
機構をアクセスするのに種々のプロセッサ間にて競合が
あるために生じたりする。
〔発明の概要〕
特に本発明の目的は、個々のプロセッサが互いに待つた
めに浪費しなければならない時間を短縮することにより
効率を高める並列処理システムを提供することにある。
この目的は、並列プロセッサの内の少なくとも1つが、
他の少なくとも1つのプロセッサとの同期を待つ間に少
なくとも1つの非アイドリング命令を実行するように前
記並列プロセッサを同期させる同期装置によって達成さ
れる。成る特定カテゴリの非アイドリング命令とは、ユ
ーザ又は応用プログラムにて特徴付けるものであり、又
他のカテゴリの非アイドリング命令とは、命令−決定の
遅延を生成する以外は当面のプロセッサの内部演算でソ
ースタスクを実行することに関連する1つの命令とする
ことができる。特に、上述した目的はそれぞれの命令ス
トリームにおけるコードの所定領域を同定し、且つ識別
して実現することができる。これらの領域のことをここ
では「アンシェーデッドJ  (unshaded)に
対する「シェーデッドJ(shaded)領域と称する
。シェーデッド領域をここでは「ファジィ」バリヤとも
称する。プロセッサは各シェーデッド領域に達する際に
同期化を試み始める。この同期化は、関連するタスクを
実行する全てのプロセッサがそれらの各対応するシェー
デッド領域に先行しているアンシェーデッド領域におけ
る全ての命令を完全に実行し終わるまでは各シェーデッ
ド領域に続く命令をマイクロプロセッサが実行しない場
合に達成される。
上記目的は並列プロセッサ間の同期化情報を調整すると
共に同期情報のトラックを維持する状態マシーンを用い
る装置によっても達成される。
〔実施例〕
以下実施例につき図面を参照して説明するに、第1a図
はシェーデッド領域を作るためにソースコードをコンパ
イルする方法を示す流れ図である。
ボックス101にてコンパイルがソースコードで開始す
る。並列処理するのに好適なソースコードの一例はっぎ
の通りである。
int a (10)  (4) ; (j+2  ; j  <10 ;  j+十) で、
しがも、(i=2  ;i < 5;  i+十)に対
してはa(j )  (i )−a(j  1 )  
(i+1 )+ l”jここでは二次元整数アレイaU
)(i)の全ての要素に適当な値を割当てる。
ボックス102では別個のプロセッサで実行させること
のできるコード部分をコンパイラによって識別する。ボ
ックス102では前記H,5toneによる文献及び前
記MJolfe外1名による論文に記載されているよう
な方法を用いる。上記ソースコードの例では内部ループ
を別々のプロセッサで並列に実行させることができる。
この場合の内部ループに対するコードを後記表Aに示し
てあり、この表におけるbrrはバリヤを表わす。
バリヤはループ繰上げ従属性のために挿入しである。換
言するに、本例では、ループの第1繰返しでプロセッサ
P2が計算したa(1)(3)の値をループの第2繰返
しでプロセッサP1が必要とする。従来3個の各プロセ
ッサは、他の各プロセッサがバリヤに達するまで各ルー
プにて待たなければならなかった。
ボックス103では標準技法を用いてコンパイラが中間
コードを発生する。この中間コードは、つぎに後続する
コードに応じて「3アドレスコード」と称される標準の
表記法で表わされる。このコード及びそれを発生させる
ための技法についてはニー・アーオ(A、 Aho)外
1名による文献”Pr1ncipies of Com
piler Design ”  (Addison 
Wesley1979)の第7節に記載されている。
本例では3つのプロセッサに対する中間コードの値を、
プロセッサPI、 P2及びP3に対して2.3及び4
にそれぞれ初期設定される“i”の値以外は同じとする
ボックス104はシェーデッド及びアンシェーデッド領
域を識別する。シェーデッド領域はファジィバリヤを制
定する。換言するに、慣例のバリヤの場合のように、プ
ロセッサはシェーデッド領域に達すると、このプロセッ
サは同期化を所望する。
しかし、このような従来のバリヤの場合に対し、ファジ
ィバリヤ、即ちシェーデッド領域の場合にはプロセッサ
は同期するのを待っている間に命令を実行するのを継続
することができる。アンシェーデッド領域はプロセッサ
が同期を求めない領域を制定する。
ボックス104以後の中間コードは後記表Bに示すよう
にし、開始時における適当なコメントは:コメント:A
をアレイaの基本アドレスとする;とし、又第1中断ラ
イン以降の第2コメントは:コメント:アンシェーデッ
ド領域 とする。
ボックス104はこれらのシェーデッド及びアンシェー
デッド領域をつぎのように確かめる。不履行、即ちアン
シェーデッド領域が識別されない場合には、シェーデッ
ド領域における命令が不履行となる。この不履行が設定
される理由は、シェーデッド領域における命令を実行し
ている間にマイクロプロセッサは決して停止できないか
らである。
これがため、シェーデッド領域の方が好ましい。
アンシェーデッド部分はつぎの2つの主工程にて見つけ
る。先ず字句的にフォワードな従属性及び/又はループ
繰上げ従属性LFDを有する最初と最後の命令をアンシ
ェーデッド部分として識別する。この場合におけるこれ
らの最初と最後の命令との間の全ての命令もアンシェー
デッド部分である。本例における11及びI2はループ
繰上げ従属性のみを有する命令である。命令■1の実行
中にプロセッサは以前の繰返しで他の成るプロセッサが
計算した値をアクセスする。命令I2の実行中にはつぎ
の繰返しにて他の成るプロセッサにより用いられる値を
アレイに記憶させる。これがため、命令II、 I2及
びこれらの間の全ての命令はアンシェーデッド部分であ
る。
コードを実行するに当り、他の全てのプロセッサがそれ
ぞれ対応するシェーデッド領域に先行しているアンシェ
ーデッド領域における命令を全て実行し終るまでプロセ
ッサがシェーデッド領域に後続するアンシェーデッド領
域の命令を実行しなければ、並列プロセッサは「同期化
」されることになる。このような要件からして、字句的
にフォワードな従属性及びループ繰上げ従属性となるそ
れらの命令は、これらの従属性が解消されるまでは実行
させることができない。
ブロック105では中間コードをリオーダして効率をさ
らに高める。この目的には標準のリオーダ技法を用いる
ことができる。プロセッサは、それがシェーデッド領域
における命令を実行している間は決して停止させること
ができないから、アンシェーデッド領域が小さくなるに
つれて効率は高くなる。これがため、リオーダ技法を用
いてアンシェーデッド領域における命令数を減らすよう
にする。従って、リオーダした後には中間コードを上述
したのと同じコメントで後記表Cに示すように変換する
斯かるリオーダ処置では、11とI2との間の3つの命
令をアンシェーデッド領域外へと動かした。
本例では、3つの命令を11の上に動かした。場合によ
っては、字句的にフォワード又はループ繰上げ従属性を
有する最終命令を過ぎた命令を動かすことによっても同
じ効果を達成することができる。
換言するに、命令はこれらを上方([1の上)又は下方
(12の下)に動かすことによってアンシェーデッド領
域から動かすことができる。
上記中間コードを読取るには、読取器によってその中間
コードがループの一部である旨を認める必要がある。従
って、アンシェーデッド領域の後のシェーデッド領域は
、つぎのループ繰返しでアンシェーデッド領域の前のシ
ェーデッド領域に結合する。例えば、ループの最初の繰
返し終了時に第1プロセツサはループの冒頭に戻って、
コードを実行し続けることができる。他の全てのプロセ
ッサが、それらの第1繰返しで各命令■2を実行し終え
た場合には、第1プロセツサはその第2繰返しで命令I
fを実行し始めることができる。殆どの命令はシェーデ
ッド領域にあるから、プロセッサは互いに同期を待つの
に殆ど、或いは全く時間がかからず、特にシェーデッド
領域を特徴付けることによってプロセッサ間の結合を左
程厳格としないで済む。
ボックス106では中間コードをアセンブルする。
上記例に対する各プロセッサ用のVAXアセンブリコー
ドを後記表りに示しである。アセンブリは標準コンパイ
ラにより行われる標準の処置である。
アセンブルする期間中には、この目的のために命今生に
リザーブした1ビツトをターン・オンさせることによっ
て命令をシェーデッド領域の部分としてマークすること
ができる。このビットを「I−ビット」と称する。
ボックス105に用いることのできるリオーダ技法の1
つを第1b図の流れ図で説明する。第1b図では字句的
にフォワード又はループ繰上げ従属性でない命令にはJ
 LFDなる表記法を用い、字句的フォワード又はルー
プ繰上げ従属性を有する命令にはJL、ゎなる表記法を
用いる。タイプJτiの全ての命令は将来アンシェーデ
ッド領域から動かすものである。一般に、2つの命令J
、及びJ8+1がこの順序で与えられると、っぎの条件
が双方共に真であればJ、ゆ、をJ、の上に動かすこと
ができる。
条件1:J、はJi+1が書込むメモリ位置からは読出
さない; 条件2:J、はJi+1が読出すメモリ位置には書込ま
ない。
第1a図の場合にはアンシェーデッド領域が命令J1.
J2+ J3−−− JNのシーケンスを有するものと
する。
ボックス150ではJ、にタイプJ LFDの第1命令
を割当てる。ボックス151ではJ、に先行するアンシ
ェーデッド領域における第1命令をJ、に割当てる。ボ
ックス152では各命令に対し条件1及び条件2をテス
トする命令J、 −J、をループする。双方の条件l及
び2が所定の命令に対して真である場合に、ブランチ1
53へと進む。条件1及び条件2のいずれか一方、又は
双方共に誤りである場合にはブランチ154へと進む。
ブランチ153はボックス155に至り、ここでJJが
J、に先行しているアンシェーデッド領域における最終
命令であるか否かをテストする。ボックス155でのテ
スト結果が誤りである場合にはボックス157へのブラ
ンチ156へと進み、このボックス157にて命令J、
に先行しいるアンシェーデッド領域におけるつぎの命令
をJ4に割当てる。ボックス157の後はボックス15
2Lこ戻す。
ボックス155でのテスト結果が真である場合にはブラ
ンチ158からボックス159へと進めて、ここで命令
J!をアンシェーデッド領域の外へ動かす。上述した処
置は命令を如何にして動かすことができるかを示してい
る。ボックス159の後はブランチ154へと進める。
ボックス152でのテスト結果が双方共に誤りである場
合にはボックス160へのブランチ154へと進め、こ
のボックス160ではJ、がアンシェーデッド領域にお
けるタイプJτiへの最終命令であるか、否かをテスト
する。ボックス160でのテスト結果が真である場合に
は第1b図の方法を161の個所にて終了させる。ボッ
クス160でのテスト結果が誤りである場合には、ボッ
クス163に至るブランチ162へ進める。
ボックス163ではタイプJττのっぎの命令をJ、に
割当てる。ボックス163の後は第1b図の方法をボッ
クス151へと戻す。
上述した例での上記各ステップを実行させることにより
、アンシェーデッド領域にあるべきとする僅か2つの命
令をI1及びI2としてマークされる命令であるとして
決定する。
第1b図に示した処置に似ている処置を適用して、字句
的フォワード又はループ繰上げ従属性とはならない残り
の命令をアンシェーデッド領域の下方で、しかもその領
域外に動かすことができる。この同様な処置が第1b図
につき述べた処置と異なる点は、1つの命令をアンシェ
ーデッド領域における先行している全ての命令と比較す
る代りに、コンパイラによって1つの命令を後続する全
ての命令と比較すると云う点だけにある。
第2図はそれぞれ命令メモリ205.206.207及
び208を伴なう4個の並列プロセッサ201.202
゜203及び204を具えている並列処理システムのブ
ロック図である。プロセッサの数nは任意とすることが
でき、ここにnは2以上の整数とする。第2図の例では
判り易くするためにプロセッサの数を4個とした並列プ
ロセッサ201.202.203及び204はデータメ
モリ209を共用する。各プロセッサはそれぞれバリヤ
ユニット210.211.212及び213Aを有して
いる。各バリヤユニット210.211゜212及び2
13八は4個の入力端子と2個の出力端子を有している
。他のプロセッサからの3つの入力は他の各プロセッサ
が同期化を所望するか、否かを指示する。これらの入力
をここでは−ANT−INと称する。他のプロセッサへ
進む出力は各プロセッサが同期化を所望する旨を示す。
これらの出力をここではWANT−011Tと称する。
各バリヤユニット210゜211、212及び213A
は、その各実行ユニット213゜214、215及び2
16からの各I−入力端子及び各実行ユニットへの各5
TALL−出力端子も有している。
第3図はバリヤユニット210.211.212及び2
13の1つを含む並列プロセラ201.202.203
及び204の1つを詳細に示したブロック図である。バ
リヤユニットは同期化情報を受信し、処理し、且つ送出
する。実行ユニット328内に示す命令レジスタ301
の容量は、関連する命令セットにおける最長命令と1−
ビット302を含めるのに十分な大きさとする。プロセ
ッサはマシンサイクル当り1つの命令を実行するRIS
Cプロセッサであるものとする。■−ビットは命令レジ
スタ301における命令がシェーデッド領域におけるも
のである場合にターン・オンされる。又、このI−ビッ
トは斯かる命令がアンシェーデッド領域におけるもので
ある場合にはターン・オフする。
命令レジスタ301の容量を小さくし、命令が数ワード
の形態をとるようにすることもでき、この場合には命令
の第1ワードにおけるI−ビットをロックアウトさせて
除くロジック(図示せず)を設けるようにする。シェー
デッド領域及びアンシェーデッド領域の冒頭部をマーク
するために各命令ストリームに完全命令を授けることも
できるが、この場合には状態マシーンを多少変更する必
要がある。又、この方法では各命令ストリームに命令を
加えることになるが、この方法はI−ビット法に比べて
既存のハードウェア及びマシン命令セットを多少変更す
るだけで済む。
マスクレジスタ303は内部的にアドレスされる特殊な
レジスタであり、これはn−1ビツト(ここにnはシス
テムにおけるプロセッサの個数である)とする。本例で
はn=4とする。各プロセッサは第3図の装置を内蔵し
ている。従って、マスクレジスタ303はシステムにお
ける他のプロセッサのトラックを保有するために3ビツ
トとする必要がある。このマスクレジスタ303は関連
するタスクを実行しない他のプロセッサを無視するため
に用いる。マスクレジスタ303の1ビツトは、対応す
る他のプロセッサが関連するタスクを実行している際に
ターン・オフする。マスクレジスタの1ビツトは対応す
る他のプロセッサが関連タスクを実行していない場合に
ターン・オンする。マスクレジスタ303は3ビツト入
力端子320からマスクビットを受信する。本例では3
個のプロセッサだけにコードを実行させる必要がある。
これがため、マスクレジスタ303の2ビツトはループ
の1つを実行している各プロセッサではターン・オフす
る。第3ビツトがターン・オンすると、ループ実行中の
プロセッサはループを実行していない1つのプロセッサ
を無視する。コンパイラはどのプロセッサがバリヤにて
同期しているかを知って、マスクレジスタ303に適当
なビットを書込ませる部分を発生させることができる。
マスクレジスタのビットが他の1つのプロセッサにてオ
ンすることにより無視されるプロセッサは、斯かる他の
レジスタに固有のマクスレジスタをセットすることによ
りそのプロセッサを無視して独立のタスクを実行するこ
とができる。このような独立タスクには並列処理を必要
とする独立ジョブで独立した同期化を図ることができる
WANT−INは他のプロセッサからのr WANT 
Jビットを受信するためのn−1ビツト入力である。W
ANTビットは対応するプロセッサが同期化を望む場合
にオンする。
整合回路304はマクスジスタ303におけるビット及
び入力−ANT−INにおけるWANTビットを調整す
るためのロジックを含んでいる。整合回路304の出力
を「に^TCHJと称し、これは関連する他のプロセッ
サ全てが同期化を望む場合にだけオンする。
状態マシン305はI−ビット302と整合回路304
の出力MATCHを用いて同期化状態を決定する。状態
マシン305は2ビツト、即ち5TALLと−ANT−
OUTを出力する。5TALLはプロセッサが命令を実
行している時はオフする。5TALLがターン・オンす
るとプロセッサは命令の実行を停止する。WANT−O
UTは各プロセッサが同期化を望む場合にターン・オン
し、そうでない場合にターン・オフする。
第4図は状態マシン305に対する状態図である。
本例では状態マシンを所謂メアリ(Mealy )マシ
ンとする。このマシンでは、これが状態を変えなくても
出力5TALL及びWANT−OllTは変化すること
ができる。第4図では状態マシン305への出力を小さ
な活字で示し、又状態マシン305からの出力を大きな
活字で示しである。
各プロセッサ201.202.203及び204は第4
図につき説明するような1つの状態マシンを含んでいる
。これらの状態マシンを作動させるためには状態マシン
間で信号を同期させる共通のクロック又は他の手段を設
ける必要がある。図面の簡単化のために状態マシン30
5を同期させる回路は図示してない。
トランジョン401は状態マシンを状態Oに留めること
に相当し、■−ビットがオフである間は状態マシンは状
態0のままである。換言するに、プロセッサはコードの
アンシェーデッド領域を実行し、コードのシェーデッド
領域へは進まない。この場合、5TALL及び−ANT
−OUTは双方共にオフである。
トランジョン402は状態マシンを状態0から状態1に
する。状態マシンは、その各プロセッサが同期化の用意
が整っているも、少なくとも1つの他のプロセッサが同
期化の準備が成されていない場合、即ちI−ビットがオ
ンで、MATCHがオフである場合にトランジョン40
2をとる。第4図では条件1=o及びMATCH=0を
I′I及びMATCH”にてそれぞれ示しである。トラ
ンジション402の期間中はWANT−OUTがオンし
、5TALLはオフする。第4図で、5TALL又はW
ANT−OllTがオフする場合は省いである。トラン
ジション404は状態マシンを状態lに保持する。マシ
ンは、同期化を望んでいるも、まだ同期せず、命令を実
行し続けている限りトランジション404をとる。即ち
、マシンはIビットがオンし、MAYCHがオフしてい
る間は状態1に留まる。状態1の期間中WANT−OU
Tはオンし、5TALLはオフする。
トランジション403はマシンを状態Oから状態2にす
る。マシンはそのプロセッサが同期化の用意が整い、し
かもそれが同期化の用意が整った最後のプロセッサであ
る場合にトランジション403をとる。幾つかのプロセ
ッサは同時に状態2に達することができ、従ってそれら
のプロセッサは同時に同期化の用意が整った「最終」プ
ロセッサでもある。状態2はプロセッサが同期化される
状態である。状態マシン305がトランジション403
をとると、このマシンはWANT−OUTをオンさせた
ままとする。しかし、マシンはそれが状態2に達すると
、WANT−OUTをターン・オフする。5TALLは
オフしたままである。
トランジション405はマシンを状態1から状態2にす
る。マシンは各プロセッサが依然シェーデッド領域にあ
り、同期化を希望しており、しかも全ての他のプロセッ
サがそれらの各シェーデッド領域に達している場合、即
ち夏−ビット及びMAYCHの双方がオンする場合にト
ランジション405を生ぜしめる。マシンがトランジシ
ョン405を生じさせると、これは−^NT−OUTビ
ットをオンさせる。トランジション405の期間中は5
TALLがオフする。
WANT−01JTビツトはマシンが状態2に達すると
オフに戻る。
トランジション406はマシンを状態1から状態3にす
る。マシンは、これがそのシェーデッド領域を離れる用
意が整っているも、マシンを状態2にすることはできな
かった場合にトランジション406を生せしめる。即ち
、■−ビットがターン・オフし、MAYCHがオフであ
る場合にトランジション406を生じさせる。この点に
て各プロセッサは停止しなければならない。これがため
、−^NT−OUT及び5TALLの双方はターン・オ
ンする。
トランジション407はマシンを状態1から状態0にす
る。マシンはMAYCHがターン・オンし、これと同時
に該当プロセッサがシェーデッド領域を同時に離れる際
に斯かるトランジションを生せしめる。マシンはトラン
ジション407の期間中ば目NT−OUTをオンしたま
まとし、マシンが状態0に達すると再びそれをオフにす
る。
トランジション408は状態マシン305を状態2から
状態0にする。トランジション408は同期化後で1−
ビットがターン・オフする際、即ち各プロセッサがシェ
ーデッド領域を離れる際に生ずる。
トランジション408の期間中には騨^NT−OUT及
び5TALLが共にオフする。
トランジション409はマシンを状態2に保つ。
トランジション409は、同期化後に1−ビットが1の
ままであると、即ち各並列プロセッサが同期化後にシェ
ーデッド領域に留まると発生する。トランジション40
9の期間中は−ANT−OUT及び5TALLが共にオ
フする。
トランジション411はマシンを状態3に保ち、即ちマ
シンを停止させて、同期するのを待つ。マシンはMAT
CHがオフしている限りトランジション411を生じさ
せる。マシンは状態3にある間はnNT−OUT及び5
TALLの双方をオンし続ける。
トランジション410はマシンを状態3から状態0にす
る。マシンは、それが他のマシンとの同期に成功して、
シェーデッド領域を離れることができるようになると、
即ちMATCI(がターン・オンするとトランジション
410を生じさせる。このトランジション410の期間
中はWANT−OllTはオンしたままである。WAN
T−OUTはマシンが一旦状態0に達するとターン・オ
フする。トランジション410の期間中には5TALL
がオフする。
第5図はボックス(整合回路)304を詳細に示したも
のであり、この第5図にはマスクレジスタ303の3ビ
ット501.502及び503も示しである。
マスクレジスタ303が3ビツトを有するのは、システ
ムに3つの他の並列プロセッサがあるからである。−^
NT−INの3ビツトを3つの別個のラインWANT−
INO,−^NT−INI及びWANT−IN2として
示す。マスクレジスタビット503及びWANT−IN
OをORゲート504に供給する。マスクレジスタビッ
ト502及びWANT−INIをORゲート505に供
給する。マスクレジスタビット501及びWANT−I
N2をORゲート506に供給する。ORゲート504
.505及び506の出力は^NDゲート507に供給
する。このANDゲート507の出力がMATCHであ
る。
従って、出力MAYCHは無視されていない他の全ての
プロセッサが同期化を望む場合にオンする。
出力MATCHは他の全てのプロセッサが無視されてい
る場合にもオンする。
表A pi(i=2) 但しく1士2.J <10+ J+’+)a (j) 
 (2) =a (j−1)  (3) + 2”j 
 ;brr  1 p2(i=3) 但しくj=2+ j<10. j++)a (j)  
(3) −a (j−1)  (4) + 3”j  
;brr ; p3(i=4) 但しくj=2. j<10. j++)a (j) (
4) =a (j−1) (5) +4”j ;brr
 ; 表B 表C j=2 Ll : TI=  j−1 T2=16 ” TI T3=72十八 T4−(if1)  ” 4 T5−  i  ” j 11 : T6=74 (T3) +T5T7=16 
” j T8=77+  A T9=  i  ” 4 /”T6=a (j 1〕 (if1) 十+*j 9/ j=2 Ll : T1=  j −1 T2=16  ” TI T3 = 72 + A T4−(if1)” 4 T5=  i  ” j T7=16 ” j T8 = 77十八 T9=  i  ”4 If : T6=T4 (T3) +T5/”T6= 
a (j−1)  (if1)+i*j* i  =  if1 if j<10 go  to Ll j  = if1 if j<10 go  to L1 表D ovab ovl L21:moval ub13 shl dd12 dd13 shl dd12 ovl nc1 mpl 1ss 172(sp)、sp $2.−4(fP) 172(fp)、rO $1.−4(fp)、rl $4.rl、rl rl、r。
rl、12(rO)、ro $4.−4(fp)、r2 r2.rl rO,8(rl) 4(fp) −4(fp)、$10 ovab IIlOνI L21:moval ub13 shl dd12 dd13 shl dd12 ovl nc1 mpl 1ss 172(sp)、sp $2.−8(fp) −172(fp)、rO $1.−8(fp)、rl $4.r1.rl rl、ro rl、16(rO)、r。
$4.−8(fp)、r2 r2.rl rO,12(rl) −8(fp) −8(fp)、$1O ovab ovl L21:moval ub13 shl dd12 dd13 172(sp)、sp $2.−12(fP) 172(fp)、r。
$1.−12(fp)、rl $4.rl、rl rl、r。
rl、20(rO)、ro $4.−12(fp)、r2 r2.rl ro、 16 (rl) 12(fp) 12(fp)、$10
【図面の簡単な説明】
第1a図はシェーデッド及びアンシェーデッド領域を識
別するためにソースコードをコンパイルする方法を説明
するための流れ図; 第1b図はコードをリオーダする工程を説明するための
流れ図; 第2図は本発明による並列処理システムを示すブロック
図; 第3図は並列プロセッサ同期化回路の一例を示すブロッ
ク図; 第4図は第3図の回路の状態図; 第5図は第3図の回路における整合回路の一例を示す詳
細図である。 201、202.203.204・・・並列プロセッサ
205、206.207.208・・・命令メモリ20
9・・・データメモリ 210、211.212.213八・・・バリヤユニ・
ント213、214.215.216・・・実行ユニッ
ト301・・・命令レジスタ 303・・・マクスレジスタ 304・・・整合回路 305・・・状態マシン 328・・・実行ユニット 504、505.506・・・ORゲー507・・・A
NDゲート ト

Claims (1)

  1. 【特許請求の範囲】 1、a、複数個の並列プロセッサ;及び b、前記プロセッサの内の少なくとも1つが、他の少な
    くとも1つのプロセッサとの同期化を持っている間に少
    なくとも1つの非アイドリング命令を実行するように前
    記複数のプロセッサを同期化させる手段; を具えていることを特徴とする並列処理シ ステム。 2、複数個の他の並列プロセッサを含み、複数の並列命
    令ストリームとしてのコンピュータコードを実行する並
    列処理システムの一部を成す1つの並列プロセッサを同
    期化する装置が: a、前記他のプロセッサの内の少なくとも1つと通信す
    る手段;及び b、前記1つのプロセッサが、前記他の少なくとも1つ
    のプロセッサとの同期化を持っている間に少なくとも1
    つの非アイドリング命令を実行するように、前記複数個
    の他のプロセッサから受信した情報に基き、且つ各命令
    ストリームに基いて前記1つのプロセッサを制御する制
    御手段; を具えていることを特徴とする並列プロセ ッサ同期化装置。 3、a、前記通信手段が: i、他のプロセッサが同期化を望んでいる 旨の受了指示をこれら他のプロセッサから受信するため
    の入力手段;及び ii、各プロセッサが同期化を望んでいる旨の発送指示
    を他のプロセッサに送出するための出力手段; を具え; b、前記制御手段が: i、前記命令ストリームの内のそれぞれ1 つの命令ストリームにおけるシェーデッド及びアンシェ
    ーデッド領域を識別するための識別手段;及び ii、前記シェーデッド及びアンシェーデッド領域の識
    別結果に応答し、且つ前記受了指示に応答して、他のプ
    ロセッサが、それらの各当面のシェーデッド領域の直前
    における全ての命令を実行し終るでは各プロセッサが当
    面のシェーデッド領域の直後の各命令を実行しないよう
    に前記命令ストリームの内の各1つの命令の実行を制御
    するための実行制御手段; を具え、該実行制御手段を前記入力及び出 力手段に結合させたことを特徴とする請求項2に記載の
    装置。 4、並列命令ストリームの数に応じて前記他のプロセッ
    サの内の第2の少なくとも1つのプロセッサを無視する
    ための無視手段も具えていることを特徴とする請求項2
    に記載の装置。 5、前記無視手段がマスクレジスタを具えていることを
    特徴とする請求項4に記載の装置。 6、並列命令ストリームの数に応じて前記並列プロセッ
    サの内の少なくとも2つのプロセッサを無視して、これ
    ら少なくとも2つのプロセッサを独立して同期させるよ
    うにする手段も具えていることを特徴とする請求項2に
    記載の装置。 7、前記実行制御手段を状態マシンとすることを特徴と
    する請求項3に記載の装置。 8、前記状態マシンが: a、前記入力手段に結合され、前記受了指示を受信する
    ための同期化所望入力端子; b、前記シェーデッド及びアンシェーデッド領域を識別
    する信号を受信するための第2入力端子; c、前記出力手段に結合され、前記発送指示を供給する
    ための第1出力端子; d、各プロセッサの実行制御手段に結合され、停止状態
    では各プロセッサの実行を停止させるも、それ以外では
    各プロセッサを作動させることのできる信号を供給する
    ための実行停止用出力端子; を具えていることを特徴とする請求項7に 記載の装置。 9、前記状態マシンがつぎの4つの状態、即ちa、プロ
    セッサがアンシェーデッド領域における命令を実行する
    第1状態; b、他のプロセッサがそれぞれ各自のシェーデッド領域
    に達するのを待っている間にプロセッサがシェーデッド
    領域の命令を実行する第2状態; c、他のプロセッサがそれぞれ各自のシェーデッド領域
    に達した際にプロセッサが該シェーデッド領域の命令を
    実行する第3状態;及び d、プロセッサがシェーデッド領域の終りに達して停止
    し、且つ他のプロセッサがそれぞれ各自のシェーデッド
    領域に達するのを待っている第4状態; を有することを特徴とする請求項8に記載 の装置。 10、並列命令ストリームの数に応じて前記他のプロセ
    ッサの内の少なくとも1つを無視するためのマスクレジ
    スタも具え、且つ前記実行制御手段を状態マシンとし、
    該状態マシンが:a、前記入力手段に結合され、前記受
    了指示を受信するための同期化所望入力端子; b、前記シェーデッド及びアンシェーデッド領域を識別
    する信号を受信するための第2入力端子; c、前記出力手段に結合され、前記発送指示を供給する
    ための第1出力端子; d、各プロセッサの実行制御手段に結合され、停止状態
    では各プロセッサの実行を停止させるも、それ以外では
    各プロセッサを作動させることのできる信号を供給する
    ための実行停止用出力端子; を具えていることを特徴とする請求項3に 記載の装置。 11、並列処理システムの効率を改善するためにコンピ
    ュータコードをコンパイルする方法が:a、並列処理シ
    ステムの各プロセッサにて並列に実行させることのでき
    るコードの複数部分を識別する第1識別工程と; b、前記複数部分の少なくとも1つにおける字句的にフ
    ォワードか、ループ繰上げ従属性を有する少なくとも1
    つの命令をマークする工程;及び c、前記少なくとも1つの部分におけるシェーデッド及
    びアンシェーデッド領域を識別する第2識別工程; を具えていることを特徴とするコンピュー タコードコンパイル方法。 12、a、前記複数部分から中間コードを生成する工程
    ;及び b、言語をアセンブルするために中間コードを変換する
    工程; も具えていることを特徴とする請求項11に記載の方法
    。 13、アンシェーデッド領域の大きさを縮小するように
    前記複数部分におけるコードをリオーダする工程も具え
    ていることを特徴とする請求項11に記載の方法。 14、前記第2識別工程が: a、字句的にフォワード又はループ繰上げ従属性を有す
    る第1命令を前記少なくとも1つの部分に位置付ける第
    1位置付け工程; b、字句的にフォワード又はループ繰上げ従属性を有す
    る最終命令を前記少なくとも1つの部分に位置付ける第
    2位置付け工程; c、前記従属性を有する前記第1と最終命令との間の全
    ての命令をアンシェーデッドとして指定する指定工程;
    及び d、前記複数部分における他の全ての命令をシェーデッ
    ドとして指定する指定工程; を具えていることを特徴とする請求項11に記載の方法
    。 15、並列処理システムの効率を改善するためにコンピ
    ュータコードをコンパイルする方法が:a、並列処理シ
    ステムの各プロセッサにて並列に実行させることのでき
    るコードの複数部分を識別する第1識別工程と; b、前記複数部分の少なくとも1つにおける字句的にフ
    ォワードか、ループ繰上げ従属性を有する少なくとも1
    つの命令をマークする工程;及び c、前記少なくとも1つの部分におけるシェーデッド及
    びアンシェーデッド領域を識別する第2識別工程; を具え、該第2識別工程が: i、字句的にフォワード又はループ繰上げ 従属性を有する第1命令を前記少なくとも1つの部分に
    位置付ける第1位置付け工程; ii、字句的にフォワード又はループ繰上げ従属性を有
    する最終命令を前記少なくとも1つの部分に位置付ける
    第2位置付け工程; iii、前記従属性を有する前記第1と最終命令との間
    の全ての命令をアンシェーデッドとして指定する指定工
    程;及び iv、前記複数部分における他の全ての命令をシェーデ
    ッドとして指定する指定工程; を具えていることを特徴とするコンピュー タコードコンパイル方法。 16、a、前記複数部分から中間コードを生成する工程
    ;及び b、言語をアセンブルするために中間コードを変換する
    工程; も具えていることを特徴とする請求項15に記載の方法
    。 17、a、それぞれがシェーデッド及びアンシェーデッ
    ド領域を含む少なくとも2つの各並列命令ストリームの
    形態の関連するコンピュータコードを少なくとも2つの
    プロセッサで実行させる工程;及び b、少なくとも2つのプロセッサがいずれもそれらの各
    対応するシェーデッド領域に先行しているアンシェーデ
    ッド領域におけるすべての命令を実行し終るまでは、前
    記少なくとも2つのプロセッサがそれらの各シェーデッ
    ド領域に後続する命令を実行しないように前記少なくと
    も2つのプロセッサを制御する工程; を具えていることを特徴とする複数の並列 プロセッサ同期化方法。 18、並列命令ストリームを実行する並列プロセッサを
    同期化する方法が、前記各並列ストリームにファジィバ
    リヤを設定する工程を具えていることを特徴とするプロ
    セッサ同期化方法。
JP1198085A 1988-08-02 1989-08-01 並列処理システム及び並列プロセッサの同期方法 Expired - Lifetime JP2947356B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US22727688A 1988-08-02 1988-08-02
US227276 1988-08-02

Publications (2)

Publication Number Publication Date
JPH02110763A true JPH02110763A (ja) 1990-04-23
JP2947356B2 JP2947356B2 (ja) 1999-09-13

Family

ID=22852477

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1198085A Expired - Lifetime JP2947356B2 (ja) 1988-08-02 1989-08-01 並列処理システム及び並列プロセッサの同期方法

Country Status (4)

Country Link
US (2) US5802374A (ja)
EP (1) EP0353819B1 (ja)
JP (1) JP2947356B2 (ja)
DE (1) DE68927946T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781775A (en) * 1995-10-27 1998-07-14 Fujitsu Ltd. Parallel process scheduling method in a parallel computer and a processing apparatus for a parallel computer

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4019040A1 (de) * 1990-06-14 1991-12-19 Philips Patentverwaltung Multirechnersystem
JPH04184556A (ja) * 1990-11-20 1992-07-01 Mitsubishi Electric Corp 多重処理システムおよび多重処理システムの同期制御方法
US5434995A (en) * 1993-12-10 1995-07-18 Cray Research, Inc. Barrier synchronization for distributed memory massively parallel processing systems
US5721921A (en) * 1995-05-25 1998-02-24 Cray Research, Inc. Barrier and eureka synchronization architecture for multiprocessors
US6055618A (en) * 1995-10-31 2000-04-25 Cray Research, Inc. Virtual maintenance network in multiprocessing system having a non-flow controlled virtual maintenance channel
US5864738A (en) * 1996-03-13 1999-01-26 Cray Research, Inc. Massively parallel processing system using two data paths: one connecting router circuit to the interconnect network and the other connecting router circuit to I/O controller
JP2882475B2 (ja) * 1996-07-12 1999-04-12 日本電気株式会社 スレッド実行方法
EP0825506B1 (en) 1996-08-20 2013-03-06 Invensys Systems, Inc. Methods and apparatus for remote process control
JPH10149285A (ja) * 1996-11-18 1998-06-02 Hitachi Ltd 命令実行制御方法および情報処理装置
US6295601B1 (en) * 1997-05-30 2001-09-25 Sun Micro Systems, Inc. System and method using partial trap barrier instruction to provide trap barrier class-based selective stall of instruction processing pipeline
US6044206A (en) * 1997-10-14 2000-03-28 C-Cube Microsystems Out of order instruction processing using dual memory banks
US6101181A (en) * 1997-11-17 2000-08-08 Cray Research Inc. Virtual channel assignment in large torus systems
US6230252B1 (en) 1997-11-17 2001-05-08 Silicon Graphics, Inc. Hybrid hypercube/torus architecture
US5970232A (en) * 1997-11-17 1999-10-19 Cray Research, Inc. Router table lookup mechanism
JPH11259437A (ja) * 1998-03-12 1999-09-24 Hitachi Ltd 不要バリア命令の削減方式
US6216174B1 (en) 1998-09-29 2001-04-10 Silicon Graphics, Inc. System and method for fast barrier synchronization
JP2000132529A (ja) * 1998-10-23 2000-05-12 Sony Corp 並列処理装置、並列処理方法および記録媒体
AU5273100A (en) 1999-05-17 2000-12-05 Foxboro Company, The Methods and apparatus for control configuration with versioning, security, composite blocks, edit selection, object swapping, formulaic values and other aspects
US7089530B1 (en) 1999-05-17 2006-08-08 Invensys Systems, Inc. Process control configuration system with connection validation and configuration
US7043728B1 (en) * 1999-06-08 2006-05-09 Invensys Systems, Inc. Methods and apparatus for fault-detecting and fault-tolerant process control
US6788980B1 (en) 1999-06-11 2004-09-07 Invensys Systems, Inc. Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network
US6507947B1 (en) * 1999-08-20 2003-01-14 Hewlett-Packard Company Programmatic synthesis of processor element arrays
US6374403B1 (en) * 1999-08-20 2002-04-16 Hewlett-Packard Company Programmatic method for reducing cost of control in parallel processes
US6438747B1 (en) * 1999-08-20 2002-08-20 Hewlett-Packard Company Programmatic iteration scheduling for parallel processors
US6674720B1 (en) 1999-09-29 2004-01-06 Silicon Graphics, Inc. Age-based network arbitration system and method
US6751698B1 (en) * 1999-09-29 2004-06-15 Silicon Graphics, Inc. Multiprocessor node controller circuit and method
US6473660B1 (en) 1999-12-03 2002-10-29 The Foxboro Company Process control system and method with automatic fault avoidance
US6766437B1 (en) * 2000-02-28 2004-07-20 International Business Machines Corporation Composite uniprocessor
US6963967B1 (en) * 2000-06-06 2005-11-08 International Business Machines Corporation System and method for enabling weak consistent storage advantage to a firmly consistent storage architecture
US8949468B2 (en) 2001-09-21 2015-02-03 International Business Machines Corporation Method and system for time synchronization among systems using parallel sysplex links
US7346898B2 (en) * 2002-01-29 2008-03-18 Texas Instruments Incorporated Method for scheduling processors and coprocessors with bit-masking
JP2004088505A (ja) * 2002-08-27 2004-03-18 Matsushita Electric Ind Co Ltd 並列ストリーム暗復号装置及びその方法並びに並列ストリーム暗復号プログラム
US7577816B2 (en) 2003-08-18 2009-08-18 Cray Inc. Remote translation mechanism for a multinode system
US8307194B1 (en) 2003-08-18 2012-11-06 Cray Inc. Relaxed memory consistency model
US7334110B1 (en) 2003-08-18 2008-02-19 Cray Inc. Decoupled scalar/vector computer architecture system and method
US7437521B1 (en) 2003-08-18 2008-10-14 Cray Inc. Multistream processing memory-and barrier-synchronization method and apparatus
US7421565B1 (en) 2003-08-18 2008-09-02 Cray Inc. Method and apparatus for indirectly addressed vector load-add -store across multi-processors
US7735088B1 (en) 2003-08-18 2010-06-08 Cray Inc. Scheduling synchronization of programs running as streams on multiple processors
US7379424B1 (en) 2003-08-18 2008-05-27 Cray Inc. Systems and methods for routing packets in multiprocessor computer systems
US7366873B1 (en) 2003-08-18 2008-04-29 Cray, Inc. Indirectly addressed vector load-operate-store method and apparatus
US7743223B2 (en) 2003-08-18 2010-06-22 Cray Inc. Decoupling of write address from its associated write data in a store to a shared memory in a multiprocessor system
US7761923B2 (en) 2004-03-01 2010-07-20 Invensys Systems, Inc. Process control methods and apparatus for intrusion detection, protection and network hardening
US7324112B1 (en) 2004-04-12 2008-01-29 Nvidia Corporation System and method for processing divergent samples in a programmable graphics processing unit
US7477255B1 (en) * 2004-04-12 2009-01-13 Nvidia Corporation System and method for synchronizing divergent samples in a programmable graphics processing unit
US8271993B2 (en) * 2005-03-04 2012-09-18 Hewlett-Packard Development Company, L.P. Method and apparatus for facilitating pipeline throughput
US7478769B1 (en) 2005-03-09 2009-01-20 Cray Inc. Method and apparatus for cooling electronic components
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 株式会社ソニー・コンピュータエンタテインメント コマンド実行制御装置、コマンド実行指示装置およびコマンド実行制御方法
US7770170B2 (en) * 2005-07-12 2010-08-03 Microsoft Corporation Blocking local sense synchronization barrier
GB0524720D0 (en) * 2005-12-05 2006-01-11 Imec Inter Uni Micro Electr Ultra low power ASIP architecture II
WO2007123753A2 (en) 2006-03-30 2007-11-01 Invensys Systems, Inc. Digital data processing apparatus and methods for improving plant performance
US20080005357A1 (en) * 2006-06-30 2008-01-03 Microsoft Corporation Synchronizing dataflow computations, particularly in multi-processor setting
GB0613289D0 (en) * 2006-07-04 2006-08-16 Imagination Tech Ltd Synchronisation of execution threads on a multi-threaded processor
JP2008097498A (ja) * 2006-10-16 2008-04-24 Olympus Corp プロセッシング・エレメント、コントロール・ユニット、及びこれらを備える処理システム、分散処理方法
US8108845B2 (en) * 2007-02-14 2012-01-31 The Mathworks, Inc. Parallel programming computing system to dynamically allocate program portions
US7865778B2 (en) * 2007-02-20 2011-01-04 International Business Machines Corporation Method and system for detecting synchronization errors in programs
CN102124432B (zh) 2008-06-20 2014-11-26 因文西斯系统公司 对用于过程控制的实际和仿真设施进行交互的系统和方法
JP2010033555A (ja) * 2008-06-30 2010-02-12 Olympus Corp コントロール・ユニット、分散処理システム及び分散処理方法
US20100281469A1 (en) * 2009-04-30 2010-11-04 Nec Laboratories America, Inc. Symbolic predictive analysis for concurrent programs
US8463964B2 (en) 2009-05-29 2013-06-11 Invensys Systems, Inc. Methods and apparatus for control configuration with enhanced change-tracking
US8127060B2 (en) 2009-05-29 2012-02-28 Invensys Systems, Inc Methods and apparatus for control configuration with control objects that are fieldbus protocol-aware
US10057333B2 (en) 2009-12-10 2018-08-21 Royal Bank Of Canada Coordinated processing of data by networked computing resources
US9940670B2 (en) 2009-12-10 2018-04-10 Royal Bank Of Canada Synchronized processing of data by networked computing resources
US9979589B2 (en) 2009-12-10 2018-05-22 Royal Bank Of Canada Coordinated processing of data by networked computing resources
US9959572B2 (en) 2009-12-10 2018-05-01 Royal Bank Of Canada Coordinated processing of data by networked computing resources
SG10201704581VA (en) 2009-12-10 2017-07-28 Royal Bank Of Canada Synchronized processing of data by networked computing resources
US9952620B2 (en) * 2014-04-10 2018-04-24 Intel Corporation Time-synchronizing a group of nodes
DE102017209697A1 (de) * 2016-06-13 2017-12-14 Denso Corporation Parallelisierungsverfahren, Parallelisierungswerkzeug und fahrzeuginterne Vorrichtung

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4295193A (en) * 1979-06-29 1981-10-13 International Business Machines Corporation Machine for multiple instruction execution
US4412303A (en) * 1979-11-26 1983-10-25 Burroughs Corporation Array processor architecture
JPS6043535B2 (ja) * 1979-12-29 1985-09-28 富士通株式会社 情報処理装置
US4435758A (en) * 1980-03-10 1984-03-06 International Business Machines Corporation Method for conditional branch execution in SIMD vector processors
US4468736A (en) * 1982-06-08 1984-08-28 Burroughs Corporation Mechanism for creating dependency free code for multiple processing elements
US4667290A (en) * 1984-09-10 1987-05-19 501 Philon, Inc. Compilers using a universal intermediate language
JPS6224366A (ja) * 1985-07-03 1987-02-02 Hitachi Ltd ベクトル処理装置
US5021945A (en) * 1985-10-31 1991-06-04 Mcc Development, Ltd. Parallel processor system for processing natural concurrencies and method therefor
JPS6337431A (ja) * 1986-08-01 1988-02-18 Hitachi Ltd 並列処理制御方法
JPH0795274B2 (ja) * 1986-09-19 1995-10-11 株式会社日立製作所 配列添字解析方法
JPH0814817B2 (ja) * 1986-10-09 1996-02-14 株式会社日立製作所 自動ベクトル化方法
US4965724A (en) * 1987-03-05 1990-10-23 Oki Electric Industry Co., Ltd. Compiler system using reordering of microoperations to eliminate interlocked instructions for pipelined processing of assembler source program
JPH01108638A (ja) * 1987-10-21 1989-04-25 Hitachi Ltd 並列化コンパイル方式
JP2738692B2 (ja) * 1988-01-29 1998-04-08 株式会社日立製作所 並列化コンパイル方法
US4989131A (en) * 1988-07-26 1991-01-29 International Business Machines Corporation Technique for parallel synchronization
JPH0630094B2 (ja) * 1989-03-13 1994-04-20 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチプロセツサ・システム
US5127092A (en) * 1989-06-15 1992-06-30 North American Philips Corp. Apparatus and method for collective branching in a multiple instruction stream multiprocessor where any of the parallel processors is scheduled to evaluate the branching condition
US5317734A (en) * 1989-08-29 1994-05-31 North American Philips Corporation Method of synchronizing parallel processors employing channels and compiling method minimizing cross-processor data dependencies
JPH03119416A (ja) * 1989-10-03 1991-05-21 Toshiba Corp コンピュータシステム
US5119495A (en) * 1989-12-21 1992-06-02 Bull Hn Information Systems Inc. Minimizing hardware pipeline breaks using software scheduling techniques during compilation
JPH04211830A (ja) * 1990-02-05 1992-08-03 Matsushita Electric Ind Co Ltd 並列化コンパイル方式
US5261067A (en) * 1990-04-17 1993-11-09 North American Philips Corp. Method and apparatus for providing synchronized data cache operation for processors in a parallel processing system
JP3032031B2 (ja) * 1991-04-05 2000-04-10 株式会社東芝 ループ最適化方法及び装置
US5434995A (en) * 1993-12-10 1995-07-18 Cray Research, Inc. Barrier synchronization for distributed memory massively parallel processing systems

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781775A (en) * 1995-10-27 1998-07-14 Fujitsu Ltd. Parallel process scheduling method in a parallel computer and a processing apparatus for a parallel computer

Also Published As

Publication number Publication date
JP2947356B2 (ja) 1999-09-13
US5787272A (en) 1998-07-28
DE68927946T2 (de) 1997-10-16
US5802374A (en) 1998-09-01
EP0353819A3 (en) 1991-07-17
EP0353819A2 (en) 1990-02-07
DE68927946D1 (de) 1997-05-15
EP0353819B1 (en) 1997-04-09

Similar Documents

Publication Publication Date Title
JPH02110763A (ja) 並列処理システム及び並列プロセッサの同期方法
US7523293B2 (en) Spawn-join instruction set architecture for providing explicit multithreading
JP3032031B2 (ja) ループ最適化方法及び装置
EP0623875B1 (en) Multi-processor computer system having process-independent communication register addressing
JP2966892B2 (ja) デジタル処理装置および直列命令コードをコンパイルする方法
JP2980178B2 (ja) 並列プロセッサで処理する並列な命令ストリームを同期させる方法
US7725696B1 (en) Method and apparatus for modulo scheduled loop execution in a processor architecture
US6658451B1 (en) Parallel join operation to support space and time dimensional program execution
EP0241946A2 (en) Information processing system
US8032873B2 (en) Computer program code size partitioning system for multiple memory multi-processing systems
WO1998043193A9 (en) Spawn-join instruction set architecture for providing explicit multithreading
JPH0256640A (ja) 共通ブロックへのアクセス競合軽減方法
Su et al. Automatic generation of fast BLAS3-GEMM: A portable compiler approach
US7000091B2 (en) System and method for independent branching in systems with plural processing elements
US5274793A (en) Automatic logic generation method for pipeline processor
Gupta et al. High speed synchronization of processors using fuzzy barriers
JPH04263323A (ja) 機械語命令列並べ換え方式
Baudisch et al. Multithreaded Code from Synchronous Programs: Generating Software Pipelines for OpenMP.
Ku et al. Synthesis of asics with hercules and hebe
JPH09237186A (ja) ループ制御装置およびプロセッサ
JPH03172958A (ja) 同期処理方法および並列処理システムおよび並列処理方法および並列化プログラム生成装置
JP2002041283A (ja) サブパイプライン変換構造、及びバイナリの互換性を持たせる方法
Kafka An assembly source level global compacter for digital signal processors
US20210271484A1 (en) Thread weave for cross-instruction set architecture procedure calls
JP3511935B2 (ja) マルチスレッド・プログラムにおけるファイル書込方式

Legal Events

Date Code Title Description
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070702

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080702

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080702

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080702

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080702

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090702

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100702

Year of fee payment: 11

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100702

Year of fee payment: 11