JPH06149752A - 並列計算機のバリア同期方式 - Google Patents

並列計算機のバリア同期方式

Info

Publication number
JPH06149752A
JPH06149752A JP4302216A JP30221692A JPH06149752A JP H06149752 A JPH06149752 A JP H06149752A JP 4302216 A JP4302216 A JP 4302216A JP 30221692 A JP30221692 A JP 30221692A JP H06149752 A JPH06149752 A JP H06149752A
Authority
JP
Japan
Prior art keywords
synchronization
parallel computer
barrier synchronization
data
variable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP4302216A
Other languages
English (en)
Inventor
Hideki Saito
秀樹 齋藤
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.)
Kubota Corp
Original Assignee
Kubota 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 Kubota Corp filed Critical Kubota Corp
Priority to JP4302216A priority Critical patent/JPH06149752A/ja
Publication of JPH06149752A publication Critical patent/JPH06149752A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】 並列計算機におけるバリア同期方式におい
て、従来方式と本質的に同じ同期タイミングを与えなが
らも、そのオーバーヘッドの要因となるコヒーレンス動
作を高速、且つ、必要最小限に行わせて、システム全体
としてスループットを高めることができる並列計算機の
バリア同期方式を提供することを目的とする。 【構成】 複数のプロセッサP0,P1,P2,P3と
ネットワークで接続されたメインメモリとの間に、前記
プロセッサからアクセスされ前記メインメモリの記憶内
容の一部を記憶する複数のキャッシュメモリCMを設け
た並列計算機において、前記複数のプロセッサにより実
行される一連の処理の終了を、各プロセッサ毎の処理が
終了する度に更新される同期変数”count”の値に
基づいて、各プロセッサが認識した後に次の一連の処理
の実行を許容するように構成してある並列計算機のバリ
ア同期方式であって、前記同期変数の各更新のうちバリ
ア同期条件の成立時にのみ前記同期変数に対するコヒー
レンス動作を行うように構成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数のプロセッサとネ
ットワークで接続されたメインメモリとの間に、前記プ
ロセッサからアクセスされ前記メインメモリの記憶内容
の一部を記憶する複数のキャッシュメモリを設けた並列
計算機において、前記複数のプロセッサにより実行され
る一連の処理の終了を、各プロセッサ毎の処理が終了す
る度に更新される同期変数の値に基づいて、各プロセッ
サが認識した後に次の一連の処理の実行を許容するよう
に構成してある並列計算機のバリア同期方式に関する。
【0002】
【従来の技術】従来より並列計算機において計算処理を
実行する場合、一連の処理を並列化されたループで構成
して、各ループを各プロセッサに割りつけることにより
高速処理を実現しているが、各プロセッサが前記各ルー
プの終了を認識した後に次の一連の処理の実行を許容す
る前記バリア同期方式を以下のように実現していた。即
ち、メインメモリに前記同期変数をマッピングして、各
プロセッサが自己に割り付けられたループの処理が終了
した時にキャッシュメモリを通じて前記同期変数を更新
操作するように構成して、自己のループ処理が完了した
プロセッサは、その同期変数がバリア同期条件の成立を
示す値になるまでの間、即ち、他のプロセッサのループ
処理が終了するまでの間、同期変数がアロケートされた
キャッシュを定期的に参照するスピン・ウェイト状態と
なるように構成していた。
【0003】
【発明が解決しようとする課題】しかし、上述した従来
のバリア同期方式では、同期変数の更新の度にキャッシ
ュ間のデータの整合性を保つためのコヒーレンス動作が
必要となり同期操作自身のオーバーヘッドによりシステ
ム全体のスループットが下がるという欠点があった。コ
ヒーレンス動作として一般的に用いられる無効化方式の
プロトコル、即ち、メインメモリがキャッシュメモリに
データの無効を通知し、各キャッシュがプロセッサから
のアクセス時に発生するミスヒット処理としてメインメ
モリからデータをブロック転送する方式を採用するもの
では、任意のプロセッサによる同期変数の更新処理の度
に、他のプロセッサからの互いに競合するアクセスが集
中してネットワークの機能が低下するという欠点もあっ
た。例えば、図4に示すように、4台のプロセッサP
0,・・・,P3で並列計算機を構成したものでは、そ
れぞれに割り付けられたループ処理の終了後になされる
同期変数に対する更新処理(1,2,3,4)のうち、
(2,3,4)については、それぞれ、(11,12)
と(13,14〜16)という無効化方式のプロトコル
を用いたコヒーレンス動作を行い、(17〜22)のリ
モートアクセスによって通常のキャッシュ・ライン・サ
イズのデータを転送処理することになるが、この時にメ
モリ競合(23〜26)が発生することになる。また、
コヒーレンス動作の度にメインメモリからキャッシュメ
モリへ転送されるデータ容量がバリア同期のために本来
的に必要なデータ容量よりも大となりオーバーヘッドの
低減に限界があるという欠点もあった。
【0004】本発明の目的は、並列計算機におけるバリ
ア同期方式において、従来方式と本質的に同じ同期タイ
ミングを与えながらも、そのオーバーヘッドの要因とな
るコヒーレンス動作を高速、且つ、必要最小限に行わせ
て、システム全体としてスループットを高めることがで
きる並列計算機のバリア同期方式を提供することにあ
る。
【0005】
【課題を解決するための手段】この目的を達成するため
本発明による並列計算機のバリア同期方式の特徴構成
は、前記同期変数のキャッシングを許容し、前記周期変
数の各更新のうち、バリア周期条件の成立時にのみ前記
同期変数に対するコヒーレンス動作を行うように構成し
てある点にある。上述の構成において、前記コヒーレン
ス動作を、書き込み更新型のコヒーレンス動作としてあ
ることが好ましい。さらには、前記コヒーレンス動作に
より転送されるデータを、バリア同期条件の成立を示す
最小限のデータのみで構成してあることが好ましい。
【0006】
【作用】つまり、自己のループ処理が終了したプロセッ
サは、同期変数によりバリア同期条件の成立タイミング
を判別できればよいのであって、バリア同期条件の成立
までの間に次々と変化していく同期変数の値そのものは
本質的に不要であるという点に着目すれば、前記同期変
数の各更新のうち同期条件の成立時にのみ前記同期変数
に対するコヒーレンス動作を行えば、従来方式と本質的
に同じバリア同期タイミングが得られることになり、そ
の間、一時的に複数のキャッシュメモリに存在する同期
変数の不整合を許容してもなんら不都合がない。
【0007】そして、バリア同期条件の成立を示す前記
同期変数の更新時にのみ行うコヒーレンス動作のプロト
コルとして、一般的に用いられる無効化方式のプロトコ
ル、即ち、メインメモリがキャッシュメモリにデータの
無効を通知し、各キャッシュがプロセッサからのアクセ
ス時に発生するミスヒット処理としてメインメモリから
データをブロック転送する方式ではなく、書き込み更新
方式のプロトコル、即ち、メインメモリがキャッシュメ
モリに対して有効なデータをブロック転送する方式を用
いることにより、オーバーヘッドをさらに低減すること
ができる。
【0008】さらには、その際に転送するデータを、バ
リア同期条件の成立を示す最小限のデータのみ、即ち、
同期変数及びその関連データに制限することによりデー
タ転送時間を短縮してオーバーヘッドをさらに低減する
ことができる。
【0009】
【発明の効果】本発明によれば、従来方式と本質的に同
じ同期タイミングを与えながらも、そのオーバーヘッド
の要因となるコヒーレンス動作を高速、且つ、必要最小
限に行わせて、システム全体としてスループットを高め
ることができる並列計算機のバリア同期方式を提供する
ことができるようになった。
【0010】
【実施例】以下に実施例を説明する。図3に示すよう
に、複数のプロセッサP0,P1,P2,P3に第一の
ネットワークB1を介して各別に接続された複数のキャ
ッシュメモリCMを設けて、それらキャッシュメモリC
Mを第二のネットワークB2を介してメインメモリMM
に接続して並列計算機Cを構成してあり、並列化された
ループで構成される一連の処理のうち、各ループをそれ
ぞれのプロセッサP0,P1,P2,P3に割りつける
ことにより高速処理を実現するものである。
【0011】前記メインメモリMMは、前記キャッシュ
メモリCMとの間でのデータ転送制御や自身のデータ管
理等を行うメモリコントローラMMCと、データを格納
するデータ部MMDとで構成してある。前記メインメモ
リMMのデータ部MMDと前記キャッシュメモリCMの
データ部CM3とは同じ大きさのブロックに分割してあ
り、通常は各ブロック単位にデータの転送が行われる。
【0012】前記キャッシュメモリCMは、ディレクト
リ部CM2と、前記メインメモリMMからデータの一部
を読み出して格納するデータ部CM3、及び、前記複数
のプロセッサPからのアクセスに対応して前記メインメ
モリMMとの間でデータの読み書き等の制御を行うキャ
ッシュ制御部CM1とから構成してある。
【0013】前記ディレクトリ部CM2は、キャッシュ
メモリのセット数及びウェイ数に応じた容量を備えてあ
り、各単位はメインメモリMM上で対応するデータの位
置を表すアドレスタグ部CM21、即ちブロックアドレ
スと、当該ウェイがアドレスタグで示されるブロックと
してアロケートされているか否か、即ちデータの有効或
いは無効を表す有効ビットVと、当該ウェイにアロケー
トされるべきブロックのうち、実際に転送すべきデータ
の先頭アドレス及びデータ量を示す属性部CM22とで
構成してある。ここに、有効ビットVは無効化方式のコ
ヒーレンス制御に用いられるフラグで、前記メインメモ
リMMから伝送されるデータの整合性が保てなくなった
旨の制御信号によりリセットされ、データ更新処理の対
象としてブロックが割り当てられた時、即ち、更新処理
の開始時にセットされるフラグであり、状態ビットB
は、更新処理の開始によりセットされ終了によりリセッ
トされるフラグである。
【0014】前記キャッシュ制御部CM1は、第一のネ
ットワークB1を介して得られたアドレス情報と前記ア
ドレスタグ部CM21のブロックアドレスとを比較する
比較部と、比較部によりアドレスが一致すると判別さ
れ、且つ、前記有効ビットVがセットされている場合
(以下、「キャッシュ・ヒット」と記す)にそのプロセ
ッサPとの間で該当データの授受を行うデータ転送制御
部、比較部により不一致と判別され、或いは、前記有効
ビットVがリセットされている場合(以下、「キャッシ
ュ・ミスヒット」と記す)に前記第二のネットワークB
2を介して前記メインメモリMMに対してデータのリプ
レース処理を行うデータリプレース処理部と、それらの
動作を制御する論理回路等で構成してある。
【0015】上述の並列計算機を用いて、並列化された
ループで構成される一連の処理(「ボディ」とよぶ)が
複数組み合わされたアプリケーションを実行する場合に
ついて説明すると、各プロセッサP0,P1,P2,P
3は、それぞれに割り付けられたループの処理を実行し
た後、図2に示すようなアルゴリズムに基づいてバリア
同期をとって、次のボディの処理に移る。
【0016】以下に、図1に基づいて詳述する。前記メ
インメモリMMのデータ部MMDの一ブロックに、同期
変数を格納するカウンタ”count”をマッピングし
て(ここでは、複数のボディの実行を想定して二種類の
カウンタをマッピングしてある)、初期値としてプロセ
ッサ数4を設定する。各プロセッサP0,P1,P2,
P3は、自己のループ処理を終了すると、それぞれのキ
ャッシュメモリCMに対してカウンタ”count”の
減算命令”fetch and decriment”
を実行する。該当するキャッシュメモリCMは、メイン
メモリMMに対して、カウンタ”count”の値を1
減算(デクリメント)した値を取り出す(フェッチ)。
(この場合、カウンタ”count”の値を取り出し
(フェッチ)た後、その値を1減算(デクリメント)し
た値をメインメモリMMに格納してもよい。)各プロセ
ッサから上述の減算命令が実行される度にメインメモリ
MM上のカウンタ”count”の値が減少して、他の
キャッシュメモリにアロケートされているカウンタ”c
ount”の値がずれることになるが、バリア条件が成
立するまでメモリコントローラMMCは各キャッシュメ
モリCMに対して上述の無効化方式のコヒーレンス制御
を行わない。今、プロセッサP0,P3,P2,P1の
順に処理が終了して、前記バリア条件が成立、即ち、カ
ウンタ”count”値が0になると、メモリコントロ
ーラMMCは各キャッシュメモリCMに対して書き込み
更新型のコヒーレンス制御を行う。つまり、全キャッシ
ュメモリCMに対して値が0となったカウンタ”cou
nt”データを転送する。このとき、転送データ容量
は、当該カウンタ”count”データがマッピングさ
れているブロックの全データを転送するのではなく、当
該ブロックアドレスのカウンタ”count”データが
マッピングされているアドレス情報とともに、カウン
タ”count”データのみを転送する。
【0017】各プロセッサP0,P1,P2,P3が、
各キャッシュメモリCM内のカウンタ”count”値
が0であることを確認すると、次のボディの処理を開始
して、この後同様のバリア同期処理を繰り返してアプリ
ケーションを完了する。
【0018】以下に別実施例を説明する。先の実施例で
説明した並列計算機は、各プロセッサに固有のキャッシ
ュメモリを備えて構成したものを説明したが、複数のキ
ャッシュメモリのうち一のキャッシュメモリを一部のプ
ロセッサが共用する並列計算機であっても同様に適用で
きる。また、ボディの実行は必ずしも全プロセッサにル
ープを割り付けて行う必要はなく、任意数のプロセッサ
により実行されるものであればよい。このとき、同期変
数の初期値はボディの実行を担当するプロセッサの数を
設定ればよい。さらには、このとき異なるプロセッサの
グループ毎に異なるボディを実行させることも同様のバ
リア同期制御により行われる。
【図面の簡単な説明】
【図1】バリア同期のフローチャート
【図2】バリア同期のアルゴリズムを示す説明図
【図3】並列計算機のブロック構成図
【図4】従来例を示すバリア同期のフローチャート
【符号の説明】
CM キャッシュメモリ MM メインメモリ P0,P1,P2 プロセッサ

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 複数のプロセッサとネットワークで接続
    されたメインメモリとの間に、前記プロセッサからアク
    セスされ前記メインメモリの記憶内容の一部を記憶する
    複数のキャッシュメモリを設けた並列計算機において、
    前記複数のプロセッサにより実行される一連の処理の終
    了を、各プロセッサ毎の処理が終了する度に更新される
    同期変数の値に基づいて、各プロセッサが認識した後に
    次の一連の処理の実行を許容するように構成してある並
    列計算機のバリア同期方式であって、 前記同期変数のキャッシングを許容し、前記周期変数の
    各更新のうち、バリア同期条件の成立時にのみ前記同期
    変数に対するコヒーレンス動作を行うように構成してあ
    る並列計算機のバリア同期方式。
  2. 【請求項2】 前記コヒーレンス動作を、書き込み更新
    型のコヒーレンス動作としてある請求項1記載の並列計
    算機のバリア同期方式。
  3. 【請求項3】 前記コヒーレンス動作により転送される
    データを、バリア同期条件の成立を示す最小限のデータ
    のみで構成してある請求項1又は2記載の並列計算機の
    バリア同期方式。
JP4302216A 1992-11-12 1992-11-12 並列計算機のバリア同期方式 Pending JPH06149752A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4302216A JPH06149752A (ja) 1992-11-12 1992-11-12 並列計算機のバリア同期方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4302216A JPH06149752A (ja) 1992-11-12 1992-11-12 並列計算機のバリア同期方式

Publications (1)

Publication Number Publication Date
JPH06149752A true JPH06149752A (ja) 1994-05-31

Family

ID=17906359

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4302216A Pending JPH06149752A (ja) 1992-11-12 1992-11-12 並列計算機のバリア同期方式

Country Status (1)

Country Link
JP (1) JPH06149752A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011104812A1 (ja) 2010-02-23 2011-09-01 富士通株式会社 マルチコアプロセッサシステム、割込プログラム、および割込方法
JP2013174943A (ja) * 2012-02-23 2013-09-05 Nec Corp 超並列計算機、同期方法、同期プログラム
JP2016218879A (ja) * 2015-05-25 2016-12-22 富士通株式会社 待ち合わせ処理方法、待ち合わせ処理プログラム、情報処理装置及びシステム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011104812A1 (ja) 2010-02-23 2011-09-01 富士通株式会社 マルチコアプロセッサシステム、割込プログラム、および割込方法
JP2013174943A (ja) * 2012-02-23 2013-09-05 Nec Corp 超並列計算機、同期方法、同期プログラム
JP2016218879A (ja) * 2015-05-25 2016-12-22 富士通株式会社 待ち合わせ処理方法、待ち合わせ処理プログラム、情報処理装置及びシステム

Similar Documents

Publication Publication Date Title
US4928225A (en) Coherent cache structures and methods
JP2516300B2 (ja) 多重プロセツサ・システムの性能の最適化装置及び方法
US4445174A (en) Multiprocessing system including a shared cache
JP5431525B2 (ja) アクセラレータ用低コストのキャッシュ一貫性を維持するシステム
US6631447B1 (en) Multiprocessor system having controller for controlling the number of processors for which cache coherency must be guaranteed
US20050086435A1 (en) Cache memory controlling apparatus, information processing apparatus and method for control of cache memory
JPH02141845A (ja) マルチプロセッサシステムにおいて中央処理ユニットにより主メモリからデータブロックを読み取る方法
JPH09223118A (ja) スヌープキャッシュメモリ制御システム
US6963953B2 (en) Cache device controlling a state of a corresponding cache memory according to a predetermined protocol
JPH0340046A (ja) キャッシュメモリ制御方式および情報処理装置
JP2005234854A (ja) マルチプロセッサシステム
US5737568A (en) Method and apparatus to control cache memory in multiprocessor system utilizing a shared memory
JP2746530B2 (ja) 共有メモリマルチプロセッサ
KR20070040340A (ko) 소형 캐시 시스템에서 원자적 보존 라인에 라이트백하는것을 배제하는 방법 및 시스템
US6477622B1 (en) Simplified writeback handling
JPH06149752A (ja) 並列計算機のバリア同期方式
JP3626609B2 (ja) マルチプロセッサシステム
JP5168800B2 (ja) マルチプロセッサシステム
JPH06309231A (ja) キャッシュメモリ制御方法
JPH0540694A (ja) キヤツシユメモリ装置
JPH04174042A (ja) マルチプロセッサシステム
JPH03172943A (ja) キャッシュメモリ制御方式
JPH06149673A (ja) キャッシュ制御方式
KR970004520B1 (ko) 고속 메모리 제어방법 및 장치
JPH02297656A (ja) データ制御方式