JPH07249019A - 並列プロセッサシステム - Google Patents

並列プロセッサシステム

Info

Publication number
JPH07249019A
JPH07249019A JP6042104A JP4210494A JPH07249019A JP H07249019 A JPH07249019 A JP H07249019A JP 6042104 A JP6042104 A JP 6042104A JP 4210494 A JP4210494 A JP 4210494A JP H07249019 A JPH07249019 A JP H07249019A
Authority
JP
Japan
Prior art keywords
data
processor
transferred
processors
processor system
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
JP6042104A
Other languages
English (en)
Other versions
JP3617672B2 (ja
Inventor
Yoshifumi Ojiro
嘉史 雄城
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP04210494A priority Critical patent/JP3617672B2/ja
Publication of JPH07249019A publication Critical patent/JPH07249019A/ja
Priority to US08/724,428 priority patent/US5901324A/en
Application granted granted Critical
Publication of JP3617672B2 publication Critical patent/JP3617672B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing

Abstract

(57)【要約】 【目的】 並列プロセッサシステムに関し、システム内
の各プロセッサにおける処理の単位となるデータ量をプ
ロセッサの主記憶容量の程度として処理を高速化し、か
つ他プロセッサへの転送データを格納するバッファによ
る主記憶容量の圧迫を軽減させる。 【構成】 システム内の各プロセッサが、複数のデータ
転送先プロセッサに対応して転送データを一時的に格納
する複数の第1のデータ記憶手段と、他プロセッサから
転送されたデータを自プロセッサ内での処理の単位に適
合するように分割して格納する複数の第2のデータ記憶
手段とを備えるように構成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は磁気ディスクなどの二次
記憶装置がそれぞれ接続された複数のプロセッサをネッ
トワークによって結合し、全体として1つの作業を遂行
する並列プロセッサシステムに係り、更に詳しくは並列
プロセッサシステムを構成する各プロセッサの間で処理
されるデータを均一化するプロセッサ間データ分割方式
に関する。
【0002】
【従来の技術】並列プロセッサシステムには、例えば複
数の磁気ディスク装置に格納されたデータに対して、ス
イッチを介してシステム内の各プロセッサが自由にアク
セスできるデータ共有型と、各プロセッサにそれぞれ専
用の二次記憶装置が接続され、各プロセッサがネットワ
ークを介してデータの交換を行うデータ分散型とがあ
る。
【0003】図7はデータ分散型並列プロセッサシステ
ムの構成ブロック図である。同図において、システムを
構成する各プロセッサ10に対してそれぞれ専用の二次
記憶装置、例えば磁気ディスク11が接続され、各プロ
セッサ10の間ではネットワーク12を介して相互にデ
ータの交換が行われる。
【0004】図7のようなデータ分散型並列プロセッサ
システムを用いたデータベース処理におけるハッシュジ
ョインについて説明する。ハッシュジョインはエクイバ
レントジョインと言われるアルゴリズムの1つである。
【0005】図7において、各磁気ディスク11にはデ
ータベースにおける第1のテーブルRと、第2のテーブ
ルSとの内容が分散して格納されているものとする。テ
ーブルRには従業員の識別番号と、その識別番号に対応
する従業員名が格納され、テーブルSには従業員の識別
番号と、その識別番号に対応する従業員の年収が格納さ
れているものとする。エクイバレントジョイン処理と
は、テーブルRとテーブルSとの内容を検索し、従業員
の識別番号をキーとして、従業員名とその従業員の年収
を対として格納する第3のテーブルを作成する処理であ
る。
【0006】ハッシュジョインはデータ分散型並列プロ
セッサシステムにおいて行われるエクイバレントジョイ
ンであり、この処理では識別番号を複数のグループにグ
ループ分けし、同一グループに属するデータ、すなわち
テーブルRとテーブルSとの内容を、そのグループのデ
ータのエクイバレントジョイン処理を担当するプロセッ
サに、各プロセッサが転送を行い、そのグループのデー
タが全て転送された後に、担当プロセッサがエクイバレ
ントジョイン処理を行うことになる。
【0007】このハッシュジョインの手順を、次の手順
1〜手順4によって説明する。 手順1:個々のプロセッサ(プロセッサ番号0〜Npe
1)はディスクから論理的に1固まりとして扱われるべ
きデータ(レコードあるいはタプルと言う)を読み出
し、これにあるグループ化関数を適用してこのデータを
処理すべきプロセッサを特定する。
【0008】手順2:個々のプロセッサは上記プロセッ
サにこのデータを転送する。 手順3:上記処理を全てのデータに適用した後には、各
プロセッサにはそれぞれの内部で処理されるべきデータ
が集中することになる。
【0009】手順4:各プロセッサは以後独立して内部
でジョイン処理を行う。 上記において、グループ化関数は全てのプロセッサにお
いて同じものが使用されねばならず、かつ同一のデータ
値に対しては同一の値が返されるものが使用される。か
つデータのプロセッサ間転送時には、同一のグループ化
関数出力値を持つデータ群は、全て同一のプロセッサに
対して転送される。
【0010】このことにより、同一のデータ値を持つ可
能性のあるデータは全て同一のプロセッサに転送される
ので、同一のデータ値を持つデータ間の処理は該プロセ
ッサ内部に閉じて実行することができる。
【0011】ところで、上記処理において、グループ化
関数の出力値の分布が大幅に偏っていると、つまりある
プロセッサのみ大量のデータが送信されると、このプロ
セッサの演算性能がボトルネックとなってシステム全体
の性能が低下してしまう。
【0012】例えば前述の2つのテーブルRとSに各従
業員の氏名が格納されており、前述のグループ化を氏名
のうちの名字をキーとして行うものとすると、例えば鈴
木や田中と言うような名字に対応するグループのデータ
の量は他の名字のグループのデータ量に比べてかなり大
きくなり、そのような名字のグループのデータの処理を
担当するプロセッサの負荷が大きくなり、システム全体
の性能低下の原因となる。この性能低下を防ぐためにバ
ケット組合せ調整処理が行われる。
【0013】バケットとは、前述のように例えば識別番
号によってグループ化されたデータがグループとして全
体的に集められたまとまりのことであり、バケット組合
せ調整処理ではグループ化関数をうまく選んでバケット
の大きさが十分小さくなるようにし、1つのプロセッサ
が複数のバケットのデータの処理を担当して、並列プロ
セッサシステム内の各プロセッサが担当する複数のバケ
ットの組合せとしてのデータの総計が均一化されるよう
に調整する処理である。この処理は次の手順1〜手順4
によって行われる。
【0014】手順1:グループ化関数の出力の値の種類
がプロセッサ台数を大幅に上回る様なものを選択する。
より具体的には、1プロセッサ中のデータであって同一
のグループ化関数出力値を持つデータ群をまとめたもの
をサブバケットと総称するが、最も大きなサブバケット
のサイズがデータ総量をプロセッサ台数の自乗で割った
ものよりも十分小さい様な関数を選択する。なお、シス
テム内で同一のグループ化関数の(出力)値を持つサブ
バケットを全てのプロセッサから集めたものがバケット
となる。
【0015】手順2:予めこのグループ化関数を全デー
タに適用しておき、各サブバケットの大きさを調べてお
く。 手順3:どのサブバケット同士を組み合わせて同一のプ
ロセッサに転送すれば全プロセッサの処理データ量がほ
ぼ同じくなるかを考え、これが実現できる様にサブバケ
ット間の組合せを記憶しておく(あるプロセッサでサブ
バケットBとサブバケットCが組み合わされプロセッサ
Dに転送されるならば、全てのプロセッサでサブバケッ
トBとサブバケットCが組み合わされてプロセッサDに
転送されなければならない。この為上記評価は全てのプ
ロセッサでの全てのサブバケットサイズの情報を踏まえ
て行われる)。
【0016】手順4:実際のデータ処理が行われる時、
各プロセッサは上記情報に基づいてサブバケット間の組
合せを行い、他プロセッサへの転送を行う。グループ化
関数の値が同一で、ある1つのプロセッサへ転送される
データの総称がバケットである。
【0017】さてこの処理中での手順4では、各プロセ
ッサは各バケットに対応して複数のデータバッファを主
記憶上に準備し、データの生成(例えば二次記憶からの
データ読み出し)と並列してデータへのグループ化関数
の適用と評価(サブバケットへの分割)を行い、対応す
るデータバッファに投入する。そしてこのデータバッフ
ァ内に蓄積されたデータ量があるスレッショルド値を越
えた時、該データバッファ内容(バケットの一部)を対
応するプロセッサに送信する。
【0018】データバッファリングを行う理由は通常プ
ロセッサ間転送手段はデータ量に依存しないかなり大き
なオーバヘッドを持つ為で、転送性能を低下させない為
にはある程度まとまったデータ量を一括して転送するこ
とが必要だからである。
【0019】一般に並列プロセッサシステム内の1つの
プロセッサの主記憶容量は、システム内で処理されるべ
きデータの総量をプロセッサの台数で割った値、すなわ
ちバケットの組合せとして1つのプロセッサに転送され
るデータの総量よりもかなり小さい。前述のハッシュジ
ョイン処理を高速に行うためには、1つのグループとし
てグループ化されたデータ、すなわちバケットの大きさ
が1つのプロセッサの主記憶上に乗ることが望ましい。
このようにある程度まとまりを持つデータブロックを一
括して主記憶上に展開し、データ処理を高速化する可能
性はメモリコストの低下に伴って発生したものである。
主記憶上に1つのグループのデータが乗るようにバケッ
トを作成して、各プロセッサ内で処理を行う場合につい
て、具体的なプロセッサシステムを対象として従来例を
さらに詳しく説明する。
【0020】図8は並列プロセッサシステムの構成例で
ある。同図において、n+1個のプロセッサ(A0〜A
n)が、外部バス(B)16によって相互に接続されて
いる。各プロセッサ15はCPU20、主記憶装置2
1、二次メモリ22、および主記憶装置21と外部バス
16との間でデータの入出力に使用される入出力ポート
23から構成されている。このシステム内で、2つのプ
ロセッサの間で行われるデータの転送について説明す
る。
【0021】図9は2つのプロセッサの間におけるデー
タ転送の従来例の説明図である。同図においてプロセッ
サAiからプロセッサAjへのデータ転送について説明
する。同図において24はプロセッサAiにおいて二次
メモリ22iから読み出されたデータ、例えば1つのレ
コードであり、25はこのデータを他のプロセッサ、こ
こではAjに転送するために一時的にこのデータが格納
されるバッファ群であり、26iおよび26jはそれぞ
れのプロセッサの中でデータの転送を処理するプロセス
であり、27はプロセッサAiから転送されたデータで
あり、28は二次メモリ22iから読み出されたデータ
24をバッファ群25のうちのどのバッファに投入すべ
きかを決定するための変換テーブルであり、29はプロ
セッサAj内で転送されたデータを格納するための二次
メモリ22j内の領域である。
【0022】図9において、プロセッサAi側で二次メ
モリ22iから読み出されたデータ24に対して、プロ
セッサ26iによってデータのグループ化のためのグル
ープ化関数が適用される。そのグループ化関数の値によ
ってそのデータが所属すべきバケットが決定され、また
そのデータが転送されるべきプロセッサが決定される。
このデータがどのバケットに所属し、またどのプロセッ
サに転送されるべきかは、全てのプロセッサのデータの
予備読み込みによって、例えば図示しない親プロセッ
サ、または図8のプロセッサ15のうちのいずれか1つ
によって、全てのプロセッサでの負荷が均一になるよう
なバケットの組合せとして決定されており、その結果が
変換テーブル28に格納されている。
【0023】図10は転送元プロセッサでの変換テーブ
ルの従来例である。同図において変換テーブル28は、
グループ化関数出力値からその出力値に対応するデータ
がどの中間バケットに所属すべきかを示す中間バケット
識別子への変換テーブル28aと、中間バケット識別子
からそのデータの転送相手先プロセッサへの変換テーブ
ル28bから構成されている。ここで中間バケットとは
データが転送相手先プロセッサに転送され、そのプロセ
ッサ内で最終的なバケットとしてまとめられる過程にお
ける中間的なバケットを意味し、転送元プロセッサ内で
は前述のサブバケットに対応するものである。
【0024】データ24に対して適用されるグループ化
関数としては多くの種類が考えられるが、例えばデータ
が整数であり、またシステム内で扱われる全てのデータ
のグループ化結果としてのグループの数にあたる(中
間)バケットの数がMであるならば、5Mを越える素数
による剰余演算をグループ化関数として用いることがで
きる。
【0025】システム内に存在する(中間)バケットの
数がMである時、転送データ格納用バッファ群25は、
少なくともMより大きい数L+1個の小バッファから構
成される。一般にバッファ群25へのデータの格納と、
バッファ群25から他のプロセッサへのデータへの転送
を同時に実行可能とするためにダブルバッファリングが
行われ、小バッファの数L+1はバケットの数の2倍、
すなわち2Mより大きくなる。
【0026】プロセッサAi側で二次メモリ22iから
読み出されたデータ24は、そのデータが所属すべきバ
ケットに対応するバッファ群25内の小バッファに格納
され、この小バッファの容量があるスレッショルド値A
を越えた時、その小バッファ内のデータはその中間バケ
ットが転送されるべきプロセッサ、ここではAjに転送
される。転送されたデータ27は、プロセス26jによ
ってその中間バケットが格納されるべき二次メモリ22
j内の領域29に格納され、全ての他のプロセッサから
転送される対応する中間バケットと組み合わされて最終
的なバケットに構成される。
【0027】
【発明が解決しようとする課題】図8〜図10で説明し
たように、従来においては他のプロセッサに転送される
べきデータは、システム内に存在するバケットの数に対
応する個数の小バッファによって構成されるバッファ群
25のうちのいずれかに格納され、そのバケットを処理
すべきプロセッサに転送されるが、この小バッファの数
が非常に多くなり、主記憶上に設けられるこれらの小バ
ッファが主記憶の大部分の領域を占有してしまうと言う
問題点があった。
【0028】前述のように、プロセッサの主記憶容量は
システム内で取り扱われるべきデータの総量をプロセッ
サの台数で割った値に比較して一般に非常に小さく、シ
ステム内に存在するバケットの数は非常に多くなる。二
次メモリからデータが読み出される順序はあらかじめ予
想することができないので、生成される可能生があるバ
ケットの数Mを上回る数の小バッファが必要となり、し
かも個々のバッファの容量としては、プロセッサ間で行
われるデータ転送のオーバヘッドによって定まるスレッ
ショルド値A以上であることが必要である。
【0029】生成される可能性のあるバケットを予備読
み込みによって調査することは不可能ではないが、その
調査内容を全て記憶してバッファ管理に反映することは
事実上不可能である。
【0030】システム内に存在するバケットの数Mはデ
ータ総量をプロセッサの主記憶容量で割ったものに対応
し、その結果図9で他のプロセッサへの転送データを一
時的に格納するためのバッファ群25の容量は全体とし
て少なくとも次式で与えられる値を上回る必要がある。
【0031】A×データ総量/プロセッサ主記憶容量 ここでAはバッファ群25の1つの小バッファ内のデー
タを一括転送するためのスレッショルド値である。
【0032】例えばこのスレッショルド値Aが64K
B、データ総量が64GB、主記憶容量が64MB程度
であるとすると、上式の値は64MBとなり、主記憶容
量を全て使いきってしまうような容量のバッファ群25
が必要となることになり、実際問題としてこのような方
式を実現することは不可能となる。このバッファ容量は
システム内の全てのプロセッサに対して必要となるもの
であり、このような方式を持つ並列プロセッサシステム
は実現不可能であると言う問題点があった。
【0033】本発明は、バケットの大きさを主記憶容量
の程度に止めてデータの高速処理を可能とし、かつ主記
憶容量の圧迫と言う問題点を解決することができる並列
プロセッサシステムを実現することを目的とする。
【0034】
【課題を解決するための手段】図1は本発明の原理構成
ブロック図である。同図は、自プロセッサから他プロセ
ッサに転送すべきデータの生成と並行してプロセッサ間
でデータの転送が行われ、転送されたデータを用いて処
理が実行される並列プロセッサシステムの原理ブロック
図である。
【0035】図1において、第1のデータ記憶手段1は
並列プロセッサシステム内の各プロセッサの内部に複数
個設けられ、それぞれ複数のデータ転送相手先プロセッ
サに対応して転送すべきデータが一時的に格納されるも
のであり、例えば小バッファである。
【0036】また第2のデータ記憶手段2は、同様に各
プロセッサの内部に複数個設けられ、他のプロセッサか
ら転送されたデータを自プロセッサ内での処理の単位、
例えばバケットに適合するように分割して格納するため
のものであり、第1のデータ記憶手段1と同様に例えば
小バッファである。
【0037】これらそれぞれ複数の第1のデータ記憶手
段1、および第2のデータ記憶手段2に対応する小バッ
ファ群は、例えば各プロセッサの主記憶上に設けられ
る。
【0038】
【作用】本発明においては、他のプロセッサに転送され
るべきデータは転送相手先プロセッサに対応する小バッ
ファに一次格納された後、その小バッファの容量がある
スレッショルド値を越えた時点で相手先プロセッサに転
送される。前述のように、1つのプロセッサに転送され
るデータは各プロセッサでの処理量を均一化するために
調整が行われた複数のバケットの組合せとなるが、本発
明においてはこれらの複数のバケットを区別することな
く、データ転送が行われる。
【0039】データ転送元プロセッサにおいては、例え
ば転送相手先プロセッサを決定するために第1のグルー
プ化関数が適用され、転送相手先プロセッサが決定され
たデータはその相手先プロセッサに対応する第1のデー
タ記憶手段1に格納され、その格納容量があるスレッシ
ョルド値を越えた時点で相手先プロセッサに転送され
る。
【0040】相手先プロセッサでは、転送されたデータ
に第2のグループ化関数を適用してそのデータを中間バ
ケットに分割し、それぞれの中間バケットに対応する第
2のデータ記憶手段2を構成する小バッファにそれら中
間バケットを格納し、格納されたデータは格納容量があ
るスレッショルド値A′を越えた時点で、二次メモリ内
でその中間バケットが格納され、組み合わされて最終バ
ケットとなるべき領域に格納される。
【0041】以上のように、本発明によればデータの転
送元プロセッサにおいては転送データはバケットの区別
を行うことなく、転送相手先プロセッサに対応する1つ
の小バッファに格納されることになる。
【0042】
【実施例】図2は本発明の実施例におけるプロセッサ間
データ転送方式の説明図である。同図において、図9の
従来例と異なる部分を中心にデータ転送を説明する。
【0043】図2において、データ転送元プロセッサA
iには転送データを一時的に格納するデータバッファ群
30として、並列プロセッサシステム内のプロセッサの
数に対応する個数の小バッファが設けられる。この小バ
ッファの数は、システムに存在するバケットの個数がM
であれば、このMをプロセッサ台数で割った商のオーダ
ーである。
【0044】変換テーブル31は、図9の変換テーブル
28と異なり、グループ化関数の出力値からデータの転
送先プロセッサを決定するためのものである。図3は変
換テーブル31の実施例であり、このテーブルによって
グループ化関数出力値から転送先プロセッサ番号への変
換が行われる。
【0045】図4は図3の変換テーブルの更に詳細な説
明図である。同図において、例えばグループ化関数の出
力値が1,111、および75のデータがプロセッサ1
に転送され、これらのデータがまとめられたものがバケ
ット1となることを示している。なお、前述と異なり、
ここではグループ化関数の出力値の1つのみでなく、3
つの値が1つのバケットに対応するものとしている。
【0046】図2において、転送元プロセッサAi側で
二次メモリ22iから読み出されたデータ24に対し、
プロセス26iによってグループ化関数が適用される。
テーブル31の内容は、図9におけると同様に、データ
転送が終了した時点で全てのプロセッサの負荷が均一と
なるようにあらかじめ設定されており、グループ化関数
の出力値からデータ24を転送すべきプロセッサが特定
される。このグループ化関数としては図9で説明したも
のと同じものを用いてもよいが、ここでは転送先プロセ
ッサを決定するのみでよいので、データが整数である時
には、プロセッサ台数をNpeとする時、5Npeを越える
素数による剰余演算をグループ化関数として用いること
ができる。
【0047】転送元プロセッサAiに設けられるデータ
バッファ群30はシステム内のプロセッサ台数Npeに対
応し、少なくともこのプロセッサ台数より大きい数D+
1個の小バッファから構成される。従来例におけると同
様に、転送先プロセッサ1台に対して2個の小バッファ
が用意され、ダブルバッファリングが行われるために、
一般にD+1はプロセッサ台数の2倍、すなわち2Npe
より大きい。
【0048】二次メモリ22iから読み出されたデータ
24に対する転送相手先プロセッサが決定されると、そ
のデータはその相手先プロセッサに対応する小バッファ
に格納され、その小バッファの容量があるスレッショル
ド値Aを越えた時点で転送相手先プロセッサ、ここでは
Ajに転送される。
【0049】転送先プロセッサAj側では、転送された
データ27に対して再びグループ化関数が適用され、デ
ータの属するバケットの決定が行われる。すなわちプロ
セッサAj側のプロセス26jによって転送されたデー
タに対してグループ化関数が適用され、そのグループ化
関数の出力値によってデータバッファ群32のうちのい
ずれかの小バッファに転送データが格納される。
【0050】ここで適用されるグループ化関数は転送元
プロセッサ側で使われたものと同じでもよく、また違っ
ていてもよい。このグループ化関数はあるデータの転送
先プロセッサを特定するものではなく、あるデータが属
する(中間)バケットを特定するためのものであり、多
くの場合転送元プロセッサのグループ化関数とは異なる
ものが選択される。データが整数であり、システム全体
に存在するバケット数がMである時には、データを5M
を越える素数で剰余演算するものでもよい。
【0051】このグループ化関数の出力値に応じてデー
タが属すべき(中間)バケットが決定され、データバッ
ファ群32のうち、そのバケットに対応する小バッファ
に転送されたデータが一時的に格納されるが、このバケ
ットの決定は変換テーブル33の格納内容を用いて行わ
れる。図5は変換テーブル33の説明図である。同図に
おいて、グループ化関数の出力値をワードアドレスとし
てアクセスすることにより、その出力値に対応する中間
バケットの識別子が得られる。ここで1つのプロセッサ
に転送されるバケットの数は、システム内に存在するバ
ケットの総数Mをプロセッサの台数Npeで割った値のオ
ーダであり、図5のテーブルから得られる中間バケット
識別子は、そのプロセッサ内で処理が行われるバケット
だけを識別することができるローカルな中間バケット識
別子でもよいことになる。これに対して、従来例の図1
0におけるテーブル28aで得られる中間バケット識別
子はシステム全体の中でのバケットを識別するものであ
り、いわばグローバルな中間バケット識別子である。
【0052】図6は図5の変換テーブルの更に詳細な説
明図である。同図において、グループ化関数の出力値に
応じてローカルなバケット識別子が格納されている。こ
こでこのプロセッサに転送されるバケットは例えば3つ
であり、それぞれグループ化関数の値が1、111、お
よび75のバケットであるとして、それぞれに対応する
ローカルなバケット識別子が1,2および3としてこの
テーブルに格納されている。
【0053】図5、図6の変換テーブルの内容を用い
て、それぞれのバケットに対応する小バッファ、すなわ
ちバッファ群32内の1つの小バッファに格納された転
送データは、その小バッファのデータ格納量があるスレ
ッショルド値A′を越えた時に二次メモリ22jに送ら
れ、対応する中間バケット格納部29jに格納される。
ここでのスレッショルド値A′はデータ転送元における
小バッファのスレッショルド値Aとは異なり、プロセッ
サ間の通信のオーバヘッドにより決定されるものではな
く、ディスクなどの二次メモリへのアクセスのオーバヘ
ッドによって決定されるものである。
【0054】図2の実施例においては、図9の従来例と
異なり各プロセッサにはデータの転送を受けてそのデー
タを分割して格納するためのバッファ群32が必要とな
る。このバッファ群32を構成する小バッファの個数
は、システム全体に存在するバケットの総数、例えば10
00をプロセッサの台数、例えば64で割った値となり、
16個程度である。
【0055】前述のシステム全体のデータ量64GB、
主記憶容量64MB、他のプロセッサへのデータ転送の
ためのバッファ容量のスレッショルド値A=64KB、
およびプロセッサ台数64を用いると、転送されたデー
タが格納された小バッファから二次メモリへのデータ転
送を行う時のスレッショルド値A′を4KBとして、他
プロセッサへのデータ転送のためのバッファ群30の容
量は最低4MB(64KB×64プロセッサ)、他プロ
セッサから転送されたデータを格納するためのバッファ
群32の容量は最低64KB(4KB+(64GB/6
4MB)/64プロセッサ)となり、合計で4.064 MB
と従来例の64MBに比べて非常に小さくなることが分
かる。しかもデータの受信側プロセッサでのバケット圧
分、すなわち再グループ化処理はメモリ上で実行できる
ために、処理全体の実行速度には悪い影響を与えること
なく行われる。
【0056】
【発明の効果】以上詳細に説明したように、本発明によ
ればデータの転送時には相手先プロセッサを特定するの
みでデータ転送を行うために、転送データを一時的に格
納するためのバッファ容量を小さくすることができ、か
つデータを主記憶に乗るような大きさのバケットに分割
することが可能となり、更に各プロセッサでの処理すべ
き負荷を均一にすることができる。これによって並列プ
ロセッサシステムでの処理の高速化に寄与するところが
大きい。
【図面の簡単な説明】
【図1】本発明の原理構成ブロック図である。
【図2】実施例におけるプロセッサ間データ転送方式の
説明図である。
【図3】データ転送時に用いられる変換テーブルの例を
示す図である。
【図4】図3の変換テーブルの具体的な格納内容を説明
する図である。
【図5】転送されたデータをバケットに分割するために
用いられる変換テーブルの例を示す図である。
【図6】図5の変換テーブルの具体的な格納内容を説明
する図である。
【図7】データ分散型並列プロセッサシステムの構成を
示すブロック図である。
【図8】並列プロセッサシステムにおける各プロセッサ
の構成を示す図である。
【図9】プロセッサ間データ転送方式の従来例を説明す
る図である。
【図10】データ転送時に用いられる変換テーブルの従
来例を示す図である。
【符号の説明】
1 第1のデータ記憶手段 2 第2のデータ記憶手段 10,15 プロセッサ 11,22 二次メモリ 12 ネットワーク 20 中央処理装置(CPU) 21 主記憶装置 23 入出力ポート 28,31 データ転送時に用いられる変換テーブル 25,30 転送データ格納用バッファ群 32 転送されたデータを格納するためのバッファ群 33 転送されたデータをバケットに分割するための変
換テーブル

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 自プロセッサから他プロセッサに転送す
    べきデータの生成と並行してプロセッサ間でデータの転
    送が行われ、該転送されたデータを用いて各プロセッサ
    で処理が実行される並列プロセッサシステムにおいて、 前記並列プロセッサシステム内の各プロセッサが、それ
    ぞれ複数のデータ転送相手先プロセッサに対応して、転
    送すべきデータを一時的に格納する複数の第1のデータ
    記憶手段(1)と、 他プロセッサから転送されたデータを自プロセッサ内で
    の処理の単位に適合するように分割して格納する複数の
    第2のデータ記憶手段(2)とを備えたことを特徴とす
    る並列プロセッサシステム。
  2. 【請求項2】 前記第1のデータ記憶手段(1)と、第
    2のデータ記憶手段(2)とが、それぞれ前記各プロセ
    ッサ内の主記憶上に設けられることを特徴とする請求項
    1記載の並列プロセッサシステム。
  3. 【請求項3】 前記並列プロセッサシステム内の各プロ
    セッサが、システム内の全データに対する第1のグルー
    プ化関数の適用結果に応じて、自プロセッサ内のデータ
    の転送相手先プロセッサを決定することを特徴とする請
    求項1記載の並列プロセッサシステム。
  4. 【請求項4】 前記並列プロセッサシステム内で扱われ
    るデータが整数であり、前記第1のグループ化関数が該
    プロセッサシステム内のプロセッサの台数の複数倍を越
    える素数による該整数のデータの剰余演算であることを
    特徴とする請求項3記載の並列プロセッサシステム。
  5. 【請求項5】 前記並列プロセッサシステム内の各プロ
    セッサが、前記複数の第1のデータ記憶手段(1)のそ
    れぞれに格納されたデータの量があらかじめ定められた
    スレッショルド値を越えた時に、対応する転送相手先プ
    ロセッサにデータの一括転送を行うことを特徴とする請
    求項1記載の並列プロセッサシステム。
  6. 【請求項6】 前記並列プロセッサシステム内の各プロ
    セッサが、前記他プロセッサから転送されたデータを自
    プロセッサ内での処理の単位に適合するように分割する
    ために、該転送されたデータに対して第2のグループ化
    関数を適用することを特徴とする請求項1記載の並列プ
    ロセッサシステム。
  7. 【請求項7】 前記並列プロセッサシステム内で扱われ
    るデータが整数であり、前記第2のグループ化関数が該
    プロセッサシステムで処理されるべきデータの総量を1
    つのプロセッサの主記憶容量で除算した商の複数倍を越
    える素数による該整数データの剰余演算であることを特
    徴とする請求項6記載の並列プロセッサシステム。
  8. 【請求項8】 前記並列プロセッサシステム内の各プロ
    セッサが、前記他プロセッサから転送され、自プロセッ
    サ内での処理の単位に適合するように分割されて前記複
    数の第2のデータ記憶手段(2)のそれぞれに格納され
    たデータの量があらかじめ定められたスレッショルド値
    を越えた時に、該データを二次記憶装置に転送すること
    を特徴とする請求項1記載の並列プロセッサシステム。
  9. 【請求項9】 前記第1のデータ記憶手段(1)の数
    が、前記他プロセッサに転送すべきデータの格納と格納
    されたデータの転送とを同時に実行可能とするために、
    前記並列プロセッサシステム内のプロセッサの数の2倍
    以上であることを特徴とする請求項1記載の並列プロセ
    ッサシステム。
  10. 【請求項10】 前記並列プロセッサシステム内の各プ
    ロセッサが、システム内の全データに対する1つのグル
    ープ化関数の適用結果に応じて、自プロセッサ内のデー
    タの転送相手先プロセッサを決定し、 他プロセッサから転送されたデータを自プロセッサ内で
    の処理の単位に適合するように分割するにあたり、該1
    つのグループ化関数を再び転送されたデータに適用し、
    該適用結果を更に自プロセッサ内での処理の単位に対応
    する値に変換して前記複数の第2のデータ記憶手段
    (2)に該データを格納することを特徴とする請求項1
    記載の並列プロセッサシステム。
JP04210494A 1994-03-14 1994-03-14 並列プロセッサシステム Expired - Lifetime JP3617672B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP04210494A JP3617672B2 (ja) 1994-03-14 1994-03-14 並列プロセッサシステム
US08/724,428 US5901324A (en) 1994-03-14 1996-10-01 Parallel processor system for transmitting data in small buffers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP04210494A JP3617672B2 (ja) 1994-03-14 1994-03-14 並列プロセッサシステム

Publications (2)

Publication Number Publication Date
JPH07249019A true JPH07249019A (ja) 1995-09-26
JP3617672B2 JP3617672B2 (ja) 2005-02-09

Family

ID=12626675

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04210494A Expired - Lifetime JP3617672B2 (ja) 1994-03-14 1994-03-14 並列プロセッサシステム

Country Status (2)

Country Link
US (1) US5901324A (ja)
JP (1) JP3617672B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007011673A (ja) * 2005-06-30 2007-01-18 Fujitsu Ltd ホスト間データ転送方法、プログラム及びシステム
US10075526B2 (en) 2015-02-02 2018-09-11 Fujitsu Limited Data transfer controlling method, information processing apparatus, and storage medium

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7085769B1 (en) * 2001-04-26 2006-08-01 Ncr Corporation Method and apparatus for performing hash join
US7676588B2 (en) * 2001-10-05 2010-03-09 International Business Machines Corporation Programmable network protocol handler architecture
US7590620B1 (en) * 2004-06-18 2009-09-15 Google Inc. System and method for analyzing data records
JP5658827B2 (ja) * 2011-06-24 2015-01-28 株式会社日立製作所 ストレージシステム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5301337A (en) * 1990-04-06 1994-04-05 Bolt Beranek And Newman Inc. Distributed resource management system using hashing operation to direct resource request from different processors to the processor controlling the requested resource
US5245337A (en) * 1991-05-29 1993-09-14 Triada, Ltd. Data compression with pipeline processors having separate memories
JP3679813B2 (ja) * 1991-07-22 2005-08-03 株式会社日立製作所 並列計算機
JPH05342178A (ja) * 1992-06-10 1993-12-24 Hitachi Ltd 調停回路およびそれを用いたデータ処理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007011673A (ja) * 2005-06-30 2007-01-18 Fujitsu Ltd ホスト間データ転送方法、プログラム及びシステム
US10075526B2 (en) 2015-02-02 2018-09-11 Fujitsu Limited Data transfer controlling method, information processing apparatus, and storage medium

Also Published As

Publication number Publication date
JP3617672B2 (ja) 2005-02-09
US5901324A (en) 1999-05-04

Similar Documents

Publication Publication Date Title
US5640554A (en) Parallel merge and sort process method and system thereof
KR101502896B1 (ko) 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법
CN102541858B (zh) 基于映射和规约的数据均衡性处理方法、装置及系统
US20150127880A1 (en) Efficient implementations for mapreduce systems
US5854938A (en) Parallel processor apparatus in which data is divided in sequential stages
EP3657740A1 (en) Message forwarding
US6298382B1 (en) Information retrieving method, information retrieving system, and retrieval managing unit for the same
JPH07306824A (ja) メモリシステム、コンピュータシステム、メモリモジュール、および能動メモリ素子
JP3395208B2 (ja) 分散データベースのソート方法およびアクセス方法
JPH1097544A (ja) データベース処理システム
Martin Spiral storage: Incrementally augmentable hash addressed storage
JPH07249019A (ja) 並列プロセッサシステム
US7162579B2 (en) Asymmetrical load balancing for mirrored storage volumes
JPH07160557A (ja) データベースアクセス処理方法
CN107656980A (zh) 应用于分布式数据库系统中的方法及分布式数据库系统
CN1097783C (zh) 数据处理的系统和方法以及带有这类系统的通信系统
Kuratli Distributed Join Result Materialization over High-Performance Networks
CN108733678A (zh) 一种数据搜索的方法、装置和相关设备
CN102194002B (zh) 哈希表的表项添加、删除、查找方法及哈希表存储装置
JPH06251067A (ja) 並列データ検索装置
WO2012159480A1 (zh) 哈希表的表项添加、删除、查找方法及哈希表存储装置
JPS6175649A (ja) 通信制御装置のバツフア管理方式
JPH01156818A (ja) バッファ領域設定方法
JPH064389A (ja) ネームサーバ装置
JPS631196A (ja) デ−タ索引方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040401

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040525

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040720

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20040726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040810

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041006

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20041102

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041104

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081119

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081119

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091119

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101119

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101119

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111119

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111119

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121119

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121119

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131119

Year of fee payment: 9

EXPY Cancellation because of completion of term