JPH10222487A - 並列計算機上でのプログラム実行方法 - Google Patents

並列計算機上でのプログラム実行方法

Info

Publication number
JPH10222487A
JPH10222487A JP2122497A JP2122497A JPH10222487A JP H10222487 A JPH10222487 A JP H10222487A JP 2122497 A JP2122497 A JP 2122497A JP 2122497 A JP2122497 A JP 2122497A JP H10222487 A JPH10222487 A JP H10222487A
Authority
JP
Japan
Prior art keywords
library
processor
matrix
processors
processing
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
JP2122497A
Other languages
English (en)
Inventor
Yusaku Yamamoto
有作 山本
Shigeo Ihara
茂男 井原
Satoshi Ito
智 伊藤
Miyuki Saji
みゆき 佐治
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2122497A priority Critical patent/JPH10222487A/ja
Publication of JPH10222487A publication Critical patent/JPH10222487A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】 科学技術計算においてパラメータを変えた複
数の計算を並列計算機上で並列に実行する場合、大規模
問題の扱いを可能にする。 【解決手段】 各プロセッサにおいて、ユーザプログラ
ムを実行する表プロセス1の他に他プロセッサとの協調
を行うための裏プロセス3を用意し、両者を時分割で実
行する。ユーザプログラムから行列計算ライブラリがコ
ールされると(処理6)、ライブラリは他プロセッサの
裏プロセスに協調の要求を出し(処理7)、行列データ
を分配し(処理10)、協調して行列計算を行う(処理1
2)。行列データは、ユーザプログラムでは非零要素の
みの圧縮形式で格納し、他プロセッサへの分配時に元の
形式に復元する(処理10)。 【効果】 逐次型計算機向けのユーザプログラムを書き
換えることなく、大きなメモリ量を要する行列計算部分
を複数のプロセッサで分割して実行することができ、従
来扱えなかった大規模問題の計算が可能になる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は並列計算機を用いて
計算機シミュレーションを行うためのプログラム実行方
法に関する。
【0002】
【従来の技術】構造解析、流体計算、電磁場計算などの
科学技術計算では、数万から数百万に上る変数を扱う大
規模シミュレーションが必要である。このような大規模
問題を扱う手段としては、並列計算機が有力である。並
列計算機は数十個から数万個に上る多数の高速プロセッ
サをネットワークで結んだシステムであり、従来の逐次
型計算機に比べ、プロセッサ台数を増やすことでピーク
性能をいくらでも高めることができるという利点を持
つ。また、個々のプロセッサがそれぞれメモリを備える
ため、計算機全体として大きなメモリを持つことが容易
であるという利点を持つ。したがって、大規模問題を適
切に分割して並列計算機の各プロセッサに割り当て、同
時に処理を行わせることにより、1台のプロセッサによ
る実行と比べて飛躍的な実行速度の向上が可能となる。
【0003】しかし、並列計算機ではプログラミングの
方法が従来の計算機と大きく異なり、格段に複雑にな
る。まず、多数のプロセッサを有効に利用するために
は、問題を適切に分割し、プロセッサに割り当てなけれ
ばならない。次に、決定した分割に基づき、自プロセッ
サがどの部分を担当しているかを考慮しながらプログラ
ミングを行い、他プロセッサの持つデータを参照する計
算では、通信文を挿入する必要がある。このような複雑
さのため、並列計算機ではプログラムの長さ、開発工数
とも従来機の数倍程度となり、ユーザの従来機からの移
行が困難な状態にあった。
【0004】この困難を解決するため、自動並列化の研
究が数多く行われている。自動並列化は、ユーザが従来
機用に作成した自分のプログラムに手を加えることな
く、並列計算機を効率的に利用するための技術であり、
従来機用のプログラムを通信文を含むプログラムに自動
変換するコンパイラを用いることによってユーザプログ
ラム全体を並列化する方法(例えば 進藤、岩下他、「F
LoPS:分散メモリ型並列計算機を対象とした並列化コン
パイラ」並列処理シンポジウムJSPP95論文集 参照)、
および、科学技術計算の実行時間の内で大きな割合を占
める行列計算部分のみをライブラリにより並列化する方
法(例えば山本他、「並列計算機上でのライブラリコー
ル方法」、特願平07-280147 参照)などが研究されてき
た。しかし、前者の自動並列化コンパイラによる方法は
まだ研究段階であり、効率的に並列化できるプログラム
の種類は限られている。一方、後者の方法では、プログ
ラムはデータを作成するためのユーザプログラム部分
と、作成されたデータを入力として行列計算を行うライ
ブラリ部分から成り、ユーザプログラム部分は一台の親
プロセッサで実行され、ライブラリ部分で複数の子プロ
セッサが起動されて行列計算等が並列に実行される。ラ
イブラリ部分の実行が終了すると、解が親プロセッサに
集められ、その後のユーザプログラムは再び親プロセッ
サのみで実行される。この方法によると、ライブラリを
人手でチューニングすることにより、行列計算部分につ
いては高い効率が期待できるが、ユーザプログラム部分
は従来通り単一のプロセッサで実行されるため、ユーザ
プログラム部分が実行時間に大きな割合を占めるプログ
ラムでは、全体として高い効率が得られないという問題
があった。
【0005】上記の方法はいずれも一つの計算を並列化
しようとする方法であったが、最近並列計算機が普及す
るにつれ、全く別の並列化方法が注目されている。これ
はパラメータに関する並列化と呼ばれる。一般に科学技
術計算においては、一つの条件の下で計算を行い、それ
で終了することは少ない。むしろ、流体計算なら流速や
境界条件、電磁場計算なら電圧や物質定数など、いろい
ろなパラメータを変えて計算を繰り返すことが普通であ
る。このとき、各パラメータに対する計算はそれぞれ全
く独立であることに注意すれば、各パラメータに対する
計算をそれぞれ一台のプロセッサに割り当て、実行させ
るという並列化方法が考えられる。このようなパラメー
タに関する並列化は余りにも自明な並列化方法であるた
め、今まで研究の対象とはなっていなかったが、実際の
科学技術計算ではこのような並列化方法で対処できる場
合が多いこと、並列化がきわめて容易であること、プロ
セッサ間の通信が不要であるために100%の並列化効率が
達成できることなどから、並列計算機の実用的な使い方
として今後重要になってくると考えられる。
【0006】
【発明が解決しようとする課題】パラメータに関する並
列化の問題点は、大規模な問題が解きにくいということ
である。一つの計算を分割して並列実行する場合には、
解析領域を分割したり、行列を分割したりすることによ
り、個々のプロセッサが担当するデータ量はプロセッサ
台数に反比例して減少する。そのため、並列計算機で
は、プロセッサ台数を増やすことにより従来機で扱えな
いような大規模問題を解くことができた。しかし、パラ
メータに関する並列化の場合には、一台のプロセッサが
一つの計算を担当するため、各プロセッサが1問題に必
要なデータ全体を格納できることが必要である。そのた
め、同じ台数のプロセッサを持つ並列計算機で比較した
場合、この並列化方法では一つの計算を分割する型の並
列化方法に比べ、解ける問題のサイズが1/(プロセッ
サ台数)に制限され、 大規模問題を解くことが困難で
あるという問題があった。
【0007】本発明は、この問題を解決し、パラメータ
に関する並列化方法においても大規模問題が解けるよう
にすることを目的とする。
【0008】
【課題を解決するための手段】上記目的を達成するた
め、本発明では、大規模問題においても、大きなメモリ
容量を必要とするのは実行時間の全体ではなく、その一
部に過ぎないことに注目する。実際、構造計算、流体計
算、電磁場計算のいずれにおいても、計算は、入力とな
る行列の作成、および連立一次方程式の求解や固有値計
算などの行列計算からなるが、大きなメモリを必要とす
るのは後者の行列計算部分であり、それに比べて前者の
行列作成部分での所要メモリ量は無視できるほど小さ
い。そこで、行列計算で大きなメモリが必要となったと
きにプロセッサ間で自動的にメモリを融通し合うことが
できれば、ユーザに負担をかけることなく、パラメータ
に関する並列化方法における大規模問題の取り扱いが可
能になる。
【0009】これを実現するため、本発明では、各プロ
セッサで計算を行うための表プロセスの他に、他プロセ
ッサとの協調を行うための裏プロセスを用意する。ま
た、行列データの圧縮と復元のための機構、および他プ
ロセッサとの間で行列データの分配と解データの収集を
行うための機構を用意する。プロセッサが2台の場合の
本発明による並列化方法の概念図を図1に示す。まず、
各プロセッサで同時にプログラムの実行が開始される。
各プロセッサは表プロセス1でそれぞれパラメータの入
力を受け付け(処理2)、計算を開始するが、それと同
時に、裏プロセス3の実行も開始される。裏プロセス3
は表プロセス1と時分割で切り替わり、他プロセッサか
ら協調の要求が来ていないかをチェックする(処理
4)。一方、表プロセス1はユーザプログラムを実行し
て行列を作成し(処理5)、行列を入力としてライブラ
リをコールする(処理6)。なお、各プロセッサでの行
列のメモリへの格納は、メモリ容量を節約するため、非
零要素のみを格納する圧縮形式で行う。ライブラリをコ
ールしたプロセッサは、 ライブラリ中で他プロセッサ
に対して協調の要求を出す(処理7)。他プロセッサの
裏プロセスはこれを検知し(処理8)、実行中の表プロ
セスを一時中断して(処理9)受信待ちになる。そこで
要求元のプロセッサは自分の持っている圧縮形式の行列
データを復元しながら他プロセッサに分配する(処理1
0)。要求を受けたプロセッサが行列データを受信した
(処理11)後、プロセッサと要求を受けた複数のプロセ
ッサは協調して連立一次方程式の求解、固有値計算など
の行列計算を行う(処理12)。この計算の過程では大き
なメモリが必要となるが、計算に携わっているすべての
プロセッサのメモリが利用できるため、従来のパラメー
タに関する並列化方法に比較して、プロセッサ台数倍程
度の大規模問題を扱うことが可能となる。行列計算が終
了すると、各プロセッサは要求元のプロセッサに自分が
担当していた分の解データを返し(処理13)、中断して
いた表プロセスを再開する(処理14)。要求元のプロセ
ッサは解データを収集し(処理15)、ライブラリからユ
ーザプログラムに戻る(処理16)。この後、各プロセッ
サは再び表プロセスと裏プロセスとを時分割で切り替え
ながら実行し、他プロセスからの協調の要求があれば再
び上記の処理を繰り返す。
【0010】以上の処理において、他プロセッサに対す
る協調の要求7、および行列データの復元と分配10、解
データの収集15はライブラリによって行われる。また、
要求を受けて表プロセスを一時中断し(処理9)、要求
元のプロセッサから行列データを受け取り(処理11)、
協調して行列計算を行い(処理12)、解データを返す処
理13は各プロセッサの裏プロセス3によって行われる。
従って、本発明によれば、ユーザにプログラム変更など
の負担をかけることなく、パラメータに関する並列化方
法における大規模問題の取り扱いが可能となる。
【0011】
【発明の実施の形態】以下、本発明の原理および実施例
を、図面により詳細に説明する。ここで実施例として挙
げるのは、ライブラリが行列計算ライブラリであり、高
周波集積回路の設計などに使われる電磁場計算をパラメ
ータに関する並列化方法により並列計算機上で実行する
場合である。
【0012】(実施例1)本発明の方法により並列プロ
グラムを実行する並列計算機システムを図2に示す。本
システムは解析領域の形状、および電圧や物質定数など
のパラメータを入力するための入力装置17、それぞれが
メモリ18を備えたp台のプロセッサ19を持つ処理装置2
0、計算結果を出力するための出力装置21、プログラム
およびデータを格納するための外部記憶装置22、外部記
憶装置22に格納される行列計算ライブラリ23から構成さ
れる。
【0013】本実施例の入力となる逐次型プログラムを
図3に示す。本プログラムは(1) 解析領域の形状、およ
び電圧や物質定数などのパラメータを入力し(処理
2)、有限要素法などにより解くべき連立一次方程式を
作成し、その係数行列と右辺ベクトルとを、非零要素の
みを格納する圧縮形式によりメモリに格納する(処理2
5)部分、(2) 圧縮形式の係数行列と右辺ベクトルとを
もとの行列の形に復元し、連立一次方程式を解いて解ベ
クトルを求める(処理26)部分、(3) 得られた解ベクト
ルから電流や磁場などの物理量を計算し(処理27)、計
算結果を出力する(処理28)部分、の3部分からなる。
ここで、(1)と(3)の部分はユーザが書いたプログラムで
あり、(2)の部分は行列計算ライブラリを用いて実行さ
れる。
【0014】また、本実施例における係数行列の非零要
素の構造を図4に示す。図4の行列30において、*(図
4の31)は非零要素を示し、空白部分は零要素を示す。
一般に科学技術計算で現れる行列は、このように対角線
32に並行な数本の線上33のみに非零要素があり、それ以
外の要素はすべて0であることが多い。そこで、行列の
各行において非零要素のみを格納することにより、行列
を圧縮して格納用のメモリ量を大幅に削減することがで
きる。圧縮された行列を図5に示す。圧縮された行列36
における第i行第j列の要素37が、図4において、対角
線に並行な線群のうち左下からj番目の線34の第i行の要
素35に対応している。本実施例のように有限要素法を用
いて計算を行う場合、係数行列の作成部分(図3の処理
25)では行列の要素一つ一つを順に計算していくため、
図4のような行列全体を経ることなく、図5のような圧
縮された形の行列をメモリ上に直接作成できる。したが
ってこの部分では、メモリ量に関する問題は生じない。
一方、連立一次方程式を解く部分(図3の処理26)で
は、図5のような圧縮された形のままでは計算が行え
ず、図4のように行列をもとの形に戻す必要があり、大
きなメモリが必要となる。ただし、この場合において
も、計算に必要な領域は対角線に並行な非零要素の線群
33のうち、もっとも左下にある線ともっとも右上にある
線との間の帯部分のみである。ある集積回路の設計のた
めの電磁場計算で現れる8000次元の連立一次方程式の場
合、この帯部分にある要素の数は16、000、000個であ
り、一方、図5の圧縮形式に直した場合の要素数は32
0、000個と、両者の間には50倍の開きがある。この問題
は8000次元と比較的小規模であるが、大規模問題では帯
部分全体を持つ形式と圧縮形式との所要メモリ量の開き
はさらに大きくなる。したがって、メモリ量に関する問
題が主に連立一次方程式の求解部分で生じ、係数行列の
作成部分では生じないことは明らかである。
【0015】本実施例における並列計算機の各プロセッ
サにおいては、表プロセスと裏プロセスの2本のプロセ
スが時分割により同時に実行される。表プロセスではユ
ーザプログラム(図3の処理24、2、25、27、28、29)
が実行される。これは、逐次型計算機用のプログラムと
同じものであるが、行列計算ライブラリをコールする部
分(図3の処理26)では、逐次型計算機用ライブラリの
代わりに本発明で提案する方法の並列化ライブラリがコ
ールされる。この並列化ライブラリのフローチャートを
図6に示す。一方、裏プロセスでは、他プロセッサ上の
表プロセスから協調の要求を受け、協調して行列計算を
行うためのプログラムが実行される。このプログラムの
フローチャートを図7に示す。以下、表プロセスと裏プ
ロセスの処理を順に説明する。
【0016】表プロセスでは、各プロセッサは解析領域
の形状、および各プロセッサごとに与えられる電圧や物
質定数などのパラメータから解くべき連立一次方程式を
作成し、その係数行列と右辺ベクトルとを、非零要素の
みを格納する圧縮形式によりメモリに格納する。この部
分は逐次型計算機上での実行の場合と同じである。次
に、この係数行列と右辺ベクトルとを入力として行列計
算ライブラリをコールする。ライブラリでは、他のプロ
セッサ群に対し、協調の要求を出す(図6の処理7)。
他プロセッサから了解の信号を受け取ると(処理39)、
解くべき行列の次元、行うべき計算の種類などの情報を
他プロセッサに送る(処理40)。次に、自プロセッサの
メモリ上に圧縮形式で格納されている係数行列と右辺ベ
クトルとを、もとの行列の形に復元しつつ各プロセッサ
に分配する(処理10)。このとき、係数行列全体を復元
してから分配を行うと、大規模問題では自プロセッサの
メモリに行列が入りきらなくなるので、各相手プロセッ
サごとに、必要な行列の一部分のみを復元して送ること
が必要である。分配が終了したら、他プロセッサと協調
して連立一次方程式の求解を行う(処理41)。この計算
では行列を図4のような形式で持つ必要があるため、大
きなメモリが必要となるが、この行列は全プロセッサに
分割されて格納されているため、プロセッサ台数を増や
すことにより、大規模問題を解くことが可能である。計
算が終了したら他プロセッサからそれぞれが担当する解
ベクトルを受け取り(処理15)、自プロセッサのメモリ
上に格納して行列計算ライブラリからユーザプログラム
にリターンする(処理42)。ユーザプログラムでは、得
られた解ベクトルより、電流、磁場など、求めたい物理
量を計算し、結果を出力装置より出力する。
【0017】裏プロセスでは、各プロセッサは無限ルー
プにより、他プロセッサからの協調の要求を待つ(図7
の処理43)。協調の要求が来たら、要求元のプロセッサ
に了解の信号を送り(処理44)、自プロセッサで実行中
の表プロセスとの時分割実行を一時中断して(処理
9)、裏プロセスがプロセッサ時間を占有する。次に、
要求元のプロセッサから解くべき行列の次元、行うべき
計算の種類などの情報を受け取り(処理45)、必要な作
業領域を確保する(処理46)。次に自プロセッサが担当
する分の係数行列と右辺ベクトルとを受け取り(処理1
1)、この作業領域に格納した後、要求元のプロセッ
サ、および要求を受けた他プロセッサと協調して、連立
一次方程式の求解を行う(処理41)。計算が終了した
ら、自プロセッサが担当する解ベクトルを要求元のプロ
セッサに送り返し(処理13)、作業領域を解放した(処
理47)後、自プロセッサの表プロセスとの時分割実行を
再開する(処理14)。裏プロセスは再び無限ループに入
って他プロセッサからの協調要求を待ち(処理43)、要
求があれば再び上記のような協調を繰り返す。
【0018】以上述べたことから明らかなように、本発
明による並列化方法では他プロセッサに対する協調の要
求(図6の処理7)、圧縮形式で格納された係数行列お
よび右辺ベクトルの復元と他プロセッサへの分配(処理
10)、連立一次方程式の求解(処理41)、他プロセッサ
からの解ベクトルの収集(処理15)は、ライブラリによ
って行われる。また、要求を受けたプロセッサ側で表プ
ロセスを一時中断し(図7の処理9)、係数行列及び右
辺ベクトルを受け取り(処理11)、他プロセッサと協調
して行列計算を行い(処理41)、解ベクトルを要求元の
プロセッサに返す(処理13)処理は裏プロセスにより行
われる。従って、本発明の方法による並列化では、ユー
ザプログラムの変更は不要であり、かつ、行列計算部分
において行列データを複数プロセッサに分割して求解を
行うことにより、従来のパラメータに関する並列化方法
よりも大規模の問題を扱うことが可能となる。
【0019】本実施例1では、電磁場計算を有限要素法
で取り扱い、連立一次方程式を解いて解を求める場合を
例に取って説明したが、流体計算、構造解析など他の科
学技術計算の場合、また、行うべき行列計算が固有値計
算、最小二乗法などの場合にも、本発明の方法は全く同
様に適用できる。さらに、ライブラリが行列計算ライブ
ラリ以外の場合でも、ライブラリ部分のみを複数のプロ
セッサが協調して実行するという本発明の方法は、同様
に適用できる。
【0020】(実施例2)上記実施例1では、行列計算
を協調して実行するプロセッサの台数については特に最
適化は行わなかったが、対象とする行列の次元、行うべ
き行列計算の種類などに応じてプロセッサ台数を最適化
することにより、さらに効率的に並列計算機を利用する
ことが可能となる。一般に、ある固定した次元の行列計
算を並列計算機上で実行する場合のプロセッサ台数と実
行時間との関係を図8に示す。プロセッサ台数を増やし
ていくと最初のうちは実行時間が減少するが、ある台数
以上になると、プロセッサ間通信のオーバーヘッド増加
などのため、実行時間は逆に増加する。図8の曲線は問
題の次元、および行列計算の種類によって異なり、この
二者により実行時間を最小にするプロセッサ台数p(図
8の14)が定まる。本実施例2では図8の曲線を性能予
測モデルにより近似し、最適なプロセッサ台数を決定す
る。
【0021】本実施例2において対象となる並列計算機
システムを図9に示す。これは実施例1で説明した図2
の並列計算機システムとほぼ同様であるが、外部記憶装
置22中に、ライブラリに対する性能予測モデル49を持
つ。性能予測モデル49では、行うべき行列演算の種類、
行列の次元、プロセッサ台数を入力パラメータとして、
ライブラリの実行時間を予測する。また、外部記憶装置
22には、ライブラリに対するメモリ所用量モデル50も入
っている。メモリ所用量モデル50では、行うべき行列演
算の種類、行列の次元、プロセッサ台数を入力パラメー
タとして、ライブラリの1プロセッサ当たりのメモリ所
用量を計算する。
【0022】本実施例でも実施例1と同様に、並列計算
機の各プロセッサ上で表プロセスと裏プロセスの2本を
時分割で実行する。表プロセスでは、行列計算ライブラ
リのコール部分までは実施例1と同様であるため、ライ
ブラリ内部の処理のみを説明する。ライブラリのフロー
チャートを図10に示す。ライブラリでは、まず性能予測
モデルに行うべき行列計算の種類と解くべき行列の次元
を入力し、プロセッサ台数を変えて、実行時間がもっと
も短くなる台数pを求める(処理51)。次に、メモリ所
用量モデルに行うべき行列計算の種類と解くべき行列の
次元を入力し、プロセッサ台数を変えて、1プロセッサ
当たりのメモリ所用量が、1プロセッサ当たりの実際の
搭載メモリ量よりも小さくなるような最小の台数pを求
める(処理52)。こうして求めたpとpの大きい方をpと
する(処理53)。このpを、行列計算を協調して行うプ
ロセッサ台数とする。次に、p-1台のプロセッサに対し
て協調の要求を出し(処理54)、了解の信号が返ってき
たら(処理39)、解くべき行列の次元、行うべき計算の
種類などの情報をこのp-1台のプロセッサに送る(処理4
0)。以下の処理は実施例1の場合と同様である。ま
た、ライブラリからリターン後にユーザプログラムによ
り物理量を計算する部分も、実施例1と同様である。ま
た、要求元プロセッサ以外の処理については、協調の要
求を受けたp-1台のプロセッサの処理は実施例1と同様
であり、要求を受けなかったプロセッサは、表プロセス
を一時中断することなく、表プロセスと裏プロセスとを
時分割で実行し続ける。
【0023】本実施例2の方法では、行列計算部分は、
解くべき行列を格納するのに十分な台数以上で、かつ実
行時間がもっとも短くなるような台数のプロセッサで実
行される。また、行列計算の協調実行に加わらないプロ
セッサは、表プロセスの計算を続けることができる。従
って、本実施例2の方法では、並列計算機をより効率的
に利用することが可能となる。
【0024】
【発明の効果】以上説明したように、本発明によれば、
連立一次方程式の求解や固有値計算などの行列計算を含
む科学技術計算プログラムに対してパラメータに関する
並列化を行った場合、ユーザにプログラム書き換えなど
の新たな負担をかけることなく、メモリ所用量の多い行
列計算部分を自動的に複数台のプロセッサで実行するこ
とができる。これにより、本発明の方法では、従来法に
比べてプロセッサ台数倍程度の規模の大きさの問題を解
くことが可能となる。
【図面の簡単な説明】
【図1】本発明による並列化方法の概念図。
【図2】本発明の実施例1を適用すべき並列計算機のシ
ステム構成図。
【図3】電磁場計算のための逐次型プログラムを示す
図。
【図4】電磁場計算での係数行列の非零構造を示す図。
【図5】圧縮形式の係数行列を示す図。
【図6】実施例1での表プロセスのライブラリ部分のフ
ローチャート。
【図7】実施例1での裏プロセスのフローチャート。
【図8】プロセッサ台数と実行時間の関係を示す図。
【図9】本発明の実施例2を適用すべき並列計算機のシ
ステム構成図。
【図10】実施例2での表プロセスのライブラリ部分の
フローチャート。
【符号の説明】
1:表プロセス、2:パラメータの入力、3:裏プロセ
ス、4:協調要求のチェック、5:行列の作成、6:ラ
イブラリコール、7:協調の要求、8:協調要求の検
知、9:表プロセスの実行の一時中断、10:行列データ
の復元と分配、11:行列データの受信、12:協調して行
列計算を実行、13:解データの送信、14:表プロセスの
実行の再開、15:解データの収集、16:ユーザプログラ
ムの実行、17:入力装置、18:メモリ、19:プロセッ
サ、20:処理装置、21:出力装置、22:外部記憶装置、
23:行列計算ライブラリ、24:スタート、25:係数行列
および右辺ベクトルの作成と圧縮形式によるメモリへの
格納、26:係数行列および右辺ベクトルの復元と連立一
次方程式の求解、27:物理量の計算、28:結果の出力、
29:終了、30:係数行列、31:非零要素、32:対角線、
33:対角線に並行な線、34:左下からj番目の線、35:
左下からj番目の線の第I行の要素、36:圧縮された係数
行列、37:第i行第j列の要素、38:ライブラリの実行開
始、39:了解の信号受信、40:行列の次元と行列計算の
種類を送信、41:協調して連立一次方程式を求解、42:
リターン、43:無限ループによる協調要求の待機、44:
了解の信号を送信、45:行列の次元と行列計算の種類を
受信、46:ライブラリ用の作業領域を確保、47:作業領
域を解放、48:実行時間を最小にするプロセッサ台数、
49:性能予測モデル、50:メモリ所要量モデル、51:p
の計算、52:pの計算、53:pの計算、54:p-1台のプロ
セッサに協調の要求を出す。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 佐治 みゆき 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】入力装置と、それぞれがメモリを備えた複
    数のプロセッサからなる処理装置と、出力装置と、外部
    記憶装置と、ライブラリとから構成される並列計算機上
    で、入力装置から読み込んだ入力パラメータよりライブ
    ラリの入力データを作成する前処理、ライブラリを実行
    する処理、ライブラリの出力データに対して計算を行っ
    て結果を出力装置に出力する後処理からなるプログラム
    を、各プロセッサごとに異なる入力パラメータを用いて
    複数個並列に実行する方法であって、 該前処理、該ライブラリを他プロセッサと協調して実行
    する処理及び該後処理を行うための表プロセスと、表プ
    ロセスからの協調要求に従って他プロセッサと協調して
    該ライブラリを実行するための裏プロセスとを各プロセ
    ッサ上で時分割で実行することを特徴とする並列計算機
    上でのプログラム実行方法。
  2. 【請求項2】入力装置と、それぞれがメモリを備えた複
    数のプロセッサからなる処理装置と、出力装置と、外部
    記憶装置と、ライブラリとから構成される並列計算機上
    で、入力装置から読み込んだ入力パラメータよりライブ
    ラリの入力データを作成する前処理、ライブラリを実行
    する処理、ライブラリの出力データに対して計算を行っ
    て結果を出力装置に出力する後処理からなるプログラム
    を、各プロセッサごとに異なる入力パラメータを用いて
    複数個並列に実行する方法であって、 該前処理、該ライブラリを他プロセッサと協調して実行
    する処理及び該後処理を行うための表プロセスと、表プ
    ロセスからの協調要求に従って他プロセッサと協調して
    該ライブラリを実行するための裏プロセスとを各プロセ
    ッサ上で時分割で実行し、 上記表プロセスは、他プロセッサ上の裏プロセスに協調
    要求を出して了解の信号を受け取る処理と、受け取った
    後に自プロセッサが持つライブラリの入力データを他プ
    ロセッサに分配する処理と、他プロセッサと協調してラ
    イブラリを実行する処理と、実行結果を他プロセッサか
    ら収集する処理とからなり、 上記裏プロセスは、無限ループにより他プロセッサから
    の協調要求を待つ処理と、該協調要求を受け取る処理
    と、自プロセッサ上の表プロセスを一時中断してライブ
    ラリ実行用の領域を確保した後に了解の信号を出す処理
    と、ライブラリの入力データが分配されたら他プロセッ
    サと協調してライブラリを実行する処理と、実行結果の
    うち自プロセッサの担当分を要求元のプロセッサに送る
    処理と、確保した領域を解放して表プロセスの一時中断
    を解除して時分割実行を再開する処理と、再び無限ルー
    プで他プロセッサからの協調要求を待つ処理とからな
    る、ことを特徴とする並列計算機上でのプログラム実行
    方法。
  3. 【請求項3】上記前処理は、入力パラメータより行列計
    算を行うライブラリの入力となる行列を作成する処理
    と、作成した行列を非零要素のみを持つ圧縮形式でメモ
    リに格納する処理とからなり、上記分配する処理は、該
    圧縮形式で格納されている行列を復元しながら他プロッ
    セサに分配する処理からなる請求項2記載の並列計算機
    上でのプログラム実行方法。
  4. 【請求項4】上記並列計算機の外部記憶装置には、行う
    べき行列計算の種類、行列の次元、実行プロセッサ台数
    を入力として行列計算ライブラリの実行時間を予測する
    性能予測モデルと、該入力より行列計算ライブラリが1
    プロセッサ当たりに必要とするメモリ量を計算するメモ
    リ所要量モデルが格納され、上記表プロセスにおいて両
    モデルを用いて行列計算ライブラリを実行するための最
    適プロッセサ台数を求める請求項3記載の並列計算機上
    でのプログラム実行方法。
  5. 【請求項5】上記表プロセスにおいて最適プロセッサ台
    数を求める処理は、ライブラリコール時に上記性能予測
    モデルを用いて行列計算ライブラリの実行時間を最小に
    するプロセッサ台数pを求める処理と、上記メモリ所要
    量モデルと1プロセッサ当たりの搭載メモリ量から行列
    計算ライブラリの実行が可能となる最小のプロセッサ台
    数pを求める処理と、pとpのうち大きい方の値pを最適
    プロセッサ台数として求める処理とからなり、他プロセ
    ッサ上の裏プロセスに協調要求を出す処理では全プロセ
    ッサのうちp-1台にのみ協調要求を出す請求項4記載の
    並列計算機上でのプログラム実行方法。
JP2122497A 1997-02-04 1997-02-04 並列計算機上でのプログラム実行方法 Pending JPH10222487A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2122497A JPH10222487A (ja) 1997-02-04 1997-02-04 並列計算機上でのプログラム実行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2122497A JPH10222487A (ja) 1997-02-04 1997-02-04 並列計算機上でのプログラム実行方法

Publications (1)

Publication Number Publication Date
JPH10222487A true JPH10222487A (ja) 1998-08-21

Family

ID=12049058

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2122497A Pending JPH10222487A (ja) 1997-02-04 1997-02-04 並列計算機上でのプログラム実行方法

Country Status (1)

Country Link
JP (1) JPH10222487A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003003275A1 (en) * 2001-06-27 2003-01-09 Sntsoft Co., Ltd. Computer-based apparatus for artificial science laboratory
WO2006051902A1 (ja) * 2004-11-11 2006-05-18 Japan Science And Technology Agency 演算処理システム、演算処理方法、ユーザプログラムシステム、ライブラリプログラムシステム、プログラム、および、プログラムを記録した記録媒体
JP2009003555A (ja) * 2007-06-19 2009-01-08 Japan Science & Technology Agency 演算処理システム、演算処理方法、ユーザプログラムシステム、ライブラリプログラムシステム、プログラム、およびプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2015007546A (ja) * 2013-06-24 2015-01-15 株式会社堀場製作所 粒子径分布測定装置
US9049267B2 (en) 2002-09-07 2015-06-02 Appistry, Inc. System and method for processing information via networked computers including request handlers, process handlers, and task handlers
CN108268425A (zh) * 2016-12-30 2018-07-10 英特尔公司 可编程矩阵处理引擎

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003003275A1 (en) * 2001-06-27 2003-01-09 Sntsoft Co., Ltd. Computer-based apparatus for artificial science laboratory
US9973376B2 (en) 2002-09-07 2018-05-15 Appistry, Llc System and method for processing information via networked computers including request handlers, process handlers, and task handlers
US10355911B2 (en) 2002-09-07 2019-07-16 Appistry, Inc. System and method for processing information via networked computers including request handlers, process handlers, and task handlers
US9049267B2 (en) 2002-09-07 2015-06-02 Appistry, Inc. System and method for processing information via networked computers including request handlers, process handlers, and task handlers
US9544362B2 (en) 2002-09-07 2017-01-10 Appistry, Llc System and method for processing information via networked computers including request handlers, process handlers, and task handlers
WO2006051902A1 (ja) * 2004-11-11 2006-05-18 Japan Science And Technology Agency 演算処理システム、演算処理方法、ユーザプログラムシステム、ライブラリプログラムシステム、プログラム、および、プログラムを記録した記録媒体
GB2434897A (en) * 2004-11-11 2007-08-08 Japan Science & Tech Agency Calculation processing system, calculation processing method, user program system, library program system, program, and recording medium
GB2434897B (en) * 2004-11-11 2009-04-22 Japan Science & Tech Agency Computing system, computing method, user program system, library program system, program, and storage medium containing program
US8281325B2 (en) 2004-11-11 2012-10-02 Japan Science And Technology Agency Computing system including user program system executing user program and library program system, executing library programs to be used in user program, computing method, user program system, library program system, and storage medium containing program
JP2009003555A (ja) * 2007-06-19 2009-01-08 Japan Science & Technology Agency 演算処理システム、演算処理方法、ユーザプログラムシステム、ライブラリプログラムシステム、プログラム、およびプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2015007546A (ja) * 2013-06-24 2015-01-15 株式会社堀場製作所 粒子径分布測定装置
US10408726B2 (en) 2013-06-24 2019-09-10 Horiba, Ltd. Particle size distribution measuring apparatus
CN108268425A (zh) * 2016-12-30 2018-07-10 英特尔公司 可编程矩阵处理引擎
JP2018139097A (ja) * 2016-12-30 2018-09-06 インテル・コーポレーション プログラマブルな行列処理エンジン
CN108268425B (zh) * 2016-12-30 2023-10-13 英特尔公司 可编程矩阵处理引擎

Similar Documents

Publication Publication Date Title
CA2061117C (en) Apparatus and method for distributed program stack
Véran et al. QNAP 2: A portable environment for queueing systems modelling
US6088511A (en) Nested parallel 2D Delaunay triangulation method
Keller et al. Simulated performance of a reduction-based multiprocessing system
US20080059555A1 (en) Parallel application load balancing and distributed work management
Cappello et al. Investigating the performance of two programming models for clusters of SMP PCs
JPH10222487A (ja) 並列計算機上でのプログラム実行方法
Beynon et al. Performance optimization for data intensive grid applications
Taft Achieving 60 GFLOP/s on the production CFD code OVERFLOW-MLP
Engler et al. Filaments: Efficient support for fine-grain parallelism
Strandén et al. Parallel computing applied to breeding value estimation in dairy cattle
Van der Wijngaart et al. Analysis and optimization of software pipeline performance on MIMD parallel computers
Wu et al. Computer-aided programming for message-passing systems: problems and solutions
Gupta et al. WSSMP: A high-performance serial and parallel symmetric sparse linear solver
Chen et al. Implementing parallel conjugate gradient on the EARTH multithreaded architecture
EP0509946A2 (en) Apparatus and method for implementing a distributed program stack
JPH04172570A (ja) 画像信号のタスク分割並列処理方法
Slavici et al. Adapting irregular computations to large cpu-gpu clusters in the madness framework
Dadda The evolution of computer architectures
Ekanadham et al. Application oriented resource management on large scale parallel systems
Ohmura et al. Computation-communication overlap of linpack on a GPU-accelerated PC cluster
Liu et al. Multi-Robot Collaboration on FPGAs
Jenks et al. Nomadic Threads: A Runtime Approach for Managing Remote Memory Accesses in Multiprocessors
Smith A directly coupled multiprocessing system
Kim et al. FusionFlow: Accelerating Data Preprocessing for Machine Learning with CPU-GPU Cooperation