JPH02132545A - 並列計算機およびそのためのコンパイル方法 - Google Patents

並列計算機およびそのためのコンパイル方法

Info

Publication number
JPH02132545A
JPH02132545A JP63285650A JP28565088A JPH02132545A JP H02132545 A JPH02132545 A JP H02132545A JP 63285650 A JP63285650 A JP 63285650A JP 28565088 A JP28565088 A JP 28565088A JP H02132545 A JPH02132545 A JP H02132545A
Authority
JP
Japan
Prior art keywords
parallel computer
instruction
program
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
Application number
JP63285650A
Other languages
English (en)
Inventor
Teruo Tanaka
輝雄 田中
Shigeo Nagashima
長島 重夫
Koichiro Omoda
面田 耕一郎
Junji Nakakoshi
中越 順二
Naoki Hamanaka
濱中 直樹
Kazuo Oshima
尾島 和郎
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 JP63285650A priority Critical patent/JPH02132545A/ja
Publication of JPH02132545A publication Critical patent/JPH02132545A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は個々のプロセッサがそれぞれ命令を解読し実行
する並列計算機における)1f列処理用プログラムのデ
バック手法に関する. 〔従来の技術〕 逐次処理計算機上でのプログラムのデバックのために,
ハードウエアあるいはソフトウエアとしていろいろな手
法が考えられてきた。
一方,競列計算機,特に特開昭61−182361で示
されるように,並列計算機を構成する個々のプロセッサ
がそれぞれ命令を解読し実行する,いわゆるMIMD型
の並列計算機においては、プロセッサごとのプログラム
のデバックあるいはプロセッサ間のデータ転送や同期処
理のためのセマフオなどを静的にチェックしているにす
ぎなかった.〔発明が解決しようとする課題〕 」二記従来技術では、PE間でデータ転送を行う並列計
算機において,各PE毎の動的な動作に対するバグを排
除することができなかった。
たとえば、2つのPE間でデータ転送を行いながら並列
処理を実行する第3図に示すような例を考えてみる.図
中,40ないし45はPE#1のプログラムであり、4
Gないし51はPE#2のプログラムである。このプロ
グラムでは.PE間のデータ転送方式は特開昭60−1
82361号で示されているようなメッセージ通信方式
(つまり、送信側PEでは送り先PE番号,転送データ
および転送データを識別するための識別子をオペランド
とする送信命令を用いて転送データと識別子を受信側P
E内の一時格納領域に保持する。一方、受信側PEでは
受信すべきデータの識別子をオペランドとする受信命令
を用いて一時格納領域を検索し.所望の受信データを得
る)を仮定する。
第2図の例において、2台のPEが同一の速度で同一の
命令を実行する場合は見かけ上正しくプログラムを実行
できる。しかし、もし何かの要因により、どちらかのP
Eの実行が遅れた場合、プログラムが正しく終了しなく
なる。たとえば、PE#2が第i回目のループ処理の実
行文48を実行したあと実行文49の実行までに時間を
生じたとする。一方、PE#1は第i回目のループ処理
を行い(すてにPE#2の実行文48が実行されている
ので、実行文43を実行することができる)、第j+1
.回目ループ処理の実行文42を実行したとする。この
場合,PE#2の一時格納領域上で同じ識別子Keya
が割当てられた2つの送信データA(τ)およびA (
I+1)が保持されることになり、その後、PE#2が
第i回目のループ処理の実行文49を実行した場合,受
信データの識別ができなくなる。
このように、並列計算機においてそれぞれのPEが独立
に命令を実行する場合,各PEの命令の実行速度により
、バグが見つかる場合がある。
このようなバグを発見するデバック手法が必要となる. 〔lK題を解決するための手段〕 上記目的を達成するためには,デバック時におぃて,一
部の要素プロセッサ(PE)の性能(つまり,命令の実
行速度)と他のPEの性能との関係を変更することによ
り、バグ発見の一助とすることができる。
その第1の実現方法として、ホストプロセッサからある
いは人手により性能(命令の実行速度)?変更するPE
が指定する第1の手段と,その第1の手段で指定された
PEの命令解読ピッチを低下させる第2の手段を設けた
並列計算機を実現する。
第2の実現方法として、ホストプロセッサからあるいは
人手により性能を変更するPEを指定する第1の手段と
、その第1の手段で指定されたPEのマイクロプログラ
ムの実行ピッチを低下させる第2の手段を設けた並列計
算機を実現する。
第3の実現方法として,ホストプロセッサからあるいは
人手により,性能を変更するPEを指定する第1の手段
と、その第1の手段で指定されたPEに分配されたクロ
ック信号のクロック幅を広げる第2の手段を設けた並列
計箕機を実現する。
第4の実現方法として、もし,デバック時にプログラム
を再コンパイルすることが可能であるならば、コンパイ
ラによって、性能を変更するPEで実行すべきプログラ
ムの目的プログラム中の各命令の間に、他の命令に影響
を与えない,いわゆるNo Operation命令を
挿入する手段を設けることにより達成される。
〔作用〕
一部の要素プロセッサ(PE)の性能を変更することに
より、動的にPE間での状態を変更することが可能とな
り、PEltlTのデータ転送あるいは順序制御に関す
るバグを発見する一助となる.また,PEの性能を変更
する手段としては,命令解読ピッチの変更,動作クロッ
クの変更あるいは命令間へのNo Operation
命令の挿入などを行うので、本来の命令の実行に影響を
与えない.〔実施例〕 以下,本発明の第1の実施例を第1図により説明する。
図中,1はホストプロセッサ,2は任意のPE間でデー
タ転送可能な相互結合ネットワーク、3一1ないし3−
3は要素プロセッサ(以下、PEと略す)、4は命令解
読部,5は演算処理部,6は通信部,7はローカルメモ
リ、8は自PE番号を保持するレジスタ、9は比較回路
、10はNOP(No Operation命令)挿入
回路、11は命令バッファ、12はNOP命令を保持す
るレジスタ、13はデコーダ,14はセレクタをそれぞ
れあらわす。
まず.PEの動作をPE13−1を用いて説明する。P
E13−1はローカルメモリ7上に保持されている命令
列を命令解読部4で逐次解読し,演算処理部5で実行す
る。通信部6は相互ネットワーク2と接続され、他PE
との間でデータのやりとりを行う。
一部のPEの性能(命令の実行速度)を変更するために
,まず性能を変更すべきプロセッサ番号をホストプロセ
ッサから線Q20を介して各PEに伝える.各PEは命
令解読部内のレジスタ8に保持した自PE番号とホスト
プロセッサから送られできたPE番号を比較し,一致す
るならばNOP挿入回路10を起動する。NOP挿入回
路10は1命令おきにNOP命令をデコーダに送るよう
に、セレクタ14を切りかえる。
NOP挿入回路10の詳細を第2図に示す。図中15は
レジスタ、16はAND回路、17はIBII (第1
図)内の次実行命令アドレスを保持するレジスタ17で
ある, 15は状態を保持するレジスタで,自PEが命令列中に
NOP命令挿入の対象PEの場合、レジスタ15の出力
をAND回路16、線Q24を介して、セレクタ14(
第1図)に送り,デコーダ13(第1図)に送る命令を
IBII (第1図)から得るかNOP命令保持レジス
タ12(第1図)から得るかを決定する。
また、レジスタ17には、デコーダ13(第1図)で得
られた次命令アドレスを線Q22を介して一時保持し、
線Q23を介してIBII (第1図)に転送する. したがって,命令解読部4−1では、通常の命令中にN
OP命令を挿入しデコードすることになり,他のPEに
比べて相対的に性能を低下させることができる。
NOP命令の挿入率は、本実施例では1命令おきとした
が、NOP挿入回路10内の状態レジスタ15の実現法
により、いろいろなパターンを実現することができる。
NOP命令を挿入するPEの決定法は、ホストプロセッ
サからのPE番号の指定としたが,2台以上のPEの集
合を指定するように変更することもできる. また、指定元をホストプロセッサでなく、各PEごとに
人手で行うことも考えられる。
第1の実施例では、NOP挿入回路を用いて、通常の命
令間にNOP命令を挿入することとしたが、NOP挿入
回路のかわりに、命令の解読を毎サイクル行なわないよ
うにする命令解読抑IE回路(たとえば1命令おきに命
令解読を行う)を設けることによっても実現することが
できる.この実施例を第4図に示す。第4図において第
1図と同一の番号は同じ機能を有することを示している
。この実施例では新しく命令解読抑止回路18を設けた
.この回路は、線Q21を介して、命令解読を数サイク
ルおきにすることを指定された場合、サイクルごとに線
Q25を介してデコーダ13を抑止する。この抑止の間
隔はインクリメント回路19とレジスタ15によって決
定される.さらに、別の実現手段として各PEの制御を
行っているマイクロプログラムにNo Operati
onフィールドを設け、指定されたPEの各マイクロプ
ログラムの実行ステップにおいて,このNoOpera
tionのフィールドを実行し、マイクロプログラムの
実行ピッチを落とすることによって実現することができ
る. 一部のPEの性能を低下させるまた別の方法としては、
PEに供給されるクロック幅を変更することが考えられ
る。このことはPEへのクロック入力部に遅延回路を組
み合わせることにより実現できる。
クロック幅を変更したPEは通信部6を介してクロック
幅の異なる相互結合ネットワーク2に接続することにな
るがこれは通信部6にバツファを設けることにより、異
なるクロック動作のハードウエア間でデータ転送するこ
とが可能となる.並列プログラムを再コンパイルするこ
とが許されるならば、再コンパイルの仮定において、指
定した一部のPEの性能を低下させることができる。
第4図に、本発明を適用するコンパイラの構成を示す。
図中61,62,63および68は外部記憶装置64は
構文解析部、65は中間処理部、66はコード生成部、
67はNOP命令挿入部を示す。
第4図内の構文解析部64が,ソースプログラム61(
たとえばFortran)を入力とし,これを中間語6
8に変換する。中間処理部65はこの中間語68を入力
として、最適化や並列化を行い、中間語68を変更する
。コード生成部66は中間処理部65が変形した中間語
から並列に実行されるPEごとのオブジェクトコード6
2を生成する。
NOP命令挿入部67は、指定されたPEのオブジエク
トコード62を入力とし、命令間にNOP命令を挿入す
る。この時のPE番号の指定はコンパイラに対するオプ
ション指定で行う。
これらの本実施例によれば,一部のPEの性能を他のP
Eに対して変化させることが可能となり、プロセッサ間
のデータ転送や同期処理に起因するバクの発見に対する
一助となる。
〔発明の効果〕
本発明によれば,一部のプロセッサの性能を他のプロセ
ッサと変えることができ、プロセッサ間データ転送ある
いは同期処理時に生じるプログラムのバクを発見するこ
とができる。
【図面の簡単な説明】
第1図は本発明の一実施例の並列計算機の構成レ゛、第
2図は第1図の一部であるNOP挿入回路,第3図は並
列計算機特有のバグを含む並列列理プログラムの一例,
第4図は本発明の別の実施例の並列計算機の構成図、第
5図は本発明の一実施例のコンパイラの一実施例をそれ
ぞれ示す図である.1・・・ホストプロセッサ,2・・
・相互結合ネットワーク、3−1ないし3−3・・・要
素プロセッサ(PE)、4・・・命令解読部、5・・・
演算処理部、6・・・通信部,7・・・ローカルメモリ
、10・・・NOP挿入回路、18・・・命命解読抑止
回路。 ペパゝ〜>染4% ζ一呻!寓40喝 第 Z 図

Claims (1)

  1. 【特許請求の範囲】 1、少なくとも1台のホストプロセッサと、各々にロー
    カル記憶を持ち、該ローカル記憶上のプログラムを解読
    し実行する複数台の要素プロセッサからなる並列計算機
    において、要素プロセッサごとにその性能を可変とする
    ことを特徴とする並列計算機。 2、第1項の並列計算機において、1台あるいは複数台
    の要素プロセッサを指定する第1の手段と、該第1の手
    段で指定された要素プロセッサの命令解読ピッチを低下
    させる第2の手段を持つことを特徴とする並列計算機。 3、第1項の並列計算機において、1台あるいは複数台
    の要素プロセッサを指定する第1の手段と、該第1の手
    段で指定された要素プロセッサのマイクロプログラムの
    実行ピッチを低下させる第2の手段を持つことを特徴と
    する並列計算機。 4、第1項の並列計算機において、1台あるいは複数台
    の要素プロセッサを指定する第1の手段と、該第1の手
    段で指定された要素プロセッサの動作クロックを可変に
    する第2の手段を持つことを特徴する並列計算機。 5、第2項ないし第4項のいずれか一つの並列計算機に
    おいて、第1の手段として、ホスト計算機を用いて指定
    することを特徴とする並列計算機。 6、第2項ないし第4項のいずれか一つの並列計算機に
    おいて、第1の手段として、各PE単位に人手で指定す
    ることを特徴とする並列計算機。 7、少なくとも1台のホストプロセッサと、各々にロー
    カル記憶を持ち、該ローカル記憶上のプログラムを解読
    実行する複数台の要素プロセッサからなる並列計算機に
    おいて、各要素プロセッサ上で実行するプログラムを生
    成するコンパイル方法において、ユーザが指定した要素
    プロセッサのプログラム中に他の命令に影響を与えない
    NOP(NoOperation)命令を挿入する並列
    プログラムのコンパイル方法。
JP63285650A 1988-11-14 1988-11-14 並列計算機およびそのためのコンパイル方法 Pending JPH02132545A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63285650A JPH02132545A (ja) 1988-11-14 1988-11-14 並列計算機およびそのためのコンパイル方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63285650A JPH02132545A (ja) 1988-11-14 1988-11-14 並列計算機およびそのためのコンパイル方法

Publications (1)

Publication Number Publication Date
JPH02132545A true JPH02132545A (ja) 1990-05-22

Family

ID=17694282

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63285650A Pending JPH02132545A (ja) 1988-11-14 1988-11-14 並列計算機およびそのためのコンパイル方法

Country Status (1)

Country Link
JP (1) JPH02132545A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH096645A (ja) * 1995-06-23 1997-01-10 Nec Corp マルチプロセッサシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH096645A (ja) * 1995-06-23 1997-01-10 Nec Corp マルチプロセッサシステム

Similar Documents

Publication Publication Date Title
CN109213523B (zh) 具有存储器系统性能、功率减小和原子支持特征的可配置空间加速器的处理器、方法和系统
CN109597459B (zh) 用于空间阵列中的特权配置的处理器和方法
CN109597458B (zh) 用于空间阵列中的可配置时钟门控的处理器和方法
CN109213723B (zh) 一种用于数据流图处理的处理器、方法、设备、及一种非暂时性机器可读介质
CN108268278B (zh) 具有可配置空间加速器的处理器、方法和系统
Martin The design of an asynchronous microprocessor
JP2738692B2 (ja) 並列化コンパイル方法
US5159686A (en) Multi-processor computer system having process-independent communication register addressing
US7281119B1 (en) Selective vertical and horizontal dependency resolution via split-bit propagation in a mixed-architecture system having superscalar and VLIW modes
US8495603B2 (en) Generating an executable version of an application using a distributed compiler operating on a plurality of compute nodes
US7346903B2 (en) Compiling and linking modules of a cycle-based logic design
US5201057A (en) System for extracting low level concurrency from serial instruction streams
US20060259744A1 (en) Method for information processing
May The xmos xs1 architecture
JPH0135367B2 (ja)
US4136383A (en) Microprogrammed, multipurpose processor having controllable execution speed
EP0295646B1 (en) Arithmetic operation processing apparatus of the parallel processing type and compiler which is used in this apparatus
US5307300A (en) High speed processing unit
JP5146451B2 (ja) ハードウエアエミュレーションシステムのプロセッサを同期化する方法及び装置
Shoushtary et al. Control Flow Management in Modern GPUs
JP4865960B2 (ja) データ処理装置およびその制御方法
KR950012118B1 (ko) 병렬 파이프라인 명령 처리 장치
US8171259B2 (en) Multi-cluster dynamic reconfigurable circuit for context valid processing of data by clearing received data with added context change indicative signal
US7111152B1 (en) Computer system that operates in VLIW and superscalar modes and has selectable dependency control
Kawano et al. Fine-grain multi-thread processor architecture for massively parallel processing