JPH05324581A - 並列多体問題シミュレータ及び当該シミュレータにおける負荷分散方法 - Google Patents
並列多体問題シミュレータ及び当該シミュレータにおける負荷分散方法Info
- Publication number
- JPH05324581A JPH05324581A JP13047292A JP13047292A JPH05324581A JP H05324581 A JPH05324581 A JP H05324581A JP 13047292 A JP13047292 A JP 13047292A JP 13047292 A JP13047292 A JP 13047292A JP H05324581 A JPH05324581 A JP H05324581A
- Authority
- JP
- Japan
- Prior art keywords
- processors
- load
- processor
- simulator
- calculation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 31
- 230000003993 interaction Effects 0.000 claims abstract description 58
- 238000004364 calculation method Methods 0.000 claims description 50
- 238000012545 processing Methods 0.000 abstract description 40
- 238000004088 simulation Methods 0.000 abstract description 6
- 239000002245 particle Substances 0.000 description 31
- XKRFYHLGVUSROY-UHFFFAOYSA-N Argon Chemical group [Ar] XKRFYHLGVUSROY-UHFFFAOYSA-N 0.000 description 8
- 125000004429 atom Chemical group 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 4
- 230000010354 integration Effects 0.000 description 3
- 239000000470 constituent Substances 0.000 description 2
- 238000012900 molecular simulation Methods 0.000 description 2
- 238000004510 Lennard-Jones potential Methods 0.000 description 1
- 229910052786 argon Inorganic materials 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 125000004435 hydrogen atom Chemical group [H]* 0.000 description 1
- 230000009878 intermolecular interaction Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 125000004430 oxygen atom Chemical group O* 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000005381 potential energy Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Multi Processors (AREA)
- Complex Calculations (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
(57)【要約】
【目的】多体問題シミュレーションの並列処理時のプロ
セッサ間の負荷の均等分散化を、専用の動的負荷分散方
式を用いいることなく、良好に行ない得るシミュレータ
の提供に有る。 【構成】複数のプロセッサのうち1のプロセッサ1は、
多体間相互作用の組合わせの計数手段3と、偶奇性を判
定する手段4、各プロセッサ6への処理割当てテーブル
を格納するメモリ5からなる負荷分散機構2を備え、各
プロセッサに対し負荷を分配する。 【効果】専用の動的負荷分散方式を用いることなく、並
列処理時のプロセッサ間の負荷の均等分散化が可能とな
り、多体問題シミュレーションの並列処理効率を高める
ことができる。
セッサ間の負荷の均等分散化を、専用の動的負荷分散方
式を用いいることなく、良好に行ない得るシミュレータ
の提供に有る。 【構成】複数のプロセッサのうち1のプロセッサ1は、
多体間相互作用の組合わせの計数手段3と、偶奇性を判
定する手段4、各プロセッサ6への処理割当てテーブル
を格納するメモリ5からなる負荷分散機構2を備え、各
プロセッサに対し負荷を分配する。 【効果】専用の動的負荷分散方式を用いることなく、並
列処理時のプロセッサ間の負荷の均等分散化が可能とな
り、多体問題シミュレーションの並列処理効率を高める
ことができる。
Description
【0001】
【産業上の利用分野】本発明は、多体問題を並列処理に
より高速にシミュレートするシステムに係り、特に、材
料設計支援システム等に用いられる分子シミュレーショ
ンなどに好適な、並列多体問題シミュレータにおける負
荷分散方法および装置に関する。
より高速にシミュレートするシステムに係り、特に、材
料設計支援システム等に用いられる分子シミュレーショ
ンなどに好適な、並列多体問題シミュレータにおける負
荷分散方法および装置に関する。
【0002】
【従来の技術】従来、多体問題を並列処理により高速に
シミュレートする方法として、対象とする多体系の各構
成要素(粒子)ごとの計算を、並列処理を行うプロセッ
サ群のそれぞれのプロセッサに割り当てる方式や、多体
間の相互作用の組合わせごとの計算をそれぞれのプロセ
ッサに割り当てる方式、また、対象とする多体系の占め
る空間を領域分割して、それらの領域ごとの計算を各プ
ロセッサに割り当てる方式などが提案されている(ネイ
チャー 326 27頁、モレキュラー シミュレーシ
ョン 1 1頁)。
シミュレートする方法として、対象とする多体系の各構
成要素(粒子)ごとの計算を、並列処理を行うプロセッ
サ群のそれぞれのプロセッサに割り当てる方式や、多体
間の相互作用の組合わせごとの計算をそれぞれのプロセ
ッサに割り当てる方式、また、対象とする多体系の占め
る空間を領域分割して、それらの領域ごとの計算を各プ
ロセッサに割り当てる方式などが提案されている(ネイ
チャー 326 27頁、モレキュラー シミュレーシ
ョン 1 1頁)。
【0003】
【発明が解決しようとする課題】上記従来技術に於い
て、多体問題の並列処理を行うプロセッサ間に計算負荷
のアンバランスが生じ、並列処理効率が低下するという
問題があった。
て、多体問題の並列処理を行うプロセッサ間に計算負荷
のアンバランスが生じ、並列処理効率が低下するという
問題があった。
【0004】一般に、多体問題の計算に於いては、多体
間の相互作用(ポテンシャルエネルギ,力)の計算が全
体の計算時間の大部分を占める。この多体間の相互作用
の計算は、通常2体相互作用を用いて行われるため、N
個の構成要素(粒子)からなる多体系に於いては原理的
にNC2(Cはコンビネーション)個の組合わせについて
相互作用の計算を行う必要がある。従来知られている多
体系の各粒子ごとの計算を個々のプロセッサに割り当て
る方式では、上記のNC2個の相互作用の計算をN個の粒
子、つまりこの場合各プロセッサに均等に分配しなけれ
ばプロセッサ間の計算負荷のアンバランスが生じてしま
う。また、相互作用の組合わせごとの計算をそれぞれ個
々のプロセッサに割り当てる方式では、NC2個のプロセ
ッサが必要となり、通常用いられる粒子数Nが103 程
度であることを考えると、組合わせの数、つまりプロセ
ッサ数は106 個程度となり、このままではプロセッサ
群の規模が非現実的に大きくなってしまう。このため、
このNC2個の組合わせを、より少ない数のプロセッサ群
に割り当てる必要があり、その際前記の場合と同様に各
プロセッサに均等に分配しなければプロセッサ間の計算
負荷のアンバランスが生じる。領域分割による並列化方
式においても、領域中の粒子の分布が非等方的な場合に
は、単純に等分割してしまうと領域ごとの粒子数が異な
るため、プロセッサ間の計算負荷のアンバランスが生じ
る。
間の相互作用(ポテンシャルエネルギ,力)の計算が全
体の計算時間の大部分を占める。この多体間の相互作用
の計算は、通常2体相互作用を用いて行われるため、N
個の構成要素(粒子)からなる多体系に於いては原理的
にNC2(Cはコンビネーション)個の組合わせについて
相互作用の計算を行う必要がある。従来知られている多
体系の各粒子ごとの計算を個々のプロセッサに割り当て
る方式では、上記のNC2個の相互作用の計算をN個の粒
子、つまりこの場合各プロセッサに均等に分配しなけれ
ばプロセッサ間の計算負荷のアンバランスが生じてしま
う。また、相互作用の組合わせごとの計算をそれぞれ個
々のプロセッサに割り当てる方式では、NC2個のプロセ
ッサが必要となり、通常用いられる粒子数Nが103 程
度であることを考えると、組合わせの数、つまりプロセ
ッサ数は106 個程度となり、このままではプロセッサ
群の規模が非現実的に大きくなってしまう。このため、
このNC2個の組合わせを、より少ない数のプロセッサ群
に割り当てる必要があり、その際前記の場合と同様に各
プロセッサに均等に分配しなければプロセッサ間の計算
負荷のアンバランスが生じる。領域分割による並列化方
式においても、領域中の粒子の分布が非等方的な場合に
は、単純に等分割してしまうと領域ごとの粒子数が異な
るため、プロセッサ間の計算負荷のアンバランスが生じ
る。
【0005】このように、並列多体問題シミュレータに
於ける負荷の均等分散化は、種々の方式に共通の課題で
ある。
於ける負荷の均等分散化は、種々の方式に共通の課題で
ある。
【0006】この負荷分散を図る方法として、従来、並
列処理の実行中に動的に負荷分散を図る方式が知られて
いる(ジャーナル オブ コンピューテーショナル フ
ィジックス 96 1頁)。しかし、このような動的な
負荷分散方式は、装置や処理の複雑化をまねき、さらに
は負荷分散処理そのもののオーバーヘッドにより全体的
な処理効率の大きな向上が達せられない場合があるとい
う問題があった。
列処理の実行中に動的に負荷分散を図る方式が知られて
いる(ジャーナル オブ コンピューテーショナル フ
ィジックス 96 1頁)。しかし、このような動的な
負荷分散方式は、装置や処理の複雑化をまねき、さらに
は負荷分散処理そのもののオーバーヘッドにより全体的
な処理効率の大きな向上が達せられない場合があるとい
う問題があった。
【0007】以上のように従来技術では、専用の動的負
荷分散方式を用いることなしに、多体問題シミュレーシ
ョンの並列処理時のプロセッサ間の負荷の均等分散化を
図ることが困難であった。
荷分散方式を用いることなしに、多体問題シミュレーシ
ョンの並列処理時のプロセッサ間の負荷の均等分散化を
図ることが困難であった。
【0008】本発明の目的は、並列多体問題シミュレー
タに於いて、専用の動的負荷分散方式を用いることなし
に並列処理時のプロセッサ間の負荷の均等分散化が可能
な方法及び装置を提供することにある。
タに於いて、専用の動的負荷分散方式を用いることなし
に並列処理時のプロセッサ間の負荷の均等分散化が可能
な方法及び装置を提供することにある。
【0009】
【課題を解決するための手段】上記目的を達成するた
め、本発明の並列多体問題シミュレータは、相互に接続
された複数のプロセッサを備えた並列多体問題シミュレ
ータであって、前記複数のプロセッサの内、1のプロセ
ッサは、少なくとも多体間相互作用の組合わせの数を計
数する手段と、前記計数手段により計数された組合わせ
の数の偶奇性を判定する手段とからなり、前記判定手段
による判定結果に基づいて、前記各プロッセッサに負荷
を分配する負荷分散機構を有する構成としたものであ
る。
め、本発明の並列多体問題シミュレータは、相互に接続
された複数のプロセッサを備えた並列多体問題シミュレ
ータであって、前記複数のプロセッサの内、1のプロセ
ッサは、少なくとも多体間相互作用の組合わせの数を計
数する手段と、前記計数手段により計数された組合わせ
の数の偶奇性を判定する手段とからなり、前記判定手段
による判定結果に基づいて、前記各プロッセッサに負荷
を分配する負荷分散機構を有する構成としたものであ
る。
【0010】
【作用】まず、本発明の構成用件である、相互に接続さ
れた複数のプロセッサと、当該各プロッセッサに負荷を
分配する負荷分散機構の作用について説明する。
れた複数のプロセッサと、当該各プロッセッサに負荷を
分配する負荷分散機構の作用について説明する。
【0011】対象とする多体問題に関するデータなど
は、ユーザにより入力装置を用いて入力され、負荷分散
機構は、当該多体問題の計算処理を前記各プロセッサに
負荷が均等になるよう分配する。各プロセッサはそれら
の分配された計算を並列処理し、計算結果は出力装置に
より出力される。
は、ユーザにより入力装置を用いて入力され、負荷分散
機構は、当該多体問題の計算処理を前記各プロセッサに
負荷が均等になるよう分配する。各プロセッサはそれら
の分配された計算を並列処理し、計算結果は出力装置に
より出力される。
【0012】つぎに前記負荷分散機構に備えられた、多
体間相互作用の組合わせの数を計数する手段と、その組
合わせの数の偶奇性を判定する手段の作用について、そ
の原理も含めて以下に詳細に説明する。
体間相互作用の組合わせの数を計数する手段と、その組
合わせの数の偶奇性を判定する手段の作用について、そ
の原理も含めて以下に詳細に説明する。
【0013】互いに2体相互作用をするN個の粒子から
なる多体系を考えると、原理的にNC2個の粒子間の相互
作用の組合わせ(粒子につけたインデックスi,jをも
ちいて、(i,j)と表す)がある。負荷分散機構に備
えられた、多体間相互作用の組合わせの計数手段は、こ
れらの組合わせを数えあげ、カウンタの値を1ずつ増分
していく。このカウンタの値は、偶奇性を判定する手段
によりその偶奇性を判定され、それが偶数ならばその相
互作用の組合わせ(i,j)を粒子iに分配し、奇数な
らば粒子jに分配する。ここで、上記の偶奇性と分配す
る粒子i,jの対応関係は逆転させても良い。このよう
にして粒子間の相互作用の組合わせを分配していくこと
により、結果としてNC2個の組合わせはN個の粒子に、
同数か、あるいは1だけ数が異なる様に分配される。し
たがって、複数のプロセッサの各プロセッサに、N個の
粒子をそれぞれ1つずつ、あるいは同数の複数個ずつを
割り当てると、各プロセッサに割り当てられた粒子間の
相互作用の組合わせの数は、同数か、あるいは1だけ数
が異なる様に分配できる。この様にして分配された相互
作用の計算は、前記の各プロセッサにより並列に計算さ
れる。この相互作用の並列計算においては、上記のよう
に、各プロセッサに割り当てられた粒子間の相互作用の
組合わせの数は、同数か、あるいはほとんど同数となっ
ているため、プロセッサ間の計算負荷の均等分散が図ら
れる。一般に、多体問題の計算に於いては、多体間の相
互作用の計算負荷が全体の計算負荷のほとんどの部分を
占め、さらにこの多体間の相互作用の計算以外の処理に
ついても、例えば数値時間積分など多くの処理が容易
に、かつ、自然に計算負荷を均等して並列化することが
可能であるため、多体間の相互作用の計算負荷が並列処
理を行う各プロセッサに均等に負荷分散されていれば、
多体問題シミュレーション全体の計算負荷も均等に負荷
分散されていると考えられる。以上の様に、負荷分散機
構に備えられた多体間相互作用の組合わせの計数手段
と、偶奇性を判定する手段の作用により、並列多体問題
シミュレータに於いて、専用の動的負荷分散方式を用い
ることなしに、並列処理時のプロセッサ間の負荷の均等
分散化が可能となる。
なる多体系を考えると、原理的にNC2個の粒子間の相互
作用の組合わせ(粒子につけたインデックスi,jをも
ちいて、(i,j)と表す)がある。負荷分散機構に備
えられた、多体間相互作用の組合わせの計数手段は、こ
れらの組合わせを数えあげ、カウンタの値を1ずつ増分
していく。このカウンタの値は、偶奇性を判定する手段
によりその偶奇性を判定され、それが偶数ならばその相
互作用の組合わせ(i,j)を粒子iに分配し、奇数な
らば粒子jに分配する。ここで、上記の偶奇性と分配す
る粒子i,jの対応関係は逆転させても良い。このよう
にして粒子間の相互作用の組合わせを分配していくこと
により、結果としてNC2個の組合わせはN個の粒子に、
同数か、あるいは1だけ数が異なる様に分配される。し
たがって、複数のプロセッサの各プロセッサに、N個の
粒子をそれぞれ1つずつ、あるいは同数の複数個ずつを
割り当てると、各プロセッサに割り当てられた粒子間の
相互作用の組合わせの数は、同数か、あるいは1だけ数
が異なる様に分配できる。この様にして分配された相互
作用の計算は、前記の各プロセッサにより並列に計算さ
れる。この相互作用の並列計算においては、上記のよう
に、各プロセッサに割り当てられた粒子間の相互作用の
組合わせの数は、同数か、あるいはほとんど同数となっ
ているため、プロセッサ間の計算負荷の均等分散が図ら
れる。一般に、多体問題の計算に於いては、多体間の相
互作用の計算負荷が全体の計算負荷のほとんどの部分を
占め、さらにこの多体間の相互作用の計算以外の処理に
ついても、例えば数値時間積分など多くの処理が容易
に、かつ、自然に計算負荷を均等して並列化することが
可能であるため、多体間の相互作用の計算負荷が並列処
理を行う各プロセッサに均等に負荷分散されていれば、
多体問題シミュレーション全体の計算負荷も均等に負荷
分散されていると考えられる。以上の様に、負荷分散機
構に備えられた多体間相互作用の組合わせの計数手段
と、偶奇性を判定する手段の作用により、並列多体問題
シミュレータに於いて、専用の動的負荷分散方式を用い
ることなしに、並列処理時のプロセッサ間の負荷の均等
分散化が可能となる。
【0014】上記のように、互いに2体相互作用をする
N個の粒子からなる多体系に於いては、原理的にNC2個
の粒子間の相互作用の組合わせがあるわけであるが、実
際の応用上これらの組合わせのすべての相互作用を計算
せずに、例えば2体相互作用する粒子間の距離がある値
より小さい場合にのみ相互作用を計算するということが
しばしば行われる。ここで、上記の相互作用の分配の過
程で用いた粒子のインデックスi,jやカウンタの値は
単に便宜上つけられたものであるため、各プロセッサに
分配された相互作用の組合わせの内、上記の2体間の距
離などに関する条件を満たす組合わせの数は確率的に決
定され、各プロセッサでほとんど同数になると考えられ
る。したがって、このような2体間の距離などに関する
条件を満たす組合わせのみ相互作用の計算を行う場合に
於いても、本発明の方式により並列処理時のプロセッサ
間の負荷の均等分散化が可能となる。
N個の粒子からなる多体系に於いては、原理的にNC2個
の粒子間の相互作用の組合わせがあるわけであるが、実
際の応用上これらの組合わせのすべての相互作用を計算
せずに、例えば2体相互作用する粒子間の距離がある値
より小さい場合にのみ相互作用を計算するということが
しばしば行われる。ここで、上記の相互作用の分配の過
程で用いた粒子のインデックスi,jやカウンタの値は
単に便宜上つけられたものであるため、各プロセッサに
分配された相互作用の組合わせの内、上記の2体間の距
離などに関する条件を満たす組合わせの数は確率的に決
定され、各プロセッサでほとんど同数になると考えられ
る。したがって、このような2体間の距離などに関する
条件を満たす組合わせのみ相互作用の計算を行う場合に
於いても、本発明の方式により並列処理時のプロセッサ
間の負荷の均等分散化が可能となる。
【0015】
【実施例】(実施例1)以下、図面を用いて本発明の一
実施例を説明する。実施例1では、多体問題として9個
の星の多体系を考え、それらの星が互いに重力ポテンシ
ャルで相互作用する場合の多体問題を、プロセッサ数が
9個の分散メモリマルチプロセッサシステムによりシミ
ュレーションした例について説明する。
実施例を説明する。実施例1では、多体問題として9個
の星の多体系を考え、それらの星が互いに重力ポテンシ
ャルで相互作用する場合の多体問題を、プロセッサ数が
9個の分散メモリマルチプロセッサシステムによりシミ
ュレーションした例について説明する。
【0016】図1は、本実施例の並列多体問題シミュレ
ータの構成を示す図であり、ホストプロセッサ1は、多
体間相互作用の組合わせの数を計数する計数機構3と、
偶奇性を判定する判定機構4、各プロセッサへの処理割
当てテーブルを格納するメモリ5からなる負荷分散機構
2を備え、これに、それぞれローカルメモリを備えた並
列処理を行う9個のプロセッサが接続されている。計算
結果は出力装置9により出力される。
ータの構成を示す図であり、ホストプロセッサ1は、多
体間相互作用の組合わせの数を計数する計数機構3と、
偶奇性を判定する判定機構4、各プロセッサへの処理割
当てテーブルを格納するメモリ5からなる負荷分散機構
2を備え、これに、それぞれローカルメモリを備えた並
列処理を行う9個のプロセッサが接続されている。計算
結果は出力装置9により出力される。
【0017】最初に全体の処理の流れについて説明す
る。まず、ユーザ7は計算条件や、それぞれの星の初期
座標,初期速度などのデータ入力処理を入力装置8によ
り行う。つぎに、図2のように9個のプロセッサ6を9
個の星10にそれぞれに1個ずづ割り当て、ホストプロ
セッサ1の負荷分散機構2を用いて相互作用の計算を各
星(プロセッサに1対1対応)に均等分配し、その分配
データと個々の星に関するデータをそれぞれ割り当てた
プロセッサに転送する。続いて、この9個の多体系の振
舞いを9個のプロセッサ6を用いて以下のように並列的
に、ニュートンの運動方程式に従い、それを数値積分す
ることにより計算する。
る。まず、ユーザ7は計算条件や、それぞれの星の初期
座標,初期速度などのデータ入力処理を入力装置8によ
り行う。つぎに、図2のように9個のプロセッサ6を9
個の星10にそれぞれに1個ずづ割り当て、ホストプロ
セッサ1の負荷分散機構2を用いて相互作用の計算を各
星(プロセッサに1対1対応)に均等分配し、その分配
データと個々の星に関するデータをそれぞれ割り当てた
プロセッサに転送する。続いて、この9個の多体系の振
舞いを9個のプロセッサ6を用いて以下のように並列的
に、ニュートンの運動方程式に従い、それを数値積分す
ることにより計算する。
【0018】まず、相互作用計算の分配データに基づ
き、計算に必要なデータをプロセッサ間通信によりやり
とりしながら、次式で与えられる重力ポテンシャルU
(r)を用いて相互作用(ポテンシャル,力)の計算を行
う。
き、計算に必要なデータをプロセッサ間通信によりやり
とりしながら、次式で与えられる重力ポテンシャルU
(r)を用いて相互作用(ポテンシャル,力)の計算を行
う。
【0019】
【数1】
【0020】ここで、Gは万有引力定数、mi ,m
j は、それぞれ星i,星jの質量、rijは星i,j間の
距離である。
j は、それぞれ星i,星jの質量、rijは星i,j間の
距離である。
【0021】次に、計算された力を用い、それぞれのプ
ロセッサに於いて、割り当てられた星に関し、次式のベ
ルレアルゴリズムを用いてニュートンの運動方程式を数
値積分する。
ロセッサに於いて、割り当てられた星に関し、次式のベ
ルレアルゴリズムを用いてニュートンの運動方程式を数
値積分する。
【0022】
【数2】
【0023】ここで、xi(t),fi(t)はそれぞれ時刻t
での星iの座標と星iに働く力のベクトル、Δtは時間
刻みである。このようにして更新された星の座標につい
て、再び相互作用の計算を行い運動方程式を数値積分を
する計算を、入力データで定められた回数だけ繰り返
す。
での星iの座標と星iに働く力のベクトル、Δtは時間
刻みである。このようにして更新された星の座標につい
て、再び相互作用の計算を行い運動方程式を数値積分を
する計算を、入力データで定められた回数だけ繰り返
す。
【0024】このようにして星の運動を計算し、その結
果の出力処理を行って全体の計算を終了する。次に上記
の処理の流れの中の、相互作用計算を各星(プロセッサ
に1対1対応)に均等分配する手順について説明する。
果の出力処理を行って全体の計算を終了する。次に上記
の処理の流れの中の、相互作用計算を各星(プロセッサ
に1対1対応)に均等分配する手順について説明する。
【0025】この多体系の粒子数NはN=9であるか
ら、相互作用の組合わせの数は9C2=36組ある。これ
らの組合わせは9個の星に、図2中の星10のようにつ
けたインデックスi,jを行,列とする図3aに示す9
×9のマトリックスの対角要素を除いた上あるいは下三
角部分の要素で表わされる。ここで、この対角要素を除
いた上三角要素に図3aのように連続したインデックス
nをつけると、上記の36組の組合わせは、図3bのよ
うにn=1〜36の(i,j)ペアのテーブルで表わせ
る。これらの相互作用の組合わせは、本発明の管理プロ
セッサに備えられた負荷分散機構により、図4に示した
手順で、以下のように9個の星に分配される。
ら、相互作用の組合わせの数は9C2=36組ある。これ
らの組合わせは9個の星に、図2中の星10のようにつ
けたインデックスi,jを行,列とする図3aに示す9
×9のマトリックスの対角要素を除いた上あるいは下三
角部分の要素で表わされる。ここで、この対角要素を除
いた上三角要素に図3aのように連続したインデックス
nをつけると、上記の36組の組合わせは、図3bのよ
うにn=1〜36の(i,j)ペアのテーブルで表わせ
る。これらの相互作用の組合わせは、本発明の管理プロ
セッサに備えられた負荷分散機構により、図4に示した
手順で、以下のように9個の星に分配される。
【0026】まず、図1中の計数機構3が、初期設定処
理11を行い、その後、多体間相互作用の組合わせの計
数処理12に於いて、相互作用の組合わせを数えあげ、
カウンタnの値を1ずつ増分していく。この数えあげと
同時に、このカウンタnの偶奇性の判定が、図1中の判
定機構4により偶奇性判定処理13に於いて行われ、偶
数ならばその相互作用の組合わせ(i,j)を粒子iに
分配し、奇数ならば粒子jに分配する。この分配データ
は、メモリ格納処理14により図1中のメモリ5に分配
テーブルとして格納される。このようにして粒子間の相
互作用の組合わせを分配していくことにより、結果とし
て図3cに示す各星への相互作用の組合わせの分配テー
ブルが生成される。
理11を行い、その後、多体間相互作用の組合わせの計
数処理12に於いて、相互作用の組合わせを数えあげ、
カウンタnの値を1ずつ増分していく。この数えあげと
同時に、このカウンタnの偶奇性の判定が、図1中の判
定機構4により偶奇性判定処理13に於いて行われ、偶
数ならばその相互作用の組合わせ(i,j)を粒子iに
分配し、奇数ならば粒子jに分配する。この分配データ
は、メモリ格納処理14により図1中のメモリ5に分配
テーブルとして格納される。このようにして粒子間の相
互作用の組合わせを分配していくことにより、結果とし
て図3cに示す各星への相互作用の組合わせの分配テー
ブルが生成される。
【0027】ここで、上記の9個の星それぞれは、図1
中の並列計算を行う9個のプロセッサ6に1つずつ割り
当てられているため、各プロセッサに割り当てられた星
の間の相互作用の組合わせの数plist は、図3cにある
ように同数となる。したがって、この相互作用の計算に
於いてプロセッサ間の負荷は均等分散される。
中の並列計算を行う9個のプロセッサ6に1つずつ割り
当てられているため、各プロセッサに割り当てられた星
の間の相互作用の組合わせの数plist は、図3cにある
ように同数となる。したがって、この相互作用の計算に
於いてプロセッサ間の負荷は均等分散される。
【0028】本実施例の計算に於いて、多体間相互作
用、数値時間積分など処理の大部分が均等負荷で並列化
しているため、処理全体にわたるプロセッサ間の負荷
は、ほぼ完全に均等分散されており、1プロセッサ時の
7.8倍の高速化が得られた。
用、数値時間積分など処理の大部分が均等負荷で並列化
しているため、処理全体にわたるプロセッサ間の負荷
は、ほぼ完全に均等分散されており、1プロセッサ時の
7.8倍の高速化が得られた。
【0029】(実施例2)実施例2では、多体系として
1024個のアルゴン原子の集団を考え、それらが互い
にレナード・ジョーンズポテンシャルで相互作用する場
合の多体問題を、実施例1と同じ構成で、ただしプロセ
ッサ数が256個のシステムによりシミュレーションし
た例を以下に説明する。
1024個のアルゴン原子の集団を考え、それらが互い
にレナード・ジョーンズポテンシャルで相互作用する場
合の多体問題を、実施例1と同じ構成で、ただしプロセ
ッサ数が256個のシステムによりシミュレーションし
た例を以下に説明する。
【0030】全体の処理の流れは、実施例1とほぼ同じ
である。ただし、この例の場合は多体系を構成する粒子
は星ではなくアルゴン原子であり、また、構成粒子の数
とプロセッサ数が異なるため、プロセッサ1個当り4個
のアルゴン原子についての計算を割り当てた。ここで、
上記の1024個のアルゴン原子は、入力データにより
設定した正方形のセル中に保持され、周期的境界条件を
適用することによりこのセルと同じ原子配置のセルがま
わりを取り囲んだ状況を設定し、近似的にバルク状態を
シミュレートするようにした。また、各プロセッサに於
けるアルゴン原子間の相互作用の計算は、次式で与えら
れるレナード・ジョーンズポテンシャルU(r)を用い
て行った。
である。ただし、この例の場合は多体系を構成する粒子
は星ではなくアルゴン原子であり、また、構成粒子の数
とプロセッサ数が異なるため、プロセッサ1個当り4個
のアルゴン原子についての計算を割り当てた。ここで、
上記の1024個のアルゴン原子は、入力データにより
設定した正方形のセル中に保持され、周期的境界条件を
適用することによりこのセルと同じ原子配置のセルがま
わりを取り囲んだ状況を設定し、近似的にバルク状態を
シミュレートするようにした。また、各プロセッサに於
けるアルゴン原子間の相互作用の計算は、次式で与えら
れるレナード・ジョーンズポテンシャルU(r)を用い
て行った。
【0031】
【数3】
【0032】ここで、ε,σはアルゴン原子のレナード
・ジョーンズポテンシャルのパラメータ、rijはアルゴ
ン原子i,j間の距離である。さらに、この相互作用の
計算時に、原子間の距離rijが、入力データにより設定
したある値より小さい場合にのみ相互作用を計算した。
・ジョーンズポテンシャルのパラメータ、rijはアルゴ
ン原子i,j間の距離である。さらに、この相互作用の
計算時に、原子間の距離rijが、入力データにより設定
したある値より小さい場合にのみ相互作用を計算した。
【0033】以上の計算に於いて、処理全体にわたるプ
ロセッサ間の負荷の均等分散度は非常に高く、良好な並
列処理効率が得られた。
ロセッサ間の負荷の均等分散度は非常に高く、良好な並
列処理効率が得られた。
【0034】(実施例3)実施例3では、多体系として
256個の水分子の集団を考えた場合の多体問題を、プ
ロセッサ数が8個の共有メモリマルチプロセッサシステ
ムによりシミュレーションした例を以下に説明する。
256個の水分子の集団を考えた場合の多体問題を、プ
ロセッサ数が8個の共有メモリマルチプロセッサシステ
ムによりシミュレーションした例を以下に説明する。
【0035】図5は、本実施例の並列多体問題シミュレ
ータの構成を示す図であり、実施例1の構成(図1)と
異なる点は、プロセッサ群6が共有のメモリに接続され
ており、その内の1つが実施例1のホストプロセッサ1
の役割を兼ねる構成となっている点である。
ータの構成を示す図であり、実施例1の構成(図1)と
異なる点は、プロセッサ群6が共有のメモリに接続され
ており、その内の1つが実施例1のホストプロセッサ1
の役割を兼ねる構成となっている点である。
【0036】全体の処理の流れは、実施例2とほぼ同じ
であるが、本実施例の場合は、多体系を構成する粒子と
してアルゴン原子ではなく水分子であり、プロセッサ1
個当り32個の水分子についての計算を割り当て、相互
作用の計算部分のみ並列化して計算した。水分子は酸素
原子1個、水素原子2個の3原子で表され、それぞれの
原子上に点電荷が与えられており、結果として全体の原
子数は768原子である。分子間相互作用は各分子3つ
の原子どうしの2体相互作用の重ねあわせで計算した。
ここで、この2体相互作用としてレナード・ジョーンズ
ポテンシャルと、点電荷間には次式のクーロンポテンシ
ャルを用いた。
であるが、本実施例の場合は、多体系を構成する粒子と
してアルゴン原子ではなく水分子であり、プロセッサ1
個当り32個の水分子についての計算を割り当て、相互
作用の計算部分のみ並列化して計算した。水分子は酸素
原子1個、水素原子2個の3原子で表され、それぞれの
原子上に点電荷が与えられており、結果として全体の原
子数は768原子である。分子間相互作用は各分子3つ
の原子どうしの2体相互作用の重ねあわせで計算した。
ここで、この2体相互作用としてレナード・ジョーンズ
ポテンシャルと、点電荷間には次式のクーロンポテンシ
ャルを用いた。
【0037】
【数4】
【0038】ここで、ε0 は真空の誘電率、qiqjは、
それぞれ星i,星jの電荷、rijは原子、i,j間の距
離である。
それぞれ星i,星jの電荷、rijは原子、i,j間の距
離である。
【0039】各プロセッサに於いては、実施例2と同様
の原子、分子間の相互作用と共に、分子内自由度に関す
るポテンシャルの計算も行った。ポテンシャルの形は結
合長、結合角共に次の調和振動子形をそれぞれ用いた。
の原子、分子間の相互作用と共に、分子内自由度に関す
るポテンシャルの計算も行った。ポテンシャルの形は結
合長、結合角共に次の調和振動子形をそれぞれ用いた。
【0040】 U(dn)=(1/2)kd(dn 2−d0 2) U(θn)=(1/2)kθ(θn 2−θ0 2) ここで、dn,θnはそれぞれn番目の結合長、結合角、
d0,θ0は、それらの平衡値、kd,kθは力のパラメ
ータである。
d0,θ0は、それらの平衡値、kd,kθは力のパラメ
ータである。
【0041】本実施例の計算に於いて、並列化が多体間
相互作用の計算部分のみであるにもかかわらず、処理全
体にわたるプロセッサ間の負荷は十分に均等分散されて
おり、上記のシステムで1プロセッサ時の6.4 倍の高
速化が得られた。
相互作用の計算部分のみであるにもかかわらず、処理全
体にわたるプロセッサ間の負荷は十分に均等分散されて
おり、上記のシステムで1プロセッサ時の6.4 倍の高
速化が得られた。
【0042】
【発明の効果】本発明によれば、並列多体問題シミュレ
ータに於いて、並列処理時のプロセッサ間の負荷の均等
分散化が、専用の動的負荷分散方式を用いることなしに
可能となる。これにより、多体問題シミュレーションの
並列処理効率を高めることができ、処理の高速化が図れ
る。
ータに於いて、並列処理時のプロセッサ間の負荷の均等
分散化が、専用の動的負荷分散方式を用いることなしに
可能となる。これにより、多体問題シミュレーションの
並列処理効率を高めることができ、処理の高速化が図れ
る。
【図1】実施例1の並列多体問題シミュレータの構成を
示す図。
示す図。
【図2】実施例1の多体問題の粒子とプロセッサの関係
を説明する図。
を説明する図。
【図3】実施例1の多体問題の相互作用計算負荷の分配
を説明する図。
を説明する図。
【図4】相互作用計算を多体問題の各構成要素に均等分
配する手順について説明する図。
配する手順について説明する図。
【図5】実施例3の並列多体問題シミュレータの構成を
示す図。
示す図。
1…ホストプロセッサ、2…負荷分散機構、3…計数手
段、4…偶奇性を判定する手段、5…各プロセッサへの
処理割当てテーブルを格納するメモリ、6…並列処理を
行う複数のプロセッサ、7…ユーザ、8…入力装置、9
…出力装置、10…多体問題の構成要素(星)、11…
初期設定処理、12…多体間相互作用の組合わせの計数
処理、13…偶奇性判定処理、14…メモリ格納処理。
段、4…偶奇性を判定する手段、5…各プロセッサへの
処理割当てテーブルを格納するメモリ、6…並列処理を
行う複数のプロセッサ、7…ユーザ、8…入力装置、9
…出力装置、10…多体問題の構成要素(星)、11…
初期設定処理、12…多体間相互作用の組合わせの計数
処理、13…偶奇性判定処理、14…メモリ格納処理。
Claims (4)
- 【請求項1】相互に接続された複数のプロセッサを備え
た並列多体問題シミュレータであって、前記複数のプロ
セッサの内、1のプロセッサは、少なくとも多体間相互
作用の組合わせの数を計数する手段と、前記計数手段に
より計数された組合わせの数の偶奇性を判定する手段と
からなり、前記判定手段による判定結果に基づいて、前
記各プロッセッサに負荷を分配する負荷分散機構を有す
ることを特徴とする並列多体問題シミュレータ。 - 【請求項2】相互に接続された複数のプロセッサを備え
た並列多体問題シミュレータであって、前記複数のプロ
セッサに対し負荷を分配する負荷分散方法において、多
体間相互作用の組合わせの数を計数し、当該計数された
組合わせの数の偶奇性を判定し、当該判定結果に基づい
て、前記各プロッセッサに負荷を分配することを特徴と
する負荷分散方法。 - 【請求項3】請求項1において、前記複数のプロセッサ
の各プロセッサは、多体問題の構成要素のうち少なくと
も1つの構成要素に関する計算を割当てられており、前
記負荷分散機構は、前記偶奇性判定手段による判定結果
に基づいて、前記多体問題の複数の構成要素のうち、2
つの要素間で生ずる2体相互作用に関する計算負荷を、
前記2つの要素が割り当てられたプロセッサのうちどの
プロセッサに分配するかを決定することを特徴とする並
列多体問題シミュレータ。 - 【請求項4】請求項2において、前記複数のプロセッサ
の各プロセッサに、多体問題の構成要素のうち少なくと
も1つの構成要素に関する計算を割当て、前記計数され
た組合わせの数の偶奇性判定結果に基づいて、前記多体
問題の複数の構成要素のうち、2つの構成要素間で生ず
る2体相互作用に関する計算負荷を、前記2つの構成要
素が割り当てられたプロセッサのうちどのプロセッサに
分配するかを決定することを特徴とする負荷分散方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13047292A JPH05324581A (ja) | 1992-05-22 | 1992-05-22 | 並列多体問題シミュレータ及び当該シミュレータにおける負荷分散方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13047292A JPH05324581A (ja) | 1992-05-22 | 1992-05-22 | 並列多体問題シミュレータ及び当該シミュレータにおける負荷分散方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05324581A true JPH05324581A (ja) | 1993-12-07 |
Family
ID=15035064
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP13047292A Pending JPH05324581A (ja) | 1992-05-22 | 1992-05-22 | 並列多体問題シミュレータ及び当該シミュレータにおける負荷分散方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH05324581A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020022923A (ko) * | 2000-09-21 | 2002-03-28 | 문홍주 | 부하 분산장치의 데이터베이스 구성방법 및 그 시스템 |
JP2006236256A (ja) * | 2005-02-28 | 2006-09-07 | Institute Of Physical & Chemical Research | 数値計算処理装置 |
US7370328B2 (en) | 2000-04-28 | 2008-05-06 | Honda Motor Co., Ltd. | Method for assigning job in parallel processing method and parallel processing method |
WO2011018854A1 (ja) * | 2009-08-13 | 2011-02-17 | 富士通株式会社 | シミュレータ |
JP2013168160A (ja) * | 2005-04-19 | 2013-08-29 | D.E. Shaw Research LLC | 多数の物体の相互作用を計算する計算ユニットを決定するための方法 |
-
1992
- 1992-05-22 JP JP13047292A patent/JPH05324581A/ja active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7370328B2 (en) | 2000-04-28 | 2008-05-06 | Honda Motor Co., Ltd. | Method for assigning job in parallel processing method and parallel processing method |
CN100394416C (zh) * | 2000-04-28 | 2008-06-11 | 大正制药株式会社 | 并行处理方法中的作业分配方法及并行处理方法 |
EP2204735A1 (en) | 2000-04-28 | 2010-07-07 | Taisho Pharmaceutical Co. Ltd. | Job assignment method in parallel processing method and parallel processing method |
KR20020022923A (ko) * | 2000-09-21 | 2002-03-28 | 문홍주 | 부하 분산장치의 데이터베이스 구성방법 및 그 시스템 |
JP2006236256A (ja) * | 2005-02-28 | 2006-09-07 | Institute Of Physical & Chemical Research | 数値計算処理装置 |
JP4740610B2 (ja) * | 2005-02-28 | 2011-08-03 | 独立行政法人理化学研究所 | 数値計算処理装置 |
JP2013168160A (ja) * | 2005-04-19 | 2013-08-29 | D.E. Shaw Research LLC | 多数の物体の相互作用を計算する計算ユニットを決定するための方法 |
WO2011018854A1 (ja) * | 2009-08-13 | 2011-02-17 | 富士通株式会社 | シミュレータ |
JP5310859B2 (ja) * | 2009-08-13 | 2013-10-09 | 富士通株式会社 | シミュレータ |
US8849625B2 (en) | 2009-08-13 | 2014-09-30 | Fujitsu Limited | Distributed process simulator |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Rahimian et al. | Petascale direct numerical simulation of blood flow on 200k cores and heterogeneous architectures | |
US10007742B2 (en) | Particle flow simulation system and method | |
Casanova et al. | Netsolve: A network server for solving computational science problems | |
Lomdahl et al. | 50 GFlops molecular dynamics on the Connection Machine 5 | |
Leland et al. | An empirical study of static load balancing algorithms | |
JP6261130B2 (ja) | 粒子シミュレーション装置、粒子シミュレーション方法及び粒子シミュレーションプログラム | |
Nageswararao et al. | Scheduling of machines and automated guided vehicles in FMS using gravitational search algorithm | |
Freniere et al. | The feasibility of Amazon's cloud computing platform for parallel, GPU-accelerated, multiphase-flow simulations | |
JPH05324581A (ja) | 並列多体問題シミュレータ及び当該シミュレータにおける負荷分散方法 | |
Banicescu et al. | Addressing the stochastic nature of scientific computations via dynamic loop scheduling | |
Grandison et al. | Increasing the simulation performance of large-scale evacuations using parallel computing techniques based on domain decomposition | |
Yamazaki et al. | On techniques to improve robustness and scalability of the Schur complement method | |
Hunold et al. | Multilevel hierarchical matrix multiplication on clusters | |
Sudarsan et al. | Efficient multidimensional data redistribution for resizable parallel computations | |
Rao | Explicit nonlinear dynamic finite element analysis on homogeneous/heterogeneous parallel computing environment | |
Fritzson et al. | Rolling bearing simulation on MIMD computers | |
Atanassov | Method of Thread Management in a Multi-Pool of Threads Environments | |
CN106897163A (zh) | 一种基于knl平台的代数系统求解方法及系统 | |
Fatoohi et al. | Implementation and analysis of a Navier-Stokes algorithm on parallel computers | |
Szarek et al. | Actor-Based Scalable Simulation of N-Body Problem | |
Green et al. | Parallelization of the molecular dynamics code GROMOS87 for distributed memory parallel architectures | |
Simon et al. | Experience in using SIMD and MIMD parallelism for computational fluid dynamics | |
Wang et al. | A parallel ADI algorithm for high-order finite-difference solution of the unsteady heat conduction equation, and its implementation on the CM-5 | |
Snytnikov et al. | Domain Decomposition Algorithm Using SPH and PIC Methods for Simulating Gas-Dust Gravitating Disks | |
CN115167918A (zh) | 一种基于mpi并行的sph程序加速方法及装置 |