JPH0588912A - Multiprocessor simulator - Google Patents
Multiprocessor simulatorInfo
- Publication number
- JPH0588912A JPH0588912A JP24957491A JP24957491A JPH0588912A JP H0588912 A JPH0588912 A JP H0588912A JP 24957491 A JP24957491 A JP 24957491A JP 24957491 A JP24957491 A JP 24957491A JP H0588912 A JPH0588912 A JP H0588912A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- processors
- execution
- communication
- procedure
- 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
Links
- 238000004891 communication Methods 0.000 claims abstract description 73
- 238000004519 manufacturing process Methods 0.000 abstract 1
- 238000000034 method Methods 0.000 description 182
- 230000008569 process Effects 0.000 description 104
- 238000012545 processing Methods 0.000 description 63
- 238000010586 diagram Methods 0.000 description 40
- 230000006870 function Effects 0.000 description 29
- 238000010168 coupling process Methods 0.000 description 18
- 238000013461 design Methods 0.000 description 16
- 238000004088 simulation Methods 0.000 description 16
- 230000007246 mechanism Effects 0.000 description 13
- 238000009826 distribution Methods 0.000 description 10
- 230000008878 coupling Effects 0.000 description 5
- 238000005859 coupling reaction Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000000926 separation method Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 241000257465 Echinoidea Species 0.000 description 1
- 241000252067 Megalops atlanticus Species 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P10/00—Technologies related to metal processing
- Y02P10/25—Process efficiency
Landscapes
- Debugging And Monitoring (AREA)
- Devices For Executing Special Programs (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
【0001】[0001]
【産業上の利用分野】本発明は、複数のプロセッサを同
時に作動させるプログラムのシミュレーションを行うマ
ルチプロセッサシミュレータに関するものである。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a multiprocessor simulator for simulating a program for operating a plurality of processors simultaneously.
【0002】[0002]
【従来の技術】複数のマルチプロセッサを同時に作動さ
せるプログラムは、通常、あらかじめプロセッサの台数
およびプロセッサ間の通信網が決定されたシステムに対
して作成される。そこで、従来のマルチプロセッサシミ
ュレータは、プロセッサ毎に作成されたプログラムの正
当性の確認のためにシミュレーションを行うものであ
り、通信網を含めたシステム全体の効率を予測するため
の機能を有していなかった。2. Description of the Related Art A program for operating a plurality of multiprocessors at the same time is usually created for a system in which the number of processors and the communication network between the processors are determined in advance. Therefore, the conventional multiprocessor simulator performs a simulation for confirming the correctness of the program created for each processor, and has a function for predicting the efficiency of the entire system including the communication network. There wasn't.
【0003】[0003]
【発明が解決しようとする課題】従来のマルチプロセッ
サシミュレータは、通信網を含めたシステム全体の効率
を予測するための機能を有していなかったので、システ
ム製作前にプロセッサの台数やプログラムに適した効率
の良い通信網を選択することが困難であり、また各プロ
セッサの効率を向上させることが困難であった。Since the conventional multiprocessor simulator does not have the function of predicting the efficiency of the entire system including the communication network, it is suitable for the number of processors and programs before the system is manufactured. It was difficult to select an efficient communication network, and it was difficult to improve the efficiency of each processor.
【0004】本発明はかかる事情に鑑みて成されたもの
であり、システム製作前にプロセッサの台数やプログラ
ムに適した効率の良い通信網を選択でき、また各プロセ
ッサの効率を向上させることができるマルチプロセッサ
シミュレータを提供することを目的とする。The present invention has been made in view of the above circumstances, and an efficient communication network suitable for the number of processors and programs can be selected before the system is manufactured, and the efficiency of each processor can be improved. The purpose is to provide a multiprocessor simulator.
【0005】[0005]
【課題を解決するための手段】本発明は、プロセッサの
動作を命令サイクル単位で実行すると共にハードウエア
レベルの実行状態および通信路毎のアクセス状態の各種
時間を計測するプロセッサエミュレーション手段と、仮
想記憶と主記憶との対応をとると共にネットリストに基
づいてプロセッサ間通信の制御を行うメモリ管理手段
と、各プロセッサのソフトウェアレベルの実行時間を計
測すると共にシステムの効率を演算する並列性解析手段
とを設けたことを特徴としている。According to the present invention, a processor emulation means for executing the operation of a processor in instruction cycle units and measuring various times of a hardware level execution state and an access state for each communication path, and a virtual memory. Memory management means for controlling the inter-processor communication based on the netlist and the parallelism analysis means for measuring the software-level execution time of each processor and computing the system efficiency. The feature is that it is provided.
【0006】[0006]
【作用】プロセッサエミュレーション手段は、プロセッ
サの動作を命令サイクル単位で実行すると共にハードウ
エアレベルの実行状態および通信路毎のアクセス状態の
各種時間を計測する。メモリ管理手段は、仮想記憶と主
記憶との対応をとると共にネットリストに基づいてプロ
セッサ間通信の制御を行う。並列性解析手段は、各プロ
セッサのソフトウェアレベルの実行時間を計測すると共
にシステムの効率を演算する。The processor emulation means executes the operation of the processor in instruction cycle units and measures various times of the hardware level execution state and the access state for each communication path. The memory management means associates the virtual memory with the main memory and controls the inter-processor communication based on the netlist. The parallelism analyzing means measures the software-level execution time of each processor and calculates the efficiency of the system.
【0007】[0007]
【実施例】以下、本発明の実施例を図面を用いて詳細に
説明する。図1は本発明の一実施例におけるマルチプロ
セッサシミュレータを備えた並列処理システム設計支援
装置の概略構成図で、この並列処理システム設計支援装
置は、入力手段1と、シミュレータ2と、並列処理プロ
グラムコンパイル装置3と、マルチプロセッサシミュレ
ータ4とにより構成されている。Embodiments of the present invention will be described in detail below with reference to the drawings. FIG. 1 is a schematic configuration diagram of a parallel processing system design support apparatus including a multiprocessor simulator according to an embodiment of the present invention. The parallel processing system design support apparatus includes an input unit 1, a simulator 2, and a parallel processing program compile. It is composed of a device 3 and a multiprocessor simulator 4.
【0008】入力手段1は、入力機能と表示機能とを有
していると共に、図形表現型言語を計算機処理に有利な
テキスト型言語に自動変換する機能を有している。シミ
ュレータ2は、入力手段1を用いて入力される設計者の
指示に基づいて、入力手段1によりテキスト型言語に変
換された並列処理プログラムを実行して、文法チェック
等を行うと共に、各プロセスの実行時間等を計測するこ
とにより並列処理プログラムコンパイル装置3による機
能分割に必要なデータを生成して入力手段1に表示させ
る。さらにシミュレータ2は、入力手段1を用いて入力
される設計者の指示に基づいて、並列処理プログラムコ
ンパイル装置3により機能分割された各プロセッサ毎の
プログラムを実行して、各プロセッサの動作時間や同期
待ち時間等を計測することにより並列処理プログラムコ
ンパイル装置3による最適プロセッサ数および結合方式
の決定に必要なデータを生成すると共に入力手段1に表
示させる。The input means 1 has an input function and a display function, and also has a function of automatically converting a graphic expression type language into a text type language advantageous for computer processing. The simulator 2 executes a parallel processing program converted into a text type language by the input means 1 based on an instruction of the designer input using the input means 1 to perform grammar check and the like, and to execute each process. Data necessary for function division by the parallel processing program compiling device 3 is generated by measuring the execution time and the like, and is displayed on the input means 1. Further, the simulator 2 executes a program for each processor whose function is divided by the parallel processing program compiling device 3 based on the instruction of the designer input using the input means 1 so that the operating time and synchronization of each processor are executed. By measuring the waiting time and the like, data necessary for determining the optimum number of processors and the coupling method by the parallel processing program compiling device 3 is generated and displayed on the input means 1.
【0009】並列処理プログラムコンパイル装置3は、
入力手段1を用いて入力される設計者の指示に基づい
て、テキスト型の高水準言語で記述された並列処理プロ
グラムをコンパイルして複数のプロセッサを作動させる
ための命令コードを生成すると共に、最適なプロセッサ
の数とプロセッサ間の結合方式を決定する。マルチプロ
セッサシミュレータ4は、入力手段1を用いて入力され
る設計者の指示に基づいて、並列処理プログラムコンパ
イル装置3により生成された各プロッセッサ毎の命令コ
ードを実行し、各プロセッサやプロセッサ間の結合方式
の効率等を計測して入力手段1に表示させる。The parallel processing program compiling device 3 is
Based on a designer's instruction input using the input means 1, a parallel processing program written in a text-type high-level language is compiled to generate an instruction code for operating a plurality of processors, and the optimum. The number of different processors and the coupling scheme between the processors. The multiprocessor simulator 4 executes the instruction code of each processor generated by the parallel processing program compiling device 3 based on the instruction of the designer input using the input means 1, and connects each processor and the coupling between the processors. The efficiency of the method is measured and displayed on the input means 1.
【0010】この並列処理システム設計支援装置は、例
えばワークステーションあるいはパーソナルコンピュー
タ等により実現される。図2は並列処理プログラムコン
パイル装置3の構成図で、並列処理プログラムコンパイ
ル装置3は、機能分割手段7と、プロセッサ台数・結合
方式決定手段8と、,命令コード生成手段9とにより構
成されており、機能分割手段7は、非再帰化処理手段1
0と、剥離処理手段11と、1ループ化処理手段12と
により構成されている。This parallel processing system design support device is realized by, for example, a workstation or a personal computer. FIG. 2 is a block diagram of the parallel processing program compiling device 3. The parallel processing program compiling device 3 is composed of a function dividing means 7, a number of processors / coupling method determining means 8, and an instruction code generating means 9. The function dividing means 7 is the non-recursive processing means 1
0, peeling processing means 11, and 1-loop processing means 12.
【0011】機能分割手段7は、入力手段1によりテキ
スト型に変換された並列処理プログラムを各プロセッサ
毎のプログラムに分割する。プロセッサ台数・結合方式
決定手段8は、機能分割手段7の分割結果に基づいてプ
ロセッサの台数およびプロセッサ間の結合方式を決定
し、ネットリストを生成する。The function dividing means 7 divides the parallel processing program converted into the text type by the input means 1 into a program for each processor. The number-of-processors / coupling-method determining unit 8 determines the number of processors and the coupling method between the processors based on the division result of the function dividing unit 7, and generates a netlist.
【0012】命令コード生成手段9は、機能分割手段7
により機能分割されたプログラムをコンパイルしてプロ
セッサを駆動するための命令コードを生成する。図3は
シミュレータ2の構成図で、シミュレータ2は、コマン
ド解析手段14と、字句解析手段15と、構文解析手段
16と、実行手段17と、データ生成手段18とにより
構成されており、実行手段17は切換手段19を備えて
いる。The instruction code generating means 9 is a function dividing means 7.
The function-divided program is compiled to generate an instruction code for driving the processor. FIG. 3 is a block diagram of the simulator 2. The simulator 2 is composed of a command analysis unit 14, a lexical analysis unit 15, a syntax analysis unit 16, an execution unit 17, and a data generation unit 18, and the execution unit. 17 includes a switching means 19.
【0013】コマンド解析手段14は、入力手段1を介
して供給される設計者からの指示を解析し、シミュレー
ションを制御する。字句解析手段15は、入力手段1に
よりテキスト型に変換された並列処理プログラムあるい
は並列処理プログラムコンパイル装置3の機能分割手段
7により機能分割されたプログラムを読み込んで字句を
解読し、つづりの間違いをチェックする。The command analysis means 14 analyzes the instruction from the designer supplied via the input means 1 and controls the simulation. The lexical analysis unit 15 reads the parallel processing program converted into the text type by the input unit 1 or the program whose function is divided by the function dividing unit 7 of the parallel processing program compiling device 3, decodes the lexical token, and checks spelling errors. To do.
【0014】構文解析手段16は、字句解析手段15か
らの単語を受け取って文法を解析し、文法の間違いをチ
ェックする。実行手段17は、構文解析手段16から解
析結果を受け取り、構文に従って各種の演算処理を行
う。データ生成手段18は、プログラムの処理時間等を
計測し、プログラムの効率を予測して並列処理プログラ
ムコンパイル装置3の機能分割手段7による機能分割の
ためのデータあるいは並列処理プログラムコンパイル装
置3のプロセッサ台数・結合方式決定手段8によるプロ
セッサ台数や結合方式の決定のためのデータを生成する
と共に、その結果を入力手段1に表示させる。The syntactic analysis means 16 receives the words from the lexical analysis means 15 and analyzes the grammar to check for grammatical errors. The execution unit 17 receives the analysis result from the syntax analysis unit 16 and performs various arithmetic processes according to the syntax. The data generation means 18 measures the processing time of the program, predicts the efficiency of the program, data for function division by the function division means 7 of the parallel processing program compiling device 3, or the number of processors of the parallel processing program compiling device 3. -Generates data for determining the number of processors and the coupling method by the coupling method determining means 8 and displays the result on the input means 1.
【0015】切換手段19は、実行手段17があるプロ
セスの演算を実行中に同期待ちになり、続行条件が成立
しないときに、実行中のプロセス情報を退避させ、別の
プロセスの演算に切り換える。図4はマルチプロセッサ
シミュレータ4の構成図で、マルチプロセッサシミュレ
ータ4は、スケジューリング手段21と、プロセッサエ
ミュレーション手段22と、メモリ管理手段23と、並
列性解析手段24とにより構成されている。The switching means 19 waits for synchronization while the execution means 17 is executing an operation of a certain process, and when the continuation condition is not satisfied, saves the information of the process being executed and switches to the operation of another process. FIG. 4 is a configuration diagram of the multiprocessor simulator 4. The multiprocessor simulator 4 includes a scheduling unit 21, a processor emulation unit 22, a memory management unit 23, and a parallelism analysis unit 24.
【0016】スケジューリング手段21は、入力手段1
を介して入力される設計者の指示に基づいて、プロセッ
サの数や結合方式の種類やプロセッサのシミュレーショ
ン順位等を決定した後、並列処理プログラムコンパイル
装置3の命令コード生成手段9により生成された命令コ
ードおよびプロセッサ台数・結合方式決定手段8により
生成されたネットリストを読み込んでシミュレーション
を制御する。The scheduling means 21 is an input means 1
Instructions generated by the instruction code generation means 9 of the parallel processing program compiling device 3 after determining the number of processors, the type of coupling method, the simulation order of the processors, etc., based on the designer's instruction input via The simulation is controlled by reading the code and the number of processors / net list generated by the coupling method determination means 8.
【0017】プロセッサエミュレーション手段22は、
スケジューリング手段21により呼び出され、プロセッ
サの動作を命令サイクル単位で実行する。またこの間に
ハードウエアレベルの実行状態および通信路毎のアクセ
ス状態の各種時間を計測する。メモリ管理手段23は、
プロセッサエミュレーション手段22により呼び出さ
れ、例えば4Gバイトの仮想記憶25と例えば4Mバイ
トの主記憶26との対応をとると共に、ネットリストに
基づいてプロセッサ間通信の制御を行う。The processor emulation means 22 includes
Called by the scheduling means 21, the operation of the processor is executed in the unit of instruction cycle. During this period, various times of the hardware level execution state and the access state of each communication path are measured. The memory management means 23
Called by the processor emulation means 22, the virtual memory 25 of, for example, 4 Gbytes is associated with the main memory 26 of, for example, 4 Mbytes, and the interprocessor communication is controlled based on the netlist.
【0018】並列性解析手段24は、スケジューリング
手段21により呼び出され、各プロセッサのソフトウェ
アレベルの実行時間を計測すると共に、システムの効率
を演算し、結果を入力手段1に表示させる。次に動作を
説明する。先ず、上記並列処理システム設計支援装置を
用いた設計法の概略について述べる。The parallelism analyzing means 24 is called by the scheduling means 21, measures the software-level execution time of each processor, calculates the efficiency of the system, and displays the result on the input means 1. Next, the operation will be described. First, an outline of a design method using the above parallel processing system design support device will be described.
【0019】設計者は、並列アルゴリズムを論理的な処
理単位である手続き毎に設計する。このとき、手続きは
必ずしも物理的なプロセッサと1対1に対応していな
い。また、手続き外部との通信は引数によって表され
る。しかも、この段階では引数は他の変数と全く同様に
扱われ、引数の仕様や引数への代入に関しての同期は一
切不要である。並列処理の記述に関しては、同時に実行
する処理をまとめて1つの並列実行文として記述する。
つまり、1つの並列実行文内の処理がすべて終了される
まで自動的に同期がとられかつ実行終了段階ですべての
変数の値が更新されることを保証する並列アルゴリズム
(以下「同期化並列アルゴリズム」という)として記述
する。この記述レベルを以下PDL(Procedur
eDescription Level)という。The designer designs the parallel algorithm for each procedure which is a logical processing unit. At this time, the procedure does not necessarily have a one-to-one correspondence with the physical processor. Communication with the outside of the procedure is represented by an argument. Moreover, at this stage, the argument is treated exactly like any other variable, and synchronization regarding the specification of the argument and the assignment to the argument is completely unnecessary. With regard to the description of parallel processing, processing to be executed simultaneously is collectively described as one parallel execution statement.
In other words, a parallel algorithm that guarantees automatic synchronization until all the processing in one parallel execution statement is completed and that the values of all variables are updated at the execution end stage (hereinafter referred to as “synchronization parallel algorithm”). ")). This description level is referred to as PDL (Procedur
eDescription Level).
【0020】並列処理プログラムコンパイル装置3は、
シミュレータ2によりシミュレーションされたPDL記
述に基づいて、各プロセッサ単位の処理を設計する。先
ず、並列性を考慮して同期化並列アルゴリズムを可能な
数のプロセス(並列実行文中で呼び出され、並列実行文
を直接あるいは間接的に含まない手続き)に機能分割す
る。このとき、逐次実行されている部分は各プロセスに
そのまま複写され、並列実行文についてはできるだけプ
ロセス間の処理時間が均一になるように振り分ける。そ
して、あらかじめ一組の論理型変数を用意しておき、分
割前に並列実行文の間である条件が成立するまで処理を
ストップさせるための同期文とこれらの論理型変数への
代入文を組み合わせた通信文を発生させて、各プロセス
間の同期をとる。これらの一連の処理は、多数のプロセ
スが張り合わされた状態であったものが強制的に引き剥
がされて、別々の手続きになるようすを表していること
から、剥離処理と呼ぶ。そして、最初に実行する手続き
のみが並列実行文を含む記述(以下「並列プロセス」と
いう)に変換する。すなわち、PDL記述の段階におけ
るフローグラフが図5のようである場合、剥離処理後の
フローグラフは図6のようになる。この状態で、各プロ
セス間の処理時間および稼働率が設計仕様を満足すれ
ば、各プロセスを各々1つのプロセッサに割り付ける。
設計仕様を満足していない場合、特にプロセス間の処理
時間の格差が激しい場合は、プロセス中に1つのループ
文のみ含むように分割し、同期文を発生する。この場合
1つのループ文とは、あるループ文が他のループ文を完
全に含む構造(入れ子構造)になっていないループ文の
数である。したがって、2つのループ文が入れ子構造を
構成している場合は、1つのループ文として扱う。そし
て、処理時間が均等化されるように各プロセス間の比率
を求め、その比率にできるだけ近づくようにBerns
teinの条件を用いてプロセスを分割する。このプロ
セッサ単位の記述レベルをSDL(Structure
Description Level)と呼ぶ。もし
この段階で設計仕様を明らかに満足しない場合は、PD
L設計からやり直す必要がある。The parallel processing program compiling device 3 is
The processing for each processor is designed based on the PDL description simulated by the simulator 2. First, in consideration of parallelism, the synchronization parallel algorithm is functionally divided into a number of processes (procedures that are called in parallel execution statements and do not directly or indirectly include parallel execution statements). At this time, the portions that are sequentially executed are copied to each process as they are, and the parallel execution statements are distributed so that the processing time between the processes is as uniform as possible. Then, prepare a set of logical variables in advance, and combine a synchronization statement to stop processing until a certain condition is satisfied between parallel execution statements before splitting and an assignment statement to these logical variables. The communication message is generated to synchronize the processes. This series of processes is called a peeling process because it represents a process in which a large number of processes are stuck together and are forcibly peeled off so that separate procedures are performed. Then, only the procedure to be executed first is converted into a description including a parallel execution statement (hereinafter referred to as “parallel process”). That is, when the flow graph at the PDL description stage is as shown in FIG. 5, the flow graph after the peeling process is as shown in FIG. In this state, if the processing time between each process and the operating rate satisfy the design specifications, each process is assigned to one processor.
When the design specifications are not satisfied, particularly when there is a large difference in processing time between processes, the process is divided so that only one loop statement is included in the process, and a synchronization statement is generated. In this case, one loop statement is the number of loop statements in which one loop statement is not a structure (nested structure) that completely includes another loop statement. Therefore, when two loop statements form a nested structure, they are treated as one loop statement. Then, the ratio between the processes is calculated so that the processing times are equalized, and Berns is adjusted so as to be as close as possible to the ratio.
Divide the process using the condition of tain. The description level for each processor is set to SDL (Structure).
It is called a description level). If the design specifications are not clearly satisfied at this stage, PD
It is necessary to start over from the L design.
【0021】さらに並列処理プログラムコンパイル装置
3は、シミュレータ2によりシミュレーションされたS
DL記述に基づいて各プロセッサ間の通信状態を判断
し、通信の頻繁に行われているプロセッサ同士をすべて
結合する。しかも、通信が必要なプロセッサのうちどの
プロセッサとも通信できないプロセッサ(孤立プロセッ
サ)がないように結合し、これをネットワークとする。
そして、SDL記述をプロセッサ固有の命令コードに変
換する。また決定したネットワークを、結合するプロセ
ッサの論理番号の組からなるネットリストに変換する。
さらにネットリストから、各プロセッサが直接あるいは
間接に通信すべきプロセッサの論理番号リストをプロセ
ッサ毎に生成し、命令コード中に付加する。なお、ネッ
トワーク中で直接結合していないプロセッサ同士が通信
を行うためには、第3のプロセッサを経由して通信を行
う必要がある(間接通信)。そのために、各プロセッサ
は他の全てのプロセッサにデータを転送するために必要
な中継用プロセッサの候補を記憶する必要がある。この
段階で、再度設計仕様を検討し、これを満足しない場合
は設計のやり直しをする必要がある。ネットワークに対
して、軽度なものならば標準的なネットワークに変更す
ることも可能であるが、重度なものではPDL設計を変
更する必要がある。Further, the parallel processing program compiling device 3 is an S simulated by the simulator 2.
The communication state between the processors is determined based on the DL description, and all the processors that are frequently communicating are connected. Moreover, the processors are connected so that there is no processor (isolated processor) that cannot communicate with any of the processors that require communication, and this is used as a network.
Then, the SDL description is converted into a processor-specific instruction code. Further, the determined network is converted into a netlist including a set of logical numbers of the processors to be combined.
Further, a logical number list of processors to be directly or indirectly communicated with by each processor is generated from the netlist for each processor and added to the instruction code. In addition, in order for the processors not directly coupled in the network to communicate with each other, it is necessary to perform the communication via the third processor (indirect communication). Therefore, each processor needs to store candidates for the relay processor necessary for transferring data to all the other processors. At this stage, it is necessary to reexamine the design specifications and, if they are not satisfied, redesign. It is possible to change the network to a standard network if it is mild, but it is necessary to change the PDL design if it is severe.
【0022】次に、上記並列処理システム設計支援装置
を用いた設計法の詳細について述べる。設計者は、図形
表現型の高水準言語により記述されたPDL記述の並列
プログラムを入力手段1に入力する。これにより入力手
段1は、図形表現型の言語をテキスト型の言語に変換
し、図外の記憶手段に格納する。Next, the details of the design method using the parallel processing system design support apparatus will be described. The designer inputs into the input means 1 a parallel program of PDL description written in a graphic representation high-level language. As a result, the input unit 1 converts the graphic representation type language into a text type language and stores it in a storage unit (not shown).
【0023】次に設計者は、入力手段1に並列プログラ
ムのシミュレーションを行う旨の指示を入力する。これ
によりシミュレータ2の字句解析手段15は、図7のよ
うに、記憶手段からPDL記述の並列プログラムaを逐
次読み出し、単語を文章中から切り出して、予め記憶手
段に記憶されている記号表bからシンボルに対応した属
性を探し出した後、シンボルと属性とをシンボル・属性
リストcとして出力する。なお記号表bは、プログラム
言語の種類に応じて作成しておく。Next, the designer inputs to the input means 1 an instruction to simulate a parallel program. As a result, the lexical analysis means 15 of the simulator 2 sequentially reads out the parallel program a of PDL description from the storage means, cuts out words from the sentence, and extracts from the symbol table b stored in advance in the storage means, as shown in FIG. After finding the attribute corresponding to the symbol, the symbol and the attribute are output as a symbol / attribute list c. The symbol table b is created according to the type of programming language.
【0024】次に構文解析手段16は、図8のように、
字句解析手段15から1文単位でシンボル・属性リスト
cを受け取り、予め記憶手段に記憶されている文法規則
表dからシンボル・属性リストcに対応した文の種類を
特定し、構文解析表eを作成する。なお文法規則表d
は、プログラム言語の種類に応じて作成しておく。次に
実行手段17は、図9のように、構文解析手段16から
構文解析表eを受け取り、解析結果に従った処理を予め
記憶手段に記憶されている実行関数表fから探し出し、
実行する。このとき、処理に必要なデータを予め記憶手
段に記憶されている処理管理表gから取り出し、結果を
処理管理表gの対応する箇所に書き込む。Next, the syntactic analysis means 16, as shown in FIG.
The symbol / attribute list c is received for each sentence from the lexical analysis unit 15, the type of sentence corresponding to the symbol / attribute list c is specified from the grammar rule table d stored in the storage unit in advance, and the syntax analysis table e is obtained. create. Grammar rule table d
Is created according to the type of programming language. Next, the execution means 17, as shown in FIG. 9, receives the syntax analysis table e from the syntax analysis means 16, finds the processing according to the analysis result from the execution function table f stored in the storage means in advance,
Run. At this time, the data required for the process is taken out from the process management table g stored in advance in the storage means, and the result is written in the corresponding part of the process management table g.
【0025】一方データ生成手段18は、図10のよう
に、構文解析手段16から構文解析表eを受け取り、対
応するアセンブリコードを等価コード表hに作成して、
その等価コードの実行時間を予め記憶手段に記憶されて
いる命令コード表iとアドレッシングモード表jとを参
照しながら計算し、現在実行中のプロセスの時間表kに
実行時間を加算する。On the other hand, the data generating means 18 receives the syntactic analysis table e from the syntactic analyzing means 16 and creates the corresponding assembly code in the equivalent code table h as shown in FIG.
The execution time of the equivalent code is calculated with reference to the instruction code table i and the addressing mode table j stored in advance in the storage means, and the execution time is added to the time table k of the process currently being executed.
【0026】シミュレーションが終了すると、結果が入
力手段1に表示される。結果が仕様を満足していれば、
次の段階に進む。仕様を満足していなければ、PDL記
述の段階から設計をやり直す。次に設計者は、入力手段
1に並列プログラムをPDL記述からSDL記述に変換
する旨の指示を入力する。これにより並列処理プログラ
ムコンパイル装置3は、設計者の指示に基づいて記憶手
段から並列プログラムを逐次読み出し、機能分割手段7
により機能分割を行う。この機能分割は、PDL記述で
表された同期化並列アルゴリズムをSDL記述で表され
る並列プロセスに変換するものであって、再帰プロセス
の非再帰化処理と、剥離処理と、1ループ化処理とから
なり、以下に詳細を説明する。なお、以下の説明で用い
る用語の定義を下記表1、2に示す。When the simulation is completed, the result is displayed on the input means 1. If the results meet the specifications,
Go to the next stage. If the specifications are not satisfied, redesign from the PDL description stage. Next, the designer inputs an instruction to convert the parallel program from the PDL description to the SDL description in the input means 1. As a result, the parallel processing program compiling device 3 sequentially reads the parallel program from the storage means based on the designer's instruction, and the function dividing means 7
The function is divided by. This function division is to convert the synchronization parallel algorithm expressed in the PDL description into the parallel process expressed in the SDL description, and includes the non-recursive process of the recursive process, the separation process, and the one-loop process. The details are described below. The definitions of terms used in the following description are shown in Tables 1 and 2 below.
【0027】[0027]
【表1】 [Table 1]
【0028】[0028]
【表2】 [Table 2]
【0029】非再帰化処理手段10は、並列プログラム
中の並列実行文を含む再帰手続きである再帰プロセスを
通常の再帰手続きに変換する。すなわち再帰プロセス
は、再帰呼び出しが実行される回数分のプロセスが生成
され、これらの処理が同時に実行されるものであり、実
行するまで発生するプロセスの数が確定しないため、機
能分割を困難にすることから、機能分割を実行するに当
たり、再帰プロセスを普通の再帰手続きに変換する必要
がある。この再帰プロセスの非再帰化処理により、図1
1(A)のようなプロセスモデルが図11(B)のよう
なプロセスモデルに変換される。具体的には、下記
(1)、(2)の処理を実行する。The non-recursive processing means 10 converts a recursive process, which is a recursive procedure including parallel execution statements in a parallel program, into an ordinary recursive procedure. In other words, in the recursive process, processes are generated by the number of times the recursive call is executed, these processes are executed at the same time, and the number of processes that occur until execution is not fixed, which makes functional division difficult. Therefore, it is necessary to convert the recursive process into an ordinary recursive procedure in order to execute the function division. By the non-recursive processing of this recursive process, FIG.
The process model as shown in FIG. 1 (A) is converted into the process model as shown in FIG. 11 (B). Specifically, the following processes (1) and (2) are executed.
【0030】(1)並列実行文を含む手続きがその並列
実行文から呼び出している手続きによってさらに呼び出
されている場合、該当する全ての手続きAに対して手続
き名をA’に変えて複製をとり、並列実行文を逐次実行
文に置き換える。 (2)並列実行文中で呼び出しされているすべての手続
きに対して呼び出している手続き名をAからA’に置き
換える。(1) When a procedure including a parallel execution statement is further called by a procedure called from the parallel execution statement, copy the procedure by changing the procedure name to A'for all the corresponding procedures A. , Replace parallel execution statements with sequential execution statements. (2) Replace the procedure names called from A to A'for all the procedures called in the parallel execution statement.
【0031】剥離処理手段11は、分割処理と、同期機
構・通信プロトコルの発生処理と、被分割集合の手続き
化処理と、インライン展開処理とからなる剥離処理を行
う。分割処理は、最大の実行文を持つ並列実行文と同数
の文の集合に、各処理量が均等化されるようにmin−
max原理に基づいて処理を分割するものである。具体
的には、下記(1)〜(5)の処理を行う。The peeling process means 11 performs a peeling process including a dividing process, a synchronization mechanism / communication protocol generating process, a divided set procedural process, and an inline expanding process. The division processing is performed by min- min so that each processing amount is equalized to a set of statements having the same number as the parallel execution statement having the largest execution statement.
The processing is divided based on the max principle. Specifically, the following processes (1) to (5) are performed.
【0032】(1)変数型の分割・合成処理により、従
属型並列処理の前後に変換部を発生させる。 (2)従属型並列処理を構成するすべての並列実行文
(下記数1)を1文単位の集合(下記数2)に分割し、
この最大要素数mi を被分割手続き数とする。 (3)各文の実行時間に対するmin−max原理に基
づいて、集合(下記数2)をmi 個の集合(下記数3)
にまとめる。(1) By the variable type division / synthesis processing, a conversion unit is generated before and after the subordinate parallel processing. (2) Divide all parallel execution statements (Formula 1 below) that constitute dependent parallel processing into a set (Formula 2 below) in units of one sentence,
This maximum number of elements m i is the number of divided procedures. (3) Based on the min-max principle for the execution time of each statement, the set (Equation 2 below) is a set of m i pieces (Equation 3 below).
Put together.
【0033】(4)従属型並列処理を含んでいた実行部
をmi 個コピーし、その中に下記数3の要素を埋め込
む。 (5)各処理に対して、埋め込みが起こった基本ブロッ
ク内で他の処理に分配された変数定義が使用されている
場合は送受信用の代入文を発生させる。(4) Copy m i execution units including the subordinate parallel processing, and embed the elements of the following expression 3 therein. (5) For each process, if a variable definition distributed to another process is used in the basic block in which embedding has occurred, an assignment statement for transmission / reception is generated.
【0034】[0034]
【数1】 [Equation 1]
【0035】[0035]
【数2】 [Equation 2]
【0036】[0036]
【数3】 [Equation 3]
【0037】同期機構・通信プロトコルの発生処理は、
分割後の各集合に対して通信プロトコルを生成するもの
である。具体的には、下記(1)〜(3)の処理を行
う。 (1)変数の分類を行い、すべての受信・放送変数ak
に対して同期変数fk を生成し、通信変数vk とする。
このとき、同期変数の受信側および送信側の要素数はそ
の変数を受信および送信している手続きの数に合わせ
る。The generation process of the synchronization mechanism / communication protocol is
A communication protocol is generated for each set after division. Specifically, the following processes (1) to (3) are performed. (1) Variables are classified and all received / broadcast variables a k
Then, a synchronization variable f k is generated for the communication variable v k .
At this time, the number of elements on the receiving side and the transmitting side of the synchronization variable is adjusted to the number of procedures receiving and transmitting the variable.
【0038】(2)下記〜の規則にしたがって、受
信点・放送点・中継点にそれぞれ同期機構・通信プロト
コルを発生させる。このとき、正論理または負論理で統
一し、しかも初期値の挿入は1つの変数につき1回とす
る。なお、受信点とは並列実行文中で受信変数が使用さ
れる場所をいい、放送点とは並列実行文中で放送変数が
使用される場所をいい、中継点とは代入文両辺に中継変
数が存在する場所をいう。(2) In accordance with the following rules (1) to (3), a synchronization mechanism and a communication protocol are generated at the receiving point, the broadcasting point, and the relay point, respectively. At this time, the positive logic or negative logic is unified, and the initial value is inserted once for each variable. Note that the receiving point refers to the location where the receiving variable is used in the parallel execution statement, the broadcasting point refers to the location where the broadcasting variable is used in the parallel execution statement, and the relay point is the relay variable on both sides of the assignment statement. The place to do.
【0039】受信(放送)点が制御構造の実行文中に
あれば、受信(放送)点に受信(放送)プロトコルを発
生させる。制御構造に属さない場合、受信(放送)点が
1つ以上存在すれば受信(放送)プロトコルを、それ以
外は同期機構を発生させる。 中継点に中継プロトコルを発生させる。If the receiving (broadcasting) point is in the execution statement of the control structure, the receiving (broadcasting) protocol is generated at the receiving (broadcasting) point. If it does not belong to the control structure, a reception (broadcast) protocol is generated if there is at least one reception (broadcast) point, and a synchronization mechanism is generated otherwise. Generate a relay protocol at the relay point.
【0040】制御構造の有無により同期変数の値変化
に差がでてはならない。 (3)同期変数f endを生成し、他のすべての実行
文を下記数4で挟む。There should be no difference in the change in the value of the synchronization variable depending on the presence or absence of the control structure. (3) Synchronization variable f End is generated and all other executable statements are sandwiched by the following expression 4.
【0041】[0041]
【数4】 [Equation 4]
【0042】被分割集合の手続き化処理は、被分割集合
を実行部とする手続きを生成し、これらの手続きを呼び
出す1つの並列実行文を生成し、これを元の実行部と置
き換えるものである。具体的には、下記(1)〜(4)
の処理を行う。 (1)生成された通信変数の複製をとる。また、各被分
割集合の同期変数f endの複製を変数名が重ならぬよ
うにとる。The procedural processing of the divided set is performed by dividing the divided set.
Create a procedure whose execution part is and call these procedures.
Generate one parallel statement to issue and place it as the original execution part.
It will be replaced. Specifically, the following (1) to (4)
Process. (1) Copy the generated communication variable. Also, each subdivided
Synchronization variable f of split set Variable names do not overlap in end replication
Sea urchin
【0043】(2)下記〜の規則にしたがって、被
分割集合を実行部とする手続き宣言部を生成する。この
とき変数と変数型との対応をとる。 受信変数となっているものおよび同期文中に現れた論
理型変数は入力変数とする。 放送変数となっているものおよび定義された論理型変
数は出力変数とする。(2) According to the following rules (1) to (3), a procedure declarative part having a divided set as an execution part is generated. At this time, the correspondence between variables and variable types is taken. The receive variables and the logical variables that appear in the synchronization statement are input variables. Broadcast variables and defined logical variables are output variables.
【0044】中継変数となっているものについては、
受信点と放送点とにおける変数名を変更した後で入出力
変数とする。 自動的に生成された変数は内部変数とする。 (3)複製された通信変数を引数として、生成された手
続きをすべて呼び出す1つの並列実行文を生成する。こ
のとき、それぞれの手続き宣言部の入出力変数に対応し
て入出力引数を生成する。Regarding the relay variables,
After changing the variable names at the receiving point and the broadcasting point, they are used as input / output variables. The automatically generated variables are internal variables. (3) One parallel execution statement that calls all the generated procedures using the copied communication variable as an argument is generated. At this time, input / output arguments are generated corresponding to the input / output variables of each procedure declaration part.
【0045】(4)生成された並列実行文に各手続きか
らの同期変数f endi に対し下記数5の終了判定文
を加えた逐次実行文を元の実行部と置き換える。(4) A synchronization variable f from each procedure is added to the generated parallel execution statement. The sequential execution statement in which the end determination statement of the following Expression 5 is added to end i is replaced with the original execution unit.
【0046】[0046]
【数5】 [Equation 5]
【0047】インライン展開処理は、展開前の手続きが
カーネルでなければ、手続きを呼び出している手続きに
対して、手続き呼び出し文を展開後の実行部で置き換え
るものである。具体的には、下記(1)〜(5)の手続
きを実行する。なお、カーネルとは最初に実行される手
続きをいう。 (1)手続き呼び出し文を対応する手続きの実行部で置
き換える。The inline expansion processing replaces the procedure call statement with the expanded execution unit for the procedure calling the procedure unless the procedure before expansion is the kernel. Specifically, the following procedures (1) to (5) are executed. The kernel is the procedure that is first executed. (1) Replace the procedure call statement with the execution part of the corresponding procedure.
【0048】(2)実行部に含まれる内部変数を、変数
名が重複する場合は名前を変更し、重複しない場合はそ
のまま定義する。 (3)変数の型が存在しない場合は変数型の定義を行っ
た後、変数を型に対応させる。 (4)実行部に含まれる入出力変数を入出力引数で、変
更された内部変数を変更後の名前でそれぞれ置き換え
る。(2) The internal variable included in the execution unit is renamed when the variable name is duplicated, and is defined as it is when the variable name is not duplicated. (3) If the variable type does not exist, the variable type is defined and then the variable is associated with the type. (4) The input / output variables included in the execution unit are replaced with the input / output arguments, and the changed internal variables are replaced with the changed names.
【0049】剥離処理により生成されたカーネルは、複
数の並列実行文が逐次的に実行される構造を持つことに
なる。剥離処理では、各並列実行文毎にはプロセスに対
する処理量の均等化を考慮している。しかし、カーネル
から呼び出されている全てのプロセスに対する処理量の
均等化については考慮していない。したがって、生成さ
れた並列プロセス全体としての各プロセスの処理量の均
等化を行うことにより、最適なシステムとなる。そこ
で、並列実行文間でプロセスの処理量の比により、それ
ぞれのプロセスの実行プロセッサ数を決定する必要があ
る。そこでは、各プロセスの処理をn分割する必要が生
じる。そして、これが可能なものは、手続き内にループ
文を含んでいる場合である。このループ文に着目した分
割法を適用可能とするために、すべての手続きを1ルー
プ化する必要が生じる。この1ループ化処理は下記
(1)〜(6)の手順により実現される。The kernel generated by the peeling process has a structure in which a plurality of parallel execution statements are sequentially executed. In the peeling process, the equalization of the processing amount for the processes is considered for each parallel execution statement. However, it does not consider the equalization of the processing amount for all processes called from the kernel. Therefore, by optimizing the processing amount of each of the generated parallel processes as a whole, an optimum system is obtained. Therefore, it is necessary to determine the number of executing processors of each process based on the ratio of the processing amount of the process between the parallel execution statements. There, it becomes necessary to divide the processing of each process into n. And this is possible when the procedure contains a loop statement. In order to be able to apply the division method focusing on this loop statement, it is necessary to make all procedures into one loop. This one-loop processing is realized by the following procedures (1) to (6).
【0050】(1)2つ以上のループ文を含む手続きの
実行部をループ文の終了部分で分割する。 (2)分割した文の集合の間にデータ依存関係が存在す
る場合、その変数を記憶する。 (3)下記〜の規則にしたがい、分割した文の集合
を実行部とする手続き宣言部を生成する。(1) The execution part of the procedure including two or more loop statements is divided at the end part of the loop statement. (2) If there is a data dependency between the sets of divided sentences, the variable is stored. (3) According to the following rules (1) to (3), a procedure declarative part having a set of divided statements as an execution part is generated.
【0051】データ依存関係が存在する変数が実行部
で使用されているものは入力変数とする。 データ依存関係が存在する変数が実行部で定義されて
いるものは出力変数とする。 データ依存関係が存在する変数が実行部で使用・定義
されているものについては、変数名を分離して入出力変
数とする。さらに、実行部の使用箇所と定義箇所の変数
名を入出力変数名で置き換える。A variable having a data dependency is used as an input variable when it is used in the execution unit. A variable that has a data dependency is defined in the execution part as an output variable. For variables that have data dependencies that are used and defined in the execution part, separate the variable names into input / output variables. Furthermore, the variable names of the used part and the defined part of the execution part are replaced with the input / output variable names.
【0052】データ依存関係が存在しない変数は局所
変数とする。 (4)実行部の使用・定義箇所をそれぞれ受信・放送点
と見做して同期機構・通信プロトコルを発生させる。 (5)各手続きに同期変数f endを生成して、下記
数4で実行部をはさむ。Variables having no data dependency are local variables. (4) The use / definition of the execution unit is regarded as the reception / broadcast point, and the synchronization mechanism / communication protocol is generated. (5) Synchronous variable f for each procedure end is generated and the execution unit is sandwiched by the following expression 4.
【0053】(6)元のプロセスを呼び出している箇所
に分割した手続き呼び出し文を生成する。 次に設計者は、入力手段1に機能分割処理後のプログラ
ムのシミュレーションを行う旨の指示を入力する。これ
によりシミュレータ2の字句解析手段15は、図7のよ
うに、記憶手段から並列プログラムaを逐次読み出し、
単語を文章中から切り出して、記号表bからシンボルに
対応した属性を探し出した後、シンボルと属性とをシン
ボル・属性リストcとして出力する。(6) Generate a procedure call statement that is divided into parts that call the original process. Next, the designer inputs to the input means 1 an instruction to simulate the program after the function division processing. As a result, the lexical analysis unit 15 of the simulator 2 sequentially reads the parallel program a from the storage unit as shown in FIG.
The word is cut out from the sentence, the attribute corresponding to the symbol is searched from the symbol table b, and then the symbol and the attribute are output as the symbol / attribute list c.
【0054】次に構文解析手段16は、図8のように、
字句解析手段15から1文単位でシンボル・属性リスト
cを受け取り、文法規則表dからシンボル・属性リスト
cに対応した文の種類を特定し、構文解析表eを作成す
る。次に実行手段17は、図9のように、構文解析手段
16から構文解析表eを受け取り、解析結果に従った処
理を実行関数表fから探し出し、実行する。このとき、
処理に必要なデータを処理管理表gから取り出し、結果
を処理管理表gの対応する箇所に書き込む。また実行手
段17は、構文解析手段16から受け取った構文解析表
eの文がwait文であれば切換手段19を起動する。Next, the syntactic analysis means 16, as shown in FIG.
The symbol / attribute list c is received for each sentence from the lexical analysis unit 15, the type of sentence corresponding to the symbol / attribute list c is specified from the grammar rule table d, and the syntax analysis table e is created. Next, as shown in FIG. 9, the execution means 17 receives the syntax analysis table e from the syntax analysis means 16, finds the processing according to the analysis result from the execution function table f, and executes it. At this time,
The data required for processing is taken out from the processing management table g, and the result is written in the corresponding location of the processing management table g. Further, the execution means 17 activates the switching means 19 if the sentence of the syntax analysis table e received from the syntax analysis means 16 is a wait statement.
【0055】これにより切換手段19は、図12のよう
に、構文解析表eの条件部を参照し、条件がT(Tru
e)であれば何もせずに処理を続行する。条件がF(F
alse)であれば、現在の状態をプロセス管理表mに
記入した後、タイムホイールnを1ステップ進めて次に
実行すべきプロセス名を取得し、プロセス管理表mに従
って実行すべきプログラムに切り換える。As a result, the switching means 19 refers to the condition part of the syntax analysis table e as shown in FIG. 12, and the condition is T (Tru).
If it is e), the process is continued without doing anything. The condition is F (F
If “alse”, the current state is entered in the process management table m, the time wheel n is advanced by one step to obtain the process name to be executed next, and the process is switched to the program to be executed according to the process management table m.
【0056】すなわち図13のように、第iプロセスを
実行し(ステップS1)、同期待ちか否かを判断し(ス
テップS2)、同期待ちであれば処理続行の条件が不成
立であるか否かを判断し(ステップS3)、不成立であ
れば第iプロセスを退避させ(ステップS4)、iに1
を加えてiとし(ステップS5)、第iプロセスを呼び
出して(ステップS6)、ステップS1に戻る。ステッ
プS2で同期待ちでなければステップS1に戻る。ステ
ップS3で条件不成立でなければステップS1に戻る。That is, as shown in FIG. 13, the i-th process is executed (step S1), and it is determined whether or not it is waiting for synchronization (step S2). If it is waiting for synchronization, it is determined whether or not the condition for continuing processing is not satisfied. (Step S3), if not established, the i-th process is saved (step S4), and i is set to 1
To i (step S5), the i-th process is called (step S6), and the process returns to step S1. If the synchronization is not waited in step S2, the process returns to step S1. If the condition is not satisfied in step S3, the process returns to step S1.
【0057】一方データ生成手段18は、図10のよう
に、構文解析手段16から構文解析表eを受け取り、対
応するアセンブリコードを等価コード表hに作成して、
その等価コードの実行時間と同期待ち時間とを、予め記
憶手段に記憶されている命令コード表iとアドレッシン
グモード表jとを参照しながら計算し、現在実行中のプ
ロセスの時間表kに実行時間と同期待ち時間とに分けて
加算する。On the other hand, the data generating means 18 receives the syntactic analysis table e from the syntactic analyzing means 16 and creates the corresponding assembly code in the equivalent code table h as shown in FIG.
The execution time and the synchronization waiting time of the equivalent code are calculated with reference to the instruction code table i and the addressing mode table j stored in advance in the storage means, and the execution time is shown in the time table k of the process currently being executed. And synchronization waiting time are added separately.
【0058】シミュレーションが終了すると、結果が入
力手段1に表示される。結果が仕様を満足していれば、
次の段階に進む。仕様を満足していなければ、PDL記
述の段階から設計をやり直す。次に設計者は、入力手段
1にプロセッサ台数およびプロセッサ間の結合方式を決
定し、プロセッサを作動させるための命令コードを生成
する旨の指示を入力する。これにより並列処理プログラ
ムコンパイル装置3のプロセッサ台数・結合方式決定手
段8は、シミュレータ2のデータ生成手段18により生
成されたデータを参照して、プロセッサの台数およびプ
ロセッサ間の結合方式を決定すると共に、中継用プロセ
ッサリストを生成する。When the simulation is completed, the result is displayed on the input means 1. If the results meet the specifications,
Go to the next stage. If the specifications are not satisfied, redesign from the PDL description stage. Next, the designer determines the number of processors and the coupling method between the processors in the input means 1 and inputs an instruction to generate an instruction code for operating the processors. As a result, the number-of-processors / coupling method determining unit 8 of the parallel processing program compiling apparatus 3 refers to the data generated by the data generating unit 18 of the simulator 2 and determines the number of processors and the coupling method between the processors. Generate a relay processor list.
【0059】結合方式の決定は、下記(1)〜(3)の
手順で行う。 (1)すべてのプロセッサの組(p ai ,p aj )
に対して結合力を計算し、結合力行列F=(Fij)を求
める。ここで結合力とは、プロセス間の通信量であり、
変数のサイズと処理実行中に送受信した回数とにより決
定することができ、本実施例では下記数6を結合力関数
とする。この関数は、プロセスが実行中に通信した情報
量に比例した量であると見做すことができる。The determination of the coupling method is performed by the following procedures (1) to (3). (1) A set of all processors (p a i , p a j )
The binding force is calculated with respect to and the binding force matrix F = (F ij ) is obtained. Here, the cohesion is the amount of communication between processes,
It can be determined by the size of the variable and the number of transmissions and receptions during the process execution. In the present embodiment, the following equation 6 is used as the binding force function. This function can be regarded as an amount proportional to the amount of information that the process communicates during execution.
【0060】[0060]
【数6】 [Equation 6]
【0061】(2)得られた結合力行列Fのすべての要
素に対し、そのヒストグラムをとる。 (3)ヒストグラムがいくつかの分布に分割される場合
は、結合力の大きな分布から順に分布に属するプロセッ
サの組をネットワークとして直接結合し、ネットリスト
を作成する。このとき、通信が必要なプロセッサのうち
どのプロセッサとも直接あるいは間接的に結合せず孤立
するプロセッサが存在しなくなるまで分布を採用する。
また、分布が分割しない場合は、この分布に属するすべ
てのプロセッサをネットワークとして直接結合し、ネッ
トリストを作成する。(2) Histograms of all the elements of the obtained binding force matrix F are taken. (3) When the histogram is divided into several distributions, a set of processors belonging to the distribution is directly connected as a network in order from the distribution with the largest binding force to create a netlist. At this time, the distribution is adopted until there is no isolated processor that is not directly or indirectly coupled to any of the processors that need communication.
If the distribution is not divided, all processors belonging to this distribution are directly connected as a network to create a netlist.
【0062】このように結合方式を決定することによ
り、プロセス間の通信量の小さなものについては直接結
合させずに中継させることで、通信用の回路の増大を抑
えることができ、通信量の大きなものについては直接結
合させることで、中継に伴う通信のオーバヘッドを減少
させることができる。以上の手順でネットワークが決定
すると、とりあえずプロセッサ間の通信は可能となる
が、これは単に線がつながったに過ぎない。つまり、す
べてのプロセッサが互いに接続された場合を除いて、直
接通信のできないプロセッサの組が存在する。このプロ
セッサ同士は、第3者を経由しないと通信することがで
きない。ところが、どのプロセッサを経由すれば通信を
行うことが可能であるのかといっった情報はまだ決定さ
れていない。したがって、この情報を決定する必要があ
る。これはネットリストが与えられれば、決定すること
は可能である。この問題は、与えられた2点間の最短経
路を決定する問題として知られ、ダイクストラ(Dij
kstra)法等の解法が有名である。本実施例では、
ダイクストラ法を用いて通信経路を決定しているので、
詳細なアルゴリズムの説明は省略する。自分以外のプロ
セッサへ通信するための情報としては、そのプロセッサ
へ通信するために、直接通信すべきプロセッサのリスト
を記憶しておけばよい。また、最短経路が複数存在して
も差し支えなく、これをすべて記憶しておけば、特定の
通信路のみが混雑することを防ぐことが可能となる。By determining the coupling method in this way, by relaying a small communication amount between processes without directly coupling, it is possible to suppress an increase in the communication circuit and to increase the communication amount. By directly connecting objects, communication overhead associated with relaying can be reduced. When the network is determined by the above procedure, communication between the processors is possible for the time being, but this is merely a line connection. That is, there is a set of processors that cannot directly communicate with each other unless all the processors are connected to each other. The processors cannot communicate with each other without passing through a third party. However, information as to which processor it is possible to communicate with has not yet been determined. Therefore, it is necessary to determine this information. This can be determined given the netlist. This problem is known as the problem of determining the shortest path between two given points.
The solution methods such as the kstra) method are famous. In this example,
Since the communication route is determined using the Dijkstra method,
A detailed description of the algorithm is omitted. As the information for communicating with a processor other than itself, a list of processors to communicate directly with in order to communicate with that processor may be stored. Further, even if there are a plurality of shortest routes, there is no problem, and if all of them are stored, it becomes possible to prevent only a specific communication path from becoming congested.
【0063】また並列処理プログラムコンパイル装置3
の命令コード生成手段9は、機能分割手段7により機能
分割されたプログラムをコンパイルして、プロセッサを
作動させるための命令コードを生成する。次に設計者
は、入力手段1に並列処理プログラムコンパイル装置3
により生成された命令コードおよびネットリストを用い
てシミュレーションを行う旨の指示を入力する。これに
よりマルチプロセッサシミュレータ4がシミュレーショ
ンを行う。マルチプロセッサシミュレータ4は、図14
のように、(A)の共有メモリ型や、(B)の木構造型
や、(C)の配列型や、(D)のトーラス型や、(E)
の超立方体型(ハイパーキューブ型)等の代表的なネッ
トワークを実現可能であり、ネットワークの性能を比較
できるようになされている。The parallel processing program compiling device 3
The instruction code generation means 9 of 1 compiles the program whose functions have been divided by the function division means 7 to generate an instruction code for operating the processor. Next, the designer attaches the parallel processing program compiling device 3 to the input means 1.
An instruction to perform simulation is input using the instruction code and the netlist generated by. This causes the multiprocessor simulator 4 to perform a simulation. The multiprocessor simulator 4 is shown in FIG.
Like (A) shared memory type, (B) tree structure type, (C) array type, (D) torus type, (E)
It is possible to realize a typical network such as the hypercube type, and to compare the network performance.
【0064】スケジューリング手段21は、設計者の指
示に基づいて、プロセッサの数、ネットワークの種類、
プロセッサのシミュレーション順位等を決定した後、並
列処理プログラムコンパイル装置3のコード生成手段9
が生成したコードおよびプロセッサ台数・結合方式決定
手段8が決定したネットリストを読み込んで、シミュレ
ーションの制御を行う。すなわち図15のように、初期
設定時には、メモリ管理手段23に通信網情報と初期値
データとを渡し、タイムホイールpにプロセッサの実行
順序を設定する。そしてシミュレーション時には、タイ
ムホイールpの実行プロセッサのプロセッサ番号をプロ
セッサエミュレーション手段22に渡し、タイムホイー
ルpのポインタを1つ進める。The scheduling means 21 uses the number of processors, the type of network, and
After determining the processor simulation order and the like, the code generation means 9 of the parallel processing program compiling device 3 is executed.
The generated code and the net list determined by the number of processors / connection method determination means 8 are read to control the simulation. That is, as shown in FIG. 15, at the time of initialization, the communication network information and the initial value data are passed to the memory management means 23, and the execution order of the processors is set in the time wheel p. Then, at the time of simulation, the processor number of the executing processor of the time wheel p is passed to the processor emulation means 22, and the pointer of the time wheel p is advanced by one.
【0065】プロセッサエミュレーション手段22は、
スケジューリング手段21により呼び出され、対象とす
るプロセッサの動作を命令サイクル単位で実行する。こ
の間にハードウェアレベルの実行状態(演算中、命令呼
び出し、ローカルメモリ読み出し・書き込み・呼び出し
待ち・書き込み待ち、共有メモリ呼び出し・書き込み、
呼び出し待ち、書き込み待ち、I/O呼び出し・書き込
み・呼び出し待ち・書き込み待ち)および通信路毎のア
クセス状態(呼び出し・書き込み・呼び出し待ち・書き
込み待ち)の時間を計測する。すなわち図16のよう
に、命令コードすなわちアセンブリ言語で書かれたプロ
グラムqを実行する。例えば、mov a,doを読み
込み、aに対するアドレスを出力してメモリ管理手段2
3からデータdata(a)を受理する。そして命令が
movであることから、プロセッサデータファイルrの
レジスタファイル中のdoへデータdata(a)を代
入した後、ポインタを1つ進める。このとき同時に、各
サイクルに要した時間を、命令サイクル時間表sを参照
してプロセッサデータファイルr中の時間情報部に記入
する。The processor emulation means 22 is
Called by the scheduling means 21, the operation of the target processor is executed in the unit of instruction cycle. During this time, the hardware-level execution state (during operation, instruction call, local memory read / write / call wait / write wait, shared memory call / write,
It measures the time of call waiting, write waiting, I / O call / write / call waiting / write wait) and the access status (call / write / call wait / write wait) of each communication path. That is, as shown in FIG. 16, the instruction code, that is, the program q written in the assembly language is executed. For example, the memory management means 2 is read by reading mov a, do and outputting the address for a.
The data data (a) from 3 is received. Since the instruction is mov, the data data (a) is assigned to do in the register file of the processor data file r, and then the pointer is advanced by one. At the same time, the time required for each cycle is entered in the time information section in the processor data file r with reference to the instruction cycle time table s.
【0066】メモリ管理手段23は、プロセッサエミュ
レーション手段22から呼び出され、仮想空間すなわち
仮想記憶25と物理空間すなわち主記憶26との対応を
とる。同時に、I/O空間を介してネットワークによる
プロセッサ間の通信の制御を行う。すなわち図17のよ
うに、初期設定時にはスケジューリング手段21により
通信網の形態情報を受け取り、各ポートに対してアクセ
ス可能なプロセッサを示す属性をセットすることによっ
て、通信網tを設定する。このポートは属性にセットさ
れた1組のプロセッサのみがアクセス可能であり、これ
によって通信を行うことが可能である。そしてシミュレ
ーションが開始されると、メモリ管理手段23はプロセ
ッサから指定されたプロセッサ番号とアドレスとによっ
て、対応するデータをプロセッサエミュレーション手段
22に返す。なおuはプロセッサデータ、vは共有デー
タである。The memory management means 23 is called from the processor emulation means 22, and establishes a correspondence between the virtual space or virtual memory 25 and the physical space or main memory 26. At the same time, it controls communication between the processors via the network via the I / O space. That is, as shown in FIG. 17, at the time of initial setting, the configuration information of the communication network is received by the scheduling means 21, and the attribute indicating the processor accessible to each port is set to set the communication network t. This port can be accessed by only one set of processors set in the attribute, and communication can be performed by this. When the simulation is started, the memory management means 23 returns the corresponding data to the processor emulation means 22 according to the processor number and address designated by the processor. Note that u is processor data and v is shared data.
【0067】並列性解析手段24は、スケジューリング
手段21により呼び出され、各プロセッサのソフトウェ
アレベルの実行状態に関する時間を計測する。すなわち
マルチプロセッサシミュレータ4には、各プロセッサ毎
に10個のシステム変数が用意されており、この変数を
設定することにより、変数が設定されている間の時間を
独立に計測することが可能となる。設計者は、この変数
を用いることによって任意の処理の実行時間を計測する
ことが可能となる。10個のシステム変数のうち、pr
b0〜prb2はシステムで予約されており、それぞ
れ、処理実行中、通信中、待機中の時間の計測を行う。
処理実行中は、プロセッサが自分の与えられた仕事を実
行している時間であり、通信中は、処理に必要なデータ
の送受信または他のプロセッサへの中継処理を行ってい
る時間であり、待機中は、何もせずにただ待っている時
間である。それぞれのシステム変数に対する計測を実行
すると共に、計測された結果をハードウェアレベルの結
果と合わせて集計し、データファイルとして出力する。The parallelism analyzing means 24 is called by the scheduling means 21 and measures the time relating to the software level execution state of each processor. That is, in the multiprocessor simulator 4, ten system variables are prepared for each processor, and by setting these variables, the time during which the variables are set can be independently measured. .. The designer can measure the execution time of an arbitrary process by using this variable. Pr out of 10 system variables
b0 to prb2 are reserved by the system, and measure the time during processing execution, communication, and standby, respectively.
While the process is being executed, it is the time when the processor is executing its assigned work, while during the communication, it is the time when the data necessary for the process is being sent or received or is being relayed to another processor, and is waiting. The inside is just waiting time without doing anything. Measurement is performed for each system variable, and the measured results are totaled together with the hardware level results and output as a data file.
【0068】シミュレーションが終了すると、結果が入
力手段1に表示される。結果が仕様を満足していれば、
設計を終了する。仕様を満足していなければ、PDL記
述の段階から設計をやり直す。なお、通信の効率が満足
できない場合は、図14(A)〜(E)のような既存の
ネットワークと効率を比較し、既存のネットワークで仕
様を満足すればそれを採用する。When the simulation is completed, the result is displayed on the input means 1. If the results meet the specifications,
Finish the design. If the specifications are not satisfied, redesign from the PDL description stage. If the communication efficiency cannot be satisfied, the efficiency is compared with the existing network as shown in FIGS. 14A to 14E, and if the existing network satisfies the specifications, it is adopted.
【0069】以上の手順で開発された並列処理プログラ
ムを実行する並列処理プロセッサは、例えば図18のよ
うに、ローカルメモリ280 〜28n-1 を有する複数の
プロセッサ290 〜29n-1 が通信網により結合し、通
信路を介して他の複数のプロセッサ290 〜29n-1 と
の通信を行うものである。通信網は、複数のプロセッサ
290 〜29n-1 同士の結合状態を示すネットリストに
よりデータバス30と双方向メモリブロック310 〜3
1n-1 との対応を切り換える汎用スイッチ32と、汎用
スイッチ32を制御するネットワークコントローラ33
とからなる。通信は、結合可能な複数のプロセッサ29
0 〜29n-1 のみがアクセス可能な複数の双方向メモリ
ブロック310 〜31n-1 の書き込みにより行われる。
またこの通信網は、すべてのプロセッサ290 〜29
n-1 がアクセス可能な共有メモリ34を持ち、共有メモ
リ34を介してもプロセッサ290 〜29n-1 同士は通
信可能である。プロセッサ290 〜29n-1 同士の通信
におけるハードウェアレベルでの排他制御は自動的に行
われているものとし、さらにソフトウェア的には、各プ
ロセッサ290 〜29n-1 は非分割の読み書きサイクル
のtas(Testand Set)命令を備えている
ものとする。図19はメモリ空間(仮想空間)の全体構
成図で、メモリ空間は大きく3つの部分(ローカルメモ
リ空間、共有メモリ空間、I/O空間)に分かれてい
る。ローカルメモリ空間は、それぞれ対応するプロセッ
サ290 〜29n-1 のみがアクセス可能な領域であり、
各プロセッサ290 〜29n-1 毎に存在する。ローカル
メモリ空間は、さらにプロセッサ290 〜29n-1 固有
の例外ベクタ領域(プロセッサ290 〜29n-1 によっ
ては存在しない場合もある)、PE結合情報部、ユーザ
領域からなっている。共有メモリ空間は、すべてのプロ
セッサ290 〜29n-1 がアクセス可能な領域であり、
ネットワークコントローラ33により排他制御され、同
時には1つのプロセッサ290 〜29n-1 のみがアクセ
ス可能である。I/O空間は多数のメモリブロックから
なっており、各ブロックは特定の1組のプロセッサのみ
がアクセス可能である。その排他制御は、各プロセッサ
290 〜29n-1 の結合状態を表すネットリストにした
がって、ネットワークコントローラ33が行う。この領
域は、各ブロック毎に同時にアクセス可能である。PE
(プロセッサ)結合情報部は、ローカルメモリ空間中に
存在し、図20のように、プロセッサ290 〜29n-1
の論理番号、ネットワークの種類、ネットワーク用パラ
メータ、そのプロセッサが直接I/Oを介して通信可能
なプロセッサの番号とそのI/Oアドレス等を格納す
る。ユーザ領域は、図21のように、プロセッサ290
〜29n-1 が実行するプログラムを格納する領域とプロ
セッサ290 〜29n-1 のみがアクセスするデータを格
納する領域とからなる。なお例外ベクタ領域は、各プロ
セッサ290 〜29n-1 により異なるため、その構造の
説明を省略する。I/O空間は、図22のように、1ブ
ロック16バイトで構成され、これを介して1組のプロ
セッサが通信を行うことができる。1ブロックは、さら
に属性領域、送受信バッファ、予備領域からなる。プロ
セッサ290 〜29n-1 がアクセス可能な領域は送受信
バッファおよび予備領域であり、属性領域はネットワー
クコントローラ33のみがアクセス可能である。[0069] parallel processor for executing parallel processing program developed by the above procedure, for example as shown in FIG. 18, a plurality of processors 29 0 ~29 n-1 having a local memory 28 0 ~28 n-1 It is connected by a communication network and communicates with a plurality of other processors 29 0 to 29 n-1 via a communication path. The communication network includes a data bus 30 and bi-directional memory blocks 31 0 to 3 0 to 3 according to a netlist showing the coupling state of the processors 29 0 to 29 n-1.
A general-purpose switch 32 that switches the correspondence with 1 n-1 and a network controller 33 that controls the general-purpose switch 32.
Consists of. The communication is performed by a plurality of processors 29 that can be combined.
This is performed by writing in a plurality of bidirectional memory blocks 31 0 to 31 n-1 accessible only to 0 to 29 n-1 .
In addition, this communication network includes all the processors 29 0 to 29
The n-1 has the accessible shared memory 34, and the processors 29 0 to 29 n-1 can communicate with each other through the shared memory 34. It is assumed that the exclusive control at the hardware level in the communication between the processors 29 0 to 29 n-1 is automatically performed, and in terms of software, each of the processors 29 0 to 29 n-1 is a non-divided read / write. It is assumed that the cycle has a tas (Test and Set) instruction. FIG. 19 is an overall configuration diagram of a memory space (virtual space). The memory space is roughly divided into three parts (local memory space, shared memory space, I / O space). The local memory space is an area that can be accessed only by the corresponding processors 29 0 to 29 n−1 .
It exists for each of the processors 29 0 to 29 n-1 . Local memory space is further (may not be present depending on the processor 29 0 ~29 n-1) Processor 29 0 ~29 n-1 unique exception vector area, become PE binding information unit, from the user area. The shared memory space is an area accessible by all the processors 29 0 to 29 n−1 ,
Exclusive control is performed by the network controller 33, and only one processor 29 0 to 29 n-1 can access at the same time. The I / O space consists of many memory blocks, and each block can be accessed only by a specific set of processors. The exclusive control is performed by the network controller 33 in accordance with a net list indicating the connection state of the processors 29 0 to 29 n-1 . This area can be accessed simultaneously for each block. PE
The (processor) connection information section exists in the local memory space, and as shown in FIG. 20, the processors 29 0 to 29 n-1.
, A network type, a network parameter, the number of a processor with which the processor can communicate directly via I / O, its I / O address, and the like are stored. The user area is the processor 29 0 as shown in FIG.
To 29 only the area and the processor 29 0 through 29 n-1 to n-1 stores a program to be executed is composed of the area for storing data to be accessed. Since the exception vector area differs depending on the processors 29 0 to 29 n-1 , description of its structure is omitted. The I / O space is made up of 1 block of 16 bytes as shown in FIG. 22, through which a set of processors can communicate. One block further includes an attribute area, a transmission / reception buffer, and a spare area. Areas accessible by the processors 29 0 to 29 n-1 are a transmission / reception buffer and a spare area, and an attribute area is accessible only by the network controller 33.
【0070】以下、上記並列処理プログラムコンパイル
装置の主要な動作について、具体的な動作を説明する。 (具体的実施例1)再帰プロセスの非再帰化処理につい
て、下記数7に示すガウス関数を含む不定積分値を求め
る手続きIntGauss( ) の非再帰化処理を用いて
説明する。Specific operations of the main operation of the parallel processing program compiling apparatus will be described below. (Specific Example 1) The non-recursive process of the recursive process will be described by using the non-recursive process of IntGauss (), which is a procedure for obtaining an indefinite integral value including a Gaussian function shown in Expression 7 below.
【0071】[0071]
【数7】 [Equation 7]
【0072】不定積分値Gm は、mの偶数・奇数によ
り、下記数8のように2つの場合に分かれる。The indefinite integral value G m is divided into two cases as shown in the following equation 8 depending on whether m is an even number or an odd number.
【0073】[0073]
【数8】 [Equation 8]
【0074】ここで、上記数8の値は下記数9〜数11
により計算できる。Here, the value of the above expression 8 is the following expression 9 to expression 11
Can be calculated by
【0075】[0075]
【数9】 [Equation 9]
【0076】[0076]
【数10】 [Equation 10]
【0077】[0077]
【数11】 [Equation 11]
【0078】Gm の値を求める手続きをIntGaus
s( ) 、En の値を求める手続きをIntEGauss
( ) 、On の値を求める手続きをIntOGauss
( ) 、On の積分値を求める手続きをIntIOGau
ss( ) とすると、プログラムは図23〜図26のよう
になる。なお図24の網かけ部分は並列実行文である。
手続きIntEGauss( ) において、手続きInt
OGauss( ) および手続きIntIOGauss
( ) は並列実行文中で呼び出されているため、プロセス
である。さらに、手続きIntOGauss( ) は手続
きIntEGauss( ) を呼び出しているため、手続
きIntEGauss( ) は再帰手続きである。したが
って、手続きIntEGauss( ) は再帰プロセスで
ある。The procedure for obtaining the value of G m is IntGaus.
s (), IntEGauss a procedure for determining the value of E n
(), IntOGauss a procedure for determining the value of O n
(), IntIOGau procedures for obtaining the integral value of O n
If ss (), the program becomes as shown in FIGS. The shaded portion in FIG. 24 is a parallel execution statement.
In the procedure IntEGauss (), the procedure Int
OGauss () and procedure IntIOGauss
() Is a process because it is called in the parallel execution statement. Further, since the procedure IntOGauss () calls the procedure IntEGauss (), the procedure IntEGauss () is a recursive procedure. Therefore, the procedure IntEGauss () is a recursive process.
【0079】再帰プロセスに対する非再帰化処理は、下
記(1)(2)の原理に基づいて行う。 (1)再帰プロセスAの並列実行文を順次実行文とした
手続きA’を新たに生成する。 (2)再帰プロセスAから呼び出される手続きに対し
て、再帰プロセスAを呼び出す手続き名をすべてA’に
変更する。The non-recursive process for the recursive process is performed based on the following principles (1) and (2). (1) A procedure A ′ is newly generated in which the parallel execution statements of the recursive process A are sequentially executed statements. (2) For the procedure called from the recursive process A, all the procedure names that call the recursive process A are changed to A '.
【0080】すなわち、非再帰化処理後の手続きInt
EGauss( ) は図27のようになる。また新たに生
成された手続きIntEGauss1( ) を図28に示
し、修正された手続きIntOGauss( ) を図29
に示す。なお図29において網かけ部分は変更箇所を示
す。 (具体的実施例2)機能分割からネットワークの決定ま
での処理について、図30のプログラムのように高速フ
ーリエ変換におけるバタフライ演算を実行する手続きc
alcを用いて説明する。なお、この例では再帰プロセ
スは存在せず、また、全ての手続きは1ループ化されて
いるため、再帰プロセスの非再帰化処理および1ループ
化処理を行う必要がないので、説明を省略する。That is, the procedure Int after the non-recursive processing
EGaus () is as shown in FIG. FIG. 28 shows the newly generated procedure IntEGGauss1 (), and FIG. 29 shows the modified procedure IntOGauss ().
Shown in. 29. In FIG. 29, the shaded portion shows the changed portion. (Specific Example 2) Regarding the processing from function division to network determination, a procedure c for executing a butterfly operation in the fast Fourier transform as in the program of FIG. 30.
A description will be given using alc. In this example, there is no recursive process, and all procedures are in one loop, so it is not necessary to perform the non-recursive process and the one-loop process of the recursive process, and therefore the description thereof is omitted.
【0081】(1)分割処理 図30のプログラムからは図31のようなフローグラフ
が得られる。このフローグラフの節は各実行文を表し、
複数の分岐すなわち破線で囲んだ部分は並列実行を表
す。分割処理を施した結果、図32のようなフローグラ
フになる。 (2)同期機構・通信プロトコルの発生処理 変数の分類処理による手続きcalcに対する変数の分
類結果は、図33のようになる。変数yre,yim,
xre,ximは、この手続き中では独立した変数であ
るが、手続きcalcを呼び出している手続きcfft
中ではどちらも変数zre,zimであるため、この両
者は同一変数として扱われる。したがって、変数yr
e,yim,xre,ximは中継変数となる。続い
て、分類結果を基に孤立変数以外の全ての変数に対し
て、同期変数を発生させ、通信変数とする。このように
して得られた通信変数を図34に示す。また、同期機構
・通信プロトコルの発生処理後のプログラムの処理実行
部分を図35〜図38に示す。なお図35〜図38にお
いて、網かけ部分は並列処理プログラムコンパイル装置
3の機能分割手段7の剥離処理手段11により生成され
た同期機構・通信プロトコルを表す。(1) Division processing A flow graph as shown in FIG. 31 is obtained from the program shown in FIG. This flow graph section represents each executable statement,
A plurality of branches, that is, a part surrounded by a broken line represents parallel execution. As a result of the division processing, a flow graph as shown in FIG. 32 is obtained. (2) Synchronous mechanism / communication protocol generation process The variable classification result for the procedure calc by the variable classification process is as shown in FIG. Variables yre, yim,
xre and xim are independent variables in this procedure, but the procedure cfft calling the procedure calc
Since both are variables zre and zim in the inside, both are treated as the same variable. Therefore, the variable yr
e, yim, xre, and xim are relay variables. Then, based on the classification result, a synchronization variable is generated for all variables other than the isolated variable and used as communication variables. The communication variables obtained in this way are shown in FIG. The processing execution part of the program after the generation processing of the synchronization mechanism / communication protocol is shown in FIGS. 35 to 38, the shaded portion represents the synchronization mechanism / communication protocol generated by the separation processing means 11 of the function dividing means 7 of the parallel processing program compiling device 3.
【0082】(3)非分割集合の手続き化処理およびイ
ンライン展開処理 同期機構・通信プロトコルの発生が行われた後、この集
合を処理実行部とする手続きを生成する。そして、この
手続きcalcに対してインライン展開処理が実行され
る。 (4)ネットワークの決定 ネットワークの決定に必要な結合力分布を求めるため
に、シミュレータ2により再度シミュレーションを行
う。シミュレーションの結果得られた結合力行列を図3
9に示し、これにより作成された結合力分布を図40に
示す。なお図39において、P0はシステム全体の管
理、P1〜P7は三角関数表作成、P8〜P11はバタ
フライ演算、P12〜P14はビットリバース演算であ
る。この結合力分布から、結合力が8以上(図39中*
印部)のプロセッサの組(ネット)については直接結合
し、これをネットワークとする。この結果として得られ
たネットワークを図41にグラフの形で示す。このグラ
フの節はプロセッサを表し、実線の枝は通信路を表す。
また破線の枝は、直接は結合していないが通信を行って
いること、つまり、これらの間の通信には第3のプロセ
ッサが必要であることを表す。(3) Procedural processing and inline expansion processing of non-divided set After the generation of the synchronization mechanism / communication protocol, a procedure having this set as a process execution unit is generated. Then, inline expansion processing is executed for this procedure calc. (4) Network determination In order to obtain the cohesive force distribution necessary for network determination, the simulator 2 performs simulation again. The binding force matrix obtained as a result of the simulation is shown in FIG.
9 and the binding force distribution created thereby is shown in FIG. In FIG. 39, P0 is management of the entire system, P1 to P7 are trigonometric table creation, P8 to P11 are butterfly operations, and P12 to P14 are bit reverse operations. From this binding force distribution, the binding force is 8 or more (*
The set of processors (indicated by the mark) is directly connected to form a network. The resulting network is shown in graphical form in FIG. The nodes of this graph represent processors, and the solid line branches represent communication paths.
Moreover, the broken line branch indicates that communication is performed although not directly coupled, that is, that a third processor is required for communication between these.
【0083】なお上記実施例では、プロセッサ同士を直
接結合する範囲を決定するに際して、通信の必要なプロ
セッサ同士が直接あるいは間接的にすべて結合される最
大の結合力を基準にしたが、この基準になる結合力は入
力手段1を用いて設計者がもっと小さい値を設定できる
ように構成してもよい。また上記実施例では、必ず1ル
ープ化処理を実行するように構成したが、1ループ化処
理は設計者が入力手段1を用いて指示した場合にのみ実
行するように構成してもよい。In the above embodiment, when determining the range in which the processors are directly coupled, the maximum coupling force with which all the processors that need communication are directly or indirectly coupled is used as a standard. The binding force may be configured so that the designer can set a smaller value by using the input means 1. Further, in the above embodiment, the one-loop processing is always executed, but the one-loop processing may be executed only when the designer gives an instruction using the input means 1.
【0084】[0084]
【発明の効果】以上説明したように本発明によれば、プ
ロセッサの動作を命令サイクル単位で実行すると共にハ
ードウエアレベルの実行状態および通信路毎のアクセス
状態の各種時間を計測するプロセッサエミュレーション
手段と、仮想記憶と主記憶との対応をとると共にネット
リストに基づいてプロセッサ間通信の制御を行うメモリ
管理手段と、各プロセッサのソフトウェアレベルの実行
時間を計測すると共にシステムの効率を演算する並列性
解析手段とを設けたので、任意のプロセッサ台数や通信
網についてのシミュレーションを実現でき、プログラム
に適した効率の良いプロセッサの台数や通信網をシステ
ム製作前に選択できる。またシステム製作前に各プロセ
ッサの効率を予測でき、信頼性の向上を図ることができ
るという優れた効果を奏する。As described above, according to the present invention, the processor emulation means for executing the operation of the processor in the unit of instruction cycle and measuring various times of the execution state at the hardware level and the access state for each communication path. , A memory management means for associating a virtual memory with a main memory and controlling communication between processors based on a netlist, and a parallelism analysis for measuring a software level execution time of each processor and calculating a system efficiency Since the means is provided, it is possible to realize a simulation for an arbitrary number of processors and communication networks, and it is possible to select an efficient number of processors and communication networks suitable for a program before the system is manufactured. In addition, the efficiency of each processor can be predicted before the system is manufactured, and the reliability can be improved.
【図1】本発明の一実施例におけるマルチプロセッサシ
ミュレータを備えた並列処理システム設計支援装置の概
略構成図である。FIG. 1 is a schematic configuration diagram of a parallel processing system design support apparatus including a multiprocessor simulator according to an embodiment of the present invention.
【図2】並列処理プログラムコンパイル装置の構成図で
ある。FIG. 2 is a configuration diagram of a parallel processing program compiling device.
【図3】シミュレータの構成図である。FIG. 3 is a configuration diagram of a simulator.
【図4】マルチプロセッサシミュレータの構成図であ
る。FIG. 4 is a configuration diagram of a multiprocessor simulator.
【図5】PDL記述によるプロセスモデルのフローグラ
フである。FIG. 5 is a flow graph of a process model by PDL description.
【図6】剥離処理後のプロセスモデルのフローグラフで
ある。FIG. 6 is a flow graph of a process model after peeling processing.
【図7】字句解析手段の動作説明図である。FIG. 7 is an operation explanatory diagram of lexical analysis means.
【図8】構文解析手段の動作説明図である。FIG. 8 is an operation explanatory diagram of the syntax analysis unit.
【図9】実行手段の動作説明図である。FIG. 9 is a diagram for explaining the operation of the executing means.
【図10】データ生成手段の動作説明図である。FIG. 10 is a diagram illustrating the operation of the data generating means.
【図11】非再帰化処理前後のプロセスモデルのフロー
グラフである。FIG. 11 is a flow graph of a process model before and after non-recursive processing.
【図12】切換手段の動作説明図である。FIG. 12 is a diagram for explaining the operation of the switching means.
【図13】切換手段の動作を説明するためのフローチャ
ートである。FIG. 13 is a flowchart for explaining the operation of the switching means.
【図14】マルチプロセッサシミュレータにより実現可
能なネットワークの構成図である。FIG. 14 is a configuration diagram of a network that can be realized by a multiprocessor simulator.
【図15】スケジューラ手段の動作説明図である。FIG. 15 is a diagram for explaining the operation of the scheduler means.
【図16】プロセッサエミュレーション手段の動作説明
図である。FIG. 16 is an operation explanatory diagram of a processor emulation means.
【図17】スケジューラ手段の動作説明図である。FIG. 17 is a diagram for explaining the operation of the scheduler means.
【図18】並列処理プロセッサの実モデルの構成図であ
る。FIG. 18 is a configuration diagram of an actual model of a parallel processing processor.
【図19】仮想空間の構成図である。FIG. 19 is a configuration diagram of a virtual space.
【図20】PE結合情報部の構成図である。FIG. 20 is a configuration diagram of a PE connection information part.
【図21】ユーザ領域の構成図である。FIG. 21 is a configuration diagram of a user area.
【図22】I/O空間の構成図である。FIG. 22 is a configuration diagram of an I / O space.
【図23】PDL記述によるプログラムの説明図であ
る。FIG. 23 is an explanatory diagram of a program in PDL description.
【図24】PDL記述によるプログラムの説明図であ
る。FIG. 24 is an explanatory diagram of a program in PDL description.
【図25】PDL記述によるプログラムの説明図であ
る。FIG. 25 is an explanatory diagram of a program in PDL description.
【図26】PDL記述によるプログラムの説明図であ
る。FIG. 26 is an explanatory diagram of a program in PDL description.
【図27】非再帰化処理後のプログラムの説明図であ
る。FIG. 27 is an explanatory diagram of a program after the non-recursive process.
【図28】非再帰化処理後のプログラムの説明図であ
る。FIG. 28 is an explanatory diagram of a program after non-recursive processing.
【図29】非再帰化処理後のプログラムの説明図であ
る。FIG. 29 is an explanatory diagram of a program after the non-recursive process.
【図30】PDL記述によるプログラムの説明図であ
る。FIG. 30 is an explanatory diagram of a program in PDL description.
【図31】PDL記述によるプロセスモデルのフローグ
ラフである。FIG. 31 is a flow graph of a process model based on PDL description.
【図32】分割処理後のプロセスモデルのフローグラフ
である。FIG. 32 is a flow graph of a process model after division processing.
【図33】変数の分類結果の説明図である。FIG. 33 is an explanatory diagram of a variable classification result.
【図34】通信変数の説明図である。FIG. 34 is an explanatory diagram of communication variables.
【図35】同期機構・通信プロトコルを埋め込んだプロ
グラムの説明図である。FIG. 35 is an explanatory diagram of a program in which a synchronization mechanism / communication protocol is embedded.
【図36】同期機構・通信プロトコルを埋め込んだプロ
グラムの説明図である。FIG. 36 is an explanatory diagram of a program in which a synchronization mechanism / communication protocol is embedded.
【図37】同期機構・通信プロトコルを埋め込んだプロ
グラムの説明図である。FIG. 37 is an explanatory diagram of a program in which a synchronization mechanism / communication protocol is embedded.
【図38】同期機構・通信プロトコルを埋め込んだプロ
グラムの説明図である。FIG. 38 is an explanatory diagram of a program in which a synchronization mechanism / communication protocol is embedded.
【図39】結合力行列の説明図である。FIG. 39 is an explanatory diagram of a binding force matrix.
【図40】結合力分布の説明図である。FIG. 40 is an explanatory diagram of a bond strength distribution.
【図41】ネットワークの説明図である。FIG. 41 is an explanatory diagram of a network.
22 プロセッサエミュレーション手段 23 メモリ管理手段 24 並列性解析手段 25 仮想記憶 26 主記憶 22 processor emulation means 23 memory management means 24 parallelism analysis means 25 virtual memory 26 main memory
フロントページの続き (51)Int.Cl.5 識別記号 庁内整理番号 FI 技術表示箇所 G06F 15/16 430 9190−5L 15/20 D 7218−5L Continuation of front page (51) Int.Cl. 5 Identification code Office reference number FI Technical display location G06F 15/16 430 9190-5L 15/20 D 7218-5L
Claims (1)
実行すると共にハードウエアレベルの実行状態および通
信路毎のアクセス状態の各種時間を計測するプロセッサ
エミュレーション手段と、仮想記憶と主記憶との対応を
とると共にネットリストに基づいてプロセッサ間通信の
制御を行うメモリ管理手段と、各プロセッサのソフトウ
ェアレベルの実行時間を計測すると共にシステムの効率
を演算する並列性解析手段とを設けたことを特徴とする
マルチプロセッサシミュレータ。1. Correspondence between a virtual memory and a main memory, and a processor emulation means for executing an operation of a processor in an instruction cycle unit and measuring various times of a hardware level execution state and an access state for each communication path. In addition, a memory management means for controlling inter-processor communication based on the netlist and a parallelism analysis means for measuring the software level execution time of each processor and computing the system efficiency are provided. Processor simulator.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP24957491A JPH0588912A (en) | 1991-09-27 | 1991-09-27 | Multiprocessor simulator |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP24957491A JPH0588912A (en) | 1991-09-27 | 1991-09-27 | Multiprocessor simulator |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0588912A true JPH0588912A (en) | 1993-04-09 |
Family
ID=17195034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP24957491A Pending JPH0588912A (en) | 1991-09-27 | 1991-09-27 | Multiprocessor simulator |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0588912A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008114323A1 (en) * | 2007-03-20 | 2008-09-25 | Fujitsu Microelectronics Limited | Processor/system optimization support apparatus and support method |
JP2012108883A (en) * | 2010-10-01 | 2012-06-07 | Boeing Co:The | Optimization of processor characteristics and large scale system optimization through domain decomposition |
EP2487590A2 (en) | 2011-02-14 | 2012-08-15 | Fujitsu Limited | Processor, computational node, parallel computer system, and arithmetic processing method |
US10402510B2 (en) | 2014-07-23 | 2019-09-03 | Fujitsu Limited | Calculating device, calculation method, and calculation program |
-
1991
- 1991-09-27 JP JP24957491A patent/JPH0588912A/en active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008114323A1 (en) * | 2007-03-20 | 2008-09-25 | Fujitsu Microelectronics Limited | Processor/system optimization support apparatus and support method |
US8612805B2 (en) | 2007-03-20 | 2013-12-17 | Spansion Llc | Processor system optimization supporting apparatus and supporting method |
US8972795B2 (en) | 2007-03-20 | 2015-03-03 | Spansion Llc | Processor system optimization |
JP2012108883A (en) * | 2010-10-01 | 2012-06-07 | Boeing Co:The | Optimization of processor characteristics and large scale system optimization through domain decomposition |
EP2487590A2 (en) | 2011-02-14 | 2012-08-15 | Fujitsu Limited | Processor, computational node, parallel computer system, and arithmetic processing method |
US8966225B2 (en) | 2011-02-14 | 2015-02-24 | Fujitsu Limited | Reducing number of processing units generating calculation result when communication time to another node takes longer than calculation time |
US10402510B2 (en) | 2014-07-23 | 2019-09-03 | Fujitsu Limited | Calculating device, calculation method, and calculation program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8341568B2 (en) | Systems and methods for logic verification | |
JP2001202397A (en) | Architecture design supporting system for system-on-chip and architecture generating method | |
US20230116546A1 (en) | Method for compilation, electronic device and storage medium | |
US6067415A (en) | System for assisting a programmer find errors in concurrent programs | |
EP0847022A2 (en) | Method for designing an architectural system | |
Williamson et al. | Synthesis of parallel hardware implementations from synchronous dataflow graph specifications | |
US7228513B2 (en) | Circuit operation verification device and method | |
JPH0588912A (en) | Multiprocessor simulator | |
JP3246668B2 (en) | Parallel processing program compilation device | |
US6853968B2 (en) | Simulation of data processing apparatus | |
JP2927583B2 (en) | Parallel processing programming simulator | |
US10409624B1 (en) | Data array compaction in an emulation system | |
JP3311761B2 (en) | Parallel processing program simulator | |
US8145466B1 (en) | Clustering of electronic circuit design modules for hardware-based and software-based co-simulation platforms | |
US20170090882A1 (en) | Program development support system and program development support software | |
US20070250803A1 (en) | High-level synthesis method and high-level synthesis system | |
JP2004021907A (en) | Simulation system for performance evaluation | |
JP2007018313A (en) | Circuit design program, circuit design device and circuit design method | |
JPH08286896A (en) | Software development method and software development system | |
JPH08180094A (en) | Architecture simulator | |
JP2004118518A (en) | Simulator, and recording medium recording the simulator readable in computer | |
CN116701085B (en) | Form verification method and device for consistency of instruction set design of RISC-V processor Chisel | |
JPH09237191A (en) | Programming supporting device, programming supporting method and medium recording programming supporting program | |
KR20110066715A (en) | Method for analyzing power consumption | |
CN117742671A (en) | Dynamic generation method and system based on low-code design component and electronic equipment |