JPH03257579A - コンパイラの並列化方式 - Google Patents

コンパイラの並列化方式

Info

Publication number
JPH03257579A
JPH03257579A JP5699690A JP5699690A JPH03257579A JP H03257579 A JPH03257579 A JP H03257579A JP 5699690 A JP5699690 A JP 5699690A JP 5699690 A JP5699690 A JP 5699690A JP H03257579 A JPH03257579 A JP H03257579A
Authority
JP
Japan
Prior art keywords
vector
intermediate text
text
program
reads
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
JP5699690A
Other languages
English (en)
Inventor
Yoshinori Tsuda
義典 津田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP5699690A priority Critical patent/JPH03257579A/ja
Publication of JPH03257579A publication Critical patent/JPH03257579A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はコンパイラの並列化方式に関し、特に並列処理
が可能でベクトル演算機能をもつ複数のプロセッサを有
し、主記憶装置が異なるバンク間で並列アクセスを行う
多重アクセス方式を用いる電子計算機システム上で、コ
ンパイラで生成した目的プログラムが複数のプロセッサ
を駆動して主記憶装置に有するデータを並列にベクトル
演算するためのコンパイラの並列化方式に関する。
〔従来の技術〕
従来のコンパイラの並列化方式は、単一のプロセッサの
ベクトル処理速度を上げるために、すべてのプロセッサ
のベクトル長は最大ベクトルレジスタ長と同一の値が設
定されていた。
〔発明が解決しようとする課題〕
しかし、従来のコンパイラの並列化方式は、複数のプロ
セッサを同時に駆動して主記憶装置に有するデータを並
列にベクトル演算する際で、各々のプロセッサが最初に
アクセスするバンクが同一となった場合に、バンク競合
が発生して処理速度が低下するという欠点を有している
〔課題を解決するための手段〕
本発明のコンパイラの並列化方式は、並列処理が可能で
ベクトル演算機能をもつ複数のプロセッサを有し、主記
憶装置が異なるバンク間で並列アクセスを行う多重アク
セス方式を用いる電子計算機システム上で、高級言語で
書かれた原始プログラムを入力し、並列処理を行う目的
プログラムを生成するコンパイラの並列化方式において
、高級言語で書かれた前記原始プログラムを読み込んで
構文解析を行って第1の中間テキストを生成する構文解
析部と、前記第1の中間テキストを読み込んでベクトル
化可能ループを抽出するベクトル化可能ループ抽出部と
、前記第1の中間テキストおよび前記ベクトル化可能ル
ープにより第2の中間テキストを生成する中間テキスト
変形部と、前記第2の中間テキストを読み込んで前記目
的プログラムを生成するときに前記目的プログラムが複
数の前記プロセッサを駆動して前記主記憶装置に有する
データを並列にベクトル演算するに際して駆動される各
々の前記プロセッサのベクトル長を各々最大ベクトルレ
ジスタ長より少なくすることによりバンク数に対して異
なる値に設定してバンク競合が発生しない目的プログラ
ムを生成する目的プログラム生成部とを備えて構成され
ている。
〔実施例〕
次に、本発明の実施例について図面を参照して説明する
第1図は本発明のコンパイラの並列化方式の一実施例を
示すブロック図である。第1図は、原始プログラム1と
、コンパイラ2と、原始プログラム1をコンパイラ2に
よりコンパイルして得られる目的プログラム6と、コン
パイラ2が原始プログラム1をコンパイルする際に生成
する第1の中間テキスト3およびベクトル化可能ループ
4並びに第2の中間テキスト5とにより構成されている
そして、コンパイラ2は、構文解析部21と、ベクトル
化可能ループ抽出部22と、中間テキスト変形部23と
、目的プログラム生成部24とにより構成されている。
そこで、コンパイラ2は、入力された原始プログラム1
を構文解析部21により構文解析し、第1の中間テキス
ト3を生成する。また、ベクトル化可能ループ抽出部2
2は、第1の中間テキスト3を読み込んでベクトル化可
能ループ4を抽出する。そして、中間テキスト変形部2
3は第1の中間テキスト3を読み込み、ベクトル化可能
ループ4により変形して第2の中間テキスト5を生成す
る。さらに、目的プログラム生成部24は、第2の中間
テキスト5を読み込み、ベクトル化可能ループの処理を
複数のプロセッサを駆動して並列処理を行う目的プログ
ラムを生成する。
なお、目的プログラム生成部24は、主記憶装置に有す
るデータをベクトルレジスタへロードする際に、各演算
プロセッサか実行するベクトルロード命令の主記憶装置
へのアクセスにおいて、バンク競合が発生する場合には
、各々のプロセッサのベクトル長を各々最大ベクトル長
よりも1つ少ない値に設定した目的プログラム6を生成
する。
第2図は本発明を適用した場合に効果のあるFORTR
AN原始プログラムの一例を示す図である。なお、第2
図のFORTRANを実行するために使用している電子
計算機システムの最大ベクトルレジスタ長および独立に
動作するバンク数を256とする。
第2図のFORTRAN原始プログラム100を従来の
コンパイラにより翻訳すると、並列処理可能なり○ルー
プ110において、主記憶装置上に配置されている配列
B、Cの処理を、先ず配列B、Cの配列要素1から配列
要素256まで、次に配列257から配列要素512ま
で、・・・・・・の様に256ワードづつベクトル化し
、ベクトル化したものを複数のプロセッサを駆動して並
列処理を行う目的プログラムを生成していた。しかし、
主記憶装置上に配置されている配列B、Cのデータを最
大ベクトルレジスタ長256ワードでベクトルレジスタ
ヘロードする際に、バンク数も256のために、各プロ
セッサが実行するベクトルロード命令の主記憶装置への
アクセスにおいて、バンク競合が発生していた。
一方、第2図のFORTRAN原始プログラム100を
本発明を適用したコンパイラ2を用いて翻訳すると、並
列処理可能なり○ループ110において、主記憶装置上
に配置されている配列BCの処理を配列B、Cの配列要
素1から配列要素255まで、次に配列要素256から
配列要素510まで、・・・・・・の様に255ワード
づつベクトル化し、ベクトル化したものを複数のプロセ
ッサを駆動して並列処理を行う目的プログラムを生成す
る。そして、主記憶装置上に配置されている配列B、C
のデータをベクトルレジスタ長255でベクトルレジス
タヘロードする際には、バンク数が256のために、各
プロセッサが実行するベクトルロード命令の主記憶装置
へのアクセスにおいて、バンク競合は発生せず、目的プ
ログラムの実行速度を向上することができる。
〔発明の効果〕
以上説明したように、本発明のコンパイラの並列化方式
は、目的プログラムが複数のプロセッサを駆動して主記
憶装置に有するデータを並列にベクトル演算する際には
、駆動される各々のプロセッサのベクトル長を最大ベク
トルレジスタ長よりも少ない値に設定してバンク競合が
生じない目的プログラムを生成することにより、複数の
プロセッサを同時に駆動して主記憶装置に有するデータ
を並列にベクトル演算する際に、各々のプロセッサが主
記憶に有するデータをベクトルレジスタヘロードする時
に、各演算プロセッサが実行するベクトルロード命令の
主記憶装置へのアクセスに、バンク競合が発生して処理
速度が低下することを避けることができるという効果を
有している。
そして、本発明のコンパイラの並列化方式は、−度に駆
動するプロセッサの数が多いほど効果が大きく処理速度
を向上させることができるという効果を有している。
抽出部、23・・・中間テキスト変形部、24・・・目
的プログラム生成部、100・・・FORTRAN原始
プログラム、110・・・並列処理可能なり○ルー乙

Claims (1)

    【特許請求の範囲】
  1. 並列処理が可能でベクトル演算機能をもつ複数のプロセ
    ッサを有し、主記憶装置が異なるバンク間で並列アクセ
    スを行う多重アクセス方式を用いる電子計算機システム
    上で、高級言語で書かれた原始プログラムを入力し、並
    列処理を行う目的プログラムを生成するコンパイラの並
    列化方式において、高級言語で書かれた前記原始プログ
    ラムを読み込んで構文解析を行って第1の中間テキスト
    を生成する構文解析部と、前記第1の中間テキストを読
    み込んでベクトル化可能ループを抽出するベクトル化可
    能ループ抽出部と、前記第1の中間テキストおよび前記
    ベクトル化可能ループにより第2の中間テキストを生成
    する中間テキスト変形部と、前記第2の中間テキストを
    読み込んで前記目的プログラムを生成するときに前記目
    的プログラムが複数の前記プロセッサを駆動して前記主
    記憶装置に有するデータを並列にベクトル演算するに際
    して駆動される各々の前記プロセッサのベクトル長を各
    々最大ベクトルレジスタ長より少なくすることによりバ
    ンク数に対して異なる値に設定してバンク競合が発生し
    ない目的プログラムを生成する目的プログラム生成部と
    を備えることを特徴とするコンパイラの並列化方式。
JP5699690A 1990-03-07 1990-03-07 コンパイラの並列化方式 Pending JPH03257579A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5699690A JPH03257579A (ja) 1990-03-07 1990-03-07 コンパイラの並列化方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5699690A JPH03257579A (ja) 1990-03-07 1990-03-07 コンパイラの並列化方式

Publications (1)

Publication Number Publication Date
JPH03257579A true JPH03257579A (ja) 1991-11-18

Family

ID=13043102

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5699690A Pending JPH03257579A (ja) 1990-03-07 1990-03-07 コンパイラの並列化方式

Country Status (1)

Country Link
JP (1) JPH03257579A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6834337B1 (en) 2000-09-29 2004-12-21 International Business Machines Corporation System and method for enabling multiple signed independent data elements per register
US7039906B1 (en) 2000-09-29 2006-05-02 International Business Machines Corporation Compiler for enabling multiple signed independent data elements per register

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6834337B1 (en) 2000-09-29 2004-12-21 International Business Machines Corporation System and method for enabling multiple signed independent data elements per register
US7039906B1 (en) 2000-09-29 2006-05-02 International Business Machines Corporation Compiler for enabling multiple signed independent data elements per register

Similar Documents

Publication Publication Date Title
US6113650A (en) Compiler for optimization in generating instruction sequence and compiling method
US20040003381A1 (en) Compiler program and compilation processing method
JPH0830561A (ja) プログラムの並列化実行方法及び並列化実行コンパイラ
JPH04307625A (ja) ループ最適化方法及び装置
JPH04211830A (ja) 並列化コンパイル方式
US11467827B1 (en) Index space mapping using static code analysis
Anantharaman et al. A hardware accelerator for speech recognition algorithms
JPH03257579A (ja) コンパイラの並列化方式
Ghike et al. Directive-based compilers for GPUs
RAS GRAPHITE-OpenCL: Generate OpenCL code from parallel loops
Pashchenko et al. Modeling of Process Control Algorithms for Parallel Computing Systems Using Nondeterministic Automata
JPH04307624A (ja) ループ最適化方法及び装置
JPH0379741B2 (ja)
Reznikova Smart Tiling for Program Optimization and Parallelization [C]
Kaminskyj Long et al. Mind the Gap! Bridging the dichotomy of design and implementation
JPH03135630A (ja) 命令スケジューリング方式
Saougkos et al. Fine grained parallelism in recursive function calls
Listkiewicz et al. J-Parallelio: Automatic Parallelization Framework for Java Virtual Machine
Biookaghazadeh et al. Characterizing Loop Acceleration in Heterogeneous Computing
Feo et al. Developing a high-performance FFT algorithm in Sisal for a vector supercomputer
Stuglik et al. J-Parallelio--automatic parallelization framework for Java virtual machine code
JP2870218B2 (ja) 並列実行命令列生成方式
Kao et al. Run-time parallelization for loops
JPH02132525A (ja) コンパイル方法
JP2638278B2 (ja) コンパイル処理方式