JPS6252899B2 - - Google Patents
Info
- Publication number
- JPS6252899B2 JPS6252899B2 JP18614980A JP18614980A JPS6252899B2 JP S6252899 B2 JPS6252899 B2 JP S6252899B2 JP 18614980 A JP18614980 A JP 18614980A JP 18614980 A JP18614980 A JP 18614980A JP S6252899 B2 JPS6252899 B2 JP S6252899B2
- Authority
- JP
- Japan
- Prior art keywords
- size
- vector
- program
- registers
- object program
- 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.)
- Expired
Links
- 238000000034 method Methods 0.000 claims description 13
- 238000004088 simulation Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Complex Calculations (AREA)
- Devices For Executing Special Programs (AREA)
- Advance Control (AREA)
Description
【発明の詳細な説明】
本発明は、複数の演算器を有する並列計算機に
おいて、複数演算器上におけるオブジエクト・プ
ログラムの実行の状態をシミユレートし、命令の
実行順序を入れ換えて実行時間が最短になるよう
なオブジエクト・プログラムを作成できるように
した並列計算機のオブジエクト・プログラム最適
化方式に関するものである。
おいて、複数演算器上におけるオブジエクト・プ
ログラムの実行の状態をシミユレートし、命令の
実行順序を入れ換えて実行時間が最短になるよう
なオブジエクト・プログラムを作成できるように
した並列計算機のオブジエクト・プログラム最適
化方式に関するものである。
科学技術計算用に各種の並列計算機が提案され
ているが、これらの並列計算機は一般のスカラ形
の計算機のようにオブジエクト・プログラムで指
定される命令を順序どおりに1個ずつ行うもので
なく、複数の演算器によつて複数の命令を並列処
理するものである。一般のスカラ―計算機のオブ
ジエクト・プログラムの最適化については従来よ
り種々の提案がされているが、複数の演算器を持
つ並列計算機のオブジエクト・プログラムをその
並列動作のタイミングおよび実行時間をも考慮し
て最適化することは、いまゝで行われていなかつ
た。
ているが、これらの並列計算機は一般のスカラ形
の計算機のようにオブジエクト・プログラムで指
定される命令を順序どおりに1個ずつ行うもので
なく、複数の演算器によつて複数の命令を並列処
理するものである。一般のスカラ―計算機のオブ
ジエクト・プログラムの最適化については従来よ
り種々の提案がされているが、複数の演算器を持
つ並列計算機のオブジエクト・プログラムをその
並列動作のタイミングおよび実行時間をも考慮し
て最適化することは、いまゝで行われていなかつ
た。
本発明は、上記の考察に基づくものであつて、
ソース・プログラムで指定された処理を最短時間
で実行できるようになつたオブジエクト・プログ
ラムを作成できるようになつた並列計算機のオブ
ジエクト・プログラムの最適化方式を提供するこ
とを目的としている。そしてそのため、本発明の
並列計算機のオブジエクト・プログラム最適化方
式は、互いに独立して動作できる複数の演算器を
有すると共に、ベクトル・レジスタの大きさmと
ベクトル・レジスタの個数nの積が一定の範囲で
大きさm及び個数nを任意の値に定めることがで
きるように構成された並列計算機のオブジエク
ト・プログラムを最適化する並列計算機のオブジ
エクト・プログラム最適化方式において、 (a) ベクトル・レジスタの大きさmとベクトル・
レジスタの個数nが積が一定である条件の下で
大きさm及び個数nを定める処理と、 (b) (a)で定められた大きさm及び個数nを基にし
て、ソース・プログラムで指定された処理を行
う仮りのオブジエクト・プログラムを作成し、
当該オブジエクト・プログラムの複数演算器上
での動作タイミング及び各動作時間のシミユレ
ートを基にして実行タイムチヤートを作成し、
当該実行タイムチヤートから時間軸方向におけ
る空き状態の演算器を見付け、当該演算器の空
き時間を他の命令の実行に割当てるように命令
をスケジユールしてオブジエクト・プログラム
を作成する処理と を含む一連の処理を、ベクトル・レジスタの大き
さmと個数nをm×n=一定の範囲で変化させな
がら行い、最も全実行時間の短いオブジエクト・
プログラムを得ることを特徴とするものである。
以下、本発明を図面を参照しつつ説明する。
ソース・プログラムで指定された処理を最短時間
で実行できるようになつたオブジエクト・プログ
ラムを作成できるようになつた並列計算機のオブ
ジエクト・プログラムの最適化方式を提供するこ
とを目的としている。そしてそのため、本発明の
並列計算機のオブジエクト・プログラム最適化方
式は、互いに独立して動作できる複数の演算器を
有すると共に、ベクトル・レジスタの大きさmと
ベクトル・レジスタの個数nの積が一定の範囲で
大きさm及び個数nを任意の値に定めることがで
きるように構成された並列計算機のオブジエク
ト・プログラムを最適化する並列計算機のオブジ
エクト・プログラム最適化方式において、 (a) ベクトル・レジスタの大きさmとベクトル・
レジスタの個数nが積が一定である条件の下で
大きさm及び個数nを定める処理と、 (b) (a)で定められた大きさm及び個数nを基にし
て、ソース・プログラムで指定された処理を行
う仮りのオブジエクト・プログラムを作成し、
当該オブジエクト・プログラムの複数演算器上
での動作タイミング及び各動作時間のシミユレ
ートを基にして実行タイムチヤートを作成し、
当該実行タイムチヤートから時間軸方向におけ
る空き状態の演算器を見付け、当該演算器の空
き時間を他の命令の実行に割当てるように命令
をスケジユールしてオブジエクト・プログラム
を作成する処理と を含む一連の処理を、ベクトル・レジスタの大き
さmと個数nをm×n=一定の範囲で変化させな
がら行い、最も全実行時間の短いオブジエクト・
プログラムを得ることを特徴とするものである。
以下、本発明を図面を参照しつつ説明する。
第1図はベクトル・プロセツサの概要を説明す
る図、第2図はベクトル・レジスタの分割を説明
する図、第3図は本発明の1実施例を説明する
図、第4図はプログラムの1例を示す図、第5図
はベクトル・レジスタの大きさを変化させながら
作成された本発明のオブジエクト・プログラムの
効率を説明する図である。
る図、第2図はベクトル・レジスタの分割を説明
する図、第3図は本発明の1実施例を説明する
図、第4図はプログラムの1例を示す図、第5図
はベクトル・レジスタの大きさを変化させながら
作成された本発明のオブジエクト・プログラムの
効率を説明する図である。
本発明は一般の並列計算機を対象とするもので
あり、ベクトル・プロセツサに限られるものでは
ないが、以下にベクトル・プロセツサを例として
本発明を説明する。
あり、ベクトル・プロセツサに限られるものでは
ないが、以下にベクトル・プロセツサを例として
本発明を説明する。
第1図において、1は主記憶、2はベクトル・
レジスタ、3は各種の演算器群、4は加算パイプ
ライン、5は乗算パイプライン、6はストア・パ
イプライン、7はロード・パイプラインをそれぞ
れ示している。ベクトル・プロセツサ1において
は、ロード・パイプライン7によつて演算ベクト
ルがベクトル・レジスタ2にロードされ、加算パ
イプライン4や乗算パイプラインなどによつて演
算処理され、演算結果がベクトル・レジスタ2に
格納され、ベクトル・レジスタ2の演算結果ベク
トルがストア・パイプライン6によつて主記憶に
ストアされる。なお、第1図において、加算パイ
プライン4、乗算パイプライン5、ストア・パイ
プライン6およびロード・パイプライン7はそれ
ぞれ1個しか示されていないが、実際には複数個
ずつ存在するものである。
レジスタ、3は各種の演算器群、4は加算パイプ
ライン、5は乗算パイプライン、6はストア・パ
イプライン、7はロード・パイプラインをそれぞ
れ示している。ベクトル・プロセツサ1において
は、ロード・パイプライン7によつて演算ベクト
ルがベクトル・レジスタ2にロードされ、加算パ
イプライン4や乗算パイプラインなどによつて演
算処理され、演算結果がベクトル・レジスタ2に
格納され、ベクトル・レジスタ2の演算結果ベク
トルがストア・パイプライン6によつて主記憶に
ストアされる。なお、第1図において、加算パイ
プライン4、乗算パイプライン5、ストア・パイ
プライン6およびロード・パイプライン7はそれ
ぞれ1個しか示されていないが、実際には複数個
ずつ存在するものである。
ベクトル・レジスタ2は複数個存在するが、複
数のベクトル・レジスタ全体で格納できるエレメ
ント数は一定である。複数のベクトル・レジスタ
2は、例えば独立してリード/ライトでき且つ64
エレメントを格納できる複数のメモリ・モジユー
ルから構成されている。従来技術においては、ベ
クトル・レジスタ2の大きさは固定であつたが、
本発明の実施例においては、ベクトル・レジスタ
2の大きさを自由に変更することができる。例え
ば或るプログラムを実行する場合には、ベクト
ル・レジスタ2の大きさ64エレメント長とし、他
のプログラムを実行する場合にはベクトル・レジ
スタ2の大きさを128エレメント長とすることが
出来る。第2図はこの状態を示しており、2―
1,2―2,2―3……はベクトル・レジスタを
それぞれ示している。一般にプログラムにおける
変数の個数が多い場合にはベクトル・レジスタの
個数を多くすると、無駄なロード/ストアの処理
が減り、プログラムにおける変数の個数が少ない
場合には、ベクトル・レジスタの個数を小さく、
ベクトル・レジスタの容量を大きくすると、立上
り時間の影響が小さくなり、有利である。
数のベクトル・レジスタ全体で格納できるエレメ
ント数は一定である。複数のベクトル・レジスタ
2は、例えば独立してリード/ライトでき且つ64
エレメントを格納できる複数のメモリ・モジユー
ルから構成されている。従来技術においては、ベ
クトル・レジスタ2の大きさは固定であつたが、
本発明の実施例においては、ベクトル・レジスタ
2の大きさを自由に変更することができる。例え
ば或るプログラムを実行する場合には、ベクト
ル・レジスタ2の大きさ64エレメント長とし、他
のプログラムを実行する場合にはベクトル・レジ
スタ2の大きさを128エレメント長とすることが
出来る。第2図はこの状態を示しており、2―
1,2―2,2―3……はベクトル・レジスタを
それぞれ示している。一般にプログラムにおける
変数の個数が多い場合にはベクトル・レジスタの
個数を多くすると、無駄なロード/ストアの処理
が減り、プログラムにおける変数の個数が少ない
場合には、ベクトル・レジスタの個数を小さく、
ベクトル・レジスタの容量を大きくすると、立上
り時間の影響が小さくなり、有利である。
第3図は本発明によるベクトル・プロセツサの
オブジエクト・プログラムを最適化する方法の1
実施例を示すものである。第3図において、Tは
オブジエクト・プログラムの全実行時間、T′は
全実行時間と比較される時間を示している。下記
に第3図における処理を説明する。
オブジエクト・プログラムを最適化する方法の1
実施例を示すものである。第3図において、Tは
オブジエクト・プログラムの全実行時間、T′は
全実行時間と比較される時間を示している。下記
に第3図における処理を説明する。
時間T′を無限大に設定する。
ベクトル・レジスタの個数nおよび1個のベ
クトル・レジスタの大きさmを定める。言うま
でもなく、m×nは一定である。
クトル・レジスタの大きさmを定める。言うま
でもなく、m×nは一定である。
上記で定められたベクトル・レジスタの個
数およびベクトル・レジスタの大きさを基にし
て、ソース・プログラムに対応する仮りのオブ
ジエクト・プログラムを生成する。次いで、こ
の生成オブジエクト・プログラムの複数演算器
上での動作タイミング、および各演算器上での
動作時間のシミユレートを基にして実行タイム
チヤートを作成する。このようにして生成され
た実行タイムチヤートから時間軸方向における
空き状態の演算器を見付け、こゝに他の命令を
移す。このように、複数の演算器に空きがない
ように命令をスケジユールしてオブジエクト・
プログラムを作成することを、本明細書ではタ
イムチヤート・コンパイルという。
数およびベクトル・レジスタの大きさを基にし
て、ソース・プログラムに対応する仮りのオブ
ジエクト・プログラムを生成する。次いで、こ
の生成オブジエクト・プログラムの複数演算器
上での動作タイミング、および各演算器上での
動作時間のシミユレートを基にして実行タイム
チヤートを作成する。このようにして生成され
た実行タイムチヤートから時間軸方向における
空き状態の演算器を見付け、こゝに他の命令を
移す。このように、複数の演算器に空きがない
ように命令をスケジユールしてオブジエクト・
プログラムを作成することを、本明細書ではタ
イムチヤート・コンパイルという。
タイムチヤート・コンパイルによつて生成さ
れたオブジエクト・プログラムの全実行時間T
を求める。
れたオブジエクト・プログラムの全実行時間T
を求める。
時間T′と上記の全実行時間Tとを比較し、
T≦T′であれば下記のの処理を行い、T>
T′であれば下記のの処理を行う。
T≦T′であれば下記のの処理を行い、T>
T′であれば下記のの処理を行う。
全実行時間Tを時間T′として上記へ制御
を渡す。
を渡す。
全実行時間がT′になるときのオブジエク
ト・プログラムを生成する。
ト・プログラムを生成する。
第4図はベクトル計算のプログラム・サンプル
である。このプログラム・サンプルにおいて、例
えば DF11U=DELT1*(U(I+1,J,K)−U
(I,J,K))は、配列の要素U(I+1,J,
K)からU(I,J,K)を減算し、この減算結
果にDELT1を乗算し、この乗算結果を変数
DF11Uとすべきことを示している。また、 UX(I,J,K)=XX(I,J,K)*
DF11U+EX(I,J,K)*DF22U+R(I,
J,K)*DF32U は、配列の要素XX(I,J,K)とDF11Uの乗
算結果と、配列の要素EX(I,J,K)と
DF22Uの乗算結果と、配列の要素RX(I,J,
K)とDF32Uの乗算結果とを加算し、加算結果
を配列の要素UX(I,J,K)にすべきことを
指示している。
である。このプログラム・サンプルにおいて、例
えば DF11U=DELT1*(U(I+1,J,K)−U
(I,J,K))は、配列の要素U(I+1,J,
K)からU(I,J,K)を減算し、この減算結
果にDELT1を乗算し、この乗算結果を変数
DF11Uとすべきことを示している。また、 UX(I,J,K)=XX(I,J,K)*
DF11U+EX(I,J,K)*DF22U+R(I,
J,K)*DF32U は、配列の要素XX(I,J,K)とDF11Uの乗
算結果と、配列の要素EX(I,J,K)と
DF22Uの乗算結果と、配列の要素RX(I,J,
K)とDF32Uの乗算結果とを加算し、加算結果
を配列の要素UX(I,J,K)にすべきことを
指示している。
第5図は第4図のプログラムに対応するオブジ
エクト・プログラムを、ベクトル・レジスタの個
数および大きさを変化させながらタイムチヤー
ト・コンパイル法によつて生成し、これらのオブ
ジエクト・プログラムの効率を示すものである。
なお、効率は全実行時間の逆数で表わされる。第
5図の例では全てのベクトル・レジスタで格納で
きるエレメント数は“1024”であり、ベクトル・
レジスタの個数を16個、1個のベクトル・レジス
タの容量を512エレメント長として場合に最も効
率が良かつたことを示している。
エクト・プログラムを、ベクトル・レジスタの個
数および大きさを変化させながらタイムチヤー
ト・コンパイル法によつて生成し、これらのオブ
ジエクト・プログラムの効率を示すものである。
なお、効率は全実行時間の逆数で表わされる。第
5図の例では全てのベクトル・レジスタで格納で
きるエレメント数は“1024”であり、ベクトル・
レジスタの個数を16個、1個のベクトル・レジス
タの容量を512エレメント長として場合に最も効
率が良かつたことを示している。
以上の説明から明らかなように、本発明によれ
ば、複数の演算器のそれぞれを空きを作ることな
く効率的に使用できる並列計算機用のオブジエク
ト・プログラムを得ることが出来る。
ば、複数の演算器のそれぞれを空きを作ることな
く効率的に使用できる並列計算機用のオブジエク
ト・プログラムを得ることが出来る。
第1図はベクトル・プロセツサの概要を説明す
る図、第2図はベクトル・レジスタの分割を説明
する図、第3図は本発明の1実施例を説明する
図、第4図はプログラムの1例を示す図、第5図
はベクトル・レジスタの大きさを変化させながら
作成された本発明のオブジエクト・プログラムの
効率を説明する図である。 1……主記憶、2……ベクトル・レジスタ、3
……各種の演算器群、4……加算パイプライン、
5……乗算パイプライン、6……ストア・パイプ
ライン、7……ロード・パイプライン。
る図、第2図はベクトル・レジスタの分割を説明
する図、第3図は本発明の1実施例を説明する
図、第4図はプログラムの1例を示す図、第5図
はベクトル・レジスタの大きさを変化させながら
作成された本発明のオブジエクト・プログラムの
効率を説明する図である。 1……主記憶、2……ベクトル・レジスタ、3
……各種の演算器群、4……加算パイプライン、
5……乗算パイプライン、6……ストア・パイプ
ライン、7……ロード・パイプライン。
Claims (1)
- 【特許請求の範囲】 1 互いに独立して動作できる複数の演算器を有
すると共に、ベクトル・レジスタの大きさmとベ
クトル・レジスタの個数nの積が一定の範囲で大
きさm及び個数nを任意の値に定めることができ
るように構成された並列計算機のオブジエクト・
プログラムを最適化する並列計算機のオブジエク
ト・プログラム最適化方式において、 (a) ベクトル・レジスタの大きさmとベクトル・
レジスタの個数nの積が一定である条件の下で
大きさm及び個数nを定める処理と、 (b) (a)で定められた大きさm及び個数nを基にし
て、ソース・プログラムで指定された処理を行
う仮りのオブジエクト・プログラムを作成し、
当該オブジエクト・プログラムの複数演算器上
での動作タイミング及び各動作時間のシミユレ
ートを基にして実行タイムチヤートを作成し、
当該実行タイムチヤートから時間軸方向におけ
る空き状態の演算器を見付け、当該演算器の空
き時間を他の命令の実行に割当てるように命令
をスケジユールしてオブジエクト・プログラム
を作成する処理とを含む一連の処理を、ベクト
ル・レジスタの大きさmと個数nをm×n=一
定の範囲で変化させながら行い、最も全実行時
間の短いオブジエクト・プログラムを得ること
を特徴とする並列計算機のオブジエクト・プロ
グラム最適化方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18614980A JPS57109085A (en) | 1980-12-26 | 1980-12-26 | System for optimizing object program of parallel computer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18614980A JPS57109085A (en) | 1980-12-26 | 1980-12-26 | System for optimizing object program of parallel computer |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS57109085A JPS57109085A (en) | 1982-07-07 |
JPS6252899B2 true JPS6252899B2 (ja) | 1987-11-07 |
Family
ID=16183233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP18614980A Granted JPS57109085A (en) | 1980-12-26 | 1980-12-26 | System for optimizing object program of parallel computer |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS57109085A (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5960642A (ja) * | 1982-09-30 | 1984-04-06 | Fujitsu Ltd | 原始プログラムの最適化方式 |
JPS6133547A (ja) * | 1984-07-25 | 1986-02-17 | Fujitsu Ltd | ベクトル・レジスタのオ−バフロ−情報通知方式 |
-
1980
- 1980-12-26 JP JP18614980A patent/JPS57109085A/ja active Granted
Also Published As
Publication number | Publication date |
---|---|
JPS57109085A (en) | 1982-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8595280B2 (en) | Apparatus and method for performing multiply-accumulate operations | |
CN107315574B (zh) | 一种用于执行矩阵乘运算的装置和方法 | |
US5226171A (en) | Parallel vector processing system for individual and broadcast distribution of operands and control information | |
US5261113A (en) | Apparatus and method for single operand register array for vector and scalar data processing operations | |
US5081573A (en) | Parallel processing system | |
US9015354B2 (en) | Efficient complex multiplication and fast fourier transform (FFT) implementation on the ManArray architecture | |
Kulkarni et al. | Systolic processing and an implementation for signal and image processing | |
CN111381880B (zh) | 一种处理器、介质和处理器的操作方法 | |
US20070271325A1 (en) | Matrix multiply with reduced bandwidth requirements | |
CN111381939B (zh) | 多线程处理器中的寄存器文件 | |
Liu | Parallel and scalable sparse basic linear algebra subprograms | |
JPS61160176A (ja) | ベクトル処理装置 | |
WO2021250392A1 (en) | Mixed-element-size instruction | |
TWI791694B (zh) | 向量帶進位加法指令 | |
JPS6252899B2 (ja) | ||
Tokura et al. | Gpu-accelerated bulk computation of the eigenvalue problem for many small real non-symmetric matrices | |
Kung | Warp experience: we can map computations onto a parallel computer efficiently | |
Missirlis et al. | Parallel matrix factorizations on a shared memory MIMD computer | |
TW202305588A (zh) | 用於向量組合指令之處理設備、方法、及電腦程式 | |
TW202411860A (zh) | 多外積指令 | |
Pearce et al. | Survey of parallel processing in simulation | |
JP2021174558A (ja) | Int9量子化のためのシステム及び方法 | |
GB2617828A (en) | Technique for handling data elements stored in an array storage | |
JPH0644270B2 (ja) | ベクトルプロセッサの制御処理方式 | |
GB2622581A (en) | Multiple-outer-product instruction |