[go: up one dir, main page]

JPH0887475A - 情報処理装置および情報処理装置における計算方法 - Google Patents

情報処理装置および情報処理装置における計算方法

Info

Publication number
JPH0887475A
JPH0887475A JP7180195A JP18019595A JPH0887475A JP H0887475 A JPH0887475 A JP H0887475A JP 7180195 A JP7180195 A JP 7180195A JP 18019595 A JP18019595 A JP 18019595A JP H0887475 A JPH0887475 A JP H0887475A
Authority
JP
Japan
Prior art keywords
data
information processing
calculation
memory
convergence
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.)
Granted
Application number
JP7180195A
Other languages
English (en)
Other versions
JP3308770B2 (ja
Inventor
Joji Oshima
丈治 大島
Toshiyuki Tamura
俊之 田村
Satoru Koto
悟 古藤
Hirono Tsubota
浩乃 坪田
Nobufumi Komori
伸史 小守
Shinji Nakajima
伸治 中島
Hironori Terada
浩詔 寺田
Makoto Iwata
誠 岩田
Katsuto Yamaguchi
克人 山口
Junji Onishi
潤治 大西
Akira Kondo
明 近藤
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP18019595A priority Critical patent/JP3308770B2/ja
Priority to US08/504,583 priority patent/US5740463A/en
Priority to EP95111538A priority patent/EP0696001B1/en
Priority to DE69524306T priority patent/DE69524306T2/de
Priority to KR1019950022302A priority patent/KR0169161B1/ko
Publication of JPH0887475A publication Critical patent/JPH0887475A/ja
Application granted granted Critical
Publication of JP3308770B2 publication Critical patent/JP3308770B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/803Three-dimensional arrays or hypercubes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • G06F17/13Differential equations

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Operations Research (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Multi Processors (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】 各要素プロセッサ3の演算を阻害しないメモ
リアクセス及びデータ転送ができ、非同期の通信方式に
よる微分方程式の求解を可能にした高速、かつ安価な計
算機を得る。 【解決手段】 隣接要素プロセッサ3間のデータ授受は
各要素プロセッサ3が互いに隣接する要素プロセッサ3
内の処理を阻害しないように、独立アクセス可能なメモ
リ部6を介して行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、並列プロセッサ
によって処理性能を飛躍的に向上させる情報処理装置の
構成および計算方法に関するものであり、より詳しく
は、微分方程式の数値計算の高速化に関するものであ
る。
【0002】
【従来の技術】この発明の主たる応用分野である微分方
程式の解法においては、空間的・時間的に離散化した解
析時空間で、対象とする方程式を差分化し、隣接する格
子点の相互作用によって解を求めている。従来では、こ
れらの問題をノイマン型計算機による逐次計算法、ある
いはマルチプロセッサ上での並列計算法により解析して
きた。
【0003】また、近年では、例えば、天気予報や大気
・海洋汚染などの環境アセスメントにおいては、大規模
な熱および流体の数値解析予測を行っている。天気予報
では、大気の動きを予測し、気圧,風速,気温,日射を
基に高・低気圧の移動,台風の進路を予測して天気予報
を出す。環境アセスメントでは、汚染源が大気や海流に
よってどのように拡散するかを、流速や汚染物質濃度を
予測して評価する。そこには、超大型計算機が数多く投
入され、多大な計算時間を費やしている。このように多
くの計算機資源を投入し、計算速度を予測精度を向上さ
せ、風雨による災害を防止したり、環境破壊を未然に防
止する努力が払われてきた。マルチプロセッサ上でこの
種の問題を取り扱う方法が試みられており、日本機械学
会論文集59巻558号、PP.427−432(文献
1)あるいは日本機械学会論文集60巻569号、P
P.99−106(文献2)で示されるように、離散化
された解析領域をブロック状に分割し、それぞれの分割
領域を1つの要素プロセッサに割り当て、全体として複
数の要素プロセッサからなるマルチプロセッサ・システ
ムによって並列処理を行う領域分割法が行われている。
【0004】図68は、従来例である文献1に示された
要素プロセッサをニアネイバメッシュで結合し、領域分
割法を行うためのシステム全体の構成図である。図にお
いて、201は担当する分割領域の演算を行う要素プロ
セッサ、202は要素プロセッサ201間のデータ通信
を行うための要素プロセッサ間コネクション、203は
要素プロセッサ201を統括管理するためのホストコン
ピュータ、204はホストコンピュータ203と要素プ
ロセッサ201とを連結するためのインターフェースボ
ード、205は要素プロセッサ201を4個実装した要
素プロセッサボードである。
【0005】また、文献2における従来例では、汎用並
列計算機AP1000を使用し、要素プロセッサ201
を同様のニアネイバメッシュにより結合している。
【0006】これらの汎用マルチプロセッサ・システム
を利用した並列計算法においては、プロセッサ間の通信
方法は、パケット通信などの低速の通信手段を用いてい
る。また、プロセッサ間で処理の同期が必要であるた
め、要素プロセッサ201間のデータ転送時のオーバー
ヘッドが存在し、要素プロセッサ201の台数を増加さ
せるに伴い並列化効率が低下する。図69は、文献2で
示された、偏微分方程式解法の一応用例である数値流体
解析を、差分法を用いて行った場合の、要素プロセッサ
台数増加に伴う並列化効率の低下状況を示した図であ
る。図中横軸は要素プロセッサ201の台数、縦軸は演
算速度向上率、○印はMAC法を使用した場合の演算速
度向上率、△印はSMAC法を使用した場合の演算速度
向上率、□印はHSMAC法を使用した場合の演算速度
向上率、実線は要素プロセッサ201の台数に比例した
演算速度向上率を示す。MAC法、SMAC法、HSM
AC法ともに要素プロセッサ201の台数が増加するに
つれ、データ転送のオーバーヘッドにより要素プロセッ
サ201の台数増加に伴う並列化効率が低下している。
【0007】また、偏微分方程式を解析する上での演算
レベルでの並列性に着目すると、既存のハードウエアを
使用する従来の数値解法では、ハードウエアのアーキテ
クチャが汎用性を重視しているため、偏微分方程式の解
析時に現れる演算レベルの高度な並列性を並列処理に組
み込むことは不可能であった。
【0008】つまり、ノイマン型の大型計算機や汎用並
列計算機を用いても、大規模な偏微分方程式を高速に、
しかも安価に解析することは困難であった。
【0009】
【発明が解決しようとする課題】従来の微分方程式の求
解方式は以上のような手法であったため、nCUBE、
AP−1000、トランスピュータ(Transput
er)などの汎用並列プロセッサを使用した領域分割法
による偏微分方程式の解法が主流であった。これらのマ
ルチプロセッサ間の通信方式は、パケット通信など低速
の通信手段を用いている。既存のハードウエア・アーキ
テクチャを踏襲する限り、プロセッサ間並列処理及び並
行処理を重視せざるを得ない。即ち、領域分割法による
解法は、全計算時間のうち、通信時間に比べて演算時間
の占める割合いが多い粗粒度並列処理にはある程度の効
果があったが、微分方程式の解析に現れる演算時間に比
べて通信時間の占める割合いが多い細粒度並列処理では
データ転送時のオーバーヘッドが大きくなり、並列化効
率が低下するという問題があった。
【0010】また、ソフトウェアを改良することでレイ
テンシー・トレランス(データ待ち問題に対する対処
性)を高める様々な手法が考案されているが、既存ハー
ドウエアを使用する限り、通信方式を抜本的に変更する
ことは不可能で、通信同期待ちを劇的に減少させること
は不可能であるという問題点があった。
【0011】さらに、プロセッサ内の演算レベルでの並
列性はハードが持つアーキテクチャに依存し、ソフトレ
ベルでは対応しきれないという問題点があった。
【0012】この発明は上記のような問題点を解消する
ためになされたもので、この発明の第1の目的は、要素
プロセッサ間で非同期にメッセージ伝達を行うことによ
って、レイテンシー・トレランスを向上することができ
る情報処理装置を得ることにある。
【0013】また、この発明は上記のような問題点を解
消するためになされたもので、この発明の第2の目的
は、通信によって要素プロセッサ内の処理が阻害されな
いメモリ構造を有することによって、微分方程式の求解
に適したメモリアクセス方式を行うことのできる情報処
理装置を得ることにある。
【0014】さらに、この発明は上記のような問題点を
解消するためになされたもので、この発明の第3の目的
は、布線論理を直接ハードウェア化した演算器をプロセ
ッサ内に配列し、熱流体数値解析やその他の偏微分方程
式の解法を基本とした数値解析手法に内在する演算レベ
ルでの並列性を最大限に発揮することのできる情報処理
装置を得ることにある。
【0015】
【課題を解決するための手段】第1の発明に係る情報処
理装置は、演算を実行するプロセッシングユニット及び
前記演算に関するデータを記憶するためのデータメモリ
を有する要素プロセッサを複数備え、該複数の要素プロ
セッサを用いて所定の方程式で記述できる場の支配方程
式について前記場を空間的に分割して得られる複数の格
子点を前記要素プロセッサに割り当てて計算を行わせる
情報処理装置であって、隣接する前記要素プロセッサ間
相互で前記データの通信を行うための複数のデータバス
をさらに備え、前記データバスによって伝達される前記
データを用いて、非同期に、かつ独立に前記要素プロセ
ッサを動作させて計算を行うことを特徴とすることを特
徴とする。
【0016】第2の発明に係る情報処理装置は、演算を
実行するプロセッシングユニット及び前記演算に関する
データを記憶するためのデータメモリを有する要素プロ
セッサを複数備え、該複数の要素プロセッサを用いて所
定の方程式で記述できる場の支配方程式について前記場
を空間的に分割して得られる複数の格子点および同一の
前記格子点に対応する複数の時刻を前記要素プロセッサ
に割り当てて計算を行わせる情報処理装置であって、隣
接する前記要素プロセッサ間相互で前記データの通信を
行うための複数のデータバスをさらに備え、前記データ
バスによって伝達される前記データを用いて、非同期
に、かつ独立に前記要素プロセッサを動作させて計算を
行うことを特徴とすることを特徴とする。
【0017】第3の発明に係る情報処理装置は、第2の
発明の情報処理装置において、2次元解析解を求める際
に、2次元場を空間的に分割して得られる前記格子点の
処理を行う前記要素プロセッサを2次元に並べた2次元
プレーンを、時間軸に沿って複数枚並べて3次元に構成
し、時間方向の次元をパイプライン化したことを特徴と
することを特徴とする。
【0018】第4の発明に係る情報処理装置は、第1な
いし第3の発明のいずれかの情報処理装置において、前
記要素プロセッサへ初期条件と境界条件を伝送するため
の伝送手段を有することを特徴とする。
【0019】第5の発明に係る情報処理装置は、第4の
発明の情報処理装置において、隣接する前記要素プロセ
ッサ間のデータの通信を、前記要素プロセッサ毎に、非
同期でかつ繰り返し行うことを特徴とする。
【0020】第6の発明に係る情報処理装置は、第1な
いし第5の発明のいずれかの情報処理装置において、隣
接する前記要素プロセッサ間の通信は、メッセージ通信
で、かつ多重命令流多重データ流で行うことを特徴とす
る。
【0021】第7の発明に係る情報処理装置は、第1な
いし第6の発明のいずれかの情報処理装置において、前
記要素プロセッサは、それぞれ、隣接する前記要素プロ
セッサのデータメモリを直接参照できることを特徴とす
る。
【0022】第8の発明に係る情報処理装置は、第7の
発明の情報処理装置において、前記要素プロセッサは、
それぞれ、隣接する前記要素プロセッサの前記データメ
モリを直接参照および更新できるように構成されてい
る。
【0023】第9の発明に係る情報処理装置は、第1な
いし第8の発明のいずれかの情報処理装置において、前
記データメモリは、隣接する前記要素プロセッサを結合
する経路上に、隣接する前記要素プロセッサ同士が共有
するメモリを含み、前記メモリに結合された複数の前記
要素プロセッサから前記メモリに記憶されたメモリ内容
の参照および更新ができることを特徴とすることを特徴
とする。
【0024】第10の発明に係る情報処理装置は、第7
ないし第9の発明のいずれかの情報処理装置において、
前記データメモリは、マルチポートメモリであることを
特徴とする。
【0025】第11の発明に係る情報処理装置は、第1
ないし第10の発明のいずれかの情報処理装置におい
て、前記データメモリに対するアクセス要求を一時バッ
ファするバッファ機構を有することを特徴とする。
【0026】第12の発明に係る情報処理装置は、第1
ないし第11の発明のいずれかの情報処理装置におい
て、前記要素プロセッサは、それぞれ、隣接する前記要
素プロセッサ間の通信において、隣接する前記要素プロ
セッサから送られてきたデータをオブジェクト名付きデ
ータとして書き込むバッファメモリをさらに備え、前記
要素プロセッサは、前記バッファメモリから任意のタイ
ミングでオブジェクト名付きデータをサーチして隣接す
る前記要素プロセッサからのデータ受け入れを完了する
ことを特徴とする。
【0027】第13の発明に係る情報処理装置は、第1
ないし第12の発明のいずれかの情報処理装置におい
て、前記要素プロセッサは、処理に必要な前記データの
待ち合わせを行うためのマッチングメモリをさらに備
え、前記要素プロセッサ内の前記プロセッシングユニッ
トは、必要なデータが前記マッチングメモリに揃った時
点で所定の演算を行うことを特徴とする。
【0028】第14の発明に係る情報処理装置は、第1
ないし第13の発明のいずれかの情報処理装置におい
て、前記要素プロセッサ内部に、前記プロセッシングユ
ニットの演算を規定するプログラムの書き換えが可能な
プログラムメモリをさらに備えて構成される。
【0029】第15の発明に係る情報処理装置は、第1
ないし第14の発明のいずれかの情報処理装置におい
て、前記プロセッシングユニットは、前記プログラムメ
モリの異なる領域に割り当てられた複数の前記プログラ
ムを同時実行可能なデータフロー方式に基づいて動作
し、前記各格子点の処理を行う複数のプログラムを前記
プログラムメモリの異なる領域に割り当てることによ
り、複数の前記格子点の処理を同時に実行させることを
特徴とする。
【0030】第16の発明に係る情報処理装置は、第1
5の発明の情報処理装置において、前記データフロー方
式は、識別子を用いることにより、同一プログラムを複
数セットの入力データに対して同時に実行することの可
能な動的データ駆動方式であることを特徴とする。
【0031】第17の発明に係る情報処理装置は、第1
ないし第16の発明のいずれかの情報処理装置におい
て、前記プロセッシングユニットは、データ処理の流れ
の一部または全てを布線論理に従ったデータフローグラ
フ状に演算器を配線したハードウエア回路を備えて構成
される。
【0032】第18の発明に係る情報処理装置は、第1
ないし第17の発明のいずれかの情報処理装置におい
て、前記プロセッシングユニットは、前記格子点の全て
に対し前記格子点の存在する位置が前記場の中の計算領
域の内部か、あるいは前記計算領域内の物体の内部か外
部かを示す内点ビット及び外点ビットを、さらに前記計
算領域境界に位置する前記格子点に対して境界条件の情
報を与える境界条件ビットを、前記要素プロセッサの前
記データメモリにロードしておき、前記内点ビット、前
記外点ビット及び前記境界条件ビットに従ってデータフ
ローグラフの処理を変更することができる同一の布線論
理に従ったハードウェア回路をさらに備えて構成され
る。
【0033】第19の発明に係る情報処理装置は、第1
7の発明の情報処理装置において、前記プロセッシング
ユニットは、2N個の入力データに対し、第1入力と第
2入力,第3入力と第4入力,第5入力と第6入力,
…,第2N−1入力と第2N入力のそれぞれの乗算結果
を累積加算する演算命令を直接実行するための演算装置
をさらに備えることを特徴とする。
【0034】第20の発明に係る情報処理装置は、第1
ないし第19の発明のいずれかの情報処理装置におい
て、隣接する前記要素プロセッサ同士を結合した細ノー
ド結合と、一つ以上の前記要素プロセッサを飛び越して
前記要素プロセッサ同士を接続する粗ノード結合コネク
ションで結合した粗ノード結合とを有することを特徴と
する。
【0035】第21の発明に係る情報処理装置は、第1
ないし第20の発明のいずれかの情報処理装置におい
て、前記要素プロセッサ内に出力データを非同期に読み
出し、該出力データにデータの整理分類に必要な識別子
を付与し、前記要素プロセッサ外にデータを送り出す出
力ユニットを備えることを特徴とする。
【0036】第22の発明に係る情報処理装置は、第2
1の発明の情報処理装置において、前記各要素プロセッ
サの前記出力ユニットから出力データを収集し、全ての
前記要素プロセッサからの非同期に到着する出力データ
に基づいてリアルタイムに前記出力データの可視画像を
生成する出力データ画像処理部をさらに備えて構成され
る。
【0037】第23の発明に係る情報処理装置は、第1
ないし第22の発明のいずれかの情報処理装置におい
て、前記要素プロセッサを統括するホストコンピュータ
から前記要素プロセッサへデータを転送する際に、前記
ホストコンピュータが用いている任意の第1の座標系か
ら前記要素プロセッサが用いている第2の座標系に変換
し、前記要素プロセッサから前記ホストコンピュータへ
データを転送する際には、前記要素プロセッサが用いて
いる第2の座標系から前記ホストコンピュータが用いて
いる前記第1の座標系に変換する座標変換ユニットを備
えて構成される。
【0038】第24の発明に係る情報処理装置は、第1
ないし第23の発明のいずれかの情報処理装置におい
て、前記複数の要素プロセッサは、ホストコンピュータ
が統括して管理する複数の要素プロセッサであって、該
要素プロセッサの各々に、前記プロセッシングユニット
と独立に設けられ、該プロセッシングユニットの演算処
理を阻害せずに収束判定を行う収束判定部を設け、複数
の前記要素プロセッサを複数のグループに区分し、前記
各グループ内で前記各要素プロセッサの前記収束判定部
を1方向閉ループ状あるいは集約形式に接続する第1の
通信路と、前記各グループの前記第1の通信路の各々に
接続され、前記各グループ内の全ての前記収束判定部の
収束判定結果を集約する収束判定ユニットと、前記各グ
ループの前記収束判定ユニットの全てを1方向閉ループ
状あるいは集約形式に接続する第2の通信路とをさらに
備えて構成される。
【0039】第25の発明に係る情報処理装置における
計算方法は、第24の発明の情報処理装置において、複
数の前記要素プロセッサを有する前記情報処理装置にお
いて、メッセージを転送する経路を備え、前記プロセッ
サ毎に、もしくは前記プロセッサに割り当てられた1個
以上の処理手段毎に収束判定を実施する工程と、所定の
前記プロセッサもしくは前記処理手段が収束したことを
判断した場合、当該プロセッサもしくは前記処理手段か
ら収束したことを示すメッセージを送出する工程と、隣
接する前記プロセッサもしくは前記処理手段から収束し
たことを示すメッセージを受け取った後、収束したと判
断した場合、当該プロセッサもしくは前記処理手段から
収束したことを示すメッセージを送出する工程と、前記
工程を繰り返すことによって、前記経路に従って順次前
記メッセージを転送して全体の収束を判定する工程から
なる収束判定の工程を行って計算を実行することを特徴
とする。
【0040】第26の発明に係る情報処理装置における
計算方法は、第25の発明の情報処理装置における計算
方法において、前記経路は、それぞれ、異なる前記処理
手段の結合によって形成された複数の経路を含み、前記
複数の経路に従って順次転送された前記メッセージによ
って、多重に収束を確認することを特徴とする。
【0041】第27の発明に係る情報処理装置における
計算方法は、演算を実行するプロセッシングユニット及
び前記演算に関するデータを記憶するためのデータメモ
リを有する要素プロセッサを複数備え、該複数の要素プ
ロセッサを用いて所定の方程式で記述できる場の支配方
程式について前記場を空間的に分割して得られる複数の
格子点を前記要素プロセッサに割り当てて計算を行わせ
る情報処理装置であって、隣接する前記要素プロセッサ
間相互で前記データの通信を行うための複数のデータバ
スをさらに備えた情報処理装置を用い、前記データバス
によって伝達される前記データを用いて、非同期に、か
つ独立に前記要素プロセッサを動作させて計算を行うこ
とを特徴とする。
【0042】第28の発明に係る情報処理装置における
計算方法は、演算を実行するプロセッシングユニット及
び前記演算に関するデータを記憶するためのデータメモ
リを有する要素プロセッサを複数備え、該複数の要素プ
ロセッサを用いて所定の方程式で記述できる場の支配方
程式について前記場を空間的に分割して得られる複数の
格子点および同一の前記格子点に対応する複数の時刻に
前記要素プロセッサに割り当てて計算を行わせる情報処
理装置であって、隣接する前記要素プロセッサ間相互で
前記データの通信を行うための複数のデータバスをさら
に備えた情報処理装置を用い、前記データバスによって
伝達される前記データを用いて、非同期に、かつ独立に
前記要素プロセッサを動作させて計算を行うことを特徴
とする。
【0043】第29の発明に係る情報処理装置における
計算方法は、第28の発明の情報処理装置における計算
方法において、2次元解析解を求める際に、2次元場を
空間的に分割して得られる前記格子点の処理を行う前記
要素プロセッサを2次元に並べた2次元プレーンを、時
間軸に沿って複数枚並べて3次元に構成し、時間方向の
次元をパイプライン化して行うことを特徴とする。
【0044】第30の発明に係る情報処理装置における
計算方法は、第27ないし第29の発明のいずれかの情
報処理装置における計算方法において、前記所定の方程
式は、微分方程式を含み、非同期に、かつ独立に前記要
素プロセッサを動作させて前記微分方程式の解を差分法
を用いて得ることを特徴とする。
【0045】第31の発明に係る情報処理装置における
計算方法は、第30の発明の情報処理装置における計算
方法において、前記微分方程式は、偏微分方程式あるい
は常微分方程式を含むことを特徴とする。
【0046】第32の発明に係る情報処理装置における
計算方法は、第27ないし第31のいずれかの情報処理
装置における計算方法において、前記要素プロセッサ
は、それぞれ、前記場を空間的に分割して得られる複数
の格子点の計算を担当し、前記格子点に対応する番号あ
るいは前記データメモリ上の前記格子点に該当するデー
タ領域のベースアドレスを入力トークンとして前記要素
プロセッサの演算を制御することを特徴とする。
【0047】第33の発明に係る情報処理装置における
計算方法は、第27ないし第32の発明のいずれかの情
報処理装置における計算方法において、前記要素プロセ
ッサへ初期条件と境界条件を伝送するための伝送手段を
用いることを特徴とする。
【0048】第34の発明に係る情報処理装置における
計算方法は、第27ないし第33の発明のいずれかの情
報処理装置における計算方法において、隣接する前記要
素プロセッサ間のデータの通信を、前記要素プロセッサ
毎に、非同期でかつ繰り返し行うことを特徴とする。
【0049】第35の発明に係る情報処理装置における
計算方法は、第27ないし第34の発明のいずれかの情
報処理装置における計算方法において、隣接する前記要
素プロセッサ間の通信は、メッセージ通信で、かつ多重
命令流多重データ流で行うことを特徴とする。
【0050】第36の発明に係る情報処理装置における
計算方法は、第27ないし第35の発明のいずれかの情
報処理装置における計算方法において、前記要素プロセ
ッサは、それぞれ、隣接する前記要素プロセッサのデー
タメモリを直接参照することを特徴する。
【0051】第37の発明に係る情報処理装置における
計算方法は、第36の発明の情報処理装置における計算
方法において、前記要素プロセッサは、それぞれ、隣接
する前記要素プロセッサの前記データメモリを直接参照
および更新するを備えて構成される。
【0052】第38の発明に係る情報処理装置における
計算方法は、第27ないし第37の発明のいずれかの情
報処理装置における計算方法において、前記データメモ
リは、隣接する前記要素プロセッサを結合する経路上
に、隣接する前記要素プロセッサ同士が共有するメモリ
を含み、前記メモリに結合された複数の前記要素プロセ
ッサから前記メモリに記憶されたメモリ内容の参照およ
び更新をすることを特徴とする。
【0053】第39の発明に係る情報処理装置における
計算方法は、第36ないし第38の発明のいずれかの情
報処理装置における計算方法において、前記データメモ
リは、マルチポートメモリであることを特徴とする前記
情報処理装置を用いることを特徴とする。
【0054】第40の発明に係る情報処理装置における
計算方法は、第27ないし第39の発明のいずれかの情
報処理装置における計算方法において、前記データメモ
リに対するアクセス要求を一時バッファするバッファ機
構を有する前記情報処理装置を用いることを特徴とす
る。
【0055】第41の発明に係る情報処理装置における
計算方法は、第27ないし第40の発明のいずれかの情
報処理装置における計算方法において、前記要素プロセ
ッサは、それぞれ、隣接する前記要素プロセッサ間の通
信において、隣接する前記要素プロセッサから送られて
きたデータをオブジェクト名付きデータとして書き込む
バッファメモリをさらに備え、前記要素プロセッサは、
前記バッファメモリから任意のタイミングでオブジェク
ト名付きデータをサーチして隣接する前記要素プロセッ
サからのデータ受け入れを完了することを特徴とする。
【0056】第42の発明に係る情報処理装置における
計算方法は、第27ないし第41の発明のいずれかの情
報処理装置における計算方法において、前記要素プロセ
ッサは、処理に必要な前記データの待ち合わせを行うた
めのマッチングメモリをさらに備え、前記要素プロセッ
サ内の前記プロセッシングユニットは、必要なデータが
前記マッチングメモリに揃った時点で所定の演算を行う
ことを特徴とする前記情報処理装置を用いることを特徴
とする。
【0057】第43の発明に係る情報処理装置における
計算方法は、第27ないし第42の発明のいずれかの情
報処理装置における計算方法において、前記要素プロセ
ッサ内部に、前記プロセッシングユニットの演算を規定
するプログラムの書き換えが可能なプログラムメモリを
さらに備える前記情報処理装置を用いることを特徴とす
る。
【0058】第44の発明に係る情報処理装置における
計算方法は、第27ないし第43の発明のいずれかの情
報処理装置における計算方法において、前記格子点の全
てに対し前記格子点の存在する位置が前記場の中の計算
領域の内部か外部か、あるいは前記計算領域内の物体の
内部か外部かを示す内点ビット及び外点ビットを、さら
に前記計算領域境界に位置する前記格子点に対して境界
条件の情報を与える境界条件ビットを、前記要素プロセ
ッサの前記データメモリ上に予め与えておき、前記要素
プロセッサには前記内点ビット、前記外点ビット及び前
記境界条件ビットにより処理を変更することができる同
一の計算プログラムを用いて前記プロセッシングユニッ
トが演算を行うことを特徴とする。
【0059】第45の発明に係る情報処理装置における
計算方法は、第27ないし第44の発明のいずれかの情
報処理装置における計算方法において、前記プロセッシ
ングユニットは、前記プログラムメモリの異なる領域に
割り当てられた複数の前記プログラムを同時実行可能な
データフロー方式に基づいて動作し、前記各格子点の処
理を行う複数のプログラムを前記プログラムメモリの異
なる領域に割り当てることにより、複数の前記格子点の
処理を同時に実行させることを特徴とする。
【0060】第46の発明に係る情報処理装置における
計算方法は、第45の発明の情報処理装置における計算
方法において、前記データフロー方式は、識別子を用い
ることにより、同一プログラムを複数セットの前記入力
データに対して同時に実行することの可能な動的データ
駆動方式であることを特徴とする。
【0061】第47の発明に係る情報処理装置における
計算方法は、第46の発明の情報処理装置における計算
方法において、前記入力データに付与されている前記識
別子の値に基づいて、隣接する前記格子点に関するデー
タを格納している前記データメモリのアドレスを計算
し、前記データメモリのアドレスを用いて前記データメ
モリの参照及び更新を行うを特徴とする。
【0062】第48の発明に係る情報処理装置における
計算方法は、第27ないし第47の発明のいずれかの情
報処理装置における計算方法において、前記プロセッシ
ングユニットには、データ処理の流れの一部または全て
を布線論理に従ったデータフローグラフ状に演算器を配
線したハードウエア回路を備える前記情報処理装置を用
いることを特徴とする。
【0063】第49の発明に係る情報処理装置における
計算方法は、第27ないし第48の発明のいずれかの情
報処理装置における計算方法において、前記プロセッシ
ングユニットは、前記格子点の全てに対し前記格子点の
存在する位置が前記場の中の計算領域の内部か、あるい
は前記計算領域内の物体の内部か外部かを示す内点ビッ
ト及び外点ビットを、さらに前記計算領域境界に位置す
る前記格子点に対して境界条件の情報を与える境界条件
ビットを、前記要素プロセッサの前記データメモリにロ
ードしておき、前記内点ビット、前記外点ビット及び前
記境界条件ビットに従ってデータフローグラフの処理を
変更することができる同一の布線論理に従ったハードウ
ェア回路をさらに備える前記情報処理装置を用いること
を特徴とする。
【0064】第50の発明に係る情報処理装置における
計算方法は、第48の発明の情報処理装置における計算
方法において、前記プロセッシングユニットは、2N個
の入力データに対し、第1入力と第2入力,第3入力と
第4入力,第5入力と第6入力,…,第2N−1入力と
第2N入力のそれぞれの乗算結果を累積加算する演算命
令を直接実行するための演算装置をさらに備える前記情
報処理装置を用いることを特徴とする。
【0065】第51の発明に係る情報処理装置における
計算方法は、第27ないし第50の発明のいずれかの情
報処理装置における計算方法において、計算対象となる
前記格子点が領域の境界上にあるため、場の支配方程式
を解くための通信回数が少ない前記格子点についてもダ
ミーの通信を行うことにより全ての前記格子点での通信
回数を平準化することを特徴とする。
【0066】第52の発明に係る情報処理装置における
計算方法は、第27ないし第51の発明のいずれかの情
報処理装置における計算方法において、計算対象となる
前記格子点が領域の境界上にあるため、場の支配方程式
を解くための演算回数が少ない前記格子点についてもダ
ミーの演算を行うことにより全ての前記格子点での演算
回数を平準化することを特徴とする。
【0067】第53の発明に係る情報処理装置における
計算方法は、第27ないし第52の発明のいずれかの情
報処理装置における計算方法において、微分方程式の差
分法による求解のための各々の前記格子点の処理を行
い、かつ、該格子点間で通信を行う前記情報処理装置に
おける計算方法において、通信要否および通信の方法を
示す情報を、前記各格子点毎に有することを特徴とす
る。
【0068】第54の発明に係る情報処理装置における
計算方法は、第27ないし第53の発明のいずれかの情
報処理装置における計算方法において、微分方程式の差
分法による求解のための各々の前記格子点の処理を行う
前記情報処理の計算方法において、前記各格子点ごとに
メモリ領域を割り当て、前記メモリ領域を介して近接す
る格子点間の通信を行い、前記格子点ごとに、通信すべ
き方向毎に、通信すべき前記メモリ領域を指し示すため
の情報を保持させることを特徴とする。
【0069】第55の発明に係る情報処理装置における
計算方法は、第54の発明の情報処理装置における計算
方法において、前記格子点毎に通信不可能方向には共通
のダミー領域を示す情報を保持させるようにしたことを
特徴とする。
【0070】第56の発明に係る情報処理装置における
計算方法は、第27ないし第55の発明のいずれかの情
報処理装置における計算方法において、隣接する前記格
子点が異なる前記要素プロセッサにまたがって割り当て
られた場合、双方の前記要素プロセッサで互いに相手方
へ送信するためにデータを時系列的に2組もち、これら
の格子点に対するデータが更新された場合、更新された
データが時系列的に前の組のデータと比較して所定値以
下の変位ならば相手方のデータの書換えをしないことを
特徴とする。
【0071】第57の発明に係る情報処理装置における
計算方法は、第54の発明の情報処理装置における計算
方法において、前記方程式の計算の対象となる計算領域
の境界に最も近接する格子点であって、かつ、前記計算
領域の外側の格子点を模擬する仮想的なデータ領域を前
記データメモリに割り当てることを特徴とする。
【0072】第58の発明に係る情報処理装置における
計算方法は、第27ないし第57の発明のいずれかの情
報処理装置における計算方法において、隣接する前記要
素プロセッサ同士を結合した細ノード結合と、一つ以上
の前記要素プロセッサを飛び越して前記要素プロセッサ
同士を接続する粗ノード結合コネクションで結合した粗
ノード結合とを有する前記情報処理装置を用いることを
特徴とする。
【0073】第59の発明に係る情報処理装置における
計算方法は、第58の発明の情報処理装置における計算
方法において、前記粗ノード結合によって結ばれた前記
要素プロセッサによる計算と前記細ノード結合によって
結ばれた前記要素プロセッサによる計算を交互に行うこ
とによって前記方程式についての計算を進めることを特
徴とする。
【0074】第60の発明に係る情報処理装置における
計算方法は、第27ないし第59の発明のいずれかの情
報処理装置における計算方法において、前記格子点に割
り当てた通信情報を使用することにより、選択された前
記格子点のうちの一部のみを使用した前記場の支配方程
式の計算処理を、前記格子点の全部を用いた前記場の支
配方程式の計算処理と平行に実行することを特徴とす
る。
【0075】第61の発明に係る情報処理装置における
計算方法は、第58ないし第60の発明のいずれかの情
報処理装置における計算方法において、選択された前記
格子点のみを用いた前記所定の方程式の計算処理のアル
ゴリズムは、前記格子点全部を用いた前記所定の方程式
の計算処理のアルゴリズムと異なるアルゴリズムを用い
ることを特徴とする。
【0076】第62の発明に係る情報処理装置における
計算方法は、第61の発明の情報処理装置における計算
方法において、隣接する前記格子点に関するデータを時
系列的に2組以上もち、データの前記組間で変動が所定
量以下なら前記格子点の演算を中止し、他の計算を実行
することを特徴とする。
【0077】第63の発明に係る情報処理装置における
計算方法は、第62の発明の情報処理装置における計算
方法において、前記データの組間の変動の値によって前
記格子点の演算を省略する前記所定量の値を収束の段階
に応じて小さくすることを特徴とする。
【0078】第64の発明に係る情報処理装置における
計算方法は、第27ないし第63の発明のいずれかの情
報処理装置における計算方法において、前記要素プロセ
ッサ内に出力データを非同期に読み出し、該出力データ
にデータの整理分類に必要な識別子を付与し、前記要素
プロセッサ外にデータを送り出す出力ユニットを備えて
構成される。
【0079】第65の発明に係る情報処理装置における
計算方法は、第64の発明の情報処理装置における計算
方法において、前記各要素プロセッサの前記出力ユニッ
トから出力データを収集し、全ての前記要素プロセッサ
からの非同期に到着する出力データに基づいてリアルタ
イムに前記出力データの可視画像を生成する出力データ
画像処理部をさらに備えて構成される。
【0080】第66の発明に係る情報処理装置における
計算方法は、第27ないし第65の発明のいずれかの情
報処理装置における計算方法において、前記要素プロセ
ッサを統括するホストコンピュータから前記要素プロセ
ッサへデータを転送する際に、前記ホストコンピュータ
が用いている任意の第1の座標系から前記要素プロセッ
サが用いている第2の座標系に変換し、前記要素プロセ
ッサから前記ホストコンピュータへデータを転送する際
には、前記要素プロセッサが用いている第2の座標系か
ら前記ホストコンピュータが用いている前記第1の座標
系に変換する座標変換ユニットをさらに備える前記情報
処理装置を用いることを特徴とする。
【0081】第67の発明に係る情報処理装置における
計算方法は、第27ないし第66の発明のいずれかの情
報処理装置における計算方法において、前記複数の要素
プロセッサは、ホストコンピュータが統括して管理する
複数の要素プロセッサであって、該要素プロセッサの各
々に、前記プロセッシングユニットと独立に設けられ、
該プロセッシングユニットの演算処理を阻害せずに収束
判定を行う収束判定部を設け、複数の前記要素プロセッ
サを複数のグループに区分し、前記各グループ内で前記
各要素プロセッサの前記収束判定部を1方向閉ループ状
あるいは集約形式に接続する第1の通信路と、前記各グ
ループの前記第1の通信路の各々に接続され、前記各グ
ループ内の全ての前記収束判定部の収束判定結果を集約
する収束判定ユニットと、前記各グループの前記収束判
定ユニットの全てを1方向閉ループ状あるいは集約形式
に接続する第2の通信路とをさらに備える前記情報処理
装置を用いることを特徴とする。
【0082】第68の発明に係る情報処理装置における
計算方法は、第67の発明の情報処理装置における計算
方法において、複数の前記要素プロセッサを有する前記
情報処理装置における計算方法において、メッセージを
転送する経路を有する前記情報処理装置を用いる計算方
法であって、前記要素プロセッサ毎に、もしくは前記要
素プロセッサに割り当てられた1個以上の処理手段毎に
収束判定を実施する工程と、所定の前記要素プロセッサ
もしくは前記処理手段が収束したことを判断した場合、
当該要素プロセッサもしくは前記処理手段から収束した
ことを示すメッセージを送出する工程と、隣接する前記
要素プロセッサもしくは前記処理手段から収束したこと
を示すメッセージを受け取った後、収束したと判断した
場合、当該要素プロセッサもしくは前記処理手段から収
束したことを示すメッセージを送出する工程と、前記工
程を繰り返すことによって、前記経路に従って順次前記
メッセージを転送して全体の収束を判定する工程からな
る収束判定の工程を含むことを特徴とする。
【0083】第69の発明に係る情報処理装置における
計算方法は、第68の発明の情報処理装置における計算
方法において、全体の収束を判定する前記工程によって
全体が収束したと判定された後、前記各工程を繰り返す
ことによって、再度同様の収束判定をすることを特徴と
する。
【0084】第70の発明に係る情報処理装置における
計算方法は、第69の発明の情報処理装置における計算
方法において、前記経路は、それぞれ、異なる前記処理
手段の結合によって形成された複数の経路を含み、前記
複数の経路に従って順次転送された前記メッセージによ
って、多重に収束を確認することを特徴とする。
【0085】第71の発明に係る情報処理装置における
計算方法は、第70の発明の情報処理装置における計算
方法において、全体の収束を判定する前記工程によって
全体が収束したと判定された後、すべての前記要素プロ
セッサ、もしくは、前記処理手段の処理を停止させて、
改めて収束の確認をすることを特徴とする。
【0086】第72の発明に係る情報処理装置における
計算方法は、複数のプロセッサを有する情報処理装置に
おける計算方法において、収束判定の結果を記憶する記
憶手段を初期化する工程と、前記プロセッサが処理を担
当している格子点毎に、前記格子点に対する計算が収束
したか否か判定して、収束に達していないと判定した場
合には前記記憶手段を所定の論理値にセットする工程か
ら成る収束判定の工程を含むことを特徴とする。
【0087】第73の発明に係る情報処理装置は、第1
ないし第6の発明のいずれかの情報処理装置において、
複数の前記要素プロセッサは、互いに隣接する要素プロ
セッサ間で前記データメモリを共有し、複数の前記要素
プロセッサの各々は、隣接する前記要素プロセッサと共
有する複数の前記データメモリに共通に接続され、アク
セス要求に応じて通信方向を切り替えることによって該
複数のデータメモリのうちの一つとの間でのデータの入
出力を制御する入出力制御部をさらに有することを特徴
とする。
【0088】第74の発明に係る情報処理装置は、第1
ないし第23の発明のいずれかの情報処理装置におい
て、前記複数の要素プロセッサの各々が実行している演
算の収束判定結果を一時的に記憶するため、前記複数の
要素プロセッサにそれぞれ対応して設けられた複数のレ
ジスタと、複数の前記レジスタの出力の論理積を生成す
るワイヤードOR回路とをさらに備えて構成される。
【0089】第75の発明に係る情報処理装置における
計算方法は、第27ないし第34のうちのいずれかの情
報処理装置における計算方法について、複数の前記要素
プロセッサは、互いに隣接する要素プロセッサ間で前記
データメモリを共有し、複数の前記要素プロセッサの各
々は、隣接する前記要素プロセッサと共有する複数の前
記データメモリに共通に接続され、アクセス要求に応じ
て通信方向を切り替えることによって該複数のデータメ
モリのうちの一つとの間でのデータの入出力を制御する
入出力制御部をさらに有し、複数の前記要素プロセッサ
の各々は、前記データメモリの内容を前記入出力制御部
を介して参照することを特徴とする。
【0090】第76の発明に係る情報処理装置における
計算方法は、第27ないし第66の発明のいずれかの情
報処理装置における計算方法について、前記複数の要素
プロセッサに対応してそれぞれ設けられた複数のレジス
タに、対応する要素プロセッサの収束判定結果を一時的
に記憶させ、ワイヤードOR回路で複数の前記レジスタ
の記憶している前記収束判定結果の論理積を取りつつ演
算を実行することを特徴とする。
【0091】第77の発明に係る情報処理装置における
計算方法は、第27ないし第66の発明のいずれかの情
報処理装置における計算方法について、不安定要因が存
在する解析不安定点を含む要素プロセッサ上に割り当て
られる格子点の数は、解析不安定点を含まない要素プロ
セッサ上に割り当てられる格子点の数より少なくするこ
とを特徴とする。
【0092】
【作用】第1の発明あるいは第27の発明におけるデー
タバスによって、隣接する要素プロセッサ間でデータ通
信を行い、そのデータを用いて、要素プロセッサが各々
非同期に、かつ独立に動作して計算することにより、要
素プロセッサ間の通信時間を短縮することができる。
【0093】第2の発明あるいは第28の発明における
データバスによって、隣接する要素プロセッサ間でデー
タ通信を行い、そのデータを用いて、要素プロセッサが
各々非同期に、かつ独立に動作して計算することによ
り、要素プロセッサ間の通信時間を短縮することができ
る。
【0094】第3の発明あるいは第29の発明における
2次元場を空間的に分割して得られる格子点の処理を行
う要素プロセッサを2次元に並べた2次元プレーンは、
要素プロセッサ間の通信時間を短縮することができ、さ
らに、時間方向の次元をパイプライン化して、複数の時
刻についての計算を並列に行って計算時間を短縮するこ
とができる。
【0095】第30の発明における所定の方程式が、微
分方程式であって、微分方程式の解を差分法を用いて得
る際には、計算の対象としている格子点に対して隣接す
る格子点以外の格子点の影響がきわめて小さいため、精
度の高い解析解を得ることができる。
【0096】第31の発明における偏微分方程式あるい
は常微分方程式では、微分方程式の解を差分法を用いて
得る際には、計算の対象としている格子点に対して隣接
する格子点以外の格子点がの影響が無視でき、極めて精
度の高い解析解を得ることができる。
【0097】第32の発明における要素プロセッサは、
それぞれ、場を空間的に分割して得られる複数の格子点
の計算を担当する。そのため、隣接する格子点でも、2
つの要素プロセッサをまたぐものとそうでないものがで
きる。異なる要素プロセッサに存在する隣接格子点相互
のデータの転送を行うため、格子点に対応する番号ある
いはデータメモリ上の格子点に該当するデータ領域のベ
ースアドレスを入力トークンとして要素プロセッサの演
算を制御することで、隣接要素プロセッサ上のデータメ
モリに直接アクセスして要素プロセッサ間のデータ転送
を行い、格子間のデータ転送オーバーヘッドを排除でき
非同期制御による高速な解析が可能となる。
【0098】第4の発明あるいは第33の発明における
伝送手段は、要素プロセッサに対する計算の初期条件及
び境界条件がホストコンピュータからインプットされる
と、全ての要素プロセッサ上のデータメモリをリセット
し、計算の初期条件及び境界条件をネットワーク及び要
素プロセッサ間コネクションを介して各要素プロセッサ
に割り振る。この割り振りが完了次第各要素プロセッサ
は計算開始の待機状態となる。
【0099】第5の発明あるいは第34の発明における
隣接する要素プロセッサのプロセッシングユニット間の
データの通信を、各々のプロセッシングユニット毎に、
非同期でかつ繰り返し行うことにより、各要素プロセッ
サ上で行われる演算は、隣接要素プロセッサの処理を阻
害することなく、データメモリとアクセスし、全く非同
期に処理を継続することが可能となる。つまり、隣接要
素プロセッサの演算を妨げずに隣接する要素プロセッサ
間で通信することができる。
【0100】第6の発明あるいは第35の発明における
隣接する要素プロセッサ間の通信を、メッセージ通信
で、かつ多重命令流多重データ流で行うことで、並列処
理を効率化できる。
【0101】第7の発明あるいは第36の発明における
要素プロセッサは、それぞれ、隣接する要素プロセッサ
のデータメモリを直接参照することによって、隣接する
要素プロセッサからのデータメモリに対するアクセスを
参照動作のみに限定することができる。隣接する要素プ
ロセッサは、互いにプロセッシングユニット間のデータ
の通信を、容易に、プロセッシングユニット毎に、非同
期でかつ繰り返し行うことができる。
【0102】第8の発明あるいは第37の発明における
要素プロセッサは、それぞれ、隣接する要素プロセッサ
のデータメモリを直接参照および更新できるので、異な
る要素プロセッサがそれぞれ処理を担当する隣接格子点
のデータに関して相互に相手のデータメモリを直接的に
アクセス可能とすることによって、計算の効率が格段に
向上し、短時間で所望の演算が終了する。
【0103】第9の発明あるいは第38の発明における
メモリに結合された複数の要素プロセッサからメモリに
記憶されたメモリ内容の参照および更新ができ、このメ
モリは、隣接する要素プロセッサを結合する経路上に、
隣接する要素プロセッサ同士が共有するので、例えば入
出力制御部等を介して、隣接格子点についてのデータを
メモリに対して直接的に参照更新することで、計算の効
率を向上することができる。
【0104】第10の発明あるいは第39の発明におけ
るデータメモリは、マルチポートメモリであるため、当
該要素プロセッサおよび隣接する要素プロセッサからマ
ルチポートメモリに出されるメモリ参照要求を同時に処
理可能となる。
【0105】第11の発明あるいは第40の発明におけ
るデータメモリに対するアクセス要求を一時バッファす
るバッファ機構を有するので、同一メモリアドレスに対
する更新要求が衝突した場合でも処理が中断することが
ない。
【0106】第12の発明あるいは第41の発明におけ
るバッファメモリは、それぞれ、隣接する要素プロセッ
サ間の通信において、隣接する要素プロセッサから送ら
れてきたデータをオブジェクト名付きデータとして書き
込み、要素プロセッサは、バッファメモリから任意のタ
イミングでオブジェクト名付きデータをサーチして隣接
する要素プロセッサからのデータ受け入れを完了するの
で、隣接要素プロセッサ間のデータ通信により各要素プ
ロセッサ内の演算を妨げることを防止することができ
る。
【0107】第13の発明あるいは第42の発明におけ
るマッチングメモリによって、処理に必要なデータの待
ち合わせを行わせ、要素プロセッサ内のプロセッシング
ユニットは、必要なデータがマッチングメモリに揃った
時点で一定の定められた演算のみを行って結果をマッチ
ングメモリへ転送すると共に、隣接する要素プロセッサ
へのデータを送り出し、更に隣接する要素プロセッサか
らのデータを受け入れることで、データ間の同期を自動
的にとって、より高速で、通信のオーバーヘッドの少な
い処理が可能となる。
【0108】第14の発明あるいは第43の発明におけ
るプログラムメモリは、プロセッシングユニットの演算
を規定するプログラムの書き換えが可能で、例えば、要
素プロセッサがホストコンピュータによって統括して管
理されている場合、ホストコンピュータからネットワー
クを介してプロセッシングユニット内のプログラムメモ
リへ新たなプログラムをロードすることによりプログラ
ムを変更できる。
【0109】第44の発明におけるプロセッシングユニ
ットは、格子点の種類に関わらず同一の計算プログラム
を用いて演算を行うことができるように、格子点の全て
に対し格子点の存在する位置が場の中の計算領域の内部
か外部か、あるいは計算領域内の物体の内部か外部かを
示す内点ビット及び外点ビットを、さらに計算領域境界
に位置する格子点に対して境界条件の情報を与える境界
条件ビットを、要素プロセッサの前記プログラムメモリ
上に予め与えておき、要素プロセッサには内点ビット、
外点ビット及び境界条件ビットにより処理を変更する。
【0110】第15の発明あるいは第45の発明におけ
るプロセッシングユニットは、プログラムメモリの異な
る領域に割り当てられた複数のプログラムを同時実行可
能なデータフロー方式に基づいて動作する。そして、各
格子点の処理を行う複数のプログラムをプログラムメモ
リの異なる領域に割り当てることにより、複数の格子点
の処理を同時に実行させることで、複数の格子点の計算
を同一のプロセッシングユニットで容易に行わせること
ができる。
【0111】第16の発明あるいは第46の発明におけ
るプロセッシングユニットは、識別子を用いることによ
り、同一プログラムを複数セットの入力データに対して
同時に実行することの可能な動的データ駆動方式に基づ
いて動作する。
【0112】第47の発明におけるプロセッシングユニ
ットは、入力データに付与されている識別子の値に基づ
いて、隣接する格子点に関するデータを格納しているデ
ータメモリのアドレスを計算する。そして、データメモ
リのアドレスを用いてデータメモリの参照及び更新をお
こなう。そのため、隣接する要素プロセッサのプロセッ
シングユニット間のデータの通信を、プロセッシングユ
ニット毎に、非同期でかつ繰り返し行う情報処理装置に
おいても容易に動的データ駆動方式によって計算でき
る。
【0113】第17の発明あるいは第48の発明におけ
るプロセッシングユニットは、データ処理の流れの一部
または全てを布線論理に従ったデータフローグラフ状に
演算器を配線したハードウエア回路を備えるので、それ
ぞれのデータは演算器の列をデータフローグラフの上部
から順に通り次々と演算加工され、自動的に最終演算器
にまで到達する。上記の演算が終了すると、計算結果を
プロセッサ内データバスを介してデータメモリに書き込
むと同時に、要素プロセッサ間コネクションを通して隣
接要素プロセッサのデータメモリに書き込んで一連の演
算処理を終了する。
【0114】第18の発明あるいは第49の発明におけ
るプロセッシングユニットは、格子点の種類に関わらず
同一の布線論理に従ったハードウェア回路によって計算
ができるように、格子点の全てに対し格子点の存在する
位置が場の中の計算領域の内部か、あるいは計算領域内
の物体の内部か外部かを示す内点ビット及び外点ビット
を、さらに計算領域境界に位置する格子点に対して境界
条件の情報を与える境界条件ビットを、要素プロセッサ
のデータメモリにロードしておき、内点ビット、外点ビ
ット及び境界条件ビットに従ってデータフローグラフの
処理を変更する。
【0115】第19の発明あるいは第50の発明におけ
るプロセッシングユニットは、2N個の入力データに対
し、第1入力と第2入力,第3入力と第4入力,第5入
力と第6入力,…,第2N−1入力と第2N入力のそれ
ぞれの乗算結果を累積加算する演算を実行するときに、
演算装置を呼び出してそれらの演算を行わせることによ
って、例えば、ナビエ・ストークス方程式等これらの演
算を多用する演算処理を高速化することができる。
【0116】第51の発明における要素プロセッサは、
通信回数が少ない格子点についてもダミーの通信を行う
ことにより、通信回数の少ない格子点の通信回数を増や
すことによって、全ての格子点での通信回数を平準化す
る。
【0117】第52の発明における要素プロセッサは、
演算回数が少ない格子点についてもダミーの演算を行う
ことにより、演算回数が少ない格子点の演算回数を増や
すことによって、全ての格子点での演算回数を平準化す
る。
【0118】第53の発明における要素プロセッサは、
格子点間での通信情報を各格子点ごとに割り付け、格子
点間での通信の効率化を図る。例えば、要素プロセッサ
は、格子点間での通信の要否を示す通信要否の情報、ネ
ットワークを介する通信か否かを示す通信の方法の情報
を各格子点ごとに割り付け、不要な通信を無くす等によ
って、格子点間での通信の効率化を図る。
【0119】第54の発明におけるデータメモリは、メ
モリ領域を各格子点ごとに割り当られ、要素プロセッサ
はメモリ領域を介して近接する格子点間のデータのやり
取りを行い、格子点間のデータのやり取りを格子点ごと
に独立に行わせることができる。そして、データメモリ
は、格子点毎に通信すべき方向毎に、通信すべきメモリ
領域を指し示すための情報を保持することで、格子点ご
とのデータの通信を効率的に行うことができる。
【0120】第55の発明における要素プロセッサは、
格子点毎に通信不可能方向には共通のダミー領域を示す
情報を保持させることによって、通信が可能であるか不
可能であるかに関わらず同一の処理を行うことができ、
通信の可否を判定する可否判定プログラムが不要にな
る。また、通信不可能方向の多い格子点の処理だけが進
みすぎるのを避けることができ、同期処理等を省くこと
が可能となる。
【0121】第56の発明における要素プロセッサは、
隣接する格子点が異なる要素プロセッサにまたがって割
り当てられた場合、双方の要素プロセッサで互いに相手
方から送信されたデータを時系列的に2組もち、これら
の格子点に対するデータが更新された場合、更新された
データが時系列的に前の組のデータと比較して所定値以
下の変位ならば相手方のデータの書換えをしないように
することで、要素プロセッサ間の不要な通信を省くこと
ができる。
【0122】第57の発明における要素プロセッサは、
方程式の計算の対象となる計算領域の境界に最も近接す
る格子点であって、かつ、計算領域の外側の格子点に対
して、模擬する仮想的なデータ領域を割り当てて、計算
領域のすぐ内側の格子点の処理を計算領域内の他の格子
点の処理と同じにする。
【0123】第20の発明あるいは第58の発明におい
ては、隣接する要素プロセッサ同士を結合した細ノード
結合と、一つ以上の要素プロセッサを飛び越して要素プ
ロセッサ同士を接続する粗ノード結合コネクションで結
合した粗ノード結合とを有することで、粗ノード結合と
細ノード結合とを用いて計算を進め、精度を落とすこと
なく計算時間の短縮を行うことができる。
【0124】第59の発明においては、粗ノード結合に
よって結ばれた要素プロセッサによる計算と細ノード結
合によって結ばれた要素プロセッサによる計算を交互に
行うことによって方程式についての計算を進められ、粗
ノード結合によって結ばれた要素プロセッサによる計算
によって、収束時間が短縮され、細ノード結合によって
結ばれた要素プロセッサによる計算によって、計算の精
度が補償される。
【0125】第60の発明においては、格子点のうちの
一部を選択し、選択された格子点のみを用いた方程式の
計算処理を、格子点全部を用いた方程式の計算処理と同
時に行うことで、収束性を向上させる。
【0126】第61の発明における選択された格子点の
みを用いた方程式の計算処理のアルゴリズムを、格子点
全部を用いた方程式の計算処理のアルゴリズムと異なる
アルゴリズムを用いて、前者のアルゴリズムを収束させ
ることに重点をおいたものとし、後者のアルゴリズムを
解の精度をえることに重点をおいたものとする。
【0127】第62の発明における要素プロセッサは、
隣接する格子点に関するデータを時系列的に2組以上も
ち、その2組のデータを比較することで、データの組間
で変動が所定量以下ならその格子点の演算を省略する。
【0128】第63の発明における要素プロセッサは、
データの組間の変動の値によって格子点の演算を省略す
る所定量の値を収束の段階に応じて小さくすることで、
さらに、無駄な局所的な計算を行うことを回避すること
ができる。
【0129】第21あるいは第64の発明におけるI/
Oユニットは、要素プロセッサ内に出力データを非同期
に読み出し、該出力データにデータの整理分類に必要な
識別子を付与することによって、複数の状態量の出力デ
ータが混在しておくられてきても、識別子によって、各
々区別して分類して、ポスト処理を施すことができる。
【0130】第22の発明あるいは第65の発明におけ
る出力データ画像処理部は、各要素プロセッサの出力ユ
ニットから出力データを収集し、計算の進捗状況を外部
に伝えるために、全要素プロセッサからの非同期に到着
する出力データに基づいてリアルタイムにデータの可視
画像を生成する。
【0131】第23の発明あるいは第66の発明におけ
る座標変換ユニットは、ホストコンピュータが用いてい
る第1の座標系から要素プロセッサが用いている第2の
座標系に変換することと要素プロセッサが用いている第
2の座標系からホストコンピュータが用いている第1の
座標系に変換することで、入力に適した座標系と計算に
適した座標系の異なる座標系を用いることができ、格子
形成が容易になる。
【0132】第24の発明あるいは第67の発明におけ
る収束判定部は、要素プロセッサの各々に、プロセッシ
ングユニットと独立に設けられ、該プロセッシングユニ
ットの演算処理を阻害せずに収束判定を行うために設け
られ、さらに、第1の通信経路によって、複数の前記要
素プロセッサを複数のグループに区分し、各グループ内
で各要素プロセッサの収束判定部を1方向閉ループ状あ
るいは集約形式に接続し、第2の通信経路によって、各
グループの第1の通信路の各々に接続され、各グループ
内の全ての収束判定部の収束判定結果を集約する収束判
定ユニットと、各グループの収束判定ユニットの全てを
1方向閉ループ状あるいは集約形式に接続することがで
き、収束判定部で、各要素プロセッサの計算を阻害する
ことなく収束判定を行え、その情報を第1および第2の
通信経路を用いてホストコンピュータへ伝えることがで
きる。
【0133】第25の発明あるいは第68の発明におけ
る複数の要素プロセッサは、まず、要素プロセッサ毎
に、もしくは要素プロセッサに割り当てられた1個以上
の処理手段毎に収束判定を実施する。そして、隣接する
要素プロセッサから収束したことを示すメッセージを受
け取った後、収束したことを判断した場合、当該要素プ
ロセッサもしくは処理手段で収束したことを示すメッセ
ージを、それぞれの要素プロセッサが送出する。この動
作を繰り返すことによって、経路に従って順次メッセー
ジを転送して全体の収束を判定する。
【0134】第69の発明における全体の収束を判定す
る工程によって全体が収束したと判定された後、各工程
を繰り返すことによって、再度同様の収束判定をするこ
とで、非安定点が存在する場合でも、時間をずらして2
度判定することができ、系全体の収束判定を確実なもの
にすることができる。
【0135】第26の発明あるいは第70の発明におけ
る複数の経路に従って順次転送されたメッセージによっ
て、多重に収束を確認することで、非安定点が存在する
場合でも、一つの格子点に対して少なくとも2回の収束
判定が行え、系全体の収束判定を確実なものにすること
ができる。
【0136】第71の発明における全体の収束を判定す
る工程によって全体が収束したと判定された後、すべて
の要素プロセッサ、もしくは、処理手段の処理を停止さ
せて、改めて収束の確認をすることで、非安定点が存在
する場合でも、一度は全体の要素プロセッサの処理を停
止させることになるが、一度で全体の収束判定が行え、
系全体の収束判定を確実なものにすることができる。
【0137】第72の発明における記憶手段は、収束判
定の結果を記憶する記憶手段を初期化する工程によって
初期化された後、系全体が十分収束していると思われる
所定の時間経過後、プロセッサが処理を担当している格
子点毎に、格子点に対する計算が収束したか否か判定し
て、収束に達していないと判定した場合には記憶手段を
所定の論理値にセットすることで、記憶手段の記憶内容
を調べることによって、収束の判定を行うことができ、
系が継続的に不安定になっている場合にも対応すること
ができる。
【0138】第73あるいは第75の発明における入出
力制御部が要素プロセッサのデータメモリアクセス要求
によって通信方向を切り替え、要素プロセッサは複数の
隣接要素プロセッサとの間で共有化されている複数のデ
ータメモリのうちの一つのデータメモリからデータを高
速に読み出し/書き込むことができる。この読み出され
たデータは隣接要素プロセッサが書き込んだものであ
り、データメモリへのアクセスによって隣接要素プロセ
ッサ間でのデータ通信が行われることになる。
【0139】第74あるいは第76の発明におけるワイ
ヤードOR回路が生成する論理積の値によって、複数の
レジスタの全てに各要素プロセッサでの演算が収束した
ことを示す収束判定結果が記憶されているか否かを知る
ことができる。この時、レジスタに記憶された収束判定
結果を用いた収束判定とは独立に要素プロセッサは演算
処理を継続できる。
【0140】第77の発明における要素プロセッサは、
解析不安定点を含む場合には、解析不安定点を含む場合
に比べて、格子点の数を少なく割り当てることにより、
収束までの時間を短縮するので、全要素プロセッサの演
算時間の偏差が小さくなるため、全要素プロセッサが収
束するまでの時間を短縮することができる。
【0141】
【発明の実施の形態】
<実施の形態1>以下、この発明の第1実施の形態を図
について説明する。図1はこの発明の第1実施の形態に
おけるマルチプロセッサの全体構成図である。図1にお
いて、1は演算処理を統括するホストコンピュータ、2
はホストコンピュータ1の制御の下で演算処理を行う情
報処理装置本体、3は空間的に配置され情報処理装置2
を構成する要素プロセッサ、4はホストコンピュータ1
と情報処理装置2間を結び情報のやりとりを行うための
ネットワーク、5は各要素プロセッサ3内に設けられ演
算を行うためのプロセッシングユニット、6は各要素プ
ロセッサ3内に設けられ情報を格納するためのメモリ
部、7は空間的に配置された要素プロセッサ3相互の間
を結び情報のやりとりを行うための要素プロセッサ間コ
ネクションである。
【0142】図1の情報処理装置2においては、要素プ
ロセッサ3同士の結合状態は格子状に配置するニアネイ
バメッシュの場合について示すが、例えばリニアアレ
イ、リング、スター、ツリー、シストリックアレイ、完
全結合等の他の結合方式であってもよい。
【0143】次に動作について説明する。ホストコンピ
ュータ1は、ネットワーク4を介して情報処理装置2に
対し、初期条件および境界条件の設定、情報処理装置2
内部の演算の収束判定、情報処理装置2における演算結
果の出力などを行う。各要素プロセッサ3は、要素プロ
セッサ間コネクション7を介して互いに情報交換できる
ように結ばれており、ネットワーク4を介してホストコ
ンピュータ1から情報処理装置2へ送られる制御命令に
従い、初期条件および境界条件を設定されたり、計算の
収束判定のための情報を送出したり、計算結果の送出を
行う。ホストコンピュータ1には、パーソナルコンピュ
ータあるいはワークステーション等が用いられ、ネット
ワーク4を介して情報処理装置2と接続される。
【0144】各要素プロセッサ3は、プロセッシングユ
ニット5、メモリ部6から構成され、ネットワーク4及
び要素プロセッサ間コネクション7を介してホストコン
ピュータ1から送られてきた初期条件・境界条件をメモ
リ部6に格納し、ホストコンピュータ1からの計算開始
トークンを受け取った後、プロセッシングユニット5に
おいて直ちに所定の演算処理を独立に行い、処理の済ん
だデータをメモリ部6に書き込み、或いは隣接要素プロ
セッサ3のメモリ部6に書き込み、更に計算を続ける機
能を有する。
【0145】要素プロセッサ3は、ハードウエアの構成
方式によって3種類に大別される。図2乃至図4は、種
々の要素プロセッサ3a〜3cのハードウエア構成方式
の例を示すブロック図である。
【0146】各図において、8はメモリ部6内に設けら
れたデータメモリ、9は要素プロセッサ3内部に設けら
れプロセッシングユニット5とデータメモリ8間を結び
情報のやりとりを行うためのプロセッサ内データバス、
10はプロセッシングユニット5内部に設けられた浮動
小数点演算器、11はプロセッシングユニット5内部に
設けられたプログラムメモリ、12は同じくプロセッシ
ングユニット5内部に設けられた機能モジュール、13
はプロセッシングユニット5内に設けられ布線論理に従
ったデータフローグラフ状のハードウエア回路、14は
データフローグラフ13に従って配置された演算器、1
5はデータフローグラフ13に従って演算器14を結ん
だデータ線である。
【0147】微分方程式の求解に必要な全演算をハード
ウエアで実現することによって命令レベルでの最大の並
列度を実現可能となる。領域分割法にもとづいたマルチ
プロセッサ解法においては、各プロセッサの命令レベル
での並列性はプロセッサのアーキテクチャに依存してお
り、微分方程式の解法自体が持つ並列性に準処するもの
ではない。図2は、データ処理の流れを布線論理に基づ
くデータフローグラフで実現した要素プロセッサの構成
図である。
【0148】<実施の形態2>この発明の第2実施の形
態を図について説明する。図2はこの発明の第2実施の
形態による情報処理装置を構成する要素プロセッサを示
すブロック図である。図2において、プロセッシングユ
ニット5内には、例えば、各演算器14が図5に示す布
線論理に従ったデータフローグラフ13に沿って配置さ
れ、データ線15によって結線されている。図5は基本
処理の流れを示したデータフローグラフである。図にお
いて、16は演算ノードであり、アーク17に沿って入
力されるデータに対して所定の演算を行い、演算結果を
アーク17に沿って次の演算ノードへ出力する。
【0149】演算器14は、例えば、四則演算、論理演
算、メモリ読み出し・書き込み命令、絶対値、指数演算
等を実行する機能を持っている。
【0150】ネットワーク4を介してホストコンピュー
タ1より送られてくるトークン(ノードアドレスあるい
は計算開始をコールするメッセージ)が、さらにプロセ
ッサ内データバス9を介してプロセッシングユニット5
に入ると、要素プロセッサ3aはまずデータメモリ8、
例えばDRAM(Dynamic Randum Access Memory)、S
RAM、フラッシュメモリ等にアクセスし、蓄えられて
いる自己のプロセッシングユニット5の状態量と、隣接
するプロセッシングユニット5の状態量を吸い上げて必
要なデータが揃えられる。それぞれのデータは演算器1
4の列をデータフローグラフ13の上部から順に通り次
々と演算加工され、自動的に最終演算器14にまで到達
する。
【0151】各データは演算器14の列をデータフロー
グラフ13の上部から順に通り次々と演算加工され、自
動的に最終演算器14にまで到達する一連の演算が終了
すると、プロセッシングユニット5は計算結果をプロセ
ッサ内データバス9を介してデータメモリ8に書き込む
と同時に、要素プロセッサ間コネクション7を通して隣
接する要素プロセッサ3aのデータメモリ8に書き込ん
で一連の演算処理を終了する。この場合、プロセッシン
グユニット5はデータフローグラフ13に記述された一
連の処理のみを実行する専用計算機となり、高い演算処
理速度を得ることができる。
【0152】<実施の形態3>次に、この発明の第3実
施の形態を図について説明する。図3はこの発明の第3
実施の形態による情報処理装置を構成する要素プロセッ
サを示すブロック図である。各要素プロセッサ内に書き
換え可能なプログラムメモリを配置することによって、
専用計算機としての機能に柔軟性を持たせることができ
る。図3に示すプロセッシングユニット5は、データフ
ローグラフ13に従った演算器14の配列の代わりに浮
動小数点演算器10とプログラムメモリ11により構成
される。演算はネットワーク4を介してホストコンピュ
ータ1から送られてくるプログラムをさらに要素プロセ
ッサ間コネクション7を介して各要素プロセッサ3bの
プログラムメモリ11にロードして行われる。
【0153】プログラムメモリ11の内容は書き換えが
可能であり、ホストコンピュータからネットワーク4を
介してプロセッシングユニット5内のプログラムメモリ
11へ新たなプログラムをロードすることによりプログ
ラムを変更できる。従って、微分方程式の求解のための
アルゴリズムを変更したり、機能を追加したりする際に
は、新しいプログラムをプログラムメモリ11にロード
するのみで可能となる。
【0154】以上のように演算の高速化のために専用化
した構成のマルチプロセッサでも、プログラムを書き換
えることで、アルゴリズムの変更、機能の追加など柔軟
な機能を有することが可能となる。図3に示したプロセ
ッシングユニットによれば、図2のプロセッシングユニ
ットと比較して、プログラムを変更することによって解
法アルゴリズムを自由に選択・変更でき、計算機の適用
範囲が大きく広がる。
【0155】要素プロセッサ内に内容の書き換えが可能
なプログラムメモリを設けると、プログラムメモリの内
容を書き換えることによってプログラムを変更し、微分
方程式の求解のためのアルゴリズムやスキームを変更し
たり、機能を追加したりすることを同一ハードウェアで
実現することができる。図1および図3は、各々この発
明の第1実施の形態における各要素プロセッサのプログ
ラムメモリに新たなアルゴリズム、スキーム或いはモデ
ルをロードするための情報処理装置の構成及び要素プロ
セッサの構成を示している。
【0156】図3においては、プログラムメモリ11の
内容は書き換えが可能であり、ホストコンピュータ1か
らネットワーク4を介してプロセッシングユニット5内
のプログラムメモリ11へ新たなプログラムをロードす
ることによりプログラムを変更できる。各要素プロセッ
サ3bにおいては、プログラムメモリ11に書き込まれ
たソフトウェアに従って浮動小数点演算器10を作動さ
せて演算を実施する構成となっている。要素プロセッサ
3bに対する新たなアルゴリズム、スキーム、モデルに
より書かれたプログラムがホストコンピュータ1からイ
ンプットされると、全ての要素プロセッサ3b上のプロ
グラムメモリ11がリセットされ、プログラムがネット
ワーク4及び要素プロセッサ間コネクション7を介して
各要素プロセッサ3bに割り振られ、プログラムメモリ
11のプログラムが書き替えられ、完了次第各要素プロ
セッサ3bは計算を開始できる状態となる。
【0157】以上のように、演算の高速化のために専用
化した構成のマルチプロセッサでも、プログラムを書き
換えることで、スタティックにモデル、アルゴリズム、
スキームを再構成でき、柔軟な機能を有することが可能
となる。
【0158】要素プロセッサ内に、ホストコンピュータ
からの指令によって内容の書き換えが可能なデータメモ
リを設けると、データメモリの内容を書き換えることに
よって境界条件を変更し、様々な解析モデルの計算を同
一ハードウェアで実現することができる。
【0159】図1の各要素プロセッサ3は、演算器14
がデータ線15で結ばれたデータフローグラフ13状の
ハード回路を持つか、またはプログラムメモリ11に書
き込まれたソフトウェアに従って浮動小数点演算器10
を作動させるかして演算を実施するよう構成できる。ま
た、ホストコンピュータ1には初期条件設定プログラム
が搭載されており、この設定プログラムによって境界条
件を自由に設定することができる。ホストコンピュータ
1に計算の境界条件がインプットされると、初期条件設
定プログラムが起動され、全ての要素プロセッサ上のデ
ータメモリ8がリセットされ、計算の初期条件及び境界
条件がネットワーク4及び要素プロセッサ間コネクショ
ン7を介して各要素プロセッサ3に割り振られ、完了次
第各要素プロセッサ3は計算開始の待機状態となる。
【0160】従って、同一のマルチプロセッサ構成の情
報処理装置2を用いて、様々な境界条件や初期条件に対
する演算が、ホストコンピュータに条件を入力するとい
う簡単な手続きで実現できる。
【0161】<実施の形態4>次に、この発明の第4実
施の形態を図について説明する。図4はこの発明の第4
実施の形態による情報処理装置を構成する要素プロセッ
サを示すブロック図である。図4に示すプロセッシング
ユニット5は、図2及び図3に示したプロセッシングユ
ニットの構成を複合した機能を有するものであり、図4
に示すプロセッシングユニット5においては、微分方程
式の解法に頻出する演算処理機能が機能モジュール12
の中にハード的に回路化して構成されている。計算を実
施する際には、プログラム中に機能モジュール12をコ
ールするコマンドを記述して、必要に応じて機能モジュ
ール12を呼び出して機能させる。従って、図3に示し
たプロセッシングユニットのように、演算処理の全てに
対してソフトウエアが浮動小数点演算器10を機能させ
る場合と比較して、その間の計算時間を大幅に削減する
ことができる。
【0162】上記の機能を有する各要素プロセッサ3c
は、データ通信用の要素プロセッサ間コネクション7に
よって隣接要素プロセッサ3cと格子状に接続されてお
り、この要素プロセッサ間コネクション7を介して隣接
要素プロセッサ3c間のデータ通信が行われる。また、
全ての要素プロセッサ3cあるいは周辺要素プロセッサ
3cとホストコンピュータ1の間にはネットワーク4が
設けられ、収束判定フラグあるいは計算結果の通信が行
われる。
【0163】<実施の形態5>次に、この発明の第5実
施の形態について図6を用いて説明する。第1実施の形
態に記載の2次元平面上に配した要素プロセッサ3から
構成された2次元計算基板を3次元的に接続することで
3次元計算への拡張も可能である。図6は、2次元計算
基板を3次元的に接続して3次元計算を行うための要素
プロセッサの構成を示す図である。
【0164】図において、1はホストコンピュータ、3
は3次元的に配置された要素プロセッサ、5は要素プロ
セッサ3内に設けられたプロセッシングユニット、6は
要素プロセッサ3内に設けられたメモリ部、4はネット
ワーク、18は要素プロセッサ3を2次元状に接続して
構成される2次元計算基板である。この場合、2次元計
算基板18の時間方向のパイプライン化とは異なり、2
次元計算基板18間に設けられたネットワーク4は、空
間積分のためのデータ授受に使用される。また、要素プ
ロセッサ3同士の3次元アレイ状結合状態も、ネットワ
ーク4の配線を変更することで、格子型トポロジー、ハ
イパーキューブ或いはパイプライン等に自由に変更する
ことが可能である。
【0165】なお、上記実施の形態においては、要素プ
ロセッサ3同士の結合状態は格子状に配置するニアネイ
バメッシュの場合について説明したが、例えば、コーダ
ルリング、3キューブ、2進4キューブ等の他の結合方
式であっても同様の効果を奏することができる。
【0166】<実施の形態6>次に、この発明の第6実
施の形態を図について説明する。以上示した実施の形態
による構成の情報処理装置2の使用方法ついて説明す
る。図1及び図6に、この発明の第1実施の形態におけ
る各要素プロセッサ3に初期条件及び境界条件を送り出
すためのマルチプロセッサ構成の情報処理装置を示し
た。
【0167】情報処理装置2は、各要素プロセッサ3に
おいて、図2に示したように演算器14がデータ線15
で結ばれたデータフローグラフ13状のハード回路を持
つか、または図3及び図4に示したようにプログラムメ
モリ11に書き込まれたソフトウエアに従って浮動小数
点演算器10を作動させるかして演算を実施する構成と
なっている。要素プロセッサ3に対する計算の初期条件
及び境界条件がホストコンピュータ1においてインプッ
トされると、全ての要素プロセッサ3上のデータメモリ
8がリセットされ、計算の初期条件及び境界条件がネッ
トワーク4及び要素プロセッサ間コネクション7を介し
て各要素プロセッサ3に割り振られ、完了次第各要素プ
ロセッサ3は計算開始の待機状態となる。
【0168】従って、情報処理装置2では、同一のマル
チプロセッサの構成を用いて、様々な境界条件や初期条
件に対する演算が、ホストコンピュータに条件を入力す
るという簡単な手続きで実現できる。
【0169】情報処理装置2の使用例として、領域分割
法に基づいた流体数値解析について説明する。連続体で
ある流体は、一般的に連続式とナビエ・ストークス方程
式と呼ばれる非線形性の強い方程式で記述される。これ
らの偏微分方程式によって記述される場の支配方程式を
有限差分法によって解く場合、まず対象とする現象と領
域を空間的・時間的に有限の大きさを持つ微小要素(格
子)に分割する。この格子上で偏微分方程式で表される
支配方程式を離散化して差分式に変形し、差分式を求解
することで解を得る。差分解法では、微小な空間要素が
有する状態量は、ごく近傍の要素が有する状態量にのみ
影響を受けるが、この効果は計算上では隣接要素の持つ
状態量に演算処理を施すかたちで実現される。つまり、
空間的に離れた微小要素は、お互いに影響を与えること
なく隣接する微小要素の影響のみを考慮しさえすれば、
独立して計算可能であることがわかる。
【0170】例えば、非圧縮性流体をSIMPLE(Se
mi-Implicit Method for Pressure-Linked Equatiens)
法(仮定圧力下で運動方程式を解き、連続性を満たさな
い分だけ、圧力及び速度を補正しながら最終的に連続則
を満足する解を得る手法、例えば、S.V.Patankar,Numer
ical Heat Transfer and Fluid Flow,(1980),McGRAW-HI
LL BOOK COMPANYに記載されている。)で解くことを考
える。
【0171】図70は、従来より行われているSIMP
LE法による流体数値解析の計算手順を示すフローチャ
ートである。図において、211はナビエ・ストークス
の運動方程式を解くルーチン群、212は圧力補正式を
解くルーチン群、213は速度・圧力の修正を行うルー
チン、214は非線形性収束のための反復サイクル、2
15は時間進行のための計算サイクルを表す。すなわ
ち、SIMPLE法による熱流体解析の手順は、ルーチ
ン群211による離散化されたナビエ・ストークス運動
方程式の求解、ルーチン群212による圧力補正式の求
解、そしてルーチン213による速度・圧力の決定方程
式の求解を順次実施し、さらに時間進行のための計算サ
イクル215を繰り返すことで数値解析解を得る。
【0172】最近盛んに行われているマルチプロセッサ
を使った並列解法においては、全計算空間を複数の領域
に分割し、各領域ごとに要素プロセッサを割り振って、
要素プロセッサ間では境界の状態量のみをデータ通信す
るという領域分割法が主流となっている。
【0173】ここで問題となるのが要素プロセッサ3間
の通信に関する同期待ちである。現在の汎用並列プロセ
ッサでは、プロセッサ間のデータ通信をパケット通信な
どによる低速のリモートメモリアクセスで実現している
ため、要素プロセッサ数に対して通信量をできる限り少
なくした粒度の大きい計算アルゴリズムを使用し、通信
同期待ちをできる限り回避するテクニックが必要とな
る。しかし、超並列に要素プロセッサを構成した場合の
同期待ちの急激な増加は避けられず、プロセッサ数に比
例した並列度は期待できない。
【0174】そこで、運動方程式および圧力修正方程式
が共に隣接格子点の状態量を参照するのみで解かれて
も、その解は十分な精度を有することに着目して、各格
子点についてそれぞれ独自に状態量を計算する新しいS
IMPLE法について示す。図7は、この実施の形態に
おける格子点=1,=2,・・・,=nが他の格子点計
算に割り込み動作をすることなく、それぞれ独立に状態
量を計算する演算アルゴリズムを示したフローチャート
である。
【0175】図において、20はナビエ・ストークスの
運動方程式を解くルーチン群、21は圧力補正式を解く
ルーチン群、22は速度・圧力の修正を行うルーチン、
23は非線形性収束のための反復サイクル、24は時間
進行のための計算サイクル、25は格子点=1,=2,
・・・,=n毎に割り当てられた要素プロセッサ3のル
ーチン群である。
【0176】ここで、非圧縮性2次元層流の流体数値解
析を例に取り、具体的なアルゴリズムを示す。温度場を
考慮しない場合、流体は以下の3つの無次元化方程式に
よって記述される。
【0177】連続式は、数1に示され、運動量保存式
は、数2及び数3に示される。
【0178】
【数1】
【0179】
【数2】
【0180】
【数3】
【0181】ここで各記号は、uがx方向速度成分、v
がy方向速度成分、pが圧力、Reがレイノルズ数を表
す。数1〜数3は一意に数4で表現できる。ここでφは
任意変数、Γは拡散項、Su,Spは生成項を表し、以
下の表1の値をとる。
【0182】
【数4】
【0183】
【表1】
【0184】数4を差分化する際に必要となるコントロ
ールボリュームを図8に示す。任意変数φをコントロー
ルボリューム26の中心点P27に置き、隣接するφの
位置をE(East)28、W(west)29、N
(North)30、S(South)31と定義して
それらの中心点(コントロールボリューム26の境界と
格子線との交点)を小文字(e,w,n,s)で表示す
る。スタッガード(Staggered)グリッドであ
るため、スカラー量は大文字の位置に、ベクトル量(速
度)を小文字の位置に配置する。さて、数4を、時間差
分スキームとしてオイラー前進(Euler expl
icit)法を適用し、コントロールボリューム26に
出入りする流速を考えて離散化すると、数5のようにな
る。
【0185】
【数5】
【0186】φが格子間で線形に分布し、かつe,w,
n,sがそれぞれPとE、PとW、PとN、PとSの中
点であるとすると、数6から数9が仮定できる。
【0187】
【数6】
【0188】
【数7】
【0189】
【数8】
【0190】
【数9】
【0191】数5をコントロールボリュームにわたって
積分すると、数10が得られる。
【0192】
【数10】
【0193】ここで、対流項Cと拡散項Dに関して数1
1及び数12のように定義する。ここで、添字はコント
ロールボリューム26の境界面の位置を示す。
【0194】
【数11】
【0195】
【数12】
【0196】数11および数12の定義を使うと数10
は数13のようになる。
【0197】
【数13】
【0198】この数13に空間差分スキームとしてハイ
ブリッド・スキームを適用し、φに関して整理すると、
数14のようになる。
【0199】
【数14】
【0200】時間差分法としては陽解法、陰解法、半陰
解法等様々なものが考えられるが、ここでは最終的に定
常解を求めることを目標とし、収束加速計算技法として
数13の右辺に含まれるφpを次時間の値φp n+1で評価
すると、数14より、数15の離散化方程式を得ること
ができる。
【0201】
【数15】
【0202】SIMPLE法によって導出した離散化方
程式の未知数である速度と圧力の関係付けを行う。まず
運動方程式数2、数3の離散化方程式を導く。変数φは
u、vであり、速度uについては数16から数19を定
義すると、離散化方程式は数20のようになり、速度v
については数21から数24を定義すると、離散化方程
式は数25のようになる。
【0203】速度uについてのw面の係数を数16に示
す。
【0204】
【数16】
【0205】速度uについてのe面の係数を数17に示
す。
【0206】
【数17】
【0207】速度uについてのs面の係数を数18に示
す。
【0208】
【数18】
【0209】速度uについてのn面の係数を数19に示
す。
【0210】
【数19】
【0211】
【数20】
【0212】速度vについてのw面の係数を数21に示
す。
【0213】
【数21】
【0214】速度vについてのe面の係数を数22に示
す。
【0215】
【数22】
【0216】速度vについてのs面の係数を数23に示
す。
【0217】
【数23】
【0218】速度vについてのn面の係数を数24に示
す。
【0219】
【数24】
【0220】
【数25】
【0221】数20を解くことによってP点での仮定流
速u*を求めることができる。数25を解くことによっ
てP点での仮定流速v*を求めることができる。数2
0、数25から得られた仮定値u*,v*と、同式を導く
際に必要なFpを使って圧力補正方程式の係数を決定
し、圧力補正値p´を求める。数26に圧力補正方程式
を示す。ただし、式中の添字eとnは各々East側、
North側の要素プロセッサから転送されてきた値で
あることを示す。
【0222】
【数26】
【0223】速度および圧力はWest側とSouth
側の要素プロセッサから転送されてきた圧力補正値p´
を用いて数27から数29の式で計算される。
【0224】
【数27】
【0225】
【数28】
【0226】
【数29】
【0227】計算格子点は、一般に離散化された点は物
体の内部であったり、壁の近傍であったり、流入・流出
口であったりと様々な種類が考えられる。計算プログラ
ム(ソフトウエア)あるいは演算回路(ハードウエア)
を点の種類にあわせて何種類も用意するのは、プログラ
ミングを大変繁雑にしてしまう。そこで、各点の位置情
報を内点及び外点ビットと境界条件ビットの形で初期条
件として各要素プロセッサのメモリ上に与えておき、計
算自体は全く同一のプログラムを実行できるようにす
る。
【0228】計算領域の内点と外点の区別もビットを使
用して行う。離散化点が物体内部にあるときを外点、流
体部にあるときを内点とする。内点・外点ビットは変数
u,v,pそれぞれについて定義され、内点を1(o
n)、外点を0(off)とする。例えば、uに対する
フラグをbit(u)とすると、uの離散化方程式の係
数を決定する前に次の演算処理を施す。
【0229】
【数30】
【0230】境界条件については、以下に示す種類の境
界条件の設定が可能とする。変数u,v,pのそれぞれ
がウォール・ファンクション(Wall Function)を使用
するか否かを示すフラグを持つ。但し、どの面に壁面が
在るかを判断するためにw,e,s,nそれぞれの方向
別にビットを設定する。u及びvの離散化方程式の係数
を決定する前に数31から数33の演算処理を施す。
【0231】ウォール・ファンクション(Wall Functio
n)を使った壁面条件を数31に示す。
【0232】
【数31】
【0233】勾配0の流出条件を数32に示す。
【0234】
【数32】
【0235】境界値固定を数33に示す。
【0236】
【数33】
【0237】数32と数33を合わせて変数φpは数3
4のように記述できる。
【0238】
【数34】
【0239】各計算セルで必要な演算に着目すると、流
体の支配方程式の特性上、境界条件の違いこそあれほと
んど同一の演算を行うことになる。上記の境界条件設定
に従い、各種のビットを立てることによってデータメモ
リ8上に初期的に境界条件をマッピングしさえすれば、
計算セルが計算空間の境界、内点、外点のどれに位置す
るかに関わらず同一のプログラムを使用できる。従っ
て、要素プロセッサ3のプログラムメモリ11上には1
格子点の物理量を計算するのに必要な一連の演算を記述
するプログラムをロードするだけでよい。その1種類の
演算プログラムを使用し、計算格子を順次スイープして
計算するには、まず計算格子の格子点番号(またはデー
タメモリ8上のベースアドレス)を入力トークンとして
要素プロセッサ3内の循環型パイプライン(図21の8
4)上に流す、例えば入力トークンである格子点番号を
2とすれば、演算器は2番目の格子点に割り振られたメ
モリ領域とアクセスをして計算を開始する。トークンの
入力には順序制限はないので、1,2,3・・・とシー
クエンシャルに計算を進めることはもちろん、ランダム
に格子番号を入力することも可能である。
【0240】図9は、要素プロセッサに設けられたデー
タメモリ内部のデータ構造を示す図である。図に示すよ
うに、要素プロセッサ3に設けられたデータメモリ8の
内部は、1プロセッサが受け持つ格子点数と同数のパー
ティション32に分割され、それぞれのパーティション
32には1格子点を計算するのに必要となるデータがマ
ッピングされている。
【0241】図10及び図11は、以上述べてきたアル
ゴリズムの流れを示すフローチャートである。図におい
て、33ないし63は各々以下に示すAからIの各計算
機能である。
【0242】(a)要素プロセッサ3は、x方向運動方
程式を解いて予測値u*を求める機能を有する。図にお
いて、33はuのw面に対する計算で、x方向運動方程
式の係数Fwを求める機能A(u)、34はuのe面に
対する計算で、x方向運動方程式の係数Feを求める機
能B(u)、35はuのs面に対する計算で、x方向運
動方程式の係数Fsを求める機能C(u)、36は、u
のn面に対する計算で、x方向運動方程式の係数Fn
求める機能D(u)、37はx方向運動方程式の生成項
Gを求める機能E(u)、43はx方向運動方程式の係
数Fpを求め、各種係数と生成項より予測値u*を求める
機能G(u)である。
【0243】(b)要素プロセッサ3は、y方向運動方
程式を解いて予測値v*を求める機能を有する。図にお
いて、38はvのw面に対する計算で、y方向運動方程
式の係数Fwを求める機能A(v)、39はvのe面に
対する計算で、y方向運動方程式の係数Feを求める機
能B(v)、40はvのs面に対する計算で、y方向運
動方程式の係数Fsを求める機能C(v)、41はvの
n面に対する計算で、y方向運動方程式の係数Fnを求
める機能D(v)、42はy方向運動方程式の生成項G
を求める機能E(v)、44はy方向運動方程式の係数
pを求め、各種係数と生成項より予測値v*を求める機
能G(v)である。
【0244】(c)要素プロセッサ3は、圧力補正値p
´を求める機能を有する。図において、51はp´方程
式の生成項Gを求める機能F、52は運動方程式の係数
とFで求めた生成項をもとにp´の方程式を解いてp´
を求める機能G(p)である。
【0245】(d)要素プロセッサ3は、流速と圧力を
補正する機能を有する。図において、55はp´をもと
にu,v,pを求める機能Hである。
【0246】(e)要素プロセッサ3は、境界条件を設
定する機能を有する。図において、45,46,57〜
59は初期値で与えられたビットデータをもとに境界条
件を設定する機能Iである。
【0247】(f)要素プロセッサ3は、設定された境
界条件を転送する機能を有する。図において、47,4
8,53,56,60〜62はそれぞれ前の工程で設定
された境界条件を隣接する要素プロセッサ3に転送する
機能である。
【0248】(g)要素プロセッサ3は、計算された境
界条件が収束したか否かを判定する機能を有する。4
9,50,54,63はそれぞれその前の機能I45,
46,57〜59で設定された境界条件が収束したか否
かを判定する機能である。
【0249】これらの諸機能を図10及び図11に示す
フローチャートに従って接続することによって1格子点
分の計算コードが完成する。
【0250】次に、1つの格子点を計算するためのアル
ゴリズムを要素プロセッサ3のプログラムメモリ11上
にマッピングする。マッピングされたプログラムは、ホ
ストコンピュータ1からネットワーク4及び要素プロセ
ッサ間コネクション7を介して送られてくる格子点番号
情報タグを入力トークンとして起動する。1要素プロセ
ッサ3上に複数の格子点がマッピングされた場合、要素
プロセッサ3間を要素プロセッサ間コネクション7を介
して転送されるデータは、複数の格子点で構成される各
分割領域の最外郭部に位置する格子点が保有する情報で
ある。そこで、要素プロセッサ3間に配置された要素プ
ロセッサ間コネクション7を介して、隣接要素プロセッ
サ上のデータメモリに直接アクセスすることによってプ
ロセッサ間のデータ転送を行い、格子点間のデータ転送
オーバーヘッドを排除でき非同期制御による高速な解析
が可能となる。
【0251】さらに、1要素プロセッサ上に1つの格子
点をマッピングし、計算格子点数と少なくとも同数の要
素プロセッサ3を使用し、後述するマルチポートメモリ
を要素プロセッサ3の間に配し、それらを要素プロセッ
サ間コネクション7で接続した超並列システムを構築
し、隣接要素プロセッサ3間で非同期に密なデータ通信
を取りながら互いの要素プロセッサ3の処理を阻害する
ことなくデータ授受を行って収束解を得ることも可能で
ある。
【0252】また、1要素プロセッサ3上に複数の格子
点をマッピングし、要素プロセッサ間の通信方式を同期
方式とすることによって、要素プロセッサ3間の同期を
とった解析も可能である。この場合も、要素プロセッサ
3内部のプロセッシングユニット5が偏微分方程式の解
法に適した専用の高速演算機能を有するため、従来の汎
用プロセッサを使用した同期解法に比べ、大幅な処理速
度向上が可能となる。
【0253】なお、上記実施の形態においては1つの格
子点を計算するためのアルゴリズムを要素プロセッサ3
のプログラムメモリ11にマッピングする場合について
説明したが、演算器14をデータ線15で接続してデー
タフローグラフ13状のハード回路を形成しても同様の
効果が得られることは言うまでもない。
【0254】また、隣接する要素プロセッサ間の通信
は、あるプロセスから他のプロセスへメッセージ(デー
タ)を送るときにメッセージのアドレス符号によって適
切なプロセスへメッセージを送るメッセージ通信で、か
つ複数のデータに対して複数の異なる(同一でもよい
が)命令を並列に実行することで、効率の良い並列処理
が可能となる。
【0255】<実施の形態7>次にこの発明の第7実施
の形態について説明する。時間微分の近似法には参照す
る状態量の時間ステップの違いから、オイラー前進法、
オイラー後退法、2次精度のクランク=ニコルソン法、
3次精度のリチャードソン法等がある。例えば、3次精
度のリチャードソン法を考えると、現在の時刻をnとし
た場合、次時刻n+1の値を求めるのに必要な状態量
は、時刻n−1,nの値により決定される。従来のノイ
マン型コンピュータを使った手法では、時刻n−1,n
の値を余分に共通メモリ上に保存しておく必要があった
ため、メモリの容量不足から計算規模の制限が加えられ
ていた。
【0256】このような、メモリ不足の問題も、第1実
施の形態に記載の2次元平面上に配した要素プロセッサ
3から構成された2次元計算基板を複数枚用いることに
よって容易に解決される。図12は、2次元空間につい
ての時間微分の近似のための情報処理装置の構成を示す
図である。図において、65ないし67は各々要素プロ
セッサ3を2次元状に接続して構成される2次元計算基
板であり、65は時刻n−1に対応する値の計算を担当
する2次元計算基板、66は時刻nに対応する値の計算
を担当する2次元計算基板、67は時刻n+1に対応す
る値の計算を担当する2次元計算基板である。また、4
は各2次元計算基板をパイプライン状に結びかつホスト
コンピュータ1とも接続して情報のやりとりを行うネッ
トワークである。
【0257】例えば、リチャードソン法の場合、時刻n
+1の値を求めるのに必要な時刻n−1とnの値は、時
刻n−1用2次元計算基板65及び時刻n用2次元計算
基板66上の各要素プロセッサ3のデータメモリから、
ネットワーク4を介して、時刻n+1用2次元計算基板
67上の各要素プロセッサ3に転送される。計算が終了
すれば、計算結果は自動的に2次元計算基板67上の各
要素プロセッサ3のデータメモリに保存される。続いて
n+2の値を計算するには、時刻n−1の値が保存され
ている時刻n−1用2次元計算基板65上の各要素プロ
セッサ3のデータメモリをリセットし、新たに時刻n用
2次元計算基板66及び時刻n+1用2次元計算基板6
7から、それぞれ時刻n、n+1の値をネットワーク4
を介して時刻n−1用2次元計算基板65へ転送して計
算を行い、時刻n+2の値として各要素プロセッサ3の
データメモリに保管する。
【0258】以上に述べたように、第3実施の形態の情
報処理装置によれば、メモリ不足が解消され、かつ高速
に演算することができるようになる。
【0259】この時間軸方向へのパイプライン化は、2
次元解析解の収束判定の高速化にも寄与する、微分方程
式の求解において、現時刻nにおける計算値と前時刻n
−1の計算値との差がある基準範囲以下に達した場合に
収束したと判断するわけであるが、時間方向をパイプラ
イン化すれば、隣接する2次元計算基板間の値を比較す
るという単純な動作で収束性を判断することが可能とな
る。
【0260】<実施の形態8>次に、この発明の第8実
施の形態について説明する。この発明の主たる適用対象
は微分方程式の求解であるが、この種の問題は隣接する
格子点の相互作用を繰り返し計算し、全格子点が安定状
態に収束することにより計算終了する。すなわち、隣接
していない格子点の間でのデータの授受はほとんど発生
せず、隣接する格子点間でのデータの授受が専ら必要と
なる。また、一般的には、対象とする系を格子点に分割
した後、1つまたは隣接する複数の格子点に関する演算
を1つの要素プロセッサ3に分担させ、さらにこれらの
格子点と隣接する格子点に関する演算はやはり隣接する
要素プロセッサ3に分担させている。
【0261】対象とする問題のこのような特徴に着目す
れば、隣接する要素プロセッサ3間で同一のメモリを共
有し、相互に相手のメモリを直接的にアクセス可能とす
ることによって、計算の効率が格段に向上し、短時間で
所望の演算が終了するようになることが理解できる。
【0262】図13は、要素プロセッサ3が要素プロセ
ッサ間コネクション7によって結合され正方格子状に配
置されたマルチプロセッサの一部分を示している。ま
た、図14は、図13に示された要素プロセッサの1個
の内部構成を示す図である。図において、プロセッシン
グユニット5は同一プロセッサ内に内蔵されているデー
タメモリ8と接続されており、このデータメモリ8をア
クセスすることが可能である。さらに、このプロセッシ
ングユニット5は入出力制御回路(以下I/Oともい
う。)71を介して隣接する要素プロセッサと接続され
ている。
【0263】I/O71経由で隣接要素プロセッサ3d
と接続することにより、隣接する要素プロセッサ3d内
のデータメモリ8をあたかも同一要素プロセッサ内のメ
モリであるのと同様に直接アクセスすることができる。
逆に、隣接する要素プロセッサからも、同様に図示した
データメモリ8をアクセスすることができる。
【0264】隣接する要素プロセッサ間で相互にメモリ
をアクセスしあうためには、図中のI/O71が、プロ
セッシングユニット5とデータメモリ8の間のデータバ
ス73に対して、隣接要素プロセッサからのメモリアク
セス要求に対する調停の機能を果たす必要がある。しか
しながら、データバスに対する調停は一般的なプロセッ
サで用いられている技術であり、例えば、VMEバスを
用いれば実現でき、公知であるのでここでは説明を省略
する。
【0265】以上説明したように、図14に示した要素
プロセッサではプロセッシングユニット5を同一プロセ
ッサ内に内蔵されているデータメモリ8と接続し、プロ
セッシングユニット5がデータメモリ8をアクセスする
ことが可能とし、さらに、プロセッシングユニット5は
I/O71を介して隣接する要素プロセッサ3dと接続
されるようにしたので、要素プロセッサ3d間でのデー
タ通信のためのオーバヘッドを低減でき、計算の効率が
向上する。
【0266】なお、上記の要素プロセッサの構成の説明
では一般的な場合について説明したが、微分方程式の求
解に限っていえば、隣接する格子点のデータは参照(す
なわち、読み出し)ができればよく、更新(すなわち、
書き込み)までは要しない。参照のみに限定すれば同一
メモリアドレスに対する更新要求が衝突することがな
く、メモリアクセスのためのデータバスの調停が簡略化
されることは明らかである。
【0267】<実施の形態9>しかしながら、同一のメ
モリに対する複数のメモリ参照要求が同時に発生するこ
とがかなりの頻度で発生することが予想される。この場
合、単一ポートのメモリでは処理の停滞が発生し、結果
として計算時間が長くかかるという懸念がある。このよ
うな問題を事前に回避するためには、マルチポートメモ
リを採用し、複数のメモリ参照を同時に処理できるよう
にすればよい。
【0268】そのためのこの発明の第9実施の形態につ
いて説明する。図15は、隣接する6つの要素プロセッ
サとメモリを共有する場合を示している。図において、
3は要素プロセッサ、7はネットワークである。
【0269】図16は、一つの要素プロセッサの内部構
成を示しており、データメモリ8は7つのポートを有し
ている。データメモリ8は、データバス75を介して6
個の入出力制御部71、およびプロセッシングユニット
5と接続されている。このような構成にすることによ
り、当該要素プロセッサおよび6つの隣接する要素プロ
セッサからのメモリ参照要求を同時に処理可能となる。
【0270】参照のみであれば比較的簡単な制御回路で
実現することが可能である。しかし、汎用用途に対して
情報処理装置を用いる場合、隣接する要素プロセッサ3
eのメモリに対して書き込みの機能もあることが要求さ
れる場合がある。このような構成をとることにより、同
一のデータを当該要素プロセッサ3eのデータメモリ8
に書き込むのと同時に、隣接する要素プロセッサ3eの
データメモリ8に対しても並列に書き込めるようにな
り、同一のメモリアドレスに対する参照が衝突するよう
な処理においては計算時間の短縮に大幅に寄与する。
【0271】<実施の形態10>さらに、共有するメモ
リ部は必ずしも要素プロセッサ内にもつ必要はない。そ
こで、メモリ部を工夫したこの発明の第10実施の形態
を図について説明する。図17に共有するメモリ部を要
素プロセッサの外部に配置した情報処理装置の構成を示
す。また、図18に図17に示した情報処理装置を形成
する要素プロセッサの構成とメモリ部との接続関係とを
示す。図において、76は要素プロセッサ3fの外部に
設けられたメモリ、5は入力制御部71によって外部の
メモリ76と接続されたプロセッシングユニット、8は
要素プロセッサ3fの内部に設けられプロセッシングユ
ニット5と直接接続したデータメモリであり、入出力制
御部71を介して要素プロセッサ3内のプロセッシング
ユニットと接続されている。すなわち、図17に示すよ
うに、メモリ76が要素プロセッサ間のデータ経路上に
配置される。このように配置することにより、図18に
示す入出力制御部71を介して隣接する要素プロセッサ
3fと共有する4個のメモリ76を直接的に参照更新す
ることができる。
【0272】上記のメモリ76を介して隣接する要素プ
ロセッサ3f間でデータの授受を行う方法の一例として
以下の方法がある。
【0273】すなわち、各要素プロセッサ3fが書き込
みを行う場合のアドレスまたはアドレスの範囲を予め定
めておき、データの出し側の要素プロセッサはメモリ7
6の予め定めたアドレス領域にデータの書き込みを行
い、データの受け側の要素プロセッサ3fでは上記のア
ドレス領域を読み出すことで要素プロセッサ3f間でデ
ータの授受が完了する。
【0274】図17中では、メモリ76内に記述した記
号「P」は要素プロセッサ3が書き込むべきアドレス範
囲を示しており、記号「S」、「N」、「E」、「W」
は各々隣接する要素プロセッサ3fが書き込みを行うべ
きアドレス範囲を示している。
【0275】なお、本実施の形態では要素プロセッサ3
f内にデータメモリ8を含む例について示したが、デー
タメモリ8に格納すべきデータを要素プロセッサ間に接
続されたメモリ76に格納するようにすれば、データメ
モリ8が無い要素プロセッサであっても同一の効果が得
られることは明らかである。
【0276】上記の説明では、メモリ76としてシング
ルポートのメモリを用いた場合を説明したが、図16で
説明したデータメモリ8を要素プロセッサ3f内に内蔵
する場合と同様、データ経路上に配置するメモリ76の
場合にもマルチポートメモリを用いることにより、計算
時間の短縮をはかることができる。
【0277】ただし、マルチポートメモリを採用した場
合であっても、同一メモリアドレスに対する更新要求が
衝突した場合には処理が中断し、計算時間の増大を招
く。これを避けるためには、メモリに対する参照/更新
要求を一時的に記憶しておくバッファ機構を導入するの
が効果的である。図19はこのためのバッファ機構を導
入したマルチポートメモリを示しており、図17の情報
処理装置におけるメモリ76に対応する部分のみを示し
ている。
【0278】図において、76aはバッファ機構付きの
マルチポートメモリ、79は2ポートメモリ、80はバ
ッファ機構である。バッファ機構80は、要素プロセッ
サ間コネクション7を介して2ポートメモリ79から入
力したデータ、または2ポートメモリ79へ書き込まれ
るべきデータを一時的に格納することができる。
【0279】上記のように、隣接する要素プロセッサ3
f間に配置された2ポートメモリ79の各ポートにバッ
ファ機構80を配置したので、同一メモリアドレスに対
する更新要求が衝突した場合でも処理が中断することが
ない。また、その結果として起こる計算時間の増大を避
けることが出来る。
【0280】図19に示したマルチポートメモリでは、
バッファ機構80を2ポートメモリ79の各ポートに配
置する例を説明したが、バッファ機構はマルチポートの
各々のポート毎に設けてもよいし、複数のポートまたは
全ポートに対して1個のバッファを設けても効果がある
ことは明らかである。
【0281】<実施の形態11>次に、この発明の第1
1実施の形態について説明する。各要素プロセッサ毎に
通信データ保持用のバッファメモリを設けることによ
り、要素プロセッサ間のデータ通信による各要素プロセ
ッサの演算を妨げることを防止できる。
【0282】図20は、通信データ保持用のバッファメ
モリを有する要素プロセッサの構成を示すブロック図で
ある。図において、5は要素プロセッサ3g内に設けら
れたプロセッシングユニット、7は要素プロセッサ3g
の間を結ぶ要素プロセッサ間データバス、82は要素プ
ロセッサ3g内に設けられ要素プロセッサ間データバス
7及びプロセッシングユニット5に接続されたバッファ
メモリ、8は要素プロセッサ3内に設けられプロセッシ
ングユニット5に接続されたデータメモリである。
【0283】各要素プロセッサ3gは、要素プロセッサ
間データバス7を介してバッファメモリ82へ隣接する
要素プロセッサ3gから送られたデータをオブジェクト
名付きデータとして書き込み、各要素プロセッサ3gは
このバッファメモリ82から任意のタイミングでオブジ
ェクト名付きデータをサーチして隣接要素プロセッサ3
gからのデータ受け入れを完了する。図20に示した構
成を有する要素プロセッサで形成された情報処理装置に
よれば、隣接する要素プロセッサ3g間のデータ通信に
より各要素プロセッサ3g内のプロセッシングユニット
5、例えば浮動小数点演算器の演算を妨げることなく、
より高速な処理が可能となる。
【0284】<実施の形態12>次に、この発明の第1
2実施の形態について説明する。図21は、この発明の
第12実施の形態による情報処理装置の要素プロセッサ
の構成の一例を示すブロック図である。
【0285】図において、3hは要素プロセッサ、10
は要素プロセッサ3h内に設けられた浮動小数点演算
器、83は要素プロセッサ3h内の設けられたマッチン
グメモリ(データプール)、11は要素プロセッサ3h
内に設けられたプログラムメモリ、8は要素プロセッサ
3h内に設けられたデータメモリ、84は浮動小数点演
算器10とマッチングメモリ83とプログラムメモリ1
1とデータメモリ8とを結び情報のやりとりを行うため
のパイプライン、7は要素プロセッサ3間を結び情報の
やりとりを行うための要素プロセッサ間コネクションで
ある。
【0286】隣接する要素プロセッサ3h同士の間で、
通信により交換する必要のあるデータは多岐にわたる。
この実施の形態においては、各々のデータには予め次に
どのような処理を行うかを識別できるオブジェクト名が
付けられる。オブジェクト名が付けられたデータは、マ
ッチングメモリ(データプール)83を設けたパイプラ
イン84上にデータパケットの形態で入力されて巡回
し、さらに要素プロセッサ間コネクション7を介して隣
接する要素プロセッサ3h内のマッチングメモリ83へ
送り出される。浮動小数点演算器10は、任意のタイミ
ングでマッチングメモリ83の内部をサーチし、任意の
処理を行うために必要なオブジェクト名の付けられたデ
ータが揃い次第、演算を開始する。
【0287】なおこの際、偏微分方程式のプログラムが
時系列的に見て一時的に並列度が大きくなる傾向にある
ため、マッチングメモリ83の記憶容量を十分に確保し
ておく必要がある。
【0288】また、上記の説明では、要素プロセッサ3
hのプロセッシングユニットが浮動小数点演算器10で
構成された場合について述べたが、図2に示した演算器
14をデータ線15により結線しデータフローグラフ1
3状のハード的に回路化した構成であっても、また図4
に示した演算中に頻出する部分を機能モジュール12内
にハード的に回路化し他はプログラムメモリ11の指示
に従って浮動小数点演算器10により演算する構成であ
っても同様の効果を奏する。
【0289】以上のように、データ間の同期を自動的に
とることによって、より高速で、通信のオーバーヘッド
の少ない処理が可能となる。
【0290】<実施の形態13>次に、この発明の第1
3実施の形態について説明する。先にも述べたように、
SIMPLE法によるナビエ・ストークス方程式の求解
においては、8つの入力に対して、第1入力と第2入
力、第3入力と第4入力と、第5入力と第6入力、第7
入力と第8入力のそれぞれの乗算結果を累積加算する演
算が頻繁に現れ、この処理を高速化することが計算時間
短縮の一つの決め手となる。図5は数35の演算を図的
に表現したフローグラフである。
【0291】
【数35】
【0292】この処理を一括してハードウェア化したの
が図22である。図において、85は乗算器であり入力
端から入力される2つのデータの乗算を実行し、出力端
へ出力する。86,87は加算器であり、入力端から入
力される2つのデータの加算を実行し、出力端へ出力す
る。また、乗算器85の出力端と加算器86の入力端は
データ線88で接続されている。また、加算器86の出
力端と加算器87の入力端はデータ線89で接続されて
いる。上記のような構成で加算器、乗算器を接続するこ
とで、乗算器の各々の入力端に入力されたデータに対
し、図5に示した演算が実行され、加算器87の出力端
に結果が出力される。
【0293】このように、演算器をデータ線で接続し
た、いわゆる、マクロ機能ブロックを有する要素プロセ
ッサはナビエ・ストークス方程式の求解をはじめとする
微分方程式等の求解の高速化に大きく寄与する。
【0294】<実施の形態14>次に、この発明の第1
4実施の形態について説明する。図23は隣接要素プロ
セッサ間のデータ通信を各要素プロセッサ毎に非同期で
かつ繰り返し行うことを実現するための通信回路の構成
を示すブロック図である。
【0295】図において、3iは要素プロセッサ、5は
要素プロセッサ3i内に設けられ演算を行うプロセッシ
ングユニット、8は要素プロセッサ3i内に設けられプ
ロセッシングユニット5の処理に必要とされるデータを
記憶するためのデータメモリ、90は要素プロセッサ3
のデータメモリ8に記述された情報を隣接する要素プロ
セッサ3i間でやり取りするためのデータバスである。
【0296】次に動作について説明する。プロセッシン
グユニット5における処理において、隣接要素プロセッ
サ3iの情報が必要な場合、その要素プロセッサ3i
は、隣接の要素プロセッサ3iとは全く非同期に繰り返
し相手方データメモリ8に記述された必要情報を参照す
るメモリアクセス動作を行う。偏微分方程式の解法にお
いて、各要素プロセッサ3iが行う演算は、遠く離れた
要素プロセッサ3iの持つ情報ではなく隣接する要素プ
ロセッサ3の持つ情報のみに依存するため、極めて局所
性が高い。従って、隣接する要素プロセッサ3i間の通
信は、データバス90を介して、プロセッシングユニッ
ト5の処理を妨げず、全く非同期でかつ繰り返し行われ
ることが望ましい。
【0297】相互に隣接する要素プロセッサ3i間での
メモリアクセスが隣接要素プロセッサ3iの処理を阻害
することなく全く非同期に繰り返し行われるように構成
することにより、隣接する要素プロセッサ3i間の通信
は、データバス90を介して、プロセッシングユニット
5の処理を妨げずに全く非同期でかつ繰り返し行われる
ため、各要素プロセッサ3i上で行われる演算処理を隣
接する要素プロセッサ間3iで全く非同期に継続するこ
とが可能になる。
【0298】なお、この実施の形態ではプロセッシング
ユニット5とデータメモリ8は相手の動作を阻害せずに
メモリ参照可能なデータバス90を使用して各要素プロ
セッサ3i間のデータ通信を行っているが、データメモ
リ8へのアクセスをするのに隣接要素プロセッサ3i内
のプロセッシングユニット5の動作に割り込みをかける
同期動作を必要とする場合、要素プロセッサ間のデータ
通信方式は同期型となり、通信のオーバーヘッドが大き
くなるものの、解析解を得るのに何ら支障をきたさな
い。
【0299】<実施の形態15>次に、この発明の第1
5実施の形態による非同期にデータを吸い上げてもデー
タの整理分類が容易な出力を得るための要素プロセッサ
について説明する。図24は、メモリ内の状態量ごとに
識別子を添付し、非同期にデータを吸い上げてもデータ
の整理分類が容易な出力を得るための要素プロセッサの
構成を示すブロック図である。
【0300】図において、3iは要素プロセッサ、70
は要素プロセッサ3i内に設けられ演算を行うプロセッ
シングユニット、8は要素プロセッサ3i内に設けられ
出力データを含む計算データを保存するためのデータメ
モリ、90は要素プロセッサ間データバス、91は要素
プロセッサ3i内に設けられ出力する状態量の種類に応
じて識別子をつけ、要素プロセッサ3i外にデータを送
り出すためのI/Oユニット、92はI/Oユニット9
1を介して出力されるデータをホストコンピュータに転
送するための出力データバスである。
【0301】次に動作について説明する。プロセッシン
グユニット70の一連の処理によって得られる計算結果
は、複数種の状態量によって構成されており、しかも高
速演算を目的としたため、出力データのサンプリング時
間間隔が非常に短くなる。そこで出力データは、I/O
ユニット91において、その先頭あるいは末尾にその状
態量が何であるかを識別できる識別子を付加される。出
力データは、複数の状態量のものが混載されたパケット
通信形態で、非同期かつ大量で連続的に自己の要素プロ
セッサ3i外部に出力され、I/Oユニット91を介し
てホストコンピュータへ送出され、ポスト処理される。
この際、出力データバス92が各要素プロセッサ3iご
とに設置されているため、I/Oユニット91を介して
出力されるデータは、隣接要素プロセッサ3iの出力を
阻害することなく非同期に出力され、ホストコンピュー
タに転送される。また、出力データにはその状態量を判
断できる識別子が付加されているので、ホストコンピュ
ータではパケット型で複数の状態量の出力データが混載
して送られてきても、各々区別して整理分類し、ポスト
処理を施すことができる。
【0302】従って、この実施の形態によれば要素プロ
セッサ3iの演算を妨げることなく非定常計算の途中結
果を出力することができ、高速の演算が達成できる。
【0303】勿論、次のような同期型の出力方法も可能
である。ホストコンピュータから出力データバス92を
介して各要素プロセッサ3iに出力命令を送り、要素プ
ロセッサ3iでは受信した命令に従ってI/Oユニット
91内に設けたデータメモリ8の参照機能が実行され、
必要な状態量の出力データを命令に記述された順序に吸
引し、出力データ列を作成する。I/Oユニットで作成
された出力データ列は、データバス92を介してホスト
コンピュータに送出される。従って、ホストコンピュー
タが各要素プロセッサ3iに対して出力命令を送出する
タイミングを調節することで、任意の時刻における出力
が可能となる。
【0304】<実施の形態16>次に、この発明の第1
6実施の形態について説明する。図25は、この発明の
第16実施の形態による、非同期に出力されるデータを
各要素プロセッサから収集し、リアルタイムに可視化を
行うための計算機システム全体の構成図である。
【0305】図において、3jは演算を行う要素プロセ
ッサ、93は各要素プロセッサ3j内に設けられ演算結
果を外部に出力する際のデータ変換を行う出力用I/O
ユニット、94は各要素プロセッサ3j上の出力用I/
Oユニット93を介して出力されるデータを転送するた
めの出力データバス、95は各要素プロセッサ3jから
出力データバス94を介して転送されてきた要素プロセ
ッサ3jと少なくとも同数のパラレルデータをシリアル
データに変換するためのデータ出力制御部、96はデー
タ出力制御部を通してシリアル型に変換されたデータを
転送するためのシリアルデータバス、97はシリアルデ
ータバス96を介して送られてきたデータを種類ごとに
分類し、階調反転、2階調化、平均化、色調補正、輪郭
表示、等高線処理、フリンジ処理、あるいはベクトル表
示等のポスト処理を行うためのポスト処理ユニット、9
8はポスト処理ユニット97によって作成された画像デ
ータを転送するための画像出力データバス、99は画像
出力データバス98を介して転送されてくる画像データ
を表示するためのディスプレイである。
【0306】次に動作について説明する。出力データバ
ス94は要素プロセッサ3jと直結しており、各要素プ
ロセッサ3jの外部出力データは非同期に出力用I/O
ユニット93から出力される。出力されたデータは、要
素プロセッサ3jから出力された時点で、複数の種類の
状態量を含むデータ列である。また、出力時には、どの
要素プロセッサ3jからの出力であるかを明確にするた
め、要素プロセッサ番号を表す識別子をデータ列の先頭
あるいは後尾に添付しパケット状のデータ構成とする。
このデータ列は出力データバス94を介してデータ出力
制御部95に集められ、要素プロセッサ数と同数あるい
はそれ以上のパラレルデータから、1つのシリアルデー
タに変換される。さらに、シリアルデータバス96を介
してポスト処理ユニット97に送られたデータは、要素
プロセッサ番号識別子に従って振り分けられ、さらに状
態量識別子に従って分割整理される。整理されたデータ
は等高線処理、フリンジ処理、ベクトル表示等の可視化
のためのポスト処理を施され、画像出力データバス98
を介してディスプレイ99上で可視化映像となる。従っ
て、この実施の形態によれば要素プロセッサ3jの演算
を妨げることなく非定常計算の途中結果を出力すること
ができ、高速の演算が達成できる。
【0307】勿論、出力用I/Oユニットから非同期に
出力されるデータをポスト処理ユニット97を介して出
力し、ポスト処理ユニット97内でサンプリング時間を
設定して可視化時間間隔を自由に制御することも可能で
ある。
【0308】図25のように出力データバス94を各要
素プロセッサ3からデータ出力制御部95へ接続すると
配線が複雑になり機器の小型化が困難になったり製造上
のトラブルが発生し易くなる危険性がある。
【0309】<実施の形態17>その問題を解決するた
めの第17実施の形態を図について説明する。図26
は、出力データバス94を最小限にして前述の問題点を
解決するための計算機システム全体の構成図である。出
力データバス94は全要素プロセッサ3jとデータ出力
制御部95を結ぶ1本のデータバスである。また、10
0はホストコンピュータ、101はホストコンピュータ
100と出力データバス94を接続するネットワークで
ある。他は図25と同様である。
【0310】次に動作について説明する。出力データ
は、複数の種類の状態量を含むデータ列である。ホスト
コンピュータ100は、各要素プロセッサ3jから出力
データを出力データバス94へ出すタイミングをコント
ロールする。各要素プロセッサ3jは、ホストコンピュ
ータ100からのタイミングに合わせ、出力データを出
力用I/Oユニット93を介して出力データバスへ送出
する。この際、どの要素プロセッサ3jからの出力であ
るかを明確にするため、要素プロセッサ番号を表す識別
子をデータ列の先頭あるいは後尾に添付しパケット状の
データ構成とする。データ出力制御部95では、出力デ
ータバス94を介して入ってくる出力データを要素プロ
セッサ番号識別子に従って並べかえ、1つのシリアルデ
ータに変換する。さらに、シリアルデータバス96を介
してポスト処理ユニット97に送られたデータは、状態
量識別子に従って分類整理される。整理されたデータは
等高線処理、フリンジ処理、ベクトル表示等の可視化の
ためのポスト処理を施され、画像出力データバス98を
介してディスプレイ99上で可視化画像となる。従っ
て、最小限の出力データバスの構成で、要素プロセッサ
3jの演算を妨げることなく非定常計算の途中結果を出
力することができ、高速の演算が達成できる。
【0311】<実施の形態18>次に、この発明の第1
8実施の形態について説明する。従来の並列計算機で
は、計算を高速化することに主眼がおかれているため、
定常計算の計算結果を表示したり、非定常計算の時々刻
々の計算結果の変化を追いかけて表示する場合に、全要
素プロセッサの演算を中断したり、全要素プロセッサの
結果が揃うまで他の要素プロセッサの演算を中止して待
機させるため、計算を高速化しても全体の高速化にはつ
ながらないという問題点があった。図27は計算結果表
示の並列化による計算全体の高速化のための一実施の形
態を示す要素プロセッサの構成図、図28は図27の要
素プロセッサを構成要素とするマルチプロセッサの全体
構成図である。
【0312】図において、3sは要素プロセッサ、70
は要素プロセッサ3s内に形成され計算を実施するため
のプロセッシングユニット、8は要素プロセッサ3s内
に形成されプロセッシングユニット70の計算に必要な
計算情報を格納するメモリ部、107は要素プロセッサ
3s内に形成され自己の属する要素プロセッサ3s内の
メモリ部8に格納された計算情報をプロセッシングユニ
ット70の演算を中断しないで受取り、一要素プロセッ
サに対して一計算格子点が割り当てられている場合には
そのまま、一要素プロセッサに複数の計算格子が畳み込
まれている場合にはその格子点の情報に加工処理を施す
ための出力情報加工部、104は行方向の要素プロセッ
サ3s内のメモリ部6間の演算に必要なデータをやり取
りするための行方向計算情報バス、105は列方向の要
素プロセッサ3s内のプロセッシングユニット70間の
演算に必要なデータをやり取りするための列方向計算情
報バス、106はプロセッシングユニット70とメモリ
部8の間で演算に必要なデータや演算結果データをやり
取りする内部計算情報バス、108はメモリ部8に格納
された計算情報を出力情報加工部107へ伝達するため
の出力加工情報バス、110は計算情報を例えば液晶表
示素子のように光の透過率に変換したり、磁気歪を光反
射に変更するカー効果を用いた素子、色変化に変換する
ためのカラー液晶表示素子などの表示素子、111は光
透過型であれば表示素子110の裏側から、光反射型で
あれば表示素子の表側から光を発光するためのランプ、
112はランプ111の光を平行光線にするための反射
鏡、113は各要素プロセッサ3sの出力情報加工部1
07から表示素子110へ出力加工情報を伝送するため
の出力加工情報バスである。
【0313】各要素プロセッサ3sのメモリ部8は、プ
ロセッシングユニット5の計算に必要な計算情報を格納
しており、内部計算情報バス106を介してプロセッシ
ングユニット70とメモリ部8の間で演算に必要なデー
タ(入力データ)や演算結果データ(出力データ)をや
り取りしている。したがって、計算が収束するまでの時
点や非定常計算の時々刻々の計算結果の変化を表示する
にはプロセッシングユニット70の計算を停止してメモ
リ部8とアクセスしたり、収束後の計算結果を表示する
ために全要素プロセッサ3sの計算が収束するまで待機
したりして、全体の計算を妨害せざるを得ない。この実
施の形態においては、メモリ部8と非同期的に接続(メ
モリ部8とプロセッシングユニット70のコミニュケー
ションを妨害せず、メモリ部8が送出する計算情報をメ
モリ部とのマッチング無しに受け取ることができる)さ
れた出力情報加工部107を要素プロセッサ3sの内部
に設け、メモリ部8が送出する計算情報を、一要素プロ
セッサに対して一計算格子点が割り当てられている場合
にはそのまま、一要素プロセッサに複数の計算格子が畳
み込まれている場合にはその格子点の情報に加工処理を
施し、さらに内部構成として所持するデジタル/アナロ
グ変換回路を介してデジタルデータをアナログデータに
変換し、出力加工情報バス113を介して表示素子11
0へ送出する。表示素子110は計算情報を、例えば液
晶表示素子のように光の透過率に変換したり、磁気歪を
光透過に変更したり(カー効果を用いた素子)、透過光
の色変化に変換したり(カラー液晶表示素子)する。こ
の際、表示素子110は、それが光透過型であれば表示
素子110の裏側から、光反射型であれば表示素子の表
側から、反射鏡112によって平行光線に変換されたラ
ンプ111からの光が照射されるため、出力情報加工部
107の動作を妨げることなく出力加工情報を視覚的に
表示することができる。
【0314】このように、本構成により計算の高速処理
を妨げることなく計算の途中経過や最終計算結果を視覚
的に観察したり制御に利用したりすることができるよう
になる。
【0315】<実施の形態19>次に、この発明の第1
9実施の形態について説明する。図28のように出力加
工情報バス113を各要素プロセッサ3sから表示素子
110へ個別に配線すると、配線が膨大になり計算機シ
ステムと表示装置の距離を大きくすることができない。
図29は、計算機システムと表示装置の間を単一のシリ
アルデータバスとし前述の問題点を解決するための計算
機システム全体の構成図である。
【0316】図において、1はホストコンピュータ、1
14はランダムに送られてくる出力データの順序を入れ
換えてシリアルデータに変換するためのデータ出力制御
部、113は全要素プロセッサ3sとデータ出力制御部
114を結ぶ1本の出力加工情報バス、117はホスト
コンピュータ1と出力加工情報バス113を接続するネ
ットワーク、116はシリアルデータを分解して各表示
素子110への表示データに振り分ける表示データ制御
部、115はデータ出力制御部114と表示データ制御
部116を接続するシリアルデータバス、118は表示
データ制御部116を各表示素子110を接続する表示
データバスである。他は図28と同様である。
【0317】次に動作について説明する。要素プロセッ
サ3s内の出力情報加工部107は、メモリ部が送出す
る計算情報を、一要素プロセッサに対して一計算格子点
が割り当てられている場合にはそのままとし、一要素プ
ロセッサに複数の計算格子が畳み込まれている場合には
その格子点の情報に加工処理を施す。ホストコンピュー
タ1は、各要素プロセッサ3sから出力加工情報を出力
加工情報バス113へ出すタイミングをコントロールす
る。各要素プロセッサ3sは、ホストコンピュータ1か
らのタイミングに合わせ、出力加工情報を出力情報加工
部107から出力加工情報バス113へ送出する。この
際、どの要素プロセッサ3sからの出力であるかを明確
にするため、要素プロセッサ番号を表す識別子をデータ
列の先頭あるいは後尾に添付しパケット状のデータ構成
とする。データ出力制御部114は、出力加工情報バス
113を介して入ってくる出力加工情報を要素プロセッ
サ番号識別子に従って並べかえ、1つのシリアルデータ
に変換する。さらに、シリアルデータバス115を介し
て表示データ制御部116に送られたデータは、再び要
素プロセッサ番号識別子に従って対応する表示素子11
0毎に振り分けられた後デジタル/アナログ変換回路を
介してデジタルデータをアナログデータに変換され、表
示データバス118を介して各表示素子110へ送出さ
れる。表示素子110は計算情報を、例えば液晶表示素
子のように光の透過率に変換したり、磁気歪を光透過に
変更したり、透過光の色変化に変換したりする。この
際、表示素子110は、それが光透過型であれば表示素
子110の裏側から、光反射型であれば表示素子の表面
から、反射鏡112によって平行光線に変換されたラン
プ111からの光が照射されるため、出力情報加工部1
07の動作を妨げることなく出力加工情報を視覚的に表
示することができる。
【0318】このように、本構成により、最小限のデー
タバスの構成で、計算機システムと表示装置の距離を大
きくとることができ、計算の高速処理を妨げることなく
計算の途中経過や最終計算結果を視覚的に観察したり制
御に利用したりすることができるようになる。
【0319】<実施の形態20>次にこの発明の第20
実施の形態について説明する。この実施の形態は、例え
ば流体解析等において説明する。計算対象が、外部流れ
であれば複雑な曲面形状を持つ物体外部表面、内部流れ
であれば複雑な曲面形状を持つ内壁面に沿う流れを解析
する場合には、物体表面に沿った格子を使用する物体適
合座標系(Body Fitted Curvature)を、さらに局所的
に複雑な構造を持っている場合には、粗い格子と細かい
格子とを組み合わせて使用する複合座標系を、或いは現
象が局所的に激しく変化する場合には、変化の激しい部
分の格子を自動的に細かくする解適合座標系等を用いる
と、解析の精度が向上する。しかし、これらの座標系を
用いるには物理座標系と計算座標系の間の煩雑な座標変
換を常に実施しなければならない。この実施の形態は、
物理座標空間と計算座標空間の間に座標変換機能を受け
持つ座標変換専用ユニットを設けて、格子生成を容易に
するとともに、流体解析の計算速度を高め、更に計算結
果の表示時間を短縮するためのもので、図30にマルチ
プロセッサの全体構成図を示す。
【0320】図において、1はホストコンピュータ、3
は要素プロセッサ、7は要素プロセッサ3間を結び情報
のやりとりを行う要素プロセッサ間コネクション、18
は要素プロセッサ3を要素プロセッサ間コネクション7
により2次元平面状に接続した2次元計算基板、4はホ
ストコンピュータ1と2次元計算基板18内の要素プロ
セッサを接続し情報のやりとりを行うネットワーク、1
20はネットワーク4の途中に設けられ座標変換を行う
座標変換専用ユニットである。
【0321】ホストコンピュータから初期条件や境界条
件がマルチプロセッサにロードされる際、まず座標変換
ユニット120において物理座標系から計算座標系に座
標変換され、マルチプロセッサへは計算座標系に関する
情報のみインプットされる。従って、要素プロセッサ3
では煩雑な座標変換計算が分離され、本来の流体計算の
高速化が図られる。また、計算結果の出力に際しては、
変換計算結果を視覚的に理解容易な物理座標系へ変換す
る必要があるが、要素プロセッサ3内の演算を妨げる物
理座標系への変換は要素プロセッサ3からホストコンピ
ュータ1へ送られる途中で座標変換専用ユニット120
により行われる。従って、計算結果の出力時間が短縮さ
れると共に、要素プロセッサは計算結果出力のために演
算を妨害されず高速演算を維持できる。
【0322】このように、この実施の形態によれば、計
算に要する座標変換が容易になる上、座標系前処理、後
処理等の座標変換専用ユニットをハードウェアあるいは
ソフトウェアでサポートすることにより、格子形成が容
易になり、解の精度も向上する。また計算結果の可視化
においても、座標変換専用ユニットを使用して計算座標
から物理座標への変換を高速に処理することにより、表
示時間の短縮が実現される。
【0323】<実施の形態21>次に、この発明の第2
1実施の形態について説明する。図31は各要素プロセ
ッサの負荷を平準化して、並列計算した際の効率化を図
るための一実施の形態を示す計算領域境界近傍の計算格
子点を示す。図において、125は計算領域の境界上の
格子点、126は計算領域内部の格子点、127は計算
領域外部で境界上の格子点125に隣接する仮想格子点
であり、これらの格子点と各要素プロセッサは一対一に
対応している。
【0324】境界上の格子点125は、その隣接する格
子点の数が内部の格子点126よりも少ないため、通信
量、演算量ともに内部の格子点126よりも少ない。こ
のために、境界上の格子点125に対する処理時間が短
くなる他の内部の格子点126との時間的な同期処理が
必要となる場合には、同期によるオーバーヘッドを避
け、非同期の計算を行う場合には、演算負荷の偏りを避
け、全格子点の処理を平準化するために、境界外部に仮
想格子点127を設けて、境界上の格子点125とダミ
ーの通信を行うことで処理量を内部の格子点125と同
一とする。
【0325】なお、上記実施の形態、計算格子点と要素
プロセッサは一対一に対応している場合について述べた
が、一要素プロセッサに対して複数の計算格子点が対応
している場合でも、境界上の格子点125を含む要素プ
ロセッサは処理時間が短くなるため、境界上の格子点1
25に仮想格子点127を接続して、内部の格子点12
6のみを含む要素プロセッサと同様の計算負荷を与える
ことにより上記実施の形態と同様の効果を得ることがで
きる。
【0326】従って、この実施の形態によれば、各要素
プロセッサの負荷を平準化し、並列化した際の効率化を
図ることができる。
【0327】<実施の形態22>次に、この発明の第2
2実施の形態について説明する。要素プロセッサがいわ
ゆるノイマン型のプロセッサの場合には、複数の格子点
の計算が割り当てられたとき、時分割処理をすることに
なる。これは、ノイマン型の場合、単一のプロセッサで
は並列処理ができないからである。
【0328】これに対して、命令レベルの並列処理が可
能な、例えばデータフロープロセッサを用いれば複数の
格子点に対する計算を同時並行的に実行することができ
る。データフロープロセッサに関しては、例えば、三菱
電機技報,Vol.66,No.2,1992,pp24〜
pp25に示されている。このような記述から分かるよう
に、データフロープロセッサにおいて、命令レベルの並
列処理が可能である。
【0329】上記のように、データフロー(データ駆
動)方式では同時実行可能な命令を独立して実行するこ
とができる。
【0330】このような特徴を有するデータフロープロ
セッサ上で差分法に基づく微分方程式の求解プログラム
を実現する方法について説明する。例えば、図21に示
した要素プロセッサに適用する場合、プログラムメモリ
11に計算プログラムを割り当て、浮動小数点演算部1
1でデータフローグラフに沿った演算がなされる。
【0331】図32は、偏微分方程式の求解のためのプ
ログラムの一部が書き込まれたプログラムメモリを示す
図である。
【0332】図32に示すように、プログラムメモリ1
1の異なる領域131,132に格子点No.1と格子点N
o.2に対する計算プログラムが割り当てられている。外
部から入力される初期パケットには、プログラムメモリ
11を通過することなく命令を実行させるために、命令
コード及び行き先ノードアドレス等が予め与えられてい
る。マッチングメモリ83で待ち合わせが完了すると、
実行パケットが生成される。データメモリ8では、命令
コードに従ったメモリアクセスが行われる。データメモ
リから出力されたパケットを構成するフィールドのう
ち、行き先ノードアドレスはプログラムメモリ11で、
また命令コードとオペランドデータは演算処理部10で
各々処理される。すなわちプログラムメモリ11では入
力されたパケットの行き先ノードアドレスを読み出され
た次の行き先ノードアドレスに更新し、演算処理部10
では演算が行われた結果がパケットの第1オペランドデ
ータフィールドにセットされる。結果パケットは、再び
処理されるか、もしくは最終結果として外部に出力され
る。プログラムメモリ11の異なる領域131,132
に格納された2つのプログラムは、それぞれ結果パケッ
トに命令コード及び行き先ノードアドレスを与え、同時
に演算処理が進む。データフロー方式のプロセッサ上で
は、これら2つのプログラムが命令レベルで混在しつつ
同時並行処理される。
【0333】<実施の形態23>次に、この発明の第2
3実施の形態について説明する。ダイナミックデータフ
ロー方式のプロセッサ上で、識別子を用いた処理を行な
うことにより、同一プログラムを複数セットの入力デー
タに対して同時に実行することができる。このようなダ
イナミックデータフローに関しては、例えば、J.A.
シャープ著、「データ・フロー・コンピューティン
グ」、サイエンス社(1986)に示されている。
【0334】図33に示すように、当該要素プロセッサ
には2つの格子点(No.1とNo.2)が割り当てられてお
り、プログラムメモリ130には格子点No.1とNo.2に
対する小さなメインプログラム131,132が各々格
納されている。メインプログラム131,132の機能
は、それぞれの格子点に固有の識別子番号(カラー識別
子)をデータに付けた後に、計算カーネル部133にこ
れらのデータを与えることである。計算カーネル部13
3では、格子点No.1とNo.2に対する処理131、およ
び132が同時に行なわれるが、データに識別子が付与
されているので、完全に独立に2つの処理が実行され
る。
【0335】上記説明のとおり、メモリアクセスを要し
ないデータフロー処理であれば、カラー識別子を導入す
ることによって、同一プログラムを複数セットのデータ
に対して同時に実行することができる。しかし、データ
メモリアクセスについてはカラー識別子による排他制御
はできない。プログラマーの責任でこの問題は回避する
必要がある。一つの回避策として、カラー識別子とデー
タメモリアドレスの変換をプログラムで行ない、カラー
識別子毎に異なるデータメモリアドレスを得ることがで
きる。
【0336】図34に、カラー識別子の内容をオペラン
ドデータフィールドに格納するための関数の例を示す
(以降、カラー獲得関数と称す)。図34はカラー獲得
関数を示すデータフローグラフである。また、図の右側
にデータパケットの変遷を併せて記述した。図では簡単
なため、パケットのフォーマットとしてカラー識別子、
左データ(第1オペランド)、右データ(第2オペラン
ド)のみを記述した。図において、135から138は
順にデータの処理を行うノードである。ノード135で
はPC命令、ノード136ではOR命令、ノード137
ではPC命令そして最後のノード138ではSWAP命
令が実行される。図34においてフローグラフに用いら
れている命令の機能について以下に説明する。
【0337】(1)PCは、カラー識別子と左データを
交換する命令である。
【0338】(2)ORは、左データと右データとのビ
ット毎の論理和演算を行い、その結果を左データに格納
する命令である。
【0339】(3)SWAPは、左データと右データを
交換して出力する命令である。
【0340】次に、カラー獲得関数の動作について説明
する。入力されるデータパケットは、カラー識別子とし
てC1、左データに5、右データにDR1が格納されて
いるものとする。
【0341】入力されたデータは、ノード135におい
て、PC命令によりカラー識別子と左データが交換され
る。次に、そのデータはノード136において、定数値
「0」とのOR演算が施されその結果、カラー識別子が
5、左データ、および右データがC1のデータパケット
が出力される。さらに、ノード137において、このデ
ータパケットにPC命令が実行され、カラー識別子がC
1、左データが5、右データがC1のパケットとなる。
最後に、ノード138において、SWAP命令により左
データと右データが交換され、入力されたデータパケッ
トと同一のカラー識別子をもち、かつ、左データに自ら
が有するカラー識別子が格納され出力される。カラー獲
得関数からの出力パケットは自らの有するカラー識別子
を左データとして獲得できた。
【0342】次に、上記のカラー獲得関数で計算した結
果を用いてデータメモリのアドレスを計算する方法につ
いて説明する。各格子点にカラー識別子を割り当てる方
法の一例についての概念図を図35に示す。図におい
て、139は格子点である。格子点139がメッシュ状
に配置されている2次元の解析について説明する。ここ
では、N行N列のメッシュ状に配置された格子点139
に、左上端にカラー識別子0を割り付け、右方向及び下
方向へ進むに従ってカラー番号が増加するように各格子
点へのカラーの割付を行っている。
【0343】図35に示す概念図において、各格子点1
39の左上の符号が各格子点に割り当てられたカラー識
別子である。上記のような割り付けを行ったため、カラ
ー獲得関数で獲得した自格子点に割り当てられているカ
ラー識別子を用いて近傍の格子点に割り当てられている
カラー識別子(CN)を下記の数36のようにして計算
することができる。
【0344】なお、方向を示す用語として、上方を北、
下方を南、右方を東、左方を西と呼ぶことにする。数3
6の(1)式に当該格子点の北方向の近傍格子点に割り
当てられたカラー識別子を示す。同様に、数36の
(2)〜(4)式に、それぞれ、当該格子点の南、西及
び東方向の近傍格子点に割り当てられたカラー識別子を
示す。
【0345】
【数36】
【0346】図36に示されるように、各格子点毎にデ
ータメモリ8のY語を割り当て、カラー識別子がZであ
る格子点に割り当てられているデータメモリのアドレス
がZ×Y〜Z×Y+Y−1の領域になるようにメモリ割
付を行っている。
【0347】したがって、カラー識別子がCNである格
子点に割り当てられているメモリのアドレスは数37で
与えられる。
【0348】
【数37】
【0349】ただし、kは予め定めた数であり、カラー
識別子がCNである格子点に割り当てられているY語の
データメモリ要素のうちのk番目の語をアクセスするこ
とを意味する。
【0350】以上説明したように、カラー識別子とデー
タメモリアドレスの変換をプログラムで行ない、カラー
識別子毎に異なるデータメモリの領域をアクセスするよ
うにしたので、特別なハードウェアを使用することな
く、データフロー方式においても、要素プロセッサ3の
メモリを相互に参照することによって、等価的に格子点
間の非同期の通信を実現することができる。
【0351】<実施の形態24>次に、この発明の第2
4実施の形態について説明する。この種の、微分方程式
を求解する情報処理装置においては、対象とする方程式
を差分化、すなわち空間(場合によっては時間も含む)
を格子状に分割し、各格子点(分割された空間の代表
点)での諸量を求めるために、近傍の格子点での計算結
果を使用しながら収束計算を実行する。この実施の形態
では、各格子点での計算結果を格納するメモリを各格子
点毎に割り当て、格子点間でのデータの授受を上記のメ
モリを参照することで実現する。以下に格子点間でのデ
ータ授受の方法を示した一実施の形態について説明す
る。
【0352】図37に1つの格子点での計算結果を格納
するために割り当てられたデータメモリの領域を示す。
図において、140は格子点での計算結果を格納するた
めデータメモリ8内の一つの格子点に割り当てられた領
域、141乃至144は領域140内に割り付けられ、
それぞれ東、西、南及び北方向の格子点を通信要否フラ
グのデータを格納している領域である。
【0353】図37に示されているように、各格子点に
割り当てられたデータメモリの領域には、(1)格子点
での計算結果のうち隣接する格子点が参照するデータ、
及び(2)通信の方向(ここでは、2次元を仮定して、
東、西、南、北方向と称する)毎に通信の要否、通信が
同一プロセッサ内に割り付けられた格子点処理か、ネッ
トワークを介した通信であるか否か等を示したフラグの
2種類のデータが格納されている。
【0354】図38は、格子点間で通信を行う場合の処
理の流れを示すフローチャートである。以下、図38の
フローチャートに沿って説明する。まず、格子点間で通
信を行う場合には、通信方向毎に割り当てられたデータ
メモリ領域の予め定められたアドレスに格納されたデー
タを読み出す(ステップST1)。次に、ステップST
2において、通信の要否の判断を行う。つまり、読み出
されたデータが「1」である場合は通信しようとする方
向に隣接する格子点が存在することを意味しており通信
のための処理を行う。他方、読み出されたデータが
「0」の場合は、この格子点は系の境界上に位置し、こ
の方向には通信が不要であることを意味し、通信のため
の処理は行われない。
【0355】次に、ステップST3において、通信の方
向に従って、通信の種類を示すフラグが格納されたデー
タメモリの予め定められた別のアドレスに格納されたデ
ータを読み出し、上記と同様に、読みだしたデータ値を
テストする。
【0356】読み出されたデータの値が「0」である場
合は、同一プロセッサ内に割り付けられた格子点との通
信を行うことを意味し、この発明の第23実施の形態で
示した方法でアドレス計算を行い、隣接格子点に割り当
てられたデータメモリ領域を参照・更新する事で格子点
間での通信を行う。
【0357】他方、読みだしたデータが「0」以外であ
る場合は、通信を行う格子点が別のプロセッサに割り付
けられていることを意味していると同時に、読みだした
32ビットのデータの上位8ビットには通信の相手の格
子点が割り付けられたプロセッサの番号、および下位2
4ビットには通信相手の格子点に割り付けられたデータ
メモリのベースアドレスが格納されている。実施の形態
22で示したように、上記の32ビットのデータに、オ
フセットアドレスを加算して所望のデータが格納されて
いるデータメモリのアドレスを計算する。上記のデータ
をアドレスとして分散共有メモリアクセスを実行する
と、通信を行う必要がある格子点が割り付けられている
プロセッサへデータパケットがネットワークを介して転
送され、所望のデータを読み出し、そのデータとともに
再び通信元のプロセッサへ戻り、格子点の計算を続行す
る。
【0358】以上説明したように、格子点間で通信を行
うマルチプロセッサにおいて、各格子点ごとに各方向ご
との通信可能方向かどうか、ネットワークを介する通信
かどうか等の通信可否、方法を示す情報を格納するフィ
ールドをデータメモリ内に割り当て、ネットワークを介
する通信の場合は分散共有メモリアクセスを使用した。
なお、分散共有メモリアクセスの機構については、特開
平3−122338号公報に詳細に開示されている。
【0359】このため、境界上の格子点の処理も、境界
内の格子点処理も同一のプログラムで実現でき、プログ
ラムサイズの削減ができる。
【0360】また、各格子点を複数のプロセッサにわた
って割り付けた場合、格子点の割付方法によらずプロセ
ッサをわたる格子点間の通信が容易に実現できる。
【0361】以降に述べる、この発明の第25実施の形
態、第26実施の形態、第27実施の形態、第28実施
の形態においては、複数の格子点の処理プログラムを同
一の要素プロセッサに割り付け、格子点間のデータ授受
を同一要素プロセッサ内のデータメモリを介して行うこ
とを前提としている。以下に、各実施の形態についての
詳細な説明をする。
【0362】<実施の形態25>次に、この発明の第2
5実施の形態について説明する。各格子点ごとにメモリ
を割り当て、このメモリを介して近接する格子点間の通
信を行うマルチプロセッサにおいて、格子点ごとに通信
すべき各方向のメモリ領域を示すテーブルをもつ計算方
式について説明する。
【0363】図39はデータメモリの領域の分割を示す
図である。図において、145は隣接格子点での計算結
果を得るためデータメモリ8内の一つの格子点に割り当
てられた領域、146〜149は領域145内に割り付
けられ、それぞれ東、西、南及び北方向の格子点のメモ
リ領域の先頭アドレスを格納している領域である。
【0364】図39に示すように、各格子点ごとのメモ
リ割り当ての中に、通信を必要とする各方向の格子点の
メモリ領域の先頭アドレスを格納する。この実施の形態
の場合には、格子点ごとに、東方向、西方向、南方向、
北方向の4つのデータ領域146〜149を使用して通
信方向の格子点のメモリ領域の先頭アドレスを格納して
いる。
【0365】図40は、通信を行う場合の処理の流れを
示すフローチャートである。通信を行う場合には、通信
方向に従って、通信先のメモリ領域の先頭アドレスを読
み出す(ステップST6)。通信しようとする方向が、
通信不可能方向の場合には、通信方向の格子点のメモリ
領域の先頭アドレスを格納する領域には、予め−1が格
納されている。読み込んだデータが−1であった場合に
は、通信処理は行わない(ステップST7)。通信不可
能方向でないと確認された場合には、通信先の先頭アド
レスに通信すべきデータのアドレスオフセットを加算
し、実際に通信するアドレスを得、実際の通信を行う
(ステップST8)。
【0366】なお、上記実施の形態では、通信すべき各
方向のメモリ領域の先頭アドレスを格納する場合の例を
示したが、例えば格子点番号順にメモリ領域が取られて
いる場合は、格子点番号を格納するような実施の形態に
対してもこの発明は適用できる。
【0367】また、上記実施の形態では、通信すべき各
方向のメモリ領域の先頭アドレスを格納する場合の例を
示したが、通信すべきメモリ領域を特定できる識別子、
例えば、通信元の格子点のメモリ領域の先頭アドレスと
通信先のメモリ領域の先頭アドレスとの差やその値を一
つ格子点が使用するメモリのサイズで割った値である格
子点間距離や、ポインタを格納するような実施の形態に
対してもすべて、この発明は適用できる。
【0368】また、上記実施の形態では、通信すべき方
向として、4方向の場合について、説明したが、6方向
や8方向(北東、北西、南西、南東方向、または、その
一部を含む場合)の場合、についても、この発明は適用
できる。
【0369】また、上記実施の形態では、通信不可能方
向の場合には、−1が格納されている場合について説明
したが、識別子として使用しない任意の値を通信不可能
方向を示す識別子として使用する実施の形態に対して
も、この発明は適用できる。
【0370】粗ノード処理時には、通信すべき近接格子
点が少し離れた点であり、細ノード処理時には近くの格
子点になるといったように、通信すべき格子点が変化す
るような処理の場合でも、通信方向の格子点のメモリ領
域を示す識別子の領域を書き換えるだけで、全く同一の
プログラムで処理を行うことができる。
【0371】また、従来は図41に示したような、凸凹
のある領域を処理の対象とする場合には、凸凹領域を包
含するような正方形や長方形を処理対象としていた。こ
のため、本来処理しなくてもよい格子点に対しても処理
が必要であったのに対して、この発明を適用すると任意
の格子点の任意の方向に対して、通信不可能格子点とす
ることが可能であるので、凸凹領域のままで処理可能と
なる。これにより、従来、無駄に処理を行っていた、凸
凹領域の外側の格子点のメモリ領域が不要となり、メモ
リサイズの圧縮ができる。また、凸凹領域の外の格子点
の処理が不要となり、処理の高速化が可能となる。メモ
リサイズの圧縮と処理の高速化の両方が実現できる。
【0372】この実施の形態の通信方向の識別子として
使用する識別子としては、格子点番号や通信元の格子点
のメモリ領域の先頭アドレスと通信先のメモリ領域の先
頭アドレスとの差を一つ格子点が使用するメモリのサイ
ズで割った値を用いた場合の方が、アドレスやアドレス
の差そのものを使用する場合に比べて、メモリとして必
要なビット数が少なくなり使用メモリサイズの圧縮にな
る。
【0373】上記実施の形態は、一つの要素プロセッサ
に多数の格子点を畳み込んだ場合のメモリ領域アクセス
方法を提供するものであるが、要素プロセッサ間の通信
に関しては、以下に示す実施の形態によって通信を簡略
化することが可能となる。
【0374】格子型トポロジーに要素プロセッサを接続
した場合、斜め方向の要素プロセッサとの通信が問題と
なる。図42は斜め方向の要素プロセッサとの通信方式
を示す図で、図において、151はNW方向の要素プロ
セッサを、152はN方向の要素プロセッサを、153
はNE方向の要素プロセッサ、154はW方向の要素プ
ロセッサを、155は計算中の要素プロセッサを、15
6はE方向の要素プロセッサを、157はSW方向の要
素プロセッサを、158はS方向の要素プロセッサを、
159はSE方向の要素プロセッサを、それぞれ表して
いる。
【0375】また、図において、160はNW方向の仮
想通信路を、161はSE方向の仮想通信路を、162
は要素プロセッサ間ネットワークを、163はSW方向
の仮想通信路を、164はNE方向の仮想通信路を示
す。要素プロセッサ155が、NW方向及びSE方向の
要素プロセッサ151,159と通信する場合、従来の
方法では、仮想通信路160及び161を直接要素プロ
セッサ151,155間及び要素プロセッサ155,1
59間に敷設することで通信を行うか、要素プロセッサ
152或いは158を経由してデータ通信を行ってき
た。ところが、これらの通信方法では、前者の場合、通
信網が複雑になりすぎる点、後者の場合、通信の同期待
ちが大きくなりシステム全体の速度パフォーマンスが劣
化する点など問題点が多かった。そこで、それぞれの要
素プロセッサが上下の要素プロセッサの持つデータをメ
モリ上に2重持ちすることによって、例えば要素プロセ
ッサ151との通信は、要素プロセッサ154のメモリ
上に保存されている要素プロセッサ151のデータを参
照することで、通信方式が簡略化される。但し、2重持
ちデータは、元データ更新の度に書き換えられなければ
ならない。
【0376】また、上下の要素プロセッサのデータの代
わりに、左右の要素プロセッサのデータを2重持ちし、
例えば、要素プロセッサ151と通信を行う場合は、要
素プロセッサ152のメモリ上に記憶されている要素プ
ロセッサ151のデータとアクセスすることでも同様の
効果を奏する。
【0377】<実施の形態26>次に、この発明の第2
6実施の形態について説明する。各格子点ごとにメモリ
を割り当て、このメモリを介して近接する格子点間の通
信を行うマルチプロセッサにおいて、格子点ごとに通信
すべき各方向のメモリ領域を示す情報を保持させ、特に
通信不可能方向には共通のダミー領域を示す情報を保持
するようにした。
【0378】図43に、第26実施の形態で使用される
メモリの割り付け図を示す。図43において、170は
データメモリ8内の処理対象の格子点に割り当てられた
メモリ領域、171はメモリ領域170内の一つの格子
点に割り当てられたメモリ領域、172は処理対象の格
子点に割り当てられたメモリ領域170とは別にデータ
メモリ8内に割り当てられた通信不可能方向用のダミー
領域として割り当てられた1格子分のメモリ領域であ
る。実際に処理する格子点用のメモリ領域以外に通信不
可能方向用のダミー領域として1格子分のメモリ領域を
確保する。実際に処理する格子点に割り当てられたメモ
リ領域の各通信方向の格子点のメモリ領域を示す識別子
を格納する領域に通信不可能領域を示す識別子として、
ダミーの領域を示す識別子を格納しておく。
【0379】この実施の形態の処理の流れを図44に示
す。通信処理を行うにあたっては、通信方向の格子点の
メモリ領域を示す識別子を読み込む(ステップST1
0)。その後、その識別子がダミー領域であってもなく
ても、その領域に対して、通信処理を行う(ステップS
T11)。
【0380】通信処理に通信先の領域からの読み出しが
含まれる場合には、ダミー領域にも、処理に悪影響がな
いような値を予め格納しておく。但し、各格子点の処理
で必要なデータを、近接格子点から必ず予め渡すように
処理させることによって通信では、通信元から通信先へ
の処理を書き込みのみに限定することは、可能である。
【0381】通信可能か不可能かに関わらず同一の処理
であるので、判定部分のプログラムが不要となり、プロ
グラムサイズの圧縮が可能となる。
【0382】通信可能か不可能かに関わらず同一の処理
であるので、格子点ごとの計算負荷のばらつきを抑える
ことができ、通信不可能方向の多い格子点だけが処理が
進みすぎることを避けることができ、各格子点間での同
期処理等が必要な場合であっても、プログラムサイズの
圧縮および処理の高速化が実現できる。
【0383】<実施の形態27>次に、この発明の第2
7実施の形態について説明する。隣接する格子点が要素
プロセッサをまたがって割り当てられている場合、デー
タの授受の遅れ時間を短縮するために、双方の要素プロ
セッサで相手方のデータを2重持ちすることが効果的で
ある。この場合、これらの格子点に対するデータが更新
されたときには必ず隣接プログラムに新しいデータを送
って、双方の要素プログラムのデータの一貫性を保証す
る必要がある。
【0384】しかし、データが更新される度に隣接要素
プロセッサにデータを送信するのは、更新されたデータ
の差異がわずかであるときには、いたずらにプロセッサ
間通信を増加させる結果になり、本来の処理に悪影響を
及ぼす。図45は隣接プロセッサ間での通信の状況を示
す概念図である。図において、左側の要素プロセッサ3
は、格子点No.0〜No.nの計算を行い、右側の要素プロセ
ッサ3は格子点No.n+1〜No.mの計算を行う。図45に示
すように、例えば左側の要素プロセッサ3が格子点No.n
の計算結果データを隣接要素プロセッサ3へ送る場合、
隣接要素プロセッサ3への送信すべきデータAを前の世
代のデータBと比較して、同じまたは一定値以下の変位
ならば送らないようにすることにより、このような悪影
響を回避することができる。
【0385】データBはここでは前の世代(すなわち、
前回の計算結果データ)としたが、「一定値以下の変位
ならば送らないようにする」場合には、毎回の変化はわ
ずかであっても差が蓄積することが懸念されるので、デ
ータBは前回隣接要素プロセッサ3に送信したデータと
してもよい。
【0386】<実施の形態28>次に、この発明の第2
8実施の形態による方程式を解くためのプログラムの簡
略化について説明する。図46は方程式の解析のための
計算領域と計算領域に割り付けられた格子点との関係を
示す平面図である。実線で囲まれた処理を要する格子点
の外側に1周分の格子点を考える。外側1周分の各格子
点用のメモリ領域を割り当てておき、各々の格子点の下
の数字を格子点番号とする。
【0387】通信元の格子点番号がnのとき、各方向の
格子点番号は、数38の計算で得ることができ、端の格
子点に対しても特別な処理は必要ない。
【0388】
【数38】
【0389】格子点に対するデータがアドレスSから格
子点順に1つの格子点ごとに、Rエントリづつ確保され
ているとすると、上記の計算により得られた通信先の格
子点番号をDとすると、数39で通信先の格子点のデー
タ領域の先頭アドレスを得ることができる。通信処理
は、第25及び第26実施の形態と同じである。
【0390】
【数39】
【0391】通信処理に通信先の領域からの読み出しが
含まれる場合には、各ダミー領域には、処理に悪影響が
ないような値を予め格納しておく。これは、ダミー領域
はかべと同一のデータにする近接格子点と同一のデータ
を持たせることで大きな影響を省く等により実現でき
る。また、各演算の単位元となる値がある場合には、そ
の値を設定することでも実現できる。
【0392】この実施の形態では、計算により各方向の
格子点番号を得たが第25実施の形態と同様に通信方向
の格子点の識別子をメモリに格納する実施の形態に対し
ても、上記方法が適用できる。
【0393】第25ないし第27実施の形態では、各格
子点ごとに一つにかたまった領域のメモリを割り当てた
場合について説明したが、たとえば圧力値、速度といっ
た要素ごとにかためて領域を確保し、各領域は格子点番
号順に各要素が格納されているといったように、要素ご
とにかためて領域を確保した場合の実施の形態について
も適用できる。
【0394】各格子点ごとにデータメモリ領域を割り当
て、前記メモリを参照することにより隣接する格子点の
データを得ることができる計算方式において、境界に位
置する格子点について、外側の格子点を模擬する仮想的
なデータ領域を割り当てることにより、処理プログラム
の単純化、プログラムサイズの圧縮、処理の高速化が実
現できる。
【0395】要素ごとをかためて領域を確保する場合に
は、頻繁にアクセスする要素をかためることで、キャッ
シュのヒット率を向上させることができ、処理の高速化
が可能となる。
【0396】<実施の形態29>次にこの発明の第29
実施の形態について説明する。微分方程式の求解におい
ては対象とする系を細かい格子点に分割するが、この場
合、境界条件によって定まる格子点の状態が全格子点に
伝搬し、安定状態に到るまでには境界から各々の格子点
ノードまでの点数に比例した時間がかかり、収束に到る
時間が長くなっていることが懸念される。
【0397】このような非効率を回避するためには、粗
ノードと細ノードを交互に使用して収束性をあげること
が考えられる。図47は粗ノードと細ノードを交互に使
用して収束性をあげるための一実施の形態を示す計算領
域境界近傍の計算格子点を示す。図において、125は
計算領域の境界上の格子点、126aは細ノード結合時
の計算領域内部の格子点、126bは粗ノード結合時の
計算領域内部の格子点、7aは細ノード結合用の要素プ
ロセッサ間コネクション、7bは粗ノード結合用の要素
プロセッサ間コネクションであり、これらの格子点と各
要素プロセッサは一対一に対応している。
【0398】この実施の形態では、細ノード結合時はす
べての計算領域内部の格子点126a及び126bを細
ノード結合時の要素プロセッサ間コネクション7aによ
り結合し、粗ノード結合時は複数の内部の格子点をジャ
ンプして粗ノード結合時の内部の格子点126bを粗ノ
ード結合時の要素間コネクション7bにより結合してい
る。ここで、粗ノード結合時の内部の格子点126bは
細ノード時と粗ノード時の両方において計算格子点の役
を果たしているため、粗ノード時の内部の格子点126
bの内部のデータメモリは、粗ノード時と細ノード時の
情報の受け渡しの役割を果たす。そして、計算に際して
は、細ノード結合と粗ノード結合を交互に使用する。こ
のような構成においては、粗ノード結合時の要素間コネ
クション7bにより境界上の格子点125の持つ境界条
件は、細ノード結合時より3倍速く計算領域内部に伝え
られ、その後細ノード結合により近傍の細ノード結合時
の内部の格子点126aへ伝えられて詳細な計算が実施
される。
【0399】従って、この実施の形態によれば、粗ノー
ドの使用により境界条件を計算領域内に即座に浸透させ
て収束性を高め、その後に細ノードの使用により計算精
度の高い演算結果が得られ、結果として高精度の高速演
算を達成できる。
【0400】なお、この実施の形態では粗ノード結合時
は細ノード結合時の格子点を2点おきに結合した例を示
したが、何点おきでも同様の効果を期待できることは言
うまでもない。また、この実施の形態では、格子の粗さ
を細ノード結合時と粗ノード結合時の2段階としたが、
さらに複数の段階の粗さの格子を用いても同様の効果を
奏する。さらに、この実施の形態では、粗ノード結合時
の計算と細ノード結合時の計算を1回ずつ交互に行う場
合について説明したが、粗ノード結合時と細ノード結合
時の計算を複数回に交互に行ってもよい。
【0401】上記の実施の形態では、粗ノードと細ノー
ドを交互に使用する場合について説明したが、粗ノード
で収束に到った後に、より細かいノードを用いて徐々に
解の精度を向上させていく方法もとることができる。
【0402】即ち、図47において、粗ノード結合時の
要素プロセッサ間コネクション7bにより結合された粗
ノード結合時の内部の格子点126bと境界上の格子点
125を用いて、収束解が得られるまで繰り返し演算を
行う、その後、粗ノード結合時の内部の格子点126b
の解を初期条件として与えるか、あるいは、粗ノード結
合時の内部の格子点126bの解を細ノードの空間分布
に合わせて比例配分して初期条件として与え、細ノード
結合時の要素プロセッサ間コネクション7aにより結合
された内部の格子点126a、粗ノード結合時の内部の
格子点126b、及び境界上の格子点125を用いて、
解の精度が高まるまで繰り返し計算を行い、収束解を最
終解とする。
【0403】この手法を採用することにより、大局的な
収束に到るまでの計算時間を大幅に加速することができ
る。すなわち、無駄に局所的な計算を行なうことを回避
することができ、安定的に収束に到ることができると同
時に、より早く最終的な収束に到達させることができ
る。
【0404】また、この実施の形態では、格子点と各要
素プロセッサは1対1に対応している場合について述べ
たが複数の格子点群が存在する空間領域を各要素プロセ
ッサに対応させる場合(割り当てる場合)でも同様の効
果を奏する。
【0405】<実施の形態30>次に、この発明の第3
0実施の形態について説明する。上記の第29実施の形
態では、隣接する要素プロセッサ間の結合コネクション
をジャンパ配線によりスキップすることにより粗ノード
結合を実現する場合を説明した。この実施の形態では、
この粗ノードをS/Wのみで実現する場合について説明
する。
【0406】この発明の第25実施の形態で説明した、
格子点毎にデータメモリの領域を確保し、格子点間のデ
ータ通信を、この格子点毎に確保されたデータメモリの
領域を通信が必要な格子点同士で互いにアクセスしあう
ことで実現する方法において、格子点毎に通信すべき各
方向のデータメモリ領域を指し示すテーブルを持ち、こ
のテーブルの各エントリに所望の格子点数分スキップし
た格子点のために確保されたデータメモリ領域のアドレ
スを格納することにより隣接する格子点以外の格子点と
データ通信を行う、すなわち粗ノード結合をS/Wのみ
で実現することができる。
【0407】従って、場の方程式の求解を始めた段階で
は通信すべき各方向のデータメモリ領域を指し示すテー
ブルを粗ノード処理を実現するように設定しておき、処
理が収束した後に前記のテーブルを細ノード処理を実現
するように隣接格子点に確保されたデータメモリ領域を
指し示すように変更し、細ノード処理を行うことができ
る。
【0408】また、上記と同様な方法でテーブルを適宜
書き換えることにより、粗ノード処理と、細ノード処理
を交互に実行することもできる。
【0409】さらに、前記の通信すべき各方向のデータ
メモリ領域を指し示すテーブルを、粗ノード結合処理用
と細ノード結合用と2個もち、かつ粗ノード処理用のプ
ログラムと細ノード処理用のプログラムを並行して実行
することにより、粗ノードの処理と細ノードの処理を並
行して実行することも可能である。
【0410】粗ノード処理時には、通信すべき近接格子
点が少し離れた点であり、細ノード処理時には近くの格
子点になるといったように、通信すべき格子点が変化す
るような処理の場合でも、通信方向の格子点のメモリ領
域を示す識別子の領域を書き換えるだけで、全く同一の
プログラムで処理を行うことができる。
【0411】上記実施の形態では粗ノードと細ノードを
同時に実行することにより収束性を向上させる場合につ
いて説明したが、粗ノード処理のアルゴリズムと細ノー
ド処理のアルゴリズムが同一である必要はない。粗ノー
ドと細ノードのプログラムを個別に有することにより粗
ノード処理のアルゴリズムと細ノード処理のアルゴリズ
ムとして異なるアルゴリズムを用いることができる。
【0412】たとえば、粗ノードでは収束性はよいが精
度に欠けるアルゴリズムを用いることにより系全体とし
てさらに収束性を向上させることができる。
【0413】SIMPLE法に関する上記実施の形態で
は、隣接する格子点の現在のデータを参照して該当格子
点に関する計算を行なっている。しかし、隣接する格子
点に関するデータを2世代以上持ち、世代間変動が一定
量以下の場合には該当ノードの演算を省略することによ
り、総計算量を低減し、計算時間を大幅に短縮すること
ができる。また、世代間変動が一定値以下の格子点の計
算を省略することにより得られた計算資源を他の格子点
処理のために使用できるという効果もある。ここでい
う、「2世代のデータ」とは、隣接格子点に関する「繰
り返し計算の1ステップ前の計算結果に基づくデータ」
と「繰り返し計算の2ステップ前の計算結果に基づくデ
ータ」を指している。
【0414】上記のSIMPLE法においては、各格子
点における計算を省略するための条件を与える。隣接格
子点の世代間のデータの差異は一定値であった。しかし
ながら、収束計算の過程において、計算を省略するため
の条件である世代間のデータの差異の許容値を、最初は
大きくしておき徐々に縮めていくことにより、大局的な
収束に到るまでの計算時間を大幅に加速することができ
る。この手法を適用することによって、無駄に局所的な
計算を行なうことを回避することができ、最終的な収束
により早く到達することができる。
【0415】<実施の形態31>次に、この発明の第3
1実施の形態について説明する。従来の並列計算機で
は、計算回数を最小化することに主眼がおかれていたた
めに、ある時刻における全格子点の計算が終了した時点
で収束の有無を判定し、未収束であれば、時刻を進め
て、再び各格子点の計算を開始するという逐次的手段を
とっていたために、収束処理が全体を律速するという欠
点があった。
【0416】一般に流体シミュレーションでは、(各格
子点での計算コストCA)>(収束判定処理のコストC
C)の関係が成立するため、若干のバッファ装置を用意
すれば、この構成を採用することが可能である。また、
部分的に収束判定をすれば、このバッファが少なくても
すむ。収束するまでの繰り返し計算の回数をNとする
と、N・(CA+CC+α)がN・CA+αに実行時間
で短縮される。ただし、αは通信コストである。
【0417】図48は、シミュレーションと収束判定処
理の相互依存関係を断ち切り、シミュレーションの速度
を向上させるためのこの発明の一実施の形態を示す、マ
ルチプロセッサの構成図である。
【0418】図において、3kは演算を行う要素プロセ
ッサ、180は列毎に配置された各要素プロセッサ3k
が出力する収束フラグの情報により列毎の収束状況を判
定する収束判定ユニット、1は要素プロセッサ3k及び
収束判定ユニット180を統括管理するためのホストコ
ンピュータ、104は行方向の要素プロセッサ3k間の
演算のためのデータをやり取りするための行方向計算情
報バス、105は列方向の要素プロセッサ3k間の演算
のためのデータをやり取りするための列方向計算情報バ
ス、181は各要素プロセッサ3kの出力する収束フラ
グを収束判定ユニット180へ伝達するための収束フラ
グ情報バス、182は各収束判定ユニット180の収束
情報をホストコンピュータへ伝達するための収束情報バ
スである。
【0419】次に動作について説明する。各要素プロセ
ッサ3kは自己の内部演算結果に対し各計算繰り返しス
テップ毎またはある一定の計算繰り返しステップ数毎に
計算の収束を判定して、例えば収束したならば収束判定
フラグを1として収束フラグ情報バス181へ出力して
いる。収束判定ユニット180は各要素プロセッサ3k
から出力された収束判定フラグの情報を集め、各々の収
束判定ユニット180の管轄する要素プロセッサ3kの
全てが収束したと判断すれば収束情報を個別に収束情報
バス182へ出力する。そして、最終的にホストコンピ
ュータ1が全収束情報バス182から吸上げた全要素プ
ロセッサ3kの収束情報から全体の収束を判定して演算
を終了させる。
【0420】この様に構成することにより、各要素プロ
セッサ3kは各々の演算を妨げられることなく並列に演
算を実行することができ、演算の高速化を図ることがで
きる。
【0421】なお、この実施の形態では収束判定ユニッ
ト180は格子状に配置された要素プロセッサの行毎に
グループ分けを行いこのグループの収束情報を管理して
いるが、列毎にグループ分けしても、ランダムにグルー
プ分けしても同様の効果を奏することは言うまでもな
い。
【0422】<実施の形態32>次にこの発明の第32
実施の形態について説明する。図49はさらにシミュレ
ーションと収束判定処理の相互依存関係を断ち切り、シ
ミュレーションの速度を向上させるための実施の形態を
示すマルチプロセッサの構成図である。
【0423】図において、3kは演算を行う要素プロセ
ッサ、180および180aは列毎に配置された各要素
プロセッサ3kが出力する収束フラグの情報により列毎
の収束状況を判定する収束判定ユニット、1は要素プロ
セッサ3k及び収束判定ユニット180を統括管理する
ためのホストコンピュータ、104は行方向の要素プロ
セッサ3k間の演算のためのデータをやり取りするため
の行方向計算情報バス、105は列方向の要素プロセッ
サ3間の演算のためのデータをやり取りするための列方
向計算情報バス、181は各要素プロセッサ3kの収束
状況を示す収束フラグを収束判定ユニット180へ伝達
するための収束フラグ情報バス、182は隣接する収束
判定ユニット180間及びホストコンピュータ1を結び
収束判定ユニット180の収束情報を伝達するための収
束情報バスである。
【0424】この構成においては、収束判定ユニット1
80は互いに隣接した収束判定ユニット同士に対して一
方向にしか情報伝達ができないように収束情報バス18
2を配している。そして、ホストコンピュータ1から最
も遠い収束判定ユニット180aの管轄する全要素プロ
セッサ3kの計算が収束した際に収束情報の送出を開始
する。他の収束判定ユニット180は隣接する収束判定
ユニット180からの収束情報と、収束フラグにより自
己の管轄する全要素プロセッサ3kの計算が収束したと
の判断の双方がそろった場合に、収束情報を隣接する収
束判定ユニット180へ送出する。
【0425】このようにすれば、最もホストコンピュー
タ1に近い収束判定ユニット180が収束情報をホスト
コンピュータ1へ送出した時点で、ホストコンピュータ
1は計算の終了を即座に判定できるため、要素プロセッ
サ3k及びホストコンピュータ1の処理を妨げることな
く、より計算の高速化を図ることができる。
【0426】なお、この実施の形態においては収束判定
ユニット180は格子状に配置された要素プロセッサの
行毎にグループ分けを行いこのグループの収束情報を管
理しているが、列毎にグループ分けしても、ランダムに
グループ分けしても同様の効果を奏することは言うまで
もない。また、収束判定ユニット180同士の接続方法
はホストコンピュータ1からの距離に関係なく接続して
も同様の効果が期待できる。
【0427】<実施の形態33>次に、この発明の第3
3実施の形態について説明する。第32実施の形態で示
したように、収束フラグを要素プロセッサの外部に構成
した収束フラグ情報バスを介して伝達するのは、通信時
間のロスを引き起こす。図50は収束フラグの伝送時間
短縮のための第33実施の形態による要素プロセッサの
構成を示すブロック図である。また、図51は図50の
要素プロセッサを構成要素とするマルチプロセッサの構
成を示すブロック図である。
【0428】図50において、3mは要素プロセッサ本
体、5は要素プロセッサ3m内に形成され計算を実施す
るためのプロセッシングユニット、6は要素プロセッサ
3m内に形成されプロセッシングユニット5の計算に必
要な計算情報を格納するメモリ部、183は要素プロセ
ッサ3m内に形成され自己の属する要素プロセッサ3m
内のプロセッシングユニット5の収束状況、隣接する要
素プロセッサ3m内の収束状況及び全要素プロセッサ3
mの収束状況を判定する収束判定部、104は行方向の
要素プロセッサ3m内のメモリ部6間の演算に必要なデ
ータをやり取りするための行方向計算情報バス、105
は列方向の要素プロセッサ内のプロセッシングユニット
5間の演算に必要なデータをやり取りするための列方向
計算情報バス、181は各要素プロセッサ内の収束判定
部183をリング状に接続して収束フラグを隣接する要
素プロセッサ内の収束判定部183へ伝送するための収
束フラグ情報バス、182は全要素プロセッサの収束判
定部183の少なくとも1つ以上の収束判定部183と
ホストコンピュータを接続し全要素プロセッサの収束情
報をホストコンピュータ1へ伝送するための収束情報バ
ス、184はプロセッシングユニット5の出力する収束
フラグを収束判定ユニット180へ伝達するための内部
情報フラグバス、106はプロセッシングユニット5と
メモリ部6の間で演算に必要なデータや演算結果データ
をやり取りする内部計算情報バスである。
【0429】図51において、1は要素プロセッサ3
m、3kを統括管理するためのホストコンピュータであ
る。各プロセッシングユニット5においては、各計算繰
り返しステップ毎またはある一定の計算繰り返しステッ
プ数毎に計算の収束を判定して、例えば収束したならば
内部情報フラグを1として内部情報フラグパス184を
介して収束判定部183へ送出している。また、各要素
プロセッサ3kの収束判定部183は収束フラグ情報バ
スを介してリング状に接続されている。収束判定の開始
は、予め定められた特定の要素プロセッサ3mから行な
う。要素プロセッサ3mの収束判定部183が、その内
部のプロセッシングユニット5から収束したことを示す
内部情報フラグを受け取ると同時に、例えば収束したな
らば収束フラグを1として隣接する要素プロセッサ3k
の収束判定部183へ収束フラグ情報バスを介して発信
する。ここでは、リング状に接続された収束情報フラグ
バス181は一方向への情報伝達を行う機能を有すると
する。前述の隣接する要素プロセッサ3kの収束判定部
183は、自己の属する要素プロセッサ3kのプロセッ
シングユニットからの内部情報フラグ(=1)と、隣接
する要素プロセッサ3mの収束判定部183からの収束
フラグ(=1)の論理積(AND)をとって真(=1)
となれば、収束フラグを1としてさらに隣接する要素プ
ロセッサ3kの収束判定部183へ収束フラグ情報バス
181を介して送出する。
【0430】リング状に接続された各収束判定部183
は、自己の属する要素プロセッサ3kのプロセッシング
ユニットからの内部情報フラグ(=1)と、隣接する要
素プロセッサ3kの収束判定部183からの収束フラグ
(=1)の論理積(AND)をとって1となれば、収束
フラグを1としてさらに隣接する要素プロセッサ3kの
収束判定部183へ収束フラグ情報バスを介して送出す
る手順を収束フラグ情報バス181の接続順に次々と実
施する。最終的に、最初に収束フラグを1として発信し
た要素プロセッサ3mの収束判定部183へ収束フラグ
(=1)が戻された時点で、全要素プロセッサ3k,3
mが収束したと判断し、収束情報(=1)を収束情報バ
ス182を介してホストコンピュータ1へ送出し、計算
を終了させる。
【0431】このようにすれば、内部情報フラグバス1
81が各要素プロセッサ3k,3mの内部に設けられて
いるので、収束に関する情報の伝達時間を短縮でき、計
算の高速化を達成できる。
【0432】なお、上記実施の形態では内部情報フラ
グ、収束フラグ情報、収束情報は各々0または1の論理
値として説明したが、収束、未収束が判定できれば何で
あっても良い。また、収束情報バス182は一つの要素
プロセッサ3mに設けられていればよく、全要素プロセ
ッサに設ける必要はない。
【0433】さらに、特定の要素プロセッサ3mは、全
要素プロセッサのどれであっても良い。
【0434】<実施の形態34>次に、この発明の第3
4実施の形態について説明する。図52は、全要素プロ
セッサを複数のグループに分け、各々のグループ毎に収
束情報フラグパスの情報伝達リンクを形成し、収束判定
の並列化を実現するための実施の形態を示すマルチプロ
セッサの構成を示すブロック図である。
【0435】図52において、181は全要素プロセッ
サを複数のグループに分割し、グループ内各要素プロセ
ッサ3k,3m内の収束判定部183をリング状に接続
して収束フラグを隣接する要素プロセッサ3k,3m内
の収束判定部183へ伝送するための収束フラグ情報バ
ス、182は各グループ内の一つの特定要素プロセッサ
3mに設けられ収束判定部183とホストコンピュータ
1間を結び各グループの収束情報を伝達するための収束
情報バスである。
【0436】各グループの内では、収束情報バス182
が設けられた特定の要素プロセッサ3mの収束判定部1
83において、その内部のプロセッシングユニット5か
ら収束したことを示す内部情報フラグを受け取ると同時
に、例えば収束したならば収束フラグを1として隣接す
る要素プロセッサ3kの収束判定部183へ収束フラグ
情報バスを介して発信する。ここでは、グループ内の要
素プロセッサの収束判定部183間をリング状に接続さ
れた収束フラグ情報バス181は一方向への情報伝達を
行う機能を有するとする。前述の隣接する要素プロセッ
サ3kの収束判定部183は、自己の属する要素プロセ
ッサ3kのプロセッシングユニットからの内部情報フラ
グ(=1)と、隣接する要素プロセッサ3mの収束判定
部183からの収束フラグ(=1)の論理積(AND)
をとって真(=1)となれば、収束フラグを1としてさ
らに隣接する要素プロセッサ3kの収束判定部183へ
収束フラグ情報バス181を介して送出する。
【0437】リング状に接続された各収束判定部183
は、自己の属する要素プロセッサ3kのプロセッシング
ユニットからの内部情報フラグ(=1)と、隣接する要
素プロセッサ3kの収束判定部183からの収束フラグ
(=1)の論理積(AND)をとって1となれば、収束
フラグを1としてさらに隣接する要素プロセッサ3kの
収束判定部183へ収束フラグ情報バスを介して送出す
る手順を収束フラグ情報バス181の接続順に次々と実
施する。最終的に、最初に収束フラグを1として発信し
た特定の要素プロセッサ3mの収束判定部183へ1の
収束フラグ(=1)が戻された時点で、グループ内の全
要素プロセッサ3が収束したと判断し、収束情報(=
1)を収束情報バス182を介してホストコンピュータ
1へ送出する。ホストコンピュータ1は全グループから
収束情報(=1)を受け取った時点で全要素プロセッサ
の計算が収束したと判断して、計算を終了させる。
【0438】このように構成すれば、グループ毎に収束
判定が並列化され、収束判定時間を短縮できる。
【0439】なお、この実施の形態においては収束判定
部183は格子状に配置された要素プロセッサの行毎に
グループ分けを行いこのグループの収束情報を管理して
いるが、列毎にグループ分けしても、ランダムにグルー
プ分けしても同様の効果を奏することは言うまでもな
い。また、上記実施の形態では内部情報フラグ、収束フ
ラグ情報、収束情報は各々0または1の論理値として説
明したが、収束、未収束が判定できれば何であっても良
い。また、収束情報バス182はグループ内の一つの要
素プロセッサ3mに設けられていればよく、全要素プロ
セッサに設ける必要はない。
【0440】さらに、特定の要素プロセッサ3mは、グ
ループ内にある要素プロセッサのどれであってもよい。
【0441】<実施の形態35>次に、この発明の第3
5実施の形態について説明する。図53は収束判定を並
列化させた際のホストコンピュータの負荷を軽減させる
ことを実現するためのマルチプロセッサを形成する要素
プロセッサの構成を示すブロック図である。また、図5
4は図53の要素プロセッサを構成要素とするマルチプ
ロセッサの全体構成図である。
【0442】図53において、181は全要素プロセッ
サ3k,3p,3qを複数のグループに分割し、グルー
プ内各要素プロセッサ内の収束判定部183をリング状
に接続して収束フラグを隣接する要素プロセッサ内の収
束判定部183へ伝送するための収束フラグ情報バス、
182は各グループの少なくとも一つ以上の要素プロセ
ッサ3p,3qに設けられ隣接するグループのこれを設
けた要素プロセッサ3p,3qの収束判定部183をリ
ング状に接続した収束情報バス、186は全グループの
少なくとも一つ以上の全要素プロセッサ3pに設けられ
この要素プロセッサ3pの収束判定部183とホストコ
ンピュータ間を結び全グループの収束情報を伝達するた
めの終了情報バスである。
【0443】図54に示すようなグループ分けを行う
と、収束情報バス182が設けられたグループ内の特定
の要素プロセッサ3pの収束判定部183において、収
束判定を開始し、その内部のプロセッシングユニット5
から収束したことを示す内部情報フラグを受け取ると同
時に、例えば収束したならば収束フラグを1として隣接
する要素プロセッサ3kの収束判定部183へ収束フラ
グ情報バスを介して発信する。ここでは、グループ内の
要素プロセッサ3k,3pの収束判定部183間をリン
グ状に接続された収束情報フラグバス181は一方向へ
の情報伝達を行う機能を有するとする。
【0444】前述の隣接する要素プロセッサ3kの収束
判定部183は、自己の属する要素プロセッサ3kのプ
ロセッシングユニットからの内部情報フラグ(=1)
と、隣接する要素プロセッサ3p,3qの収束判定部1
83からの収束フラグ(=1)の論理積(AND)をと
って真(=1)となれば、収束フラグを1としてさらに
隣接する要素プロセッサ3kの収束判定部183へ収束
フラグ情報バスを介して送出する。リング状に接続され
た各収束判定部183は、自己の属する要素プロセッサ
3kのプロセッシングユニットからの内部情報フラグ
(=1)と、隣接する要素プロセッサ3kの収束判定部
183からの収束フラグ(=1)の論理積(AND)を
とって1となれば、収束フラグを1としてさらに隣接す
る要素プロセッサ3kの収束判定部183へ収束フラグ
情報バス181を介して送出する手順を収束フラグ情報
バス181の接続順に次々と実施する。最終的に、最初
に収束フラグを1として発信した特定の要素プロセッサ
3p,3qの収束判定部183へ1の収束フラグ(=
1)が戻された時点で、グループ内の全要素プロセッサ
3pまたは3qが収束したと判断する。
【0445】さらに、終了情報バス186を設けられた
要素プロセッサ3pの内の特定の要素プロセッサの収束
判定部183が自己の属するグループの全要素プロセッ
サ3p,3kが収束したと判断すれば、収束情報を1と
してリング状に接続された収束情報バスを介して収束情
報(=1)を発信する。ここでは、グループ内の要素プ
ロセッサ3p,3qの収束判定部183間をリング状に
接続された収束情報バス182は一方向への情報伝達を
行う機能を有するとする。
【0446】予め定められたグループの要素プロセッサ
3pが隣接するグループの収束情報バス182を設けた
要素プロセッサ3qへ送出する。前述の隣接するグルー
プの収束情報バス182を設けられた要素プロセッサ3
qの収束判定部183は、自己の属するグループの収束
情報(=1)と、隣接するグループの収束情報(=1)
の論理積(AND)をとって真(=1)となれば、収束
情報を1としてさらに隣接するグループの要素プロセッ
サ3qの収束判定部183へ収束情報バス182を介し
て送出する。
【0447】このように、リング状に接続された各収束
判定部183は、自己の属するグループの収束情報(=
1)と、隣接するグループからの収束情報(=1)の論
理積(AND)をとって1となれば、収束情報を1とし
てさらに隣接するグループの収束情報バス182を設け
た要素プロセッサ3qの収束判定部183へ収束情報バ
ス182を介して送出する手順を収束情報バス182の
接続順に次々と実施する。
【0448】最終的に、最初に収束フラグを1として発
信した特定の要素プロセッサ3pの収束判定部183へ
収束情報(=1)が戻された時点で、全グループの全要
素プロセッサ3k,3p,3qが収束したと判断し、終
了情報(=1)を終了情報バス186を介してホストコ
ンピュータ1へ送出する。ホストコンピュータ1は終了
情報(=1)を受け取った時点で全要素プロセッサ3
k,3p,3qの計算が収束したと判断して計算を終了
させる。
【0449】このように構成すれば、収束判定を並列化
させた際のホストコンピュータの負荷を軽減させること
ができ、さらに計算の高速化を図ることができる。
【0450】なお、この実施の形態においては収束判定
部183は格子状に配置された要素プロセッサの行毎に
グループ分けを行いこのグループの収束情報を管理して
いるが、列毎にグループ分けしても、ランダムにグルー
プ分けしても同様の効果を奏することは言うまでもな
い。また、上記実施の形態では内部情報フラグ、収束フ
ラグ情報、収束情報は各々0または1の論理値として説
明したが、収束、未収束が判定できれば何であっても良
い。また、収束情報バス182はグループ内の一つの要
素プロセッサ3pおよび3qに設けられていればよく、
全要素プロセッサに設ける必要はない。さらに、終了情
報バス186は一つの要素プロセッサ3pに設けられて
いればよく、全要素プロセッサに設ける必要はない。
【0451】さらに、特定の要素プロセッサ3pおよび
3qは、グループ内にある要素プロセッサのどれであっ
てもよく、また特定の要素プロセッサ3pはグループを
代表する要素プロセッサのどれであってもよい。
【0452】<実施の形態36>次に、この発明の第3
6実施の形態について説明する。マルチプロセッサ上で
収束計算を実行した場合、希ではあるが非安定点(非収
束点)が巡回することがある。このような、いわゆる
「発振現象」を検出する必要がある。
【0453】「発振現象」の検出は、一旦全要素プロセ
ッサにおける収束を確認した後、再度収束判定を行うこ
とにより可能であり、複数回収束判定を行うことにより
相当な精度で収束を判定することができる。
【0454】具体的には、予めきめられた経路に従って
終了フラグを順次転送し、全体としての収束判定を行
う。図55に終了フラグを転送する経路の一例を示した
概念図を示す。図55において、190および191は
2次元空間を離散化した結果得られる格子点を示してい
る。また、各格子点を結ぶ矢印線192は終了フラグが
転送される経路を示している。
【0455】以下に、各格子点での収束判定のための処
理について説明する。隣接格子点からの終了フラグが到
着後、はじめて収束が確認された時、次の格子点に終了
フラグを伝搬する。図56に各格子点が終了フラグを隣
接格子点へ伝搬するためのフローチャートを示す。ただ
し、終了フラグの起点となる格子点190の処理を除
く。
【0456】図56に示されているように、まず、隣接
する格子点から終了フラグをもったメッセージが到着し
たかどうか判断する(ステップST20)。そして、隣
接する格子点から終了フラグをもったメッセージが到着
すると自格子点の収束判定処理が駆動され、自格子点の
処理が収束に達するまで待ち(ステップST21)、収
束した時点で図55で示されているような予め決められ
た経路に沿って次の格子点へ終了フラグをもったメッセ
ージを転送する(ステップST22)。
【0457】図57に終了フラグ転送の起点となってい
る格子点での終了フラグ送出のためのフローチャートを
示す。図に示されているように終了フラグの起点となる
格子点では自格子点での処理の収束のみを判定し(ステ
ップST25)、収束していれば図55に示されたよう
な経路に沿って終了フラグをもったメッセージを次の格
子点へ送出する(ステップST26)。
【0458】上記のようにして、すべての格子点を通過
後、終了フラグはホストコンピュータに転送され、収束
が確認される。この第35実施の形態のマルチプロセッ
サにおいては、一旦収束が確認された後、再度上記のプ
ロセスを繰り返すことにより収束判定を確実なものにす
る。
【0459】以上説明したようにこの実施の形態におい
ては、各格子点での処理に収束判定フラグを持ったメッ
セージが入力されることにより、自格子点での処理の収
束判定処理が起動され、自格子点の処理が収束している
場合には収束判定フラグを持ったメッセージを出力する
ようにしたので、非安定点が存在する場合でも系全体の
収束判定を正しく行うことが出来る。
【0460】また、この実施の形態においては終了フラ
グの起点となる格子点における自格子点の処理の収束判
定処理を常時起動する場合について説明したが、ホスト
コンピュータから収束判定の処理を起動しても同一の効
果が得られることはもちろんである。
【0461】この種の情報処理装置においては、微分方
程式の解は各格子点毎に割り付けられたメモリなどの記
憶手段に分散して格納される。そのため、分散して格納
された計算結果を集積し、可視化などの処理を行い、モ
ニタ上に表示する必要がある。
【0462】この実施の形態では、各格子点に分散して
いる微分方程式の解をホストコンピュータに集積する方
法について示す。
【0463】第36実施の形態では、マルチプロセッサ
上で収束計算を実行した場合、システム全体として計算
が終了したか、否かの収束判定方法について説明した。
すなわち、予めきめられた経路に従って終了フラグを順
次転送し、全格子点を一巡した後、系全体が収束したこ
とを示すメッセージをホストコンピュータに送出する。
ホストコンピュータは前記のメッセージを受信すること
で計算の終了を再度確認するための処理を行う。
【0464】図56に各格子点での収束判定処理と微分
方程式の解の送出の関係を示したフローチャートを示
す。図56に沿って収束判定の手順及び微分方程式の解
の送出について説明する。まず、各格子点が隣接する格
子点から終了フラグを受けとる(ステップST20)。
自格子点の処理の収束判定を行い(ステップST2
1)、収束を確認した後、予め定めた経路に沿って終了
フラグを送出する(ステップST22)と同時に、自格
子点での計算結果、すなわち、微分方程式の解をホスト
コンピュータに送出する。
【0465】また、図58にホストコンピュータに送出
する微分方程式の解をもったメッセージパケットPAC
のフォーマットを示す。メッセージパケットのフィール
ドは、左データフィールド(第1オペランド)pa3、
右データフィールド(第2オペランド)pa4、メッセ
ージパケットが転送されるべき要素プロセッサ番号が格
納された行き先PE番号pa1、および次ぎに実行する
命令のアドレスが格納された行き先ノード番号pa2の
各フィールドから構成されている。
【0466】この実施の形態にかかるメッセージパケッ
トにおける左データフィールド、右データフィールド、
行き先要素プロセッサ番号及び行き先ノード番号は以下
のように与えられる。左データフィールドは、微分方程
式の解の当該格子点での値(関数値)である。右データ
フィールドは、当該格子点の識別番号である。行き先要
素プロセッサ(PE)番号は、ホストコンピュータが要
素プロセッサに割り振った番号である。行き先ノード番
号は、RESULTである。RESULTは予め定めた値で、メッセ
ージパケットが各格子点での計算結果を格納しているこ
とを示す。
【0467】上記のようなメッセージパケットをホスト
コンピュータが受信すると以下の動作を行う。
【0468】(1)行き先ノード番号のフィールドをチ
ェックし、値がRESULTであることから、そのメッセージ
パケットが各格子点での演算結果であることを確認す
る。
【0469】(2)右データフィールドに格納された格
子点の番号、左データに格納された微分方程式の解を読
みだす。
【0470】(3)格子点番号から予め定めた方法でア
ドレスを決定し、当該格子点での解の値をホストコンピ
ュータのメモリなどの記憶手段に格納する。
【0471】以上説明したように、この実施の形態では
各格子点の計算の収束が確認されると同時にホストコン
ピュータに自格子点での計算結果(微分方程式の解)を
転送するようにしたので、全システムの計算が収束し、
すなわち、実行中の微分方程式の求解の完了が確認され
た時点で最終的な結果データがホストコンピュータ上に
揃うという効果がある。
【0472】なお、第36実施の形態では、1つの格子
点処理(プログラム)を1つの要素プロセッサに割り付
けることを前提にしているが、第37実施の形態乃至第
40実施の形態においては、複数の格子点の処理プログ
ラムを同一の要素プロセッサに割り付け、格子点間のデ
ータ授受を同一要素プロセッサ内のデータメモリを介し
て行うことを前提としている。以下に、各実施の形態に
ついての詳細な説明をする。
【0473】<実施の形態37>この発明の第37実施
の形態について説明する。非安定点(非収束点)の巡回
を検出する他の方法として、すべての格子点を通過する
複数の経路で終了フラグの転送を行うことにより、すべ
ての格子点が収束したことを多重に確認する収束判定方
法が考えられる。
【0474】具体的には、正方格子状に配置された要素
プロセッサに対して、縦方向と横方向の2方向で終了フ
ラグを授受することにより、多重に収束判定することが
できる。
【0475】図59にこの実施の形態における終了フラ
グの転送経路を示した概念図を示す。
【0476】図において、193,194および195
は2次元空間における正方格子を示し、実線で示した矢
印は第1の終了フラグ転送経路196を、点線で示した
矢印は第2の終了フラグ転送経路197を各々示してい
る。この実施の形態では、第1、および第2の終了フラ
グの転送経路は互いに直交させることによって非収束点
の循環を検出可能である。
【0477】図60に各格子点が終了フラグを隣接格子
点へ伝搬するためのフローチャートを示す。ただし、終
了フラグの起点となる格子点193,195の処理を除
く。
【0478】図60に示されているように、まず、隣接
する格子点から収束判定メッセージが到着したか否かを
判断する(ステップST30)。隣接する格子点から終
了フラグをもったメッセージが到着すると自格子点の収
束判定処理が駆動され、自格子点の処理が収束に達する
まで待ち(ステップST31)、収束した時点で、到着
した終了フラグが第1の転送経路に属するものか、第2
の転送経路に属するものかを判定し、図59で示されて
いるような予め決められた所望の経路に沿って次の格子
点へ終了フラグをもったメッセージを転送する(ステッ
プST32)。
【0479】図61に終了フラグ転送の起点となってい
る格子点での終了フラグ送出のためのフローチャートを
示す。図に示されているように、まず、終了フラグの起
点となる格子点では自格子点での処理の収束のみを判定
し(ステップST40)、収束していれば収束メッセー
ジに第1あるいは第2の経路に属することを示すフラグ
を格納し(ステップST41)、その後、図59に示さ
れたような経路に沿って終了フラグをもったメッセージ
を次の格子点へ送出する(ステップST42)。
【0480】この際、終了フラグの値にそのフラグが第
1の経路に属するものか、第2の経路に属するものかの
種別に対応した値を格納する。この値をもとにその他の
格子点では到着した終了フラグの経路を決定することが
できる。
【0481】以上説明したように、2個以上の収束判定
フラグを転送する経路を設けたので、非安定点が存在す
る場合でも系全体の収束判定を正しく実行できる。
【0482】この実施の形態では終了フラグが2つの経
路のうちいずれの経路上を転送されているものであるか
を表示するためにフラグの値を用いたが、終了フラグが
処理されるプログラムを別々に用意し、各々の終了フラ
グが到着した際に終了フラグの転送経路毎に収束判定の
ためのプログラムを起動するようにしても同一の効果が
得られることは明らかである。
【0483】<実施の形態38>次に、この発明の第3
8実施の形態について説明する。非安定点が存在する可
能性がある場合の、マルチプロセッサを用いた収束計算
において非安定点を検出する手順について説明する。
【0484】まず、第35実施の形態と同様にして、予
め定めた経路に沿って全格子点を通過して終了フラグを
転送した後、ホストコンピュータに転送する。つぎに、
ホストコンピュータからすべての格子点の処理を停止さ
せるためのメッセージを送信し、結果として、全ての処
理を停止させる。その後、改めて収束の確認をすること
によっても、非安定点の巡回を検知し、確実な収束判定
を実現することができる。
【0485】図62は、この実施の形態における各格子
点の収束判定に関連する処理内容を示したフローチャー
トである。図62に基づいて各格子点の収束判定に関連
する処理について説明する。この実施の形態では収束判
定の結果を格納するためにメモリもしくはレジスタを使
用する。
【0486】ステップST50で、隣接する格子点から
終了フラグを持ったメッセージが到着したか否かを判断
する。隣接する格子点から終了フラグをもったメッセー
ジが到着すると自格子点の収束判定処理が駆動され、自
格子点の処理が収束に達するまで待ち(ステップST5
1)、収束した時点で、例えば、図55で示されている
ような予め決められた経路に沿って次の格子点へ終了フ
ラグをもったメッセージを転送する(ステップST5
3)。この際、前記のメモリをクリアし(ステップST
52)、かつ、収束判定処理プログラムを起動する(ス
テップST54)。収束判定処理プログラムは自格子点
の処理が非収束状態か否かを判定し、もし非収束状態と
判定した場合には前記メモリに自格子点が非収束状態に
なったことを示すフラグを書き込む。
【0487】また、終了フラグをもったメッセージの起
点となる格子点での収束判定のための処理は図63で示
したように、基本的には第36実施の形態における終了
フラグをもったメッセージの起点となる格子点の処理と
同様であるが、この処理に加えて前記メモリをクリアし
(ステップST61)、かつ、収束判定処理プログラム
を起動する(ステップST63)。収束判定処理プログ
ラムは自格子点の処理が非収束状態か否かを判定し、も
し非収束状態と判定した場合には前記メモリに自格子点
が非収束状態になったことを示すフラグを書き込む。
【0488】しかる後に、終了フラグをもったメッセー
ジがホストコンピュータに転送される。ホストコンピュ
ータが終了フラグをもったメッセージ受信すると、予め
定めてあった格子点に対して処理を停止させるためのメ
ッセージを送信する。
【0489】前記処理を停止させるためのメッセージを
受信した格子点は処理を停止すると同時に予め定めてあ
る経路に沿って処理を停止するためのメッセージを隣接
する次の格子点に転送する。処理を停止するためのメッ
セージを受信した格子点も同様の停止処理を行う。全て
の格子点の処理が停止した後、ホストコンピュータから
前記の各格子点に割り付けられたメモリを読みだし全て
の読みだし結果がゼロであった場合には、対象となる計
算は収束したことになる。もし、前記の読みだし結果の
1つでもゼロと異なるものがあった場合には上述の処理
を再度繰り返す。
【0490】図64に格子点が処理の停止を行うための
フローチャートを示す。ホストコンピュータから予め定
めた格子点にのみ処理の停止をするためのメッセージを
送信する。予め定められた格子点は処理停止メッセージ
が到着したか否かを判断する(ステップST70)。処
理停止メッセージが到着したら処理を停止する(ステッ
プST71)。その後予め定めた経路に沿って前記処理
を停止するためのメッセージを転送する(ステップST
71)。この実施の形態では、ホストコンピュータから
予め定めた格子点にのみ処理の停止をするためのメッセ
ージを送信する場合について説明したが、本メッセージ
を全て、もしくは複数の格子点に対して同時もしくは時
系列的に送信しても同様の効果が得られる。
【0491】また、この実施の形態ではメッセージによ
り格子点の処理を停止する場合を示したが、この発明に
かかるマルチプロセッサ・システムを構成する要素プロ
セッサが割り込み信号を受信する機構を有している場
合、ホストコンピュータから前記要素プロセッサに割り
込みをかけることにより格子点の処理を停止させても同
一の効果が得られる。
【0492】また、この実施の形態では格子点が非収束
状態になったことを示すフラグを格納するメモリを各格
子点毎に割り当てた場合を説明したが、メモリはシステ
ム内に1個以上存在していれば同一の効果を得ることが
できることは明らかである。また、前記マルチプロセッ
サを構成する要素プロセッサがレジスタを有する構造で
あれば、レジスタを用いても同一の効果が得られる。
【0493】<実施の形態39>次に、この発明の第3
9実施の形態について説明する。第36ないし第38実
施の形態では、予め定めた経路に沿って、自格子点の処
理が収束状態に到達したことを示すフラグを持ったメッ
セージが転送され、ホストコンピュータに上記のメッセ
ージが伝達される。その後、ホストコンピュータが第3
6実施の形態で説明した「発振現象」を検出するための
処理を起動する場合について説明した。
【0494】しかし、希にではあるが、境界条件等によ
っては長時間の間収束状態に到達しないことが想定され
る。
【0495】以下に、上記のように系の状態が継続的に
不安定な状態に陥った場合にも対応可能な情報処理装置
の収束判定方法について説明する。
【0496】ホストコンピュータ上のタイマ、システム
に取り付けられたウォッチ・ドッグ・タイマ等を用いて
処理時間を計測し、一定時間上記の収束メッセージがホ
ストコンピュータに転送されなかった場合、各格子点の
処理プログラムは以下の(1)(2)の処理を行う。
【0497】(1)各格子点での収束判定の基準を通常
より緩める。
【0498】(2)転送するメッセージに、緩められた
判定基準を用いて判定したことを示すフラグを付ける。
【0499】(1)(2)の処理を行うことにより系が
継続的に不安定な状態に陥ることを防止することができ
る。
【0500】次に、(1)(2)の処理を実現するため
の実施の形態について第36実施の形態を元に説明す
る。
【0501】図65、図66に上記(1)(2)の処理
を実現するために必要な各格子点での収束判定処理のフ
ローチャートを示す。なお、図65、図66は、第36
実施の形態で説明した図56、図57に各々対応してい
る。
【0502】図65にフラグの起点となる格子点以外の
格子点での収束判定処理を示したフローチャートを示
す。図に示したように、まず、隣接する格子点から終了
フラグを持ったメッセージが到着したか否かを判断する
(ステップST80)。そのメッセージが到着したら、
到着したメッセージに収束判定基準を緩めることを示す
フラグが付加されていないかどうかを判別する(ステッ
プST81)。
【0503】もし、このメッセージが収束判定基準を緩
めることを示すフラグが付されていなければ、通常の判
定基準で収束判定し(ステップST81)、収束したか
否かを判断する(ステップST83)。収束すると隣接
格子点へ収束メッセージを送出する(ステップST8
4)。
【0504】隣接する格子点から収束メッセージが入力
された後、このメッセージに判定基準を緩めて収束判定
を行ったことを示すフラグが付加されていた場合には自
格子点の収束判定を予め設定されている第2の基準を用
いて行い(ステップST85,ST86)、収束判定を
緩めたことを示すフラグを付加して次の格子点に送出す
る(ステップST87)。
【0505】フラグの起点となる格子点での収束判定処
理を示したフローチャートを図66に示す。図66は、
ホストコンピュータから収束判定基準の変更を指示する
メッセージを受信した場合には収束判定を予め定めた第
2の判定基準を用いて行い、判定基準を緩めたことを示
すフラグを付加して隣接する格子点へのメッセージを送
出する場合の手順について示している。ホストコンピュ
ータから収束判定基準を変更する指示メッセージが到着
したか否かを判断する(ステップST90)。指示メッ
セージが到着すると、ステップST91で、収束判定基
準を変更する。そして自格子点の処理が与えられた基準
で収束したか否かを判断する(ステップST92)。自
格子点の処理が与えられた基準で収束した場合、収束判
定基準の変更があったか否かを判断する(ステップST
93)。収束判定基準の変更がなかった場合には、その
まま隣接格子点へ収束メッセージを送出し(ステップS
T95)、収束判定基準の変更があった場合には、収束
メッセージに判定基準を緩めたことを示すフラグを付加
して(ステップST94)、隣接格子点へ収束メッセー
ジを送出する(ステップST95)。
【0506】第37及び第38実施の形態においても上
記の(1)(2)を実現するための機能を第39実施の
形態同様に追加できることは明らかである。
【0507】<実施の形態40>次に、この発明の第4
0実施の形態について説明する。この実施の形態の特徴
は、マルチプロセッサを用いた収束計算における非安定
点を検出する収束判定方法にある。
【0508】この実施の形態では、各格子点の計算が収
束したか否かを判定する収束判定プログラム(収束判定
部)と、収束状態を格納するレジスタ(CREG)また
はメモリを備える。CREGは任意のタイミングで外部
からゼロクリアすることができ、また、収束判定プログ
ラムによって当該格子点の計算が収束していないと判定
した場合には1がセットされる。
【0509】システム全体の収束判定は次の手順で行
う。また、対応するフローチャートを図67に示す。
【0510】(1)すべての格子点に対応するCREG
レジスタをゼロクリアする(ステップST100)。
【0511】(2)すべての格子点の1回分の処理が終
了するために十分な時間待つ(ステップST101)。
【0512】(3)全格子点の上記レジスタを読み出し
0のままであることを確認する(ステップST10
2)。
【0513】(4)1格子点でも1が読み出された場合
には、(1)〜(3)の処理を繰り返す。もし、全格子
点の上記レジスタの値が全て0の場合は処理を終了する
(ステップST103)。
【0514】この実施の形態では収束判定プログラムに
より、収束していないと判断した場合には、上記CRE
Gレジスタに1を書き込むようにするが、この処理は最
初からプログラムに組み込んでおいてもよいし、一旦、
当該格子点の計算が収束した後にプログラムを書き換え
て前記の収束判定プログラムを起動し前記のCREGレ
ジスタの操作を行うようにしてもよい。
【0515】また、この実施の形態では格子点の計算の
収束状態を格納する記憶手段として各格子点毎にレジス
タを割り付けた場合について説明したが、前記記憶手段
としてメモリを用いても同一の効果が得られることは明
らかである。また、この実施の形態では各格子点毎にレ
ジスタ、もしくはメモリ要素を割り付ける場合について
説明したが、システム内に1個以上あればよい。また、
マルチプロセッサ構成のシステム上でこの発明にかかる
収束判定方法を用いる場合には前記の記憶手段を要素プ
ロセッサ毎に1個以上割り当てるとより効果的であるこ
とは言うまでもない。
【0516】上記のように、この実施の形態では非収束
状態に陥ったことを記憶する記憶手段をシステム内に少
なくとも1つ有し、その記憶手段を全てゼロクリアする
手段と、その記憶手段の記憶内容を読みだし、その全て
がゼロであることを確認する手段を備えているので、非
収束点が存在する場合であっても誤りなく系の収束判定
が可能となる。
【0517】また、この実施の形態では、各格子点の処
理プログラムは当該格子点が非収束状態に陥った場合に
レジスタ(CREG)に「1」を書き込むようにしてい
るが、「1」を加算するようにすれば、最終的にCRE
Gの値を読み出すことで、非収束状態に陥った格子点の
個数がわかる。こうように、各格子点処理プログラムが
当該格子点が非収束状態に陥った場合に、CREGの内
容に1を加算するようにすれば、最終的なCREGの値
をもとに収束判定基準の変更、格子点の粗さ等を調整す
ることで、処理時間を短縮することができるという効果
がある。
【0518】なお、第31ないし第39実施の形態の発
明は、複数のプロセッサを有する通常のマルチプロセッ
サに対して効果があるのいずれかは言うまでもないが、
第1実施の形態等の要素プロセッサが独立に演算を行え
る情報処理装置と組み合わせて用いることによって、収
束判定の間も要素プロセッサが独立に動作でき解の精度
を向上できるという効果がある。
【0519】<第41実施の形態>次に、この発明の第
41実施の形態について説明する。図71はこの発明の
第41実施の形態による隣接する要素プロセッサ間のデ
ータ通信を行うために入出力制御部とデータメモリとで
構成されたネットワーク構成を示すブロック図である。
図71において、3tはデータメモリやデータメモリと
の通信のための入出力制御部を内部に持たない要素プロ
セッサ、200はネットワーク上に配置されたデータメ
モリ、201は要素プロセッサ3tと複数のデータメモ
リ200とのアクセス経路を決定し、要素プロセッサ3
tとデータメモリ200との間のデータ通信を制御する
入出力制御部、202はデータ通信のために要素プロセ
ッサ3tと入出力制御部201との間を結ぶデータバ
ス、203は要素プロセッサ3tとデータメモリ200
とを連結する要素プロセッサ間コネクションである。
【0520】入出力制御部201は、ここでは4つのデ
ータメモリ200が接続されており、それぞれのデータ
メモリ200は要素プロセッサ3tの隣接要素プロセッ
サに接続されている他の入出力制御部に接続される。た
だし、入出力制御部201に接続されるデータメモリ2
00の数は、4つに限られるものではない。各入出力制
御部201に接続されるデータメモリ200の数はネッ
クワークの状態に応じて決定され、ネックワークの状態
は各解析の態様に応じて決定されるものである。
【0521】要素プロセッサ3tは、データバス202
を介して入出力制御部201へメモリアクセス要求を送
る。メモリアクセス要求には、4方向のうちいずれのデ
ータメモリ200とアクセスを行うかを記述した通信方
向データと、指定されたデータメモリ200のメモリ空
間のアドレス番号が記述されている。入出力制御部20
1は、このアクセス要求に従って通信方向を切り替え、
4方向のうちの指定されたデータメモリ200とのアク
セスを可能にする。そして、メモリアクセス要求に記述
されたアドレス番号のデータが、要素プロセッサ間コネ
クション203を通し、入出力制御部201を経由し、
データバス202を通して要素プロセッサ3tに与えら
れる。この要素プロセッサ3tに与えられるデータは、
例えば、隣接要素プロセッサが予め書き込んであったも
のであり、隣接要素プロセッサとの直接の通信によって
与えられたと等価なデータである。
【0522】また、メモリ上に規則的に配置された複数
のデータにアクセスする際には、要素プロセッサ3tか
らその先頭アドレス、アドレッシング・モードを入出力
制御部201に送ることで、それらのデータへの連続ア
クセスを実現することができることは言うまでもない。
【0523】以上のように、入出力制御部201をデー
タメモリ200間に配置してネットワークを構成するこ
とにより、要素プロセッサ3t内に入出力制御部201
が実装されていない場合においても隣接要素プロセッサ
がデータを書き込んだデータメモリ200に高速でアク
セスすることが可能になる。
【0524】図71に示したネットワーク構成では、要
素プロセッサ3tと入出力制御部201とはデータバス
202を介して直結されていたが、直結しているため参
照/更新要求が衝突しないようにシステムの動作を構築
することが必要になる。もし、同一メモリアドレスに対
する参照/更新要求が衝突した場合には処理が中断し、
アクセス時間の増大を招く。
【0525】図72に示すネットワーク構成は、要素プ
ロセッサ3tから入出力制御部201へ出されるメモリ
アクセス要求を一時的に記憶するためのバッファ機構を
備えている。図72において、204はデータパス20
2に接続され要素プロセッサ3tからのメモリアクセス
要求を一時的に記憶するためのバッファ機構であり、そ
の他図71と同一符号のものは図71の同一符号部分に
相当する部分である。
【0526】図72に示すように構成されたマルチプロ
セッサ・システムでは、互いに隣接する2つの要素プロ
セッサ3tによって一つのデータメモリ200が共有さ
れる。隣接する2つの要素プロセッサ3tが同時に同一
のメモリにアクセスする可能性がある。バッファ機構2
04は、データメモリに対する参照/更新要求を一時的
に記憶しておく。要素プロセッサ3tはバッファ機構2
04に参照/更新要求が記憶されると、データメモリ2
00からのデータ取得に関係なく、処理を進めることが
できる。このようにバッファ機構204を備えたマルチ
プロセッサ・システムでは、同一メモリアドレスに対す
る参照/更新要求が衝突した場合でも、処理を中断する
ことなく、より高速なメモリアクセスが可能となる。
【0527】図71で示した単位ユニットを複数個連結
することにより熱流体解析に最適な格子型ネットワーク
トポロジーを形成したものを、図73に示す。第8実施
の形態ないし第11実施の形態において説明した2次元
格子型ネットワークでは、格子が交わる位置に要素プロ
セッサ3が配置されている。図73に示すように、入力
制御部201が要素プロセッサ3tの外部にある場合に
は、格子が交わる位置には、入出力制御部201が配置
される。入出力制御部201には要素プロセッサ3tが
一対一に対応しており、入出力制御部201と要素プロ
セッサ3tとはデータバス202を介して接続され、さ
らに入出力制御部201には4つのデータメモリ200
が接続されている。
【0528】このように、入出力制御部201を中心と
して要素プロセッサ3tやデータメモリ200などの各
デバイスを接続することにより、2次元格子型ネットワ
ークを構成し、高速で隣接要素プロセッサ間のメモリア
クセスを実行することができる。
【0529】勿論、入出力制御部201を使用して1次
元パイプライン・トポロジーに基づくネットワークを構
成することも可能である。図74は1次元パイプライン
トポロジー状に構成されたマルチプロセッサ・システム
のネットワークの一部を示すブロック図である。1次元
ネットワークの場合、入出力制御部201に接続される
データメモリ200の数は2つである。
【0530】このように入出力制御部201を介してネ
ットワークを構成することにより、2次元格子型ネット
ワークの場合と同様に、1次元パイプライン型ネットワ
ークにおいても要素プロセッサ3tのデータメモリ20
0へのアクセスを高速化できることは言うまでもない。
【0531】また、要素プロセッサを3次元に配置する
場合についても同様に構成できる。図75に示すよう
に、3次元に構成する場合には、一つの入出力制御部に
6つのデータメモリ200が接続される。例えば、図7
3に示した格子型ネットワークトポロジーを複数枚重ね
て3次元に構成することができる。図75において、入
出力制御部201aと201bとは、異なる平面に配置
された格子型ネットワークトポロジーに属する。この2
つの入出力制御部201a,201bは、一つのデータ
メモリ200を共有する。このように、入出力制御部2
01a、201bを中心として要素プロセッサ3tやデ
ータメモリ200などの各デバイスを接続することによ
り、3次元格子型ネットワークを構成し、高速で隣接要
素プロセッサ間のメモリアクセスを実行することができ
る。
【0532】また、任意のネットワークにおいて適用可
能であるが、例えば、図73に示したような格子型ネッ
トワークトポロジーにおいて、隣接する要素プロセッサ
3t以外の周囲にある遠い要素プロセッサ3tとの間で
のデータの通信も可能である。例えば、データメモリ内
に所定の要素プロセッサのデータを書き込む領域を設
け、入出力制御部201によってその領域をコピーする
ことによって、各要素プロセッサ3tは、隣接する要素
プロセッサ3tよりも少し離れた場所に配置された要素
プロセッサのデータを入手することも可能である。
【0533】要素プロセッサが複数の入出力制御部に対
して参照/更新要求を出力するように構成することも可
能である。これを、図73で示した2次元格子型トポロ
ジーに応用すると、図76に示す構成になる。図76に
示すように、要素プロセッサ3tc,3tdは四方に配
置された入出力制御部201cに参照/更新要求を出力
することができる。例えば、要素プロセッサ3tc同士
で通信する場合には、一つのデータメモリ200を共有
する隣接した2つの入出力制御部201cに対して参照
/更新要求を出力する。そうすると、隣接要素プロセッ
サ3tdを一つ飛ばして要素プロセッサ3tc同士で通
信ができる。例えば、要素プロセッサ3tcのみを用い
て計算を行う粗ノード結合コネクションと、要素プロセ
ッサ3tc,3tdを用いて計算を行う細ノード結合コ
ネクションとの使い分けを行うことができる。
【0534】また、要素プロセッサ3tは、周囲に配置
された入出力制御部201とデータバスによって接続
し、参照/更新要求を出すだけではなく、解析の対象や
精度等に応じて、もっと離れた場所の入出力接続部20
1にデータバスを介して接続してもよいことは言うまで
もない。
【0535】<実施の形態42>次に、この発明の第4
2実施の形態について説明する。第30ないし第34実
施の形態では、各要素プロセッサ3k,3m,3p,3
qが出力する収束判定フラグ(1または0)を収束判定
ユニット180や収束判定部183内に実装された論理
回路によって、次々と論理的に掛け合わせ、最終的に収
束判定情報としてホストコンピュータ1に転送してい
た。ところで、マルチプロセッサ・システムにおいて、
接続されている要素プロセッサの台数が数十台程度の小
規模な場合には、第30実施の形態ないし第34実施の
形態で示した構成でも十分高速に収束判定ビットの論理
積を取ることは可能である。しかしながら、要素プロセ
ッサが数百台にも及ぶ大規模マルチプロセッサ・システ
ムの場合には、全収束判定ユニット180や収束判定部
183の論理積が終了してホストコンピュータ1に収束
判定結果転送される迄の合計時間は膨大なものとなる。
【0536】図77はこの発明の第42実施の形態によ
る収束判定装置の概略を示す概念図である。図77にお
いて、3は要素プロセッサ、205は収束判定ビットを
一時格納するための収束判定ビット用レジスタ、206
は要素プロセッサ3と収束判定ビット用レジスタ205
とを接続して要素プロセッサ3から出力される収束判定
ビットを伝達するための収束判定ビット線、208は収
束情報をホストコンピュータに伝達するための収束情報
信号線、209は接地電位VSSに固定された接地電位点
207に接続されたソースと収束判定ビット用レジスタ
205に接続されたゲートと収束情報信号線208に接
続されたドレインとを有するN型MOSトランジスタ、
210は電源電位点211に接続された一方端と収束情
報信号線208に接続された他方端とを有する抵抗であ
る。収束判定装置は、アナログ回路であるワイヤードO
Rを用いて構成されている。ワイヤードORは、N型M
OSトランジスタと収束情報信号線208と抵抗210
とで構成される。
【0537】各要素プロセッサ3からそれぞれ出力され
る少なくとも1ビットの収束判定ビットは、収束判定ビ
ット線7を介して収束判定ビット用レジスタ8上に一時
的に保存される。収束判定ビット用レジスタ8に格納さ
れた収束判定ビットは、ワイヤードORにて論理積が取
られ、収束情報信号線12に出力される少なくとも1ビ
ットの収束判定結果に反映される。
【0538】いま、各要素プロセッサ3から出力される
収束判定ビットが「0」の時を収束、「1」の時を未収
束状態であると定義する。各要素プロセッサ3の全てが
収束判定ビットとして「0」、すなわち収束状態を出力
した場合は、NチャネルMOSトランジスタ209は全
て非導通状態となり、収束情報信号線208からは抵抗
210を介して電源電位VDDが出力され、系全体が収束
に至ったことをホストコンピュータが認識できる。
【0539】また、各要素プロセッサ3のうち少なくと
も一つが収束判定ビットとして「1」(即ち未収束状
態)を出力した場合は、対応するN型MOSトランジス
タ209が導通状態となっているため、抵抗210の抵
抗値をN型MOSトランジスタ209の導通時の抵抗値
に比べ十分に大きく設定することで、収束情報信号線2
08にはデジタル的に接地電位VSSと見なしうる電位が
出力される。収束情報信号線208が接地電位VSSと見
なしうる電位にあることで、系全体としてはまだ収束に
至っていないことをホストコンピュータ1が認識でき
る。
【0540】なお、この実施の形態において、各要素プ
ロセッサ3が出力する収束判定ビットの論理値が「1」
の時は収束を、「0」の時は未収束状態であることを示
していると定義し、N型MOSトランジスタをP型MO
Sトランジスタに変更することで、同様な動作をする回
路を構成できることは言うまでもない。
【0541】以上のように収束判定装置を構成すること
によって、全収束判定用レジスタ205上に保存された
収束判定ビットの論理値を数μ秒程度の短時間で連続的
に得ることが可能となり、収束判定を演算処理から独立
に行いつつ、収束判定時間を短縮することができる。
【0542】<実施の形態43>次に、この発明の第4
3実施の形態について説明する。領域分割法による熱流
体数値解析の並列化手法では、計算領域を少なくとも要
素プロセッサ3と同数の分割領域に分け、各々の領域の
計算を各要素プロセッサ3に分担させる。一般に行われ
ているように、要素プロセッサ3間の通信方式をメッセ
ージ・パッシング式の低速なリモートアクセスとした場
合、要素プロセッサ3の処理量の違いにより、要素プロ
セッサ3に担当させる格子点をほぼ同一にして計算付加
を均一化することである程度は対処できるが、分割領域
内に不安定点が存在する場合には、収束解を得るまでに
より多くの繰り返し演算が要求され、これが原因で要素
プロセッサ3の処理量が増大する。そこで、通信同期待
ちによるレイテンシーを完全に排除する非同期通信方式
でマルチプロセッサ・システムを構成し、実装する格子
点数を要素プロセッサ3毎に変えることで上記問題を解
決する。
【0543】図78は解析不安定点を含む計算領域の分
割形態を示したものである。図78において、213は
解析に用いる全計算領域、214は各要素プロセッサ3
がそれぞれ担当する分割領域、215は通常の格子点、
216は物理量が時間的に変化する等の不安定要因が存
在する解析不安定点である。解析が不安定になる要因と
しては、例えば、速度変化あるいは温度変化の激しい
点、渦中の点、非定常に物理量が変動する点、移動物体
あるいは移動境界の近傍点、旋回流中の点、角等の特異
点、熱の発生点、流体等の流入・流出点、等やその近傍
の点である。
【0544】次に動作について説明する。解析不安定点
216を含む分割領域14を担当する要素プロセッサ3
では、解析不安定点216の不安定性が分割領域214
内の全格子点に波及して空間的な収束解を得るまでの反
復回数が増大する。そこで、図に示したように解析不安
定点216を含む分割領域の格子点数をその他の解析不
安定点216を含まない分割領域214の格子点数より
少なくする。すると、繰り返し回数の増大に伴う処理量
の増大を、格子点数を減らすことで相殺することができ
る。さらに、非同期通信方式を行うことにより、解析不
安定点216を含む分割領域214の計算を安定な分割
領域214よりも先行させることが可能である。以上の
ように、非同期通信方式と格子点の不等分配とを併用す
ることにより、計算領域中に不安定領域が含まれる場合
であっても収束演算を高速化することができる。
【0545】<実施の形態44>次に、この発明の第4
4実施の形態について説明する。第1実施の形態ないし
第5実施の形態において説明した要素プロセッサ3内で
使用される演算回路は、要素プロセッサ3内に設けられ
たクロックに基づく同期方式がほとんどである。これ
は、現在の技術力では、回路中の素子の反応時間(素子
遅延)>チップ内の情報伝達に伴う遅延(配線遅延)の
関係が成り立つためである。
【0546】ところが、近年では超高速素子技術が急速
に進歩し、シリコン半導体素子では10ps,化合物半導
体素子では5ps,ジョセフソン素子では1psレベルの素
子遅延で動作が可能となっている。さらに、VLSI技
術の進歩に伴い、チップ寸法は15mm×15mmまで拡大
し、さらに実装可能な素子数が論理LSIで300万個
にまで達しようとしている。このようなピコ秒LSIが
実現されれば、素子への入力に対して処理結果が出力さ
れるまでの時間(素子遅延)が減少するのに対し、従来
まで問題にされていなかったチップ内の配線を情報が通
過するのに掛かる時間(配線遅延)が無視できなくな
る。もしも、1ピコ秒の素子遅延を持つ素子によってチ
ップを構成すると、チップ全体を単一クロックでの動作
は、最大でも0.3mm×0.3mmのチップ面積までしか
保証されない。そこで、チップ内の動作をクロックで同
期させないプロセッサ内非同期方式に基づく回路設計を
行い、要素プロセッサの処理能力を大幅に向上させるこ
とが可能である。さらに、非同期システム設計では、後
述する〜等の利点が挙げられ、要素プロセッサ3の
ロバスト性、高速性を向上することができ、ひいては熱
流体解析の高速化を達成することが可能である。信号
遷移の因果関係に従い素子遅延の大小に係わらず正常動
作が可能になり、高速性を達成できる。情報処理装置
の電圧変動、温度環境変化等の外的擾乱に対してもタイ
ミング変動がなくなり、高信頼性を達成できる。タイ
ミング調整が不要になり、設計が容易になる。クロッ
ク発生のための電力が不要になり、低電力消費の情報処
理装置を得ることができる。
【0547】このような特徴を持つ非同期式回路を要素
プロセッサ3内の回路に使用することができる。そこ
で、以下に非同期式回路の基本構成について説明する。
非同期式システムは、互いに信号をやり取りする非同期
式回路で構成された機能モジュールの集合体である。あ
る機能モジュールAから機能モジュールBに処理要求が
発生した場合、モジュールAからモジュールBへの処理
要求を示す『要求』という要求信号と、モジュールBか
らモジュールAへの処理終了通知を示す『応答』という
応答信号の2つの信号の受け渡しで、機能モジュール
A,B間における一つの処理要求に対する動作が完了す
る。ところが、非同期式では、同期クロックが存在しな
いため、これらの要求信号と応答信号の到着タイミング
を知らせる工夫が必要となる。まず、制御信号について
は、「有効」を「1」、「無効」を「0」と定義すれ
ば、0→1あるいは1→0の遷移そのものが要求あるい
は応答のタイミングを表している。問題となるのは、や
り取りする信号がデータ信号の場合である。通常、デー
タ信号は1線式であり、2値表現しかできないため、要
求・応答のタイミングを記述できない。そこで、非同期
式回路で構成された複数の機能モジュール間のデータ信
号のやり取りには、例えば、1ビット情報を2本の信号
線で表現する2線式データを用いる。2線式データ表現
には、2線2相方式、2線遷移方式、パリティ交番方式
等があるが、中でも2線2相方式は汎用性が高く、回路
構成も単純化できるため、以下では2線2相方式のデー
タ信号表現を用いる場合について説明する。
【0548】2線2相方式のデータ表現では、1ビット
データDを2線信号(d1,d0)で数40のように表
現する。
【0549】
【数40】
【0550】例えば、「1」を転送するには、休止相
(0,0)を(1,0)に変え、処理終了後次のデータ
転送に備えるためにスペーサ状態(0,0)にリセット
するという一連の動作を行う。
【0551】次に、この2線2相式データ表現に基づく
データ転送経路を考える。図79は、2線2相式データ
表現に基づくレジスタ間データ転送経路モデルを示すブ
ロック図である。図79において、217は制御信号を
転送するための制御信号バス、218は要求・応答処理
が終了後に2線式信号をリセットする2線2相制御モジ
ュール、219は信号を一時的に記憶するためのレジス
タ、220は2線式論理回路、221は2線式データバ
スである。ただし、図中の2線式論理回路220は2線
式論理に基づいて構成された基本論理素子より成る。
【0552】上位からの処理終了情報を受けて2線2相
制御モジュール218が要求を発生する(0→1遷
移)。この要求を受けて2線式データ信号が転送元レジ
スタ219から読み出される。転送元レジスタ219か
ら読み出されたデータは、2線式データバス221を介
して2線式論理回路220に与えられ、2線式論理回路
220で処理される。さらに、2線式論理回路220で
処理されたデータは、2線式データバス221を通して
転送先レジスタ219へ書き込まれる。その後、レジス
タ219で発生した応答(0→1遷移)を受けた2線2
相式制御モジュール218が、処理終了情報を下位に転
送する。上位からの処理終了情報に続いて、データをリ
セットするために上位から要求消滅命令(1→0)が転
送され、転送元レジスタ219から論理回路220を経
て転送先レジスタ219へ至る全ての2線信号をスペー
サ状態に遷移させ、最終的に応答を消滅(1→0遷移)
させて終了する。
【0553】図79における2線式論理回路220は、
2線式ANDゲート、ORゲート、NOTゲート等の基
本論理素子を結線して構成された回路であればどのよう
な構成の回路であってもよい。例えば、第1実施の形態
ないし第5実施の形態のいずれかに記載のプロセッシン
グユニット5全体を2線式論理回路220で実現するこ
とにより、配線遅延が素子遅延よりも大きくなった場合
でも、要素プロセッサ3内の演算処理を高速に実現する
ことが可能になる。
【0554】勿論、特定の演算列についてのみクロック
を用いない非同期式処理を適用することもでき、この場
合にも同様の効果を奏することは言うまでもない。
【0555】また、前記各実施の形態を組み合わせて用
いることも可能である。
【0556】
【発明の効果】以上のように請求項1記載の発明の情報
処理装置あるいは請求項27記載の発明の情報処理装置
における計算方法によれば、場を空間的に分割して得ら
れる複数の格子点を要素プロセッサに割り当てて計算を
行わせる情報処理装置において、隣接する要素プロセッ
サ間相互でデータの通信を行うための複数のデータバス
を備え、データバスによって伝達されるデータを用い
て、非同期に、かつ独立に要素プロセッサを動作させて
計算を行うので、要素プロセッサ間の通信時間を短縮す
ることができ、情報処理装置の処理の高速化を図ること
ができるという効果がある。
【0557】請求項2記載の発明の情報処理装置あるい
は請求項28記載の発明の情報処理装置における計算方
法によれば、場を空間的に分割するとともに複数の時刻
に対応するように複数の格子点を設けて計算を行う情報
処理装置において、隣接する要素プロセッサ間相互でデ
ータの通信を行うための複数のデータバスをさらに備
え、データバスによって伝達されるデータを用いて、非
同期に、かつ独立に要素プロセッサを動作させて計算を
行うので、要素プロセッサ間の通信時間を短縮すること
ができ、情報処理装置の処理の高速化を図ることができ
るという効果がある。
【0558】請求項3記載の発明の情報処理装置あるい
は請求項29記載の発明の情報処理装置における計算方
法によれば、2次元プレーンを、時間軸に沿って複数枚
3次元に並べて構成し、時間方向の次元をパイプライン
化したので、プロセッサ間及び2次元プレーン間の通信
時間を短縮して、情報処理装置の処理の高速化を図るこ
とができるという効果がある。
【0559】請求項30記載の発明の情報処理装置にお
ける計算方法によれば、非同期に、かつ独立に要素プロ
セッサを動作させて微分方程式の解を差分法を用いて得
るので、解析の精度を落とすことなく、情報処理装置の
処理の高速化を図ることができるという効果がある。
【0560】請求項31記載の発明の情報処理装置にお
ける計算方法によれば、偏微分方程式あるいは常微分方
程式の解を差分法を用いて得るので、解析の精度を落と
すことなく、情報処理装置の処理の高速化を図ることが
できるという効果がある。
【0561】請求項32記載の発明の情報処理装置にお
ける計算方法によれば、格子点に対応する番号あるいは
データメモリ上の格子点に該当するデータ領域のベース
アドレスを入力トークンとして要素プロセッサの演算を
制御するので、隣接する要素プロセッサ上のデータメモ
リに直接アクセスすることができ、格子間のデータ転送
オーバーヘッドを排除して非同期制御による高速な解析
を行えるという効果がある。
【0562】請求項4記載の発明の情報処理装置あるい
は請求項33記載の発明の情報処理装置における計算方
法によれば、プロセッシングユニットへ初期条件と境界
条件を伝送するための伝送手段を有するので、同一の要
素プロセッサの構成を用いて、様々な境界条件や初期条
件に対する演算が、ホストコンピュータに条件を入力す
るという簡単な手続で実現できるという効果がある。
【0563】請求項5記載の発明の情報処理装置あるい
は請求項34記載の発明の情報処理装置における計算方
法によれば、隣接する要素プロセッサのプロセッシング
ユニット間のデータの通信を、プロセッシングユニット
毎に、非同期でかつ繰り返し行うので、隣接要素プロセ
ッサの処理を阻害することなく、データメモリとアクセ
スし、全く非同期に処理を継続することが可能となり、
隣接要素プロセッサの演算を妨げずに通信することがで
きるので、演算の高速化が図れる効果がある。
【0564】請求項6記載の発明の情報処理装置あるい
は請求項35記載の発明の情報処理装置における計算方
法によれば、隣接する要素プロセッサ間の通信は、メッ
セージ通信で、かつ多重命令流多重データ流で行うの
で、並列処理を効率化して情報処理装置の高速化を図る
ことができるという効果がある。
【0565】請求項7記載の発明の情報処理装置あるい
は請求項36記載の発明の情報処理装置における計算方
法によれば、要素プロセッサは、それぞれ、隣接する要
素プロセッサのデータメモリを直接参照できるので、同
一メモリアドレスに対する更新要求が衝突することがな
く、容易に、隣接する要素プロセッサのプロセッシング
ユニット間のデータの通信をプロセッシングユニット毎
に、非同期でかつ繰り返し行わせることができ、メモリ
アクセスのためのデータバスの調停を簡略化し、情報処
理装置の高速化を容易に実現できるという効果がある。
【0566】請求項8記載の発明の情報処理装置あるい
は請求項37記載の発明の情報処理装置における計算方
法によれば、要素プロセッサは、それぞれ、隣接する要
素プロセッサのデータメモリを直接参照および更新でき
るので、要素プロセッサ間でのデータ通信のためのオー
バヘッドを低減でき、計算の効率が向上するとういう効
果がある。
【0567】請求項9記載の発明の情報処理装置あるい
は請求項38記載の発明の情報処理装置における計算方
法によれば、隣接する要素プロセッサを結合する経路上
に、隣接する要素プロセッサ同士が共有するメモリを設
け、メモリに結合された複数の要素プロセッサからメモ
リに記憶されたメモリ内容の参照および更新ができるの
で、計算効率を格段に向上させて計算時間の短縮をはか
り、情報処理装置の高速化を図ることができるという効
果がある。
【0568】請求項10記載の発明の情報処理装置ある
いは請求項39記載の発明の情報処理装置における計算
方法によれば、データメモリにマルチポートメモリを用
いているので、処理の停滞が無くなり、また同一メモリ
アドレスに対する参照が衝突するような処理においては
計算時間の短縮に大幅に寄与し、また当該要素プロセッ
サおよび隣接する要素プロセッサからマルチポートメモ
リに出されるメモリ参照要求を同時に処理可能となるな
ど、情報処理装置の高速化を容易に実現できるという効
果がある。
【0569】請求項11記載の発明の情報処理装置ある
いは請求項40記載の発明の情報処理装置における計算
方法によれば、データメモリに対するアクセス要求を一
時バッファするバッファ機構を有するので、更新要求の
衝突による処理が中断がなく、計算時間の増大を避ける
ことができ、情報処理装置の処理の高速化を図ることが
できるという効果がある。
【0570】請求項12記載の発明の情報処理装置ある
いは請求項41記載の発明の情報処理装置における計算
方法によれば、要素プロセッサは、それぞれ、隣接する
要素プロセッサ間の通信において、隣接する要素プロセ
ッサから送られてきたデータをオブジェクト名付きデー
タとして書き込むバッファメモリをさらに備え、要素プ
ロセッサは、バッファメモリから任意のタイミングでオ
ブジェクト名付きデータをサーチして隣接する要素プロ
セッサからのデータ受け入れを完了するので、隣接要素
プロセッサ間のデータ通信による各要素プロセッサ内の
演算の妨害を防ぐことができ、より高い演算速度を得ら
れる効果がある。
【0571】請求項13記載の発明の情報処理装置ある
いは請求項42記載の発明の情報処理装置における計算
方法によれば、プロセッシングユニットは、必要なデー
タがマッチングメモリに揃った時点で所定の演算のみを
行って結果をマッチングメモリへ転送すると共に、隣接
する要素プロセッサへのデータを送り出し、更に隣接す
る要素プロセッサからのデータを受け入れるので、より
高速で、通信のオーバーヘッドの少ない処理が可能とな
り、情報処理装置の処理の高速化を図ることができると
いう効果がある。
【0572】請求項14記載の発明の情報処理装置ある
いは請求項43記載の発明の情報処理装置における計算
方法によれば、プロセッシングユニットの演算を規定す
るプログラムの書き換えが可能なプログラムメモリを備
えて構成されているので、例えば、全要素プロセッサを
統括管理するホストコンピュータがネットワークで接続
されている場合、ホストコンピュータからネットワーク
を介してプロセッシングユニット内のプログラムメモリ
へ新たなプログラムをロードすることによりプログラム
を変更でき、方程式の計算を行うためのアルゴリズムを
変更したり、機能を追加したりする際には、新しいプロ
グラムをプログラムメモリにロードするのみで可能とな
り、種々の支配方程式及びその解析条件に対して対応す
ることができる汎用性の高い情報処理装置を得ることが
できるという効果がある。
【0573】請求項44記載の発明の情報処理装置にお
ける計算方法によれば、要素プロセッサには内点ビッ
ト、外点ビット及び境界条件ビットにより処理を変更す
ることができる同一の計算プログラムを用いてプロセッ
シングユニットが演算を行うので、格子点の種類に関わ
らず同一の計算プログラムを用いて演算を行うことがで
き、計算プログラムを簡素化して情報処理装置の規模を
縮小することができるという効果がある。
【0574】請求項15記載の発明の情報処理装置ある
いは請求項45記載の発明の情報処理装置における計算
方法によれば、プログラムメモリの異なる領域に割り当
てられた複数のプログラムを同時実行可能なデータフロ
ー方式に基づいて動作し、各格子点の処理を行う複数の
プログラムをプログラムメモリの異なる領域に割り当て
ることにより、複数の格子点の処理を同時に実行させる
ので、プロセッシングユニットの規模を縮小することが
でき、情報処理装置の構成を簡素化できるという効果が
ある。
【0575】請求項16記載の発明の情報処理装置ある
いは請求項46記載の発明の情報処理装置における計算
方法によれば、動的データ駆動方式で、識別子を用いる
ことにより、同一プログラムを複数セットの入力データ
に対して同時に実行するので、情報処理装置の構成の簡
素化が容易に実現できるという効果がある。
【0576】請求項47記載の発明の情報処理装置にお
ける計算方法によれば、入力データに付与されている識
別子の値に基づいて、隣接する格子点に関するデータを
格納しているデータメモリのアドレスを計算し、データ
メモリのアドレスを用いてデータメモリの参照及び更新
をおこなうので、情報処理装置の構成の簡素化が容易に
実現できるという効果がある。
【0577】請求項17記載の発明の情報処理装置ある
いは請求項48記載の発明の情報処理装置における計算
方法によれば、データ処理の流れの一部または全てにつ
いて布線論理に従ってデータフローグラフ状に演算器を
配線したハードウエア回路を備えるので、それぞれのデ
ータは演算器の列をデータフローグラフの上部から順に
通り次々と演算加工され、自動的に最終演算器にまで到
達する。一連の演算が終了すると、計算結果をプロセッ
サ内データバスを介してデータメモリに書き込むと同時
に、要素プロセッサ間コネクションを通して隣接要素プ
ロセッサのデータメモリに書き込んで一連の演算処理を
終了する。従って、微分演算に特化した最大並列度を導
き出して、高速演算を実現できるという効果がある。
【0578】請求項18記載の発明の情報処理装置ある
いは請求項49記載の発明の情報処理装置における計算
方法によれば、内点ビット、外点ビット及び境界条件ビ
ットに従ってデータフローグラフの処理を変更すること
ができる同一の布線論理に従ったハードウェア回路を備
えるので、格子点の種類に関わらず同一の布線論理に従
ったハードウェア回路によって計算ができ、計算プログ
ラムを簡素化して情報処理装置の規模を縮小することが
できるという効果がある。
【0579】請求項19記載の発明の情報処理装置ある
いは請求項50記載の発明の情報処理装置における計算
方法によれば、プロセッシングユニットは、8個の入力
データに対し、第1入力と第2入力,第3入力と第4入
力,第5入力と第6入力,第7入力と第8入力のそれぞ
れの乗算結果を累積加算する演算命令を直接実行するた
めの演算装置を備えるので、乗算器の各々の入力端に入
力されたデータに対し、布線論理に従ったデータフロー
グラフに示した演算が実行され、加算器の出力端に結果
が出力され、例えば、ナビエ・ストークス方程式の求解
をはじめとする微分方程式等の方程式の求解の高速化を
図ることができるという効果がある。
【0580】請求項51記載の発明の情報処理装置にお
ける計算方法によれば、全ての格子点での通信回数を平
準化するので、並列化した際の効率化を図ることができ
るという効果がある。
【0581】請求項52記載の発明の情報処理装置にお
ける計算方法によれば、演算量が少ない格子点について
もダミーの演算を行うことにより全ての格子点での演算
回数を平準化するので、並列化した際の効率化を図るこ
とができるという効果がある。
【0582】請求項53記載の発明の情報処理装置にお
ける計算方法によれば、格子点間での通信情報を各格子
点ごとに割り付けたので、格子点間での通信の効率化を
図り、情報処理装置の処理の高速化を図ることができる
という効果がある。また、例えば、格子点間での通信の
要否を示す通信要否の情報、ネットワークを介する通信
か否かを示す通信の方法の情報を各格子点ごとに割り付
けると、格子点間での通信の効率化を図り、情報処理装
置の処理の高速化を図ることができるという効果があ
る。
【0583】請求項54記載の発明の情報処理装置にお
ける計算方法によれば、データメモリのメモリ領域を各
格子点ごとに割り当て、メモリ領域を介して近接する格
子点間のデータのやり取りを行うので、格子点間のデー
タのやり取りを格子点ごとに独立に行うことができ、格
子点毎に通信すべき方向毎に、通信すべきメモリ領域を
指し示すための情報を保持させるので、格子点ごとのデ
ータの通信を効率化でき、情報処理装置の処理の高速化
を容易に実現することができるという効果がある。
【0584】請求項55記載の発明の情報処理装置にお
ける計算方法によれば、格子点毎に通信不可能方向には
共通のダミー領域を示す情報を保持させるようにしたの
で、通信の可否判定プログラムを削減することができ、
プログラムサイズの圧縮ができるという効果がある。ま
た、同期処理等を省くことができ、プログラムサイズの
圧縮及び処理の高速化が実現できるという効果がある。
【0585】請求項56記載の発明の情報処理装置にお
ける計算方法によれば、双方の要素プロセッサで互いに
相手方から送信されたデータを時系列的に2組もち、こ
れらの格子点に対するデータが更新された場合、更新さ
れたデータが時系列的に前の組のデータと比較して所定
値以下の変位ならば相手方のデータの書換えをしないの
で、要素プロセッサ間お不要な通信を省いて、情報処理
装置の処理の高速化を図ることができるという効果があ
る。
【0586】請求項57記載の発明の情報処理装置にお
ける計算方法によれば、計算領域の境界に最も近接し、
かつ、計算領域の外側の格子点を模擬する仮想的なデー
タ領域をデータメモリに割り当てるので、格子点のデー
タが仮想的なデータ領域に書き込まれるので、処理プロ
グラムの単純化やプログラムサイズの圧縮が可能にな
る。
【0587】請求項20記載の発明の情報処理装置ある
いは請求項58記載の発明の情報処理装置における計算
方法によれば、粗ノード結合によって結ばれた要素プロ
セッサによる計算と細ノード結合によって結ばれた要素
プロセッサによる計算を行うことによって方程式につい
ての計算を進めるので、粗ノード結合によって結ばれた
要素プロセッサを用いた計算によって収束性を高めると
ともに、細ノード結合によって結ばれた要素プロセッサ
を用いた計算によって計算の精度を維持することがで
き、精度の高い処理を高速で行えるという効果がある。
【0588】請求項59記載の発明の情報処理装置にお
ける計算方法によれば、粗ノード結合によって結ばれた
要素プロセッサによる計算と細ノード結合によって結ば
れた要素プロセッサによる計算を交互に行うことによっ
て精度の高い計算を高速で容易に行えるという効果があ
る。
【0589】請求項60記載の発明の情報処理装置にお
ける計算方法によれば、格子点のうちの一部を選択し、
選択された格子点のみを用いた方程式の計算処理を、格
子点全部を用いた方程式の計算処理と同時に行うので、
情報処理装置の処理時間の短縮がはかれるという効果が
ある。
【0590】請求項61記載の発明の情報処理装置にお
ける計算方法によれば、選択された格子点のみを用いた
方程式の計算処理のアルゴリズムは、格子点全部を用い
た方程式の計算処理のアルゴリズムと異なるアルゴリズ
ムを用いるので、粗ノードに適用するアルゴリズムを精
度よりも収束性に重点をおいたものとすることができ、
情報処理装置の処理時間を大幅に短縮することができる
という効果がある。
【0591】請求項62記載の発明の情報処理装置にお
ける計算方法によれば、隣接する格子点に関するデータ
を時系列的に2組以上もち、データの組間で変動が所定
量以下なら格子点の演算を省略するので、総計算量を低
減することができ、情報処理装置の処理時間を大幅に短
縮することができるという効果がある。
【0592】請求項63記載の発明の情報処理装置にお
ける計算方法によれば、データの組間の変動の値によっ
て格子点の演算を省略する所定量の値を収束の段階に応
じて小さくするので、大局的な収束に至るまでの計算を
大幅に加速することができ、情報処理装置の処理時間を
大幅に短縮することができるという効果がある。
【0593】請求項21記載の発明の情報処理装置ある
いは請求項64記載の発明の情報処理装置における計算
方法よれば、出力ユニットで、要素プロセッサ内に出力
データを非同期に読み出すとともに出力データに整理分
類に必要な識別子を付けるのでので、識別子のついた出
力データを用いてポスト処理を施すことができ、非定常
計算の途中結果を出力しつつ高速な処理を行うことがで
きるという効果がある。
【0594】請求項22記載の発明の情報処理装置ある
いは請求項65記載の発明の情報処理装置における計算
方法によれば、出力ユニットから出力データを収集し、
全要素プロセッサ〜の非同期に到着する出力データに基
づいてリアルタイムに出力データの可視画像を生成する
出力データ画像処理部を備えて構成されているので、要
素プロセッサの演算を妨げることなく非定常計算の途中
結果を出力することができるので、非定常計算の途中結
果を出力しつつ高速な処理を行うことができるという効
果がある。
【0595】請求項23記載の発明の情報処理装置ある
いは請求項66記載の発明の情報処理装置における計算
方法によれば、要素プロセッサを統括するホストコンピ
ュータから要素プロセッサへデータを転送する際に、ホ
ストコンピュータが用いている任意の第1の座標系から
要素プロセッサが用いている第2の座標系に変換し、要
素プロセッサからホストコンピュータへデータを転送す
る際に、要素プロセッサが用いている第2の座標系から
ホストコンピュータが用いている第1の座標系に変換す
る座標変換ユニットを備えているので、格子形成が容易
になり、解の精度が向上するという効果がある。
【0596】請求項24記載の発明の情報処理装置ある
いは請求項67記載の発明の情報処理装置における計算
方法によれば、要素プロセッサの処理を妨げることなく
収束判定を行うことができ、グループごとに収束判定が
並列化され、収束判定時間を短縮でき、計算の高速化を
図ることができるという効果がある。
【0597】請求項25記載の発明の情報処理装置ある
いは請求項68記載の発明の情報処理装置における計算
方法によれば、要素プロセッサ毎に、もしくは要素プロ
セッサに割り当てられた1個以上の処理手段毎に収束判
定を実施し、所定の経路に従って順次メッセージを転送
して全体の収束を判定するよう備えているので、各要素
プロセッサは各々の演算を妨げられることなく並列に演
算を実行することができ、演算の高速化を図ることがで
きる効果がある。
【0598】請求項69記載の発明の情報処理装置にお
ける計算方法によれば、全体の収束を判定する工程によ
って全体が収束したと判定された後、各工程を繰り返す
ことによって、再度同様の収束判定をするので、非安定
点が存在する場合でも情報処理装置全体の収束判定を正
しく行うことができるという効果がある。
【0599】請求項26記載の発明の情報処理装置ある
いは請求項70記載の発明の情報処理装置における計算
方法によれば、複数の経路に従って順次転送されたメッ
セージによって、多重に収束を確認するので、非安定点
が存在する場合でも情報処理装置全体の収束判定を正し
く行うことができるという効果がある。
【0600】請求項71記載の発明の情報処理装置にお
ける計算方法によれば、全体の収束を判定する工程によ
って全体が収束したと判定された後、すべての要素プロ
セッサ、もしくは、処理手段の処理を停止させて、改め
て収束の確認をするので、非安定点が存在する場合でも
情報処理装置全体の収束判定を正しく行うことができる
という効果がある。
【0601】請求項72記載の発明の情報処理装置にお
ける計算方法によれば、収束判定の結果を記憶する記憶
手段を初期化する工程と、プロセッサが処理を担当して
いる格子点毎に、所定の時間経過後、格子点に対する計
算が収束したか否か判定して、収束に達していないと判
定した場合には記憶手段を所定の論理値にセットする工
程とを備えて構成されるので、系の状態が継続的に不安
定な状態に陥った場合にも対応でき、情報処理装置の信
頼性を向上できるという効果がある。
【0602】請求項73記載の発明の情報処理装置ある
いは請求項75記載の発明の情報処理装置における計算
方法によれば、入出力制御部が、隣接する要素プロセッ
サと共有する複数のデータメモリに共通に接続され、ア
クセス要求に応じて通信方向を切り替えることによって
複数のデータメモリのうちの一つとの間でのデータの入
出力を制御するよう構成されているので、隣接要素プロ
セッサ間のデータ通信を高速化することができるという
効果がある。
【0603】請求項74記載の発明の情報処理装置ある
いは請求項76記載の発明の情報処理装置における計算
方法によれば、ワイヤードOR回路によって、複数の要
素プロセッサの各々が実行している演算の収束判定結果
を一時的に記憶するため、複数の要素プロセッサにそれ
ぞれ対応して設けられた複数のレジスタの出力の論理積
を生成するように構成されているので、ワイヤードOR
回路の生成した論理積の値によって収束を判定でき、要
素プロセッサの演算処理から独立して収束判定を行いつ
つ、収束判定時間を短縮することができるという効果が
ある。
【0604】請求項77記載の発明の情報処理装置によ
れば、不安定要因が存在する解析不安定点を含む要素プ
ロセッサ上に割り当てられる格子点の数は、解析不安定
点を含まない要素プロセッサ上に割り当てられる格子点
の数より少なくなるように構成されているので、各要素
プロセッサでの演算時間を平準化して収束するまでの時
間を短縮することができるという効果がある。
【図面の簡単な説明】
【図1】 この発明の第1実施の形態による情報処理装
置の構成を示すブロック図である。
【図2】 この発明の第2実施の形態による要素プロセ
ッサのハードウェア構成を示すブロック図である。
【図3】 この発明の第3実施の形態による要素プロセ
ッサのハードウェア構成を示すブロック図である。
【図4】 この発明の第4実施の形態による要素プロセ
ッサのハードウェア構成を示すブロック図である。
【図5】 演算処理の基本的な流れを示すデータグラフ
である。
【図6】 この発明の第5実施の形態による2次元計算
基板を3次元的に接続して3次元計算を行うための情報
処理装置の構成を示すブロック図である。
【図7】 この発明の第6実施の形態による非同期計算
方式による演算アルゴリズムを示したフローチャートで
ある。
【図8】 差分法に基づくコントロールボリュームを説
明するための概念図である。
【図9】 データメモリで扱われるデータの構成を示す
図である。
【図10】 非同期計算方式による演算アルゴリズムの
計算手順を示すフローチャートである。
【図11】 非同期計算方式による演算アルゴリズムの
計算手順を示すフローチャートである。
【図12】 この発明の第7実施の形態による時間軸方
向へのパイプライン化を行うための2次元基板の構成を
示すブロック図である。
【図13】 この発明の第8実施の形態における情報処
理装置の構成を示すブロック図である。
【図14】 この発明の第8実施の形態における情報処
理装置を構成する要素プロセッサの構成を示すブロック
図である。
【図15】 この発明の第9実施の形態による情報処理
装置の構成を示すブロック図である。
【図16】 この発明の第9実施の形態による情報処理
装置を実現するための要素プロセッサの構成を示すプロ
ック図である。
【図17】 この発明の第10実施の形態による情報処
理装置の構成を示すブロック図である。
【図18】 この発明の第10実施の形態による情報処
理装置を実現するための要素プロセッサの構成を示すブ
ロック図である。
【図19】 この発明の第10実施の形態による情報処
理装置を実現するためのメモリの構成を示すブロック図
である。
【図20】 この発明の第11実施の形態による要素プ
ロセッサの構成を示すブロック図である。
【図21】 この発明の第12実施の形態による要素プ
ロセッサの構成を示すブロック図である。
【図22】 この発明の第13実施の形態によるプロセ
ッサシングユニットの構成を説明するためのシステムフ
ローチャートである。
【図23】 この発明の第14実施の形態による情報処
理装置の構成を説明するためのブロック図である。
【図24】 この発明の第15実施の形態による情報処
理装置を実現するための要素プロセッサの構成を示すブ
ロック図である。
【図25】 この発明の第16実施の形態による情報処
理装置の構成を示すブロック図である。
【図26】 この発明の第17実施の形態による情報処
理装置の構成を示すブロック図である。
【図27】 第16及び第17実施の形態による情報処
理装置を実現するための要素プロセッサの構成を示すブ
ロック図である。
【図28】 この発明の第18実施の形態による情報処
理装置の構成を示す概念図である。
【図29】 この発明の第19実施の形態による情報処
理装置の構成を示す概念図である。
【図30】 この発明の第20実施の形態による情報処
理装置の構成を示すブロック図である。
【図31】 この発明の第21実施の形態による情報処
理装置を説明するための格子点の状態を示す平面図であ
る。
【図32】 この発明の第22実施の形態による情報処
理装置を説明するためのプログラムメモリの割り付けを
示す図である。
【図33】 この発明の第23実施の形態によるダイナ
ミックデータフロー方式の情報処理装置を説明するため
のプログラムメモリの割り付けを示す図である。
【図34】 第23実施の形態において、カラー識別子
ごとに異なるデータメモリアドレスを得るためのカラー
獲得関数の一例を示す概念図である。
【図35】 カラー獲得関数を実現するための格子点の
カラー識別子割付けの一例を示す概念図である。
【図36】 カラー獲得関数を実現するためデータメモ
リの構成の一例を示す図である。
【図37】 この発明の第24実施の形態による情報処
理装置を実現するためのデータメモリの構成を示す図で
ある。
【図38】 第24実施の形態による格子間通信の手順
を示すフローチャートである。
【図39】 この発明の第25実施の形態による情報処
理装置を実現するためのデータメモリの構成を示す図で
ある。
【図40】 第25実施の形態による格子間の通信手順
を示すフローチャートである。
【図41】 格子点ごとに通信すべき各方向のメモリ領
域を示す計算領域の概念図である。
【図42】 第25実施の形態による要素プロセッサ間
の通信について説明するための図である。
【図43】 この発明の第26実施の形態によるダミー
通信用のデータ領域の共有化を実現するためのデータメ
モリの構成を示す図である。
【図44】 ダミー通信用のデータ領域の共有化を実現
する処理流れのフローチャートである。
【図45】 この発明の第27実施の形態による要素プ
ロセッサ間の通信形式を説明するための概念図である。
【図46】 この発明の第28実施の形態によるプログ
ラムの単純化を説明するための格子点の配置図である。
【図47】 この発明の第29実施の形態による情報処
理装置の動作を説明するための格子点の関係を示す図で
ある。
【図48】 この発明の第31実施の形態による情報処
理装置の構成を示すブロック図である。
【図49】 この発明の第32実施の形態による情報処
理装置の構成を示すブロック図である。
【図50】 この発明の第33実施の形態による情報処
理装置を実現するための要素プロセッサの構成を示すブ
ロック図である。
【図51】 この発明の第33実施の形態による情報処
理装置の構成を示すブロック図である。
【図52】 この発明の第34実施の形態による情報処
理装置の構成を示すブロック図である。
【図53】 この発明の第35実施の形態による情報処
理装置を実現するための要素プロセッサの構成を示すブ
ロック図である。
【図54】 この発明の第35実施の形態による情報処
理装置の構成を示すブロック図である。
【図55】 この発明の第36実施の形態による情報処
理装置の動作を説明するための終了フラグの転送経路を
示す概念図である。
【図56】 第36実施の形態の情報処理装置の隣接格
子点への終了フラグ伝搬手順を説明するためのフローチ
ャートである。
【図57】 第36実施の形態の情報処理装置の隣接格
子点への終了フラグ伝搬手順を説明するためのフローチ
ャートである。
【図58】 第36実施の形態による結果データ出力に
用いられるメッセージパケットの構成を示す図である。
【図59】 この発明の第37実施の形態による情報処
理装置の動作を説明するための終了フラグの転送経路を
示す概念図である。
【図60】 この発明の第37実施の形態による情報処
理装置の隣接格子点への終了フラグ伝搬手順を説明する
ためのフローチャートである。
【図61】 この発明の第37実施の形態による情報処
理装置の終了フラグ転送の起点となっている要素プロセ
ッサの終了フラグ送出のための手順を示すフローチャー
トである。
【図62】 この発明の第38実施の形態による情報処
理装置の隣接格子点への終了フラグ伝搬手順を説明する
ためのフローチャートである。
【図63】 この発明の第38実施の形態による情報処
理装置の終了フラグ転送の起点となっている要素プロセ
ッサの終了フラグ送出のための手順を示すフローチャー
トである。
【図64】 この発明の第38実施の形態による情報処
理装置の格子点における処理調停の手順を示すフローチ
ャートである。
【図65】 第39実施の形態の情報処理装置の隣接格
子点への終了フラグ伝搬手順を説明するためのフローチ
ャートである。
【図66】 第39実施の形態の情報処理装置の隣接格
子点への終了フラグ伝搬手順を説明するためのフローチ
ャートである。
【図67】 この発明の第40実施の形態による情報処
理装置の収束判定の手順を示すフローチャートである。
【図68】 従来のマルチプロセッサを使用した微分方
程式求解のためのシステムの構成を示すブロック図であ
る。
【図69】 従来の偏微分方程式求解法を用いた場合の
並列化効率を示すグラフである。
【図70】 SIMPLE法による流体数値解析の計算
手順を示すフローチャートである。
【図71】 この発明の第41実施の形態による入出力
制御部とデータメモリとで構成されたネットワークの単
位を説明するためのブロック図である。
【図72】 この発明の第41実施の形態による入出力
制御部とデータメモリとで構成されたネットワークの他
の単位を説明するためのブロック図である。
【図73】 この発明の第41実施の形態による入出力
制御部とデータメモリとで構成された第1のネットワー
ク構成を説明するためのブロック図である。
【図74】 この発明の第41実施の形態による入出力
制御部とデータメモリとで構成された第2のネットワー
クを説明するためのブロック図である。
【図75】 この発明の第41実施の形態による入出力
制御部とデータメモリとで構成された第3のネットワー
ク構成を説明するためのブロック図である。
【図76】 この発明の第41実施の形態による入出力
制御部とデータメモリとで構成された第4のネットワー
ク構成を説明するためのブロック図である。
【図77】 この発明の第42実施の形態による収束判
定装置の構成の概略を示す概念図である。
【図78】 この発明の第43実施の形態による解析不
安定点を含む計算領域の分割形態を示す概念図である。
【図79】 この発明の第44実施の形態によるレジス
タ間データ転送経路モデルを示すブロック図である。
【符号の説明】
1 ホストコンピュータ、2 情報処理装置、3,3a
〜3t 要素プロセッサ、4 ネットワーク、5 プロ
セッシングユニット、6 メモリ部、7,203 要素
プロセッサ間コネクション、8,200 データメモ
リ、9 プロセッサ内データバス、10 浮動小数点計
算機、11 プログラムメモリ、12 機能モジュー
ル、13 データフローグラフ、14 演算器、15
データ線、16 演算ノード、17 アーク、18 2
次元計算基板、20 ナビエ・ストークスの運動方程式
を解くルーチン群、21 圧力補正式を解くルーチン
群、22速度・圧力の修正を行うルーチン群、23 非
線形性収束のための反復サイクル、24 時間進行のた
めの計算サイクル、25 格子点毎に割り当てられた要
素プロセッサ、26 コントロールボリューム、27
格子点(P)、28 隣接格子点(E)、29 隣接格
子点(W)、30 隣接格子点(N)、31 隣接格子
点(S)、32 一格子点分のパーティション、65
時刻n−1用2次元計算基板、66 時刻n用2次元計
算基板、67 時刻n+1用2次元計算基板、71,2
01 入出力制御部、76 メモリ、73,75,9
0,202データバス、76a マルチポートメモリ、
79 2ポートメモリ、80,204 バッファ機構、
83 マッチングメモリ、84 パイプライン、85
乗算器、86,87 加算器、88,89 データ線、
91 I/Oユニット、92出力データバス、93 出
力用I/Oユニット、94 出力データバス、95デー
タ出力制御部、96 シリアルデータバス、97 ポス
ト処理ユニット、98 画像出力データバス、99 デ
ィスプレイ、101 ネットワーク、104 行方向計
算情報バス、105 列方向計算情報バス、106 内
部計算情報バス、107 出力情報加工部、108 出
力情報バス、109 出力加工情報バス、120 座標
変換ユニット、125 境界上の格子点、126内部の
格子点、137 仮想格子点、180 収束判定ユニッ
ト、181 収束フラグ情報バス、182 収束情報バ
ス、183 収束判定部、184 内部情報フラグバ
ス、185 内部計算情報バス、186 終了情報バ
ス、205 収束判定ビット用レジスタ、206 収束
判定ビット線、208 収束情報信号線、209Nチャ
ネルMOSトランジスタ、210 抵抗。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 坪田 浩乃 東京都千代田区丸の内二丁目2番3号 三 菱電機株式会社内 (72)発明者 小守 伸史 東京都千代田区丸の内二丁目2番3号 三 菱電機株式会社内 (72)発明者 中島 伸治 東京都千代田区丸の内二丁目2番3号 三 菱電機株式会社内 (72)発明者 寺田 浩詔 大阪府吹田市山田西三丁目52番千里一条池 B−803 (72)発明者 岩田 誠 大阪府高槻市日吉台一番町3−16 (72)発明者 山口 克人 兵庫県西宮市上之町22−14 (72)発明者 大西 潤治 大阪府吹田市山田西3−52 A202 (72)発明者 近藤 明 兵庫県川西市萩原3−1−12

Claims (77)

    【特許請求の範囲】
  1. 【請求項1】 演算を実行するプロセッシングユニット
    及び前記演算に関するデータを記憶するためのデータメ
    モリを有する要素プロセッサを複数備え、該複数の要素
    プロセッサを用いて所定の方程式で記述できる場の支配
    方程式について前記場を空間的に分割して得られる複数
    の格子点を前記要素プロセッサに割り当てて計算を行わ
    せる情報処理装置であって、 隣接する前記要素プロセッサ間相互で前記データの通信
    を行うための複数のデータバスをさらに備え、 前記データバスによって伝達される前記データを用い
    て、非同期に、かつ独立に前記要素プロセッサを動作さ
    せて計算を行うことを特徴とする、情報処理装置。
  2. 【請求項2】 演算を実行するプロセッシングユニット
    及び前記演算に関するデータを記憶するためのデータメ
    モリを有する要素プロセッサを複数備え、該複数の要素
    プロセッサを用いて所定の方程式で記述できる場の支配
    方程式について前記場を空間的に分割して得られる複数
    の格子点および同一の前記格子点に対応する複数の時刻
    を前記要素プロセッサに割り当てて計算を行わせる情報
    処理装置であって、 隣接する前記要素プロセッサ間相互で前記データの通信
    を行うための複数のデータバスをさらに備え、 前記データバスによって伝達される前記データを用い
    て、非同期に、かつ独立に前記要素プロセッサを動作さ
    せて計算を行うことを特徴とする、情報処理装置。
  3. 【請求項3】 2次元解析解を求める際に、2次元場を
    空間的に分割して得られる前記格子点の処理を行う前記
    要素プロセッサを2次元に並べた2次元プレーンを、時
    間軸に沿って複数枚並べて3次元に構成し、時間方向の
    次元をパイプライン化したことを特徴とする、請求項2
    記載の情報処理装置。
  4. 【請求項4】 前記要素プロセッサへ初期条件と境界条
    件を伝送するための伝送手段を有することを特徴とす
    る、請求項1ないし請求項3のうちのいずれか一項に記
    載の情報処理装置。
  5. 【請求項5】 隣接する前記要素プロセッサ間のデータ
    の通信を、前記要素プロセッサ毎に、非同期でかつ繰り
    返し行う、請求項1ないし請求項4のうちのいずれか一
    項に記載の情報処理装置。
  6. 【請求項6】 隣接する前記要素プロセッサ間の通信
    は、メッセージ通信で、かつ多重命令流多重データ流で
    行うことを特徴とする、請求項1ないし請求項5のうち
    のいずれか一項に記載の情報処理装置。
  7. 【請求項7】 前記要素プロセッサは、それぞれ、隣接
    する前記要素プロセッサのデータメモリを直接参照でき
    ることを特徴とする、請求項1ないし請求項6のうちの
    いずれか一項に記載の情報処理装置。
  8. 【請求項8】 前記要素プロセッサは、それぞれ、隣接
    する前記要素プロセッサの前記データメモリを直接参照
    および更新できることを特徴とする、請求項7記載の情
    報処理装置。
  9. 【請求項9】 前記データメモリは、隣接する前記要素
    プロセッサを結合する経路上に、隣接する前記要素プロ
    セッサ同士が共有するメモリを含み、 前記メモリに結合された複数の前記要素プロセッサから
    前記メモリに記憶されたメモリ内容の参照および更新が
    できることを特徴とする、請求項1ないし請求項8のう
    ちのいずれか一項に記載の情報処理装置。
  10. 【請求項10】 前記データメモリは、マルチポートメ
    モリであることを特徴とする、請求項7ないし請求項9
    のうちのいずれか一項に記載の情報処理装置。
  11. 【請求項11】 前記データメモリに対するアクセス要
    求を一時バッファするバッファ機構を有する、請求項1
    ないし請求項10のうちのいずれか一項に記載の情報処
    理装置。
  12. 【請求項12】 前記要素プロセッサは、それぞれ、隣
    接する前記要素プロセッサ間の通信において、隣接する
    前記要素プロセッサから送られてきたデータをオブジェ
    クト名付きデータとして書き込むバッファメモリをさら
    に備え、 前記要素プロセッサは、前記バッファメモリから任意の
    タイミングでオブジェクト名付きデータをサーチして隣
    接する前記要素プロセッサからのデータ受け入れを完了
    することを特徴とする、請求項1ないし請求項11のう
    ちのいずれか一項に記載の情報処理装置。
  13. 【請求項13】 前記要素プロセッサは、処理に必要な
    前記データの待ち合わせを行うためのマッチングメモリ
    をさらに備え、 前記要素プロセッサ内の前記プロセッシングユニット
    は、必要なデータが前記マッチングメモリに揃った時点
    で所定の演算を行うことを特徴とする、請求項1ないし
    請求項12のうちのいずれか一項に記載の情報処理装
    置。
  14. 【請求項14】 前記要素プロセッサ内部に、前記プロ
    セッシングユニットの演算を規定するプログラムの書き
    換えが可能なプログラムメモリをさらに備える、請求項
    1ないし請求項13のうちのいずれか一項に記載の情報
    処理装置。
  15. 【請求項15】 前記プロセッシングユニットは、前記
    プログラムメモリの異なる領域に割り当てられた複数の
    前記プログラムを同時実行可能なデータフロー方式に基
    づいて動作し、 前記各格子点の処理を行う複数のプログラムを前記プロ
    グラムメモリの異なる領域に割り当てることにより、複
    数の前記格子点の処理を同時に実行させることを特徴と
    する、請求項1ないし請求項14のうちのいずれか一項
    に記載の情報処理装置。
  16. 【請求項16】 前記データフロー方式は、識別子を用
    いることにより、同一プログラムを複数セットの入力デ
    ータに対して同時に実行することの可能な動的データ駆
    動方式であることを特徴とする、請求項15記載の情報
    処理装置。
  17. 【請求項17】 前記プロセッシングユニットは、デー
    タ処理の流れの一部または全てについて布線論理に従っ
    てデータフローグラフ状に演算器を配線したハードウエ
    ア回路を備える、請求項1ないし請求項16のうちのい
    ずれか一項に記載の情報処理装置。
  18. 【請求項18】 前記プロセッシングユニットは、前記
    格子点の全てに対し前記格子点の存在する位置が前記場
    の中の計算領域の内部か、あるいは前記計算領域内の物
    体の内部か外部かを示す内点ビット及び外点ビットを、
    さらに前記計算領域境界に位置する前記格子点に対して
    境界条件の情報を与える境界条件ビットを、前記要素プ
    ロセッサの前記データメモリにロードしておき、前記内
    点ビット、前記外点ビット及び前記境界条件ビットに従
    ってデータフローグラフの処理を変更することができる
    同一の布線論理に従ったハードウェア回路をさらに備え
    る、請求項1ないし請求項17のうちのいずれか一項に
    記載の情報処理装置。
  19. 【請求項19】 前記プロセッシングユニットは、2N
    個の入力データに対し、第1入力と第2入力,第3入力
    と第4入力,第5入力と第6入力,…,第2N−1入力
    と第2N入力のそれぞれの乗算結果を累積加算する演算
    命令を直接実行するための演算装置をさらに備える、請
    求項17記載の情報処理装置。
  20. 【請求項20】 隣接する前記要素プロセッサ同士を結
    合した細ノード結合と、一つ以上の前記要素プロセッサ
    を飛び越して前記要素プロセッサ同士を接続する粗ノー
    ド結合コネクションで結合した粗ノード結合とを有する
    ことを特徴とする、請求項1ないし請求項19のうちの
    いずれか一項に記載の情報処理装置。
  21. 【請求項21】 前記要素プロセッサ内に出力データを
    非同期に読み出し、該出力データにデータの整理分類に
    必要な識別子を付与し、前記要素プロセッサ外にデータ
    を送り出す出力ユニットを備える、請求項1ないし請求
    項20のうちのいずれか一項に記載の情報処理装置。
  22. 【請求項22】 前記各要素プロセッサの前記出力ユニ
    ットから出力データを収集し、全ての前記要素プロセッ
    サからの非同期に到着する出力データに基づいてリアル
    タイムに前記出力データの可視画像を生成する出力デー
    タ画像処理部をさらに備える、請求項21記載の情報処
    理装置。
  23. 【請求項23】 前記要素プロセッサを統括するホスト
    コンピュータから前記要素プロセッサへデータを転送す
    る際に、前記ホストコンピュータが用いている任意の第
    1の座標系から前記要素プロセッサが用いている第2の
    座標系に変換し、 前記要素プロセッサから前記ホストコンピュータへデー
    タを転送する際には、前記要素プロセッサが用いている
    第2の座標系から前記ホストコンピュータが用いている
    前記第1の座標系に変換する座標変換ユニットをさらに
    備える、請求項1ないし請求項22のうちのいずれか一
    項に記載の情報処理装置。
  24. 【請求項24】 前記複数の要素プロセッサは、ホスト
    コンピュータが統括して管理する複数の要素プロセッサ
    であって、 該要素プロセッサの各々に、前記プロセッシングユニッ
    トと独立に設けられ、該プロセッシングユニットの演算
    処理を阻害せずに収束判定を行う収束判定部を設け、 複数の前記要素プロセッサを複数のグループに区分し、
    前記各グループ内で前記各要素プロセッサの前記収束判
    定部を1方向閉ループ状あるいは集約形式に接続する第
    1の通信路と、 前記各グループの前記第1の通信路の各々に接続され、
    前記各グループ内の全ての前記収束判定部の収束判定結
    果を集約する収束判定ユニットと、 前記各グループの前記収束判定ユニットの全てを1方向
    閉ループ状あるいは集約形式に接続する第2の通信路と
    をさらに備える、請求項1ないし請求項23のうちのい
    ずれか一項に記載の情報処理装置。
  25. 【請求項25】 複数の前記要素プロセッサのメッセー
    ジを転送する少なくとも一つの経路と、 前記要素プロセッサ毎に、もしくは前記要素プロセッサ
    に割り当てられた1個以上の処理手段毎に収束判定を実
    施する第1の収束判定手段と、 所定の前記要素プロセッサもしくは当該所定の要素プロ
    セッサの前記処理手段で収束したことを前記第1の収束
    判定手段が判断した場合、当該所定の要素プロセッサも
    しくは前記所定の要素プロセッサの処理手段で収束した
    ことを示すメッセージを送出する第1のメッセージ送出
    手段と、 隣接する前記要素プロセッサもしくは前記処理手段から
    収束したことを示すメッセージを受け取った後、メッセ
    ージを受け取った要素プロセッサもしくは前記メッセー
    ジを受け取った要素プロセッサの処理手段で収束したと
    前記メッセージを受け取った要素プロセッサの第1の収
    束判定手段が判断した場合、当該メッセージを受け取っ
    た要素プロセッサもしくは前記メッセージを受け取った
    要素プロセッサの処理手段で収束したことを示すメッセ
    ージを送出する第2のメッセージ送出手段と、 前記経路に従って、前記第1のメッセージ送出手段が送
    出し前記第2のメッセージ送出手段で順次転送されたメ
    ッセージを用い全体の収束を判定する第2の収束判定手
    段と、をさらに備える、請求項1ないし請求項23のい
    ずれか一項に記載の情報処理装置。
  26. 【請求項26】 前記少なくとも一つの経路は、前記処
    理手段の結合によって形成された異なる複数の経路を含
    み、 前記複数の経路に従って順次転送された前記メッセージ
    によって、前記第2の収束判定手段が多重に収束を確認
    することを特徴とする、請求項25記載の情報処理装
    置。
  27. 【請求項27】 演算を実行するプロセッシングユニッ
    ト及び前記演算に関するデータを記憶するためのデータ
    メモリを有する要素プロセッサを複数備え、該複数の要
    素プロセッサを用いて所定の方程式で記述できる場の支
    配方程式について前記場を空間的に分割して得られる複
    数の格子点を前記要素プロセッサに割り当てて計算を行
    わせる情報処理装置であって、隣接する前記要素プロセ
    ッサ間相互で前記データの通信を行うための複数のデー
    タバスをさらに備えた情報処理装置を用い、 前記データバスによって伝達される前記データを用い
    て、非同期に、かつ独立に前記要素プロセッサを動作さ
    せて計算を行うことを特徴とする、情報処理装置におけ
    る計算方法。
  28. 【請求項28】 演算を実行するプロセッシングユニッ
    ト及び前記演算に関するデータを記憶するためのデータ
    メモリを有する要素プロセッサを複数備え、該複数の要
    素プロセッサを用いて所定の方程式で記述できる場の支
    配方程式について前記場を空間的に分割して得られる複
    数の格子点および同一の前記格子点に対応する複数の時
    刻に前記要素プロセッサに割り当てて計算を行わせる情
    報処理装置であって、隣接する前記要素プロセッサ間相
    互で前記データの通信を行うための複数のデータバスを
    さらに備えた情報処理装置を用い、 前記データバスによって伝達される前記データを用い
    て、非同期に、かつ独立に前記要素プロセッサを動作さ
    せて計算を行うことを特徴とする、情報処理装置におけ
    る計算方法。
  29. 【請求項29】 2次元解析解を求める際に、2次元場
    を空間的に分割して得られる前記格子点の処理を行う前
    記要素プロセッサを2次元に並べた2次元プレーンを、
    時間軸に沿って複数枚並べて3次元に構成し、時間方向
    の次元をパイプライン化して行うことを特徴とする、請
    求項28記載の情報処理装置における計算方法。
  30. 【請求項30】 前記所定の方程式は、微分方程式を含
    み、 非同期に、かつ独立に前記要素プロセッサを動作させて
    前記微分方程式の解を差分法を用いて得ることを特徴と
    する、請求項27ないし請求項29のうちのいずれか一
    項に記載の情報処理装置における計算方法。
  31. 【請求項31】 前記微分方程式は、偏微分方程式ある
    いは常微分方程式を含むことを特徴とする、請求項30
    記載の情報処理装置における計算方法。
  32. 【請求項32】 前記要素プロセッサは、それぞれ、前
    記場を空間的に分割して得られる複数の格子点の計算を
    担当し、 前記格子点に対応する番号あるいは前記データメモリ上
    の前記格子点に該当するデータ領域のベースアドレスを
    入力トークンとして前記要素プロセッサの演算を制御す
    ることを特徴とする、請求項27ないし請求項31のう
    ちのいずれか一項に記載の情報処理装置における計算方
    法。
  33. 【請求項33】 前記要素プロセッサへ初期条件と境界
    条件を伝送するための伝送手段を用いることを特徴とす
    る、請求項27ないし請求項32のうちのいずれか一項
    に記載の情報処理装置における計算方法。
  34. 【請求項34】 隣接する前記要素プロセッサ間のデー
    タの通信を、前記要素プロセッサ毎に、非同期でかつ繰
    り返し行う、請求項27ないし請求項33のうちのいず
    れか一項に記載の情報処理装置における計算方法。
  35. 【請求項35】 隣接する前記要素プロセッサ間の通信
    は、メッセージ通信で、かつ多重命令流多重データ流で
    行うことを特徴とする、請求項27ないし請求項34の
    うちのいずれか一項に記載の情報処理装置における計算
    方法。
  36. 【請求項36】 前記要素プロセッサは、それぞれ、隣
    接する前記要素プロセッサのデータメモリを直接参照す
    ることを特徴とする、請求項27ないし請求項35のう
    ちのいずれか一項に記載の情報処理装置における計算方
    法。
  37. 【請求項37】 前記要素プロセッサは、それぞれ、隣
    接する前記要素プロセッサの前記データメモリを直接参
    照および更新することを特徴とする、請求項36記載の
    情報処理装置における計算方法。
  38. 【請求項38】 前記データメモリは、隣接する前記要
    素プロセッサを結合する経路上に、隣接する前記要素プ
    ロセッサ同士が共有するメモリを含み、 前記メモリに結合された複数の前記要素プロセッサから
    前記メモリに記憶されたメモリ内容の参照および更新を
    することを特徴とする、請求項27ないし請求項37の
    うちのいずれか一項に記載の情報処理装置における計算
    方法。
  39. 【請求項39】 前記データメモリは、マルチポートメ
    モリであることを特徴とする前記情報処理装置を用い
    る、請求項36ないし請求項38のうちのいずれか一項
    に記載の情報処理装置における計算方法。
  40. 【請求項40】 前記データメモリに対するアクセス要
    求を一時バッファするバッファ機構を有する前記情報処
    理装置を用いる、請求項27ないし請求項39のうちの
    いずれか一項に記載の情報処理装置における計算方法。
  41. 【請求項41】 前記要素プロセッサは、それぞれ、隣
    接する前記要素プロセッサ間の通信において、隣接する
    前記要素プロセッサから送られてきたデータをオブジェ
    クト名付きデータとして書き込むバッファメモリをさら
    に備え、 前記要素プロセッサは、前記バッファメモリから任意の
    タイミングでオブジェクト名付きデータをサーチして隣
    接する前記要素プロセッサからのデータ受け入れを完了
    することを特徴とする前記情報処理装置を用いる、請求
    項27ないし請求項40のうちのいずれか一項に記載の
    情報処理装置における計算方法。
  42. 【請求項42】 前記要素プロセッサは、処理に必要な
    前記データの待ち合わせを行うためのマッチングメモリ
    をさらに備え、 前記要素プロセッサ内の前記プロセッシングユニット
    は、必要なデータが前記マッチングメモリに揃った時点
    で所定の演算を行うことを特徴とする前記情報処理装置
    を用いる、請求項27ないし請求項41のうちのいずれ
    か一項に記載の情報処理装置における計算方法。
  43. 【請求項43】 前記要素プロセッサ内部に、前記プロ
    セッシングユニットの演算を規定するプログラムの書き
    換えが可能なプログラムメモリをさらに備える前記情報
    処理装置を用いる、請求項27ないし請求項42のうち
    のいずれか一項に記載の情報処理装置における計算方
    法。
  44. 【請求項44】 前記格子点の全てに対し前記格子点の
    存在する位置が前記場の中の計算領域の内部か外部か、
    あるいは前記計算領域内の物体の内部か外部かを示す内
    点ビット及び外点ビットを、さらに前記計算領域境界に
    位置する前記格子点に対して境界条件の情報を与える境
    界条件ビットを、前記要素プロセッサの前記データメモ
    リ上に予め与えておき、前記要素プロセッサには前記内
    点ビット、前記外点ビット及び前記境界条件ビットによ
    り処理を変更することができる同一の計算プログラムを
    用いて前記プロセッシングユニットが演算を行うことを
    特徴とする、請求項27ないし請求項43のうちのいず
    れか一項に記載の情報処理装置における計算方法。
  45. 【請求項45】 前記プロセッシングユニットは、前記
    プログラムメモリの異なる領域に割り当てられた複数の
    前記プログラムを同時実行可能なデータフロー方式に基
    づいて動作し、 前記各格子点の処理を行う複数のプログラムを前記プロ
    グラムメモリの異なる領域に割り当てることにより、複
    数の前記格子点の処理を同時に実行させることを特徴と
    する、請求項27ないし請求項44のうちのいずれか一
    項に記載の情報処理装置における計算方法。
  46. 【請求項46】 前記データフロー方式は、識別子を用
    いることにより、同一プログラムを複数セットの前記入
    力データに対して同時に実行することの可能な動的デー
    タ駆動方式であることを特徴とする、請求項45記載の
    情報処理装置における計算方法。
  47. 【請求項47】 前記入力データに付与されている前記
    識別子の値に基づいて、隣接する前記格子点に関するデ
    ータを格納している前記データメモリのアドレスを計算
    し、前記データメモリのアドレスを用いて前記データメ
    モリの参照及び更新を行うことを特徴とする、請求項4
    6記載の情報処理装置における計算方法。
  48. 【請求項48】 前記プロセッシングユニットには、デ
    ータ処理の流れの一部または全てを布線論理に従ったデ
    ータフローグラフ状に演算器を配線したハードウエア回
    路を備える前記情報処理装置を用いる、請求項27ない
    し請求項47のうちのいずれか一項に記載の情報処理装
    置における計算方法。
  49. 【請求項49】 前記プロセッシングユニットは、前記
    格子点の全てに対し前記格子点の存在する位置が前記場
    の中の計算領域の内部か、あるいは前記計算領域内の物
    体の内部か外部かを示す内点ビット及び外点ビットを、
    さらに前記計算領域境界に位置する前記格子点に対して
    境界条件の情報を与える境界条件ビットを、前記要素プ
    ロセッサの前記データメモリにロードしておき、前記内
    点ビット、前記外点ビット及び前記境界条件ビットに従
    ってデータフローグラフの処理を変更することができる
    同一の布線論理に従ったハードウェア回路をさらに備え
    る前記情報処理装置を用いる、請求項27ないし請求項
    48のうちのいずれか一項に記載の情報処理装置におけ
    る計算方法。
  50. 【請求項50】 前記プロセッシングユニットは、2N
    個の入力データに対し、第1入力と第2入力,第3入力
    と第4入力,第5入力と第6入力,…,第2N−1入力
    と第2N入力のそれぞれの乗算結果を累積加算する演算
    命令を直接実行するための演算装置をさらに備える前記
    情報処理装置を用いる、請求項48記載の情報処理装置
    における計算方法。
  51. 【請求項51】 計算対象となる前記格子点が領域の境
    界上にあるため、場の支配方程式を解くための通信回数
    が少ない前記格子点についてもダミーの通信を行うこと
    により全ての前記格子点での通信回数を平準化すること
    を特徴とする、請求項27ないし請求項50のうちのい
    ずれか一項に記載の情報処理装置における計算方法。
  52. 【請求項52】 計算対象となる前記格子点が領域の境
    界上にあるため、場の支配方程式を解くための演算回数
    が少ない前記格子点についてもダミーの演算を行うこと
    により全ての前記格子点での演算回数を平準化すること
    を特徴とする、請求項27ないし請求項51のうちのい
    ずれか一項に記載の情報処理装置における計算方法。
  53. 【請求項53】 微分方程式の差分法による求解のため
    の各々の前記格子点の処理を行い、かつ、該格子点間で
    通信を行う前記情報処理装置における計算方法におい
    て、 通信要否および通信の方法を示す情報を、前記各格子点
    毎に有することを特徴とする、請求項27ないし請求項
    52のうちのいずれか一項に記載の情報処理装置におけ
    る計算方法。
  54. 【請求項54】 微分方程式の差分法による求解のため
    の各々の前記格子点の処理を行う前記情報処理の計算方
    法において、前記各格子点ごとにメモリ領域を割り当
    て、前記メモリ領域を介して近接する格子点間の通信を
    行い、前記格子点ごとに、通信すべき方向毎に、通信す
    べき前記メモリ領域を指し示すための情報を保持させる
    ことを特徴とする、請求項27ないし請求項53のうち
    のいずれか一項に記載の情報処理装置における計算方
    法。
  55. 【請求項55】 前記格子点毎に通信不可能方向には共
    通のダミー領域を示す情報を保持させるようにしたこと
    を特徴とする、請求項54記載の情報処理装置における
    計算方法。
  56. 【請求項56】 隣接する前記格子点が異なる前記要素
    プロセッサにまたがって割り当てられた場合、双方の前
    記要素プロセッサで互いに相手方へ送信するためにデー
    タを時系列的に2組もち、これらの格子点に対するデー
    タが更新された場合、更新されたデータが時系列的に前
    の組のデータと比較して所定値以下の変位ならば相手方
    のデータの書換えをしないことを特徴とする、請求項2
    7ないし請求項55のうちのいずれか一項に記載の情報
    処理装置における計算方法。
  57. 【請求項57】 前記方程式の計算の対象となる計算領
    域の境界に最も近接する格子点であって、かつ、前記計
    算領域の外側の格子点を模擬する仮想的なデータ領域を
    前記データメモリに割り当てることを特徴とする、請求
    項54記載の情報処理装置における計算方法。
  58. 【請求項58】 隣接する前記要素プロセッサ同士を結
    合した細ノード結合と、一つ以上の前記要素プロセッサ
    を飛び越して前記要素プロセッサ同士を接続する粗ノー
    ド結合コネクションで結合した粗ノード結合とを有する
    前記情報処理装置を用いることを特徴とする、請求項2
    7ないし請求項57のうちのいずれか一項に記載の情報
    処理装置における計算方法。
  59. 【請求項59】 前記粗ノード結合によって結ばれた前
    記要素プロセッサによる計算と前記細ノード結合によっ
    て結ばれた前記要素プロセッサによる計算を交互に行う
    ことによって前記方程式についての計算を進めることを
    特徴とする、請求項58記載の情報処理装置における計
    算方法。
  60. 【請求項60】 前記格子点に割り当てた通信情報を使
    用することにより、選択された前記格子点のうちの一部
    のみを使用した前記場の支配方程式の計算処理を、前記
    格子点の全部を用いた前記場の支配方程式の計算処理と
    平行に実行することを特徴とする、請求項27ないし請
    求項59のうちのいずれか一項に記載の情報処理装置に
    おける計算方法。
  61. 【請求項61】 選択された前記格子点のみを用いた前
    記所定の方程式の計算処理のアルゴリズムは、前記格子
    点全部を用いた前記所定の方程式の計算処理のアルゴリ
    ズムと異なるアルゴリズムを用いることを特徴とする、
    請求項58ないし請求項60のうちのいずれか一項に記
    載の情報処理装置における計算方法。
  62. 【請求項62】 隣接する前記格子点に関するデータを
    時系列的に2組以上もち、データの前記組間で変動が所
    定量以下なら前記格子点の演算を中止し、他の計算を実
    行することを特徴とする、請求項61記載の情報処理装
    置における計算方法。
  63. 【請求項63】 前記データの組間の変動の値によって
    前記格子点の演算を省略する前記所定量の値を収束の段
    階に応じて小さくすることを特徴とする、請求項62記
    載の情報処理装置における計算方法。
  64. 【請求項64】 前記要素プロセッサ内に出力データを
    非同期に読み出し、該出力データにデータの整理分類に
    必要な識別子を付与し、前記要素プロセッサ外にデータ
    を送り出す出力ユニットを備える、請求項27ないし請
    求項63のうちのいずれか一項に記載の情報処理装置に
    おける計算方法。
  65. 【請求項65】 前記各要素プロセッサの前記出力ユニ
    ットから出力データを収集し、全ての前記要素プロセッ
    サからの非同期に到着する出力データに基づいてリアル
    タイムに前記出力データの可視画像を生成する出力デー
    タ画像処理部をさらに備える、請求項64記載の情報処
    理装置における計算方法。
  66. 【請求項66】 前記要素プロセッサを統括するホスト
    コンピュータから前記要素プロセッサへデータを転送す
    る際に、前記ホストコンピュータが用いている任意の第
    1の座標系から前記要素プロセッサが用いている第2の
    座標系に変換し、 前記要素プロセッサから前記ホストコンピュータへデー
    タを転送する際には、前記要素プロセッサが用いている
    第2の座標系から前記ホストコンピュータが用いている
    前記第1の座標系に変換する座標変換ユニットをさらに
    備える前記情報処理装置を用いる、請求項27ないし請
    求項65のうちのいずれか一項に記載の情報処理装置に
    おける計算方法。
  67. 【請求項67】 前記複数の要素プロセッサは、ホスト
    コンピュータが統括して管理する複数の要素プロセッサ
    であって、 該要素プロセッサの各々に、前記プロセッシングユニッ
    トと独立に設けられ、該プロセッシングユニットの演算
    処理を阻害せずに収束判定を行う収束判定部を設け、 複数の前記要素プロセッサを複数のグループに区分し、
    前記各グループ内で前記各要素プロセッサの前記収束判
    定部を1方向閉ループ状あるいは集約形式に接続する第
    1の通信路と、 前記各グループの前記第1の通信路の各々に接続され、
    前記各グループ内の全ての前記収束判定部の収束判定結
    果を集約する収束判定ユニットと、前記各グループの前
    記収束判定ユニットの全てを1方向閉ループ状あるいは
    集約形式に接続する第2の通信路とをさらに備える前記
    情報処理装置を用いる、請求項27ないし請求項66の
    うちのいずれか一項に記載の情報処理装置における計算
    方法。
  68. 【請求項68】 前記情報処理装置は、複数の前記要素
    プロセッサのメッセージを転送する少なくとも一つの経
    路をさらに備え、 前記要素プロセッサ毎に、もしくは前記要素プロセッサ
    に割り当てられた1個以上の処理手段毎に収束判定を実
    施する第1の工程と、 所定の前記要素プロセッサもしくは前記処理手段で収束
    したことを判断した場合、当該要素プロセッサもしくは
    前記処理手段で収束したことを示すメッセージを送出す
    る第2の工程と、 隣接する前記要素プロセッサもしくは前記処理手段から
    収束したことを示すメッセージを受け取った後、メッセ
    ージを受け取った要素プロセッサもしくは前記メッセー
    ジを受け取った要素プロセッサの処理手段が収束したと
    判断した場合、当該要素プロセッサもしくは前記処理手
    段が収束したことを示すメッセージを送出する第3の工
    程と、 前記第3の工程を繰り返すことによって前記経路に従っ
    て順次転送されてきた前記メッセージを用い全体の収束
    を判定する第4の工程とを備える、請求項27ないし請
    求項66のいずれか一項に記載の情報処理装置における
    計算方法。
  69. 【請求項69】 全体の収束を判定する前記第1ないし
    第4の工程によって全体が収束したと判定された後、前
    記第1ないし第4の工程を繰り返すことによって、再度
    同様の収束判定をすることを特徴とする、請求項68記
    載の情報処理装置における計算方法。
  70. 【請求項70】 前記少なくとも一つの経路は、前記処
    理手段の結合によって形成された異なる複数の経路を含
    み、 前記複数の経路に従って順次転送された前記メッセージ
    によって、多重に収束を確認することを特徴とする、請
    求項68または請求項69記載の情報処理装置における
    計算方法。
  71. 【請求項71】 全体の収束を判定する前記工程によっ
    て全体が収束したと判定された後、すべての前記要素プ
    ロセッサ、もしくは、前記処理手段の処理を停止させ
    て、改めて収束の確認をすることを特徴とする、請求項
    70記載の情報処理装置における計算方法。
  72. 【請求項72】 複数のプロセッサを有する情報処理装
    置における計算方法において、 収束判定の結果を記憶する記憶手段を初期化する工程
    と、 前記プロセッサが処理を担当している格子点毎に、前記
    格子点に対する計算が収束したか否か判定して、収束に
    達していないと判定した場合には前記記憶手段を所定の
    論理値にセットする工程から成る収束判定の工程を含
    む、情報処理装置における計算方法。
  73. 【請求項73】 複数の前記要素プロセッサは、 互いに隣接する要素プロセッサ間で前記データメモリを
    共有し、 複数の前記要素プロセッサの各々は、 隣接する前記要素プロセッサと共有する複数の前記デー
    タメモリに共通に接続され、アクセス要求に応じて通信
    方向を切り替えることによって該複数のデータメモリの
    うちの一つとの間でのデータの入出力を制御する入出力
    制御部をさらに有する、請求項1ないし請求項6のうち
    のいずれか一項に記載の情報処理装置。
  74. 【請求項74】 前記複数の要素プロセッサの各々が実
    行している演算の収束判定結果を一時的に記憶するた
    め、前記複数の要素プロセッサにそれぞれ対応して設け
    られた複数のレジスタと、 複数の前記レジスタの出力の論理積を生成するワイヤー
    ドOR回路とをさらに備える、請求項1ないし請求項2
    3のうちのいずれか一項に記載の情報処理装置。
  75. 【請求項75】 複数の前記要素プロセッサは、 互いに隣接する要素プロセッサ間で前記データメモリを
    共有し、 複数の前記要素プロセッサの各々は、 隣接する前記要素プロセッサと共有する複数の前記デー
    タメモリに共通に接続され、アクセス要求に応じて通信
    方向を切り替えることによって該複数のデータメモリの
    うちの一つとの間でのデータの入出力を制御する入出力
    制御部をさらに有し、 複数の前記要素プロセッサの各々は、前記データメモリ
    の内容を前記入出力制御部を介して参照することを特徴
    とする、請求項27ないし請求項34のうちのいずれか
    一項に記載の情報処理装置における計算方法。
  76. 【請求項76】 前記複数の要素プロセッサに対応して
    それぞれ設けられた複数のレジスタに、対応する要素プ
    ロセッサの収束判定結果を一時的に記憶させ、ワイヤー
    ドOR回路で複数の前記レジスタの記憶している前記収
    束判定結果の論理積を取りつつ演算を実行することを特
    徴とする、請求項27ないし請求項66のいずれか一項
    に記載の情報処理装置における計算方法。
  77. 【請求項77】 不安定要因が存在する解析不安定点を
    含む要素プロセッサ上に割り当てられる格子点の数は、
    解析不安定点を含まない要素プロセッサ上に割り当てら
    れる格子点の数より少なくすることを特徴とする、請求
    項27ないし請求項66のうちのいずれか一項に記載の
    情報処理装置における計算方法。
JP18019595A 1994-07-22 1995-07-17 情報処理装置および情報処理装置における計算方法 Expired - Fee Related JP3308770B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP18019595A JP3308770B2 (ja) 1994-07-22 1995-07-17 情報処理装置および情報処理装置における計算方法
US08/504,583 US5740463A (en) 1994-07-22 1995-07-20 Information processing system and method of computation performed with an information processing system
EP95111538A EP0696001B1 (en) 1994-07-22 1995-07-21 Information processing system and method of computation performed by using an information processing system
DE69524306T DE69524306T2 (de) 1994-07-22 1995-07-21 Informationsverarbeitungssystem und mit einem Informationsverarbeitungssystem durchgeführtes Rechnerverfahren
KR1019950022302A KR0169161B1 (ko) 1994-07-22 1995-07-22 정보처리 시스템과 정보처리 시스템에서의 계산방법

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP17138594 1994-07-22
JP6-171385 1994-07-22
JP18019595A JP3308770B2 (ja) 1994-07-22 1995-07-17 情報処理装置および情報処理装置における計算方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2001169407A Division JP3495010B2 (ja) 1994-07-22 2001-06-05 情報処理装置および情報処理装置における計算方法

Publications (2)

Publication Number Publication Date
JPH0887475A true JPH0887475A (ja) 1996-04-02
JP3308770B2 JP3308770B2 (ja) 2002-07-29

Family

ID=26494130

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18019595A Expired - Fee Related JP3308770B2 (ja) 1994-07-22 1995-07-17 情報処理装置および情報処理装置における計算方法

Country Status (5)

Country Link
US (1) US5740463A (ja)
EP (1) EP0696001B1 (ja)
JP (1) JP3308770B2 (ja)
KR (1) KR0169161B1 (ja)
DE (1) DE69524306T2 (ja)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007069464A1 (ja) * 2005-12-14 2007-06-21 Sonac Incorporated 待合わせ機構を有する演算装置
JP2007206987A (ja) * 2006-02-01 2007-08-16 Nomura Research Institute Ltd 格子型コンピュータシステム、タスク割り当てプログラム
JP2009238252A (ja) * 2003-06-30 2009-10-15 Intel Corp データドリブン型アーキテクチャメッシュアレイ中のメモリアクセスデバイス制御
US7855925B2 (en) 2007-02-27 2010-12-21 Samsung Electronics Co., Ltd. Inter-transmission multi memory chip, system including the same and associated method
JP2012048519A (ja) * 2010-08-27 2012-03-08 Research Organization Of Information & Systems Lsi演算装置及びその故障検出方法
JP5240196B2 (ja) * 2007-07-12 2013-07-17 富士通株式会社 計算装置、計算方法および計算プログラム
JP2016520239A (ja) * 2013-05-29 2016-07-11 クゥアルコム・インコーポレイテッドQualcomm Incorporated 条件付きのチャネルルーティングおよびインプレースの機能性を持つ再設定可能な命令セルのアレイ
WO2018139265A1 (ja) * 2017-01-27 2018-08-02 富士通株式会社 プロセッサ、情報処理装置及びプロセッサの動作方法
JP2020154411A (ja) * 2019-03-18 2020-09-24 株式会社東芝 ニューラルネットワーク装置
KR20210020927A (ko) * 2018-06-27 2021-02-24 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 온 칩 코드의 브레이크 포인트에 의한 디버그 방법, 온 칩 프로세서 및 브레이크 포인트에 의한 칩 디버그 시스템
JP2021526277A (ja) * 2018-10-18 2021-09-30 シャンハイ カンブリコン インフォメーション テクノロジー カンパニー リミテッドShanghai Cambricon Information Technology Co.,Ltd. ネットワークオンチップによるデータ処理方法及び装置
US20220229879A1 (en) * 2021-01-15 2022-07-21 Vorticity Inc. Point processor array for solving partial differential equations
JP2023517172A (ja) * 2020-03-06 2023-04-24 インターナショナル・ビジネス・マシーンズ・コーポレーション 3次元メッシュ・トポロジにおけるコンピューティング・ノードの構成
US12165039B2 (en) 2019-08-23 2024-12-10 Anhui Cambricon Information Technology Co., Ltd. Neural network quantization data processing method, device, computer equipment and storage medium
US12333671B2 (en) 2020-02-24 2025-06-17 Cambricon Technologies Corporation Limited Data quantization processing method and apparatus, electronic device and storage medium
US12475188B2 (en) 2021-01-15 2025-11-18 Vorticity Inc. Compute time point processor array for solving partial differential equations
US12518148B2 (en) 2019-08-23 2026-01-06 Anhui Cambricon Information Technology Co., Ltd. Data processing method, device, computer equipment and storage medium

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
US6041345A (en) * 1996-03-08 2000-03-21 Microsoft Corporation Active stream format for holding multiple media streams
JPH09305551A (ja) * 1996-05-10 1997-11-28 Toshiba Corp 並列計算機システム
GB9611994D0 (en) * 1996-06-07 1996-08-07 Systolix Ltd A field programmable processor
ES2136518B1 (es) * 1996-10-25 2000-08-01 Azti Inst Tecnologico Pesquero Sistema de modelizacion y simulacion de la evolucion de la dispersion del flujo de contaminantes vertidos al mar.
DE19651075A1 (de) 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
DE19654595A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
ATE243390T1 (de) 1996-12-27 2003-07-15 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen umladen von datenflussprozessoren (dfps) sowie bausteinen mit zwei- oder mehrdimensionalen programmierbaren zellstrukturen (fpgas, dpgas, o.dgl.)
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
US5950170A (en) * 1997-04-11 1999-09-07 Vanguard International Semiconductor Corporation Method to maximize capacity in IC fabrication
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
WO1999046689A1 (en) * 1998-03-12 1999-09-16 Crossworlds Software, Inc. Execution of extended activity diagrams by code generation
US8174530B2 (en) * 1999-04-09 2012-05-08 Rambus Inc. Parallel date processing apparatus
US20080162875A1 (en) * 1999-04-09 2008-07-03 Dave Stuttard Parallel Data Processing Apparatus
GB2348974B (en) * 1999-04-09 2004-05-12 Pixelfusion Ltd Parallel data processing systems
US8171263B2 (en) * 1999-04-09 2012-05-01 Rambus Inc. Data processing apparatus comprising an array controller for separating an instruction stream processing instructions and data transfer instructions
US7506136B2 (en) * 1999-04-09 2009-03-17 Clearspeed Technology Plc Parallel data processing apparatus
US8762691B2 (en) 1999-04-09 2014-06-24 Rambus Inc. Memory access consolidation for SIMD processing elements using transaction identifiers
US7966475B2 (en) 1999-04-09 2011-06-21 Rambus Inc. Parallel data processing apparatus
US7627736B2 (en) 1999-04-09 2009-12-01 Clearspeed Technology Plc Thread manager to control an array of processing elements
US8169440B2 (en) 1999-04-09 2012-05-01 Rambus Inc. Parallel data processing apparatus
US7802079B2 (en) 1999-04-09 2010-09-21 Clearspeed Technology Limited Parallel data processing apparatus
US20070242074A1 (en) * 1999-04-09 2007-10-18 Dave Stuttard Parallel data processing apparatus
US20080162874A1 (en) * 1999-04-09 2008-07-03 Dave Stuttard Parallel data processing apparatus
AU3829500A (en) 1999-04-09 2000-11-14 Clearspeed Technology Limited Parallel data processing apparatus
US20080008393A1 (en) * 1999-04-09 2008-01-10 Dave Stuttard Parallel data processing apparatus
US7526630B2 (en) 1999-04-09 2009-04-28 Clearspeed Technology, Plc Parallel data processing apparatus
DE10081643D2 (de) 1999-06-10 2002-05-29 Pact Inf Tech Gmbh Sequenz-Partitionierung auf Zellstrukturen
EP2226732A3 (de) 2000-06-13 2016-04-06 PACT XPP Technologies AG Cachehierarchie für einen Multicore-Prozessor
AU2002220600A1 (en) 2000-10-06 2002-04-15 Pact Informationstechnologie Gmbh Cell system with segmented intermediate cell structure
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
JP4609682B2 (ja) * 2000-11-29 2011-01-12 ソニー株式会社 通信システム、情報処理方法
US7062749B2 (en) * 2000-12-15 2006-06-13 Promenix, Inc. Measuring, monitoring and tracking enterprise communications and processes
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
DE60238041D1 (de) * 2001-03-13 2010-12-02 Ecchandes Inc Visuelle einrichtung, verriegelnder zähler und bildsensor
ATE478381T1 (de) 2001-06-20 2010-09-15 Richter Thomas Verfahren zur bearbeitung von daten
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7434191B2 (en) 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
US7577822B2 (en) 2001-12-14 2009-08-18 Pact Xpp Technologies Ag Parallel task operation in processor and reconfigurable coprocessor configured based on information in link list including termination information for synchronization
AU2003208266A1 (en) 2002-01-19 2003-07-30 Pact Xpp Technologies Ag Reconfigurable processor
AU2003214003A1 (en) 2002-02-18 2003-09-09 Pact Xpp Technologies Ag Bus systems and method for reconfiguration
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
WO2004021176A2 (de) 2002-08-07 2004-03-11 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
US7263602B2 (en) * 2002-08-16 2007-08-28 Carnegie Mellon University Programmable pipeline fabric utilizing partially global configuration buses
WO2004038599A1 (de) 2002-09-06 2004-05-06 Pact Xpp Technologies Ag Rekonfigurierbare sequenzerstruktur
US7360220B2 (en) * 2002-10-31 2008-04-15 Intel Corporation Methods and apparatus for multi-threading using differently coded software segments to perform an algorithm
WO2004061723A1 (ja) * 2002-12-27 2004-07-22 Riken V−cadデータを直接用いた非圧縮性粘性流体の流れ場の数値解析方法と装置
KR100965709B1 (ko) * 2003-05-17 2010-06-24 마이크로소프트 코포레이션 멀티-파트 파일에 변환을 적용하기 위한 시스템 및 방법
JP4700611B2 (ja) 2003-08-28 2011-06-15 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト データ処理装置およびデータ処理方法
US7937557B2 (en) * 2004-03-16 2011-05-03 Vns Portfolio Llc System and method for intercommunication between computers in an array
US7444197B2 (en) 2004-05-06 2008-10-28 Smp Logic Systems Llc Methods, systems, and software program for validation and monitoring of pharmaceutical manufacturing processes
US7799273B2 (en) 2004-05-06 2010-09-21 Smp Logic Systems Llc Manufacturing execution system for validation, quality and risk assessment and monitoring of pharmaceutical manufacturing processes
JP2006053662A (ja) * 2004-08-10 2006-02-23 Matsushita Electric Ind Co Ltd 多重プロセッサ
US7904695B2 (en) * 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous power saving computer
US7805709B2 (en) * 2005-05-27 2010-09-28 Delphi Technologies, Inc. System and method for bypassing execution of an algorithm
WO2007082730A1 (de) 2006-01-18 2007-07-26 Pact Xpp Technologies Ag Hardwaredefinitionsverfahren
US7966481B2 (en) 2006-02-16 2011-06-21 Vns Portfolio Llc Computer system and method for executing port communications without interrupting the receiving computer
US7617383B2 (en) * 2006-02-16 2009-11-10 Vns Portfolio Llc Circular register arrays of a computer
US7752422B2 (en) * 2006-02-16 2010-07-06 Vns Portfolio Llc Execution of instructions directly from input source
US7904615B2 (en) * 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous computer communication
US7693257B2 (en) 2006-06-29 2010-04-06 Accuray Incorporated Treatment delivery optimization
US20080270751A1 (en) * 2007-04-27 2008-10-30 Technology Properties Limited System and method for processing data in a pipeline of computers
US20100023730A1 (en) * 2008-07-24 2010-01-28 Vns Portfolio Llc Circular Register Arrays of a Computer
US8201038B2 (en) * 2009-09-29 2012-06-12 International Business Machines Corporation Integrating design for reliability technology into integrated circuits
JP5718564B2 (ja) * 2009-12-04 2015-05-13 トヨタ自動車株式会社 車両用駆動ユニットの数値解析方法
US9753710B2 (en) * 2013-11-07 2017-09-05 Netronome Systems, Inc. Resource allocation with hierarchical scope
US9959661B2 (en) 2015-12-02 2018-05-01 Samsung Electronics Co., Ltd. Method and device for processing graphics data in graphics processing unit
US10303505B2 (en) 2016-05-19 2019-05-28 International Business Machines Corporation Adjusting a computing environment for processing a data stream with dummy tuples
US10830743B2 (en) * 2017-05-04 2020-11-10 International Business Machines Corporation Determining the net emissions of air pollutants
CN111400126B (zh) * 2020-02-19 2024-07-30 中国平安人寿保险股份有限公司 网络服务异常数据检测方法、装置、设备和介质
CN119271429B (zh) * 2021-03-12 2025-11-28 华为技术有限公司 实现内存共享控制的方法、设备、计算机设备和系统
CN113656924A (zh) * 2021-08-09 2021-11-16 北京首钢国际工程技术有限公司 一种工业园区三维管线建模方法和装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1008018B (zh) * 1986-09-27 1990-05-16 徐肇昌 一种具有合作能力的同构型多计算机系统及其合作方法
US4811214A (en) * 1986-11-14 1989-03-07 Princeton University Multinode reconfigurable pipeline computer
GB2201817A (en) * 1987-02-27 1988-09-07 Massachusetts Inst Technology Geometry-defining processors
US4908751A (en) * 1987-10-15 1990-03-13 Smith Harry F Parallel data processor
US5339396A (en) * 1987-11-18 1994-08-16 Hitachi, Ltd. Interconnection network and crossbar switch for the same
US4939642A (en) * 1989-02-01 1990-07-03 The Board Of Trustees Of The Leland Stanford Jr. University Virtual bit map processor
US5588152A (en) * 1990-11-13 1996-12-24 International Business Machines Corporation Advanced parallel processor including advanced support hardware
JP3057460B2 (ja) * 1991-08-22 2000-06-26 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチプロセッサ・システム、およびそのマルチプロセッサ・システムを用いたグラフィックス表示装置
CA2076293A1 (en) * 1991-10-11 1993-04-12 Prathima Agrawal Multiprocessor computer for solving sets of equations
US5513364A (en) * 1993-03-09 1996-04-30 Matsushita Electric Industrial Co., Ltd. Data transfer device and multiprocessor system
US5546596A (en) * 1993-08-24 1996-08-13 Intel Corporation Method and apparatus for integrated local and express routing in a multiprocessor

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009238252A (ja) * 2003-06-30 2009-10-15 Intel Corp データドリブン型アーキテクチャメッシュアレイ中のメモリアクセスデバイス制御
WO2007069464A1 (ja) * 2005-12-14 2007-06-21 Sonac Incorporated 待合わせ機構を有する演算装置
JP2007206987A (ja) * 2006-02-01 2007-08-16 Nomura Research Institute Ltd 格子型コンピュータシステム、タスク割り当てプログラム
US7855925B2 (en) 2007-02-27 2010-12-21 Samsung Electronics Co., Ltd. Inter-transmission multi memory chip, system including the same and associated method
JP5240196B2 (ja) * 2007-07-12 2013-07-17 富士通株式会社 計算装置、計算方法および計算プログラム
JP2012048519A (ja) * 2010-08-27 2012-03-08 Research Organization Of Information & Systems Lsi演算装置及びその故障検出方法
JP2016520239A (ja) * 2013-05-29 2016-07-11 クゥアルコム・インコーポレイテッドQualcomm Incorporated 条件付きのチャネルルーティングおよびインプレースの機能性を持つ再設定可能な命令セルのアレイ
WO2018139265A1 (ja) * 2017-01-27 2018-08-02 富士通株式会社 プロセッサ、情報処理装置及びプロセッサの動作方法
JP2018120548A (ja) * 2017-01-27 2018-08-02 富士通株式会社 プロセッサ、情報処理装置及びプロセッサの動作方法
US10769004B2 (en) 2017-01-27 2020-09-08 Fujitsu Limited Processor circuit, information processing apparatus, and operation method of processor circuit
KR20210020927A (ko) * 2018-06-27 2021-02-24 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 온 칩 코드의 브레이크 포인트에 의한 디버그 방법, 온 칩 프로세서 및 브레이크 포인트에 의한 칩 디버그 시스템
JP2021520566A (ja) * 2018-06-27 2021-08-19 シャンハイ カンブリコン インフォメーション テクノロジー カンパニー リミテッドShanghai Cambricon Information Technology Co.,Ltd. オンチップコードのブレークポイントによるデバッグ方法、オンチッププロセッサ及びブレークポイントによるチップデバッグシステム
JP2021166032A (ja) * 2018-10-18 2021-10-14 シャンハイ カンブリコン インフォメーション テクノロジー カンパニー リミテッドShanghai Cambricon Information Technology Co., Ltd. ネットワークオンチップによるデータ処理方法及び装置
JP2021526277A (ja) * 2018-10-18 2021-09-30 シャンハイ カンブリコン インフォメーション テクノロジー カンパニー リミテッドShanghai Cambricon Information Technology Co.,Ltd. ネットワークオンチップによるデータ処理方法及び装置
JP2020154411A (ja) * 2019-03-18 2020-09-24 株式会社東芝 ニューラルネットワーク装置
US11620501B2 (en) 2019-03-18 2023-04-04 Kabushiki Kaisha Toshiba Neural network apparatus
US12165039B2 (en) 2019-08-23 2024-12-10 Anhui Cambricon Information Technology Co., Ltd. Neural network quantization data processing method, device, computer equipment and storage medium
US12518148B2 (en) 2019-08-23 2026-01-06 Anhui Cambricon Information Technology Co., Ltd. Data processing method, device, computer equipment and storage medium
US12333671B2 (en) 2020-02-24 2025-06-17 Cambricon Technologies Corporation Limited Data quantization processing method and apparatus, electronic device and storage medium
JP2023517172A (ja) * 2020-03-06 2023-04-24 インターナショナル・ビジネス・マシーンズ・コーポレーション 3次元メッシュ・トポロジにおけるコンピューティング・ノードの構成
US20220229879A1 (en) * 2021-01-15 2022-07-21 Vorticity Inc. Point processor array for solving partial differential equations
US12475188B2 (en) 2021-01-15 2025-11-18 Vorticity Inc. Compute time point processor array for solving partial differential equations

Also Published As

Publication number Publication date
DE69524306T2 (de) 2002-08-08
KR0169161B1 (ko) 1999-01-15
US5740463A (en) 1998-04-14
EP0696001A1 (en) 1996-02-07
JP3308770B2 (ja) 2002-07-29
EP0696001B1 (en) 2001-12-05
DE69524306D1 (de) 2002-01-17

Similar Documents

Publication Publication Date Title
JPH0887475A (ja) 情報処理装置および情報処理装置における計算方法
US20210158155A1 (en) Average power estimation using graph neural networks
JP4316574B2 (ja) グラフィック処理を用いた粒子操作方法及び装置
Chen et al. Communication lower bound in convolution accelerators
US8365111B2 (en) Data driven logic simulation
Yeralan et al. Algorithm 980: Sparse QR factorization on the GPU
US20230315655A1 (en) Fast data synchronization in processors and memory
US5548785A (en) Interface for logic simulation using parallel bus for concurrent transfers and having fifo buffers for sending data to receiving units when ready
CN116775518A (zh) 用于高效访问多维数据结构和/或其他大型数据块的方法和装置
CN116775519A (zh) 用于高效访问多维数据结构和/或其他大型数据块的方法和装置
CN103870335B (zh) 用于信号流编程的数字信号处理器代码的高效资源管理的系统和方法
Betkaoui et al. A framework for FPGA acceleration of large graph problems: Graphlet counting case study
CN110765710A (zh) 基于非易失器件的通用逻辑综合方法及装置
CN109711003A (zh) 一种面向gpu芯片图形管线单元功能仿真方法及平台
Zhou et al. Multi-GPU implementation of a 3D finite difference time domain earthquake code on heterogeneous supercomputers
WO2017037903A1 (ja) 半導体システムおよび計算方法
CN113901746A (zh) 一种用于向量代数的硬件加速器的设计方法
Wang et al. FP-AMR: A Reconfigurable Fabric Framework for Adaptive Mesh Refinement Applications
CN116303113A (zh) 用于拓扑系统间直接存储访问的方法及装置、设备与介质
JP3495010B2 (ja) 情報処理装置および情報処理装置における計算方法
US11476852B2 (en) Glitch-free multiplexer
Teich et al. Performance analysis and optimization of mixed asynchronous synchronous systems
US7516059B2 (en) Logical simulation device
Civera et al. The μ Project: An Experience with a Multimicroprocessor System.
US20250181814A1 (en) Differentiable global router

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees