JP2013025392A - 情報処理装置、データ配置方法及びプログラム - Google Patents

情報処理装置、データ配置方法及びプログラム Download PDF

Info

Publication number
JP2013025392A
JP2013025392A JP2011156948A JP2011156948A JP2013025392A JP 2013025392 A JP2013025392 A JP 2013025392A JP 2011156948 A JP2011156948 A JP 2011156948A JP 2011156948 A JP2011156948 A JP 2011156948A JP 2013025392 A JP2013025392 A JP 2013025392A
Authority
JP
Japan
Prior art keywords
data
distributed
accelerators
arrangement
shared memory
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.)
Withdrawn
Application number
JP2011156948A
Other languages
English (en)
Inventor
Hiroaki Inoue
浩明 井上
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2011156948A priority Critical patent/JP2013025392A/ja
Publication of JP2013025392A publication Critical patent/JP2013025392A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

【課題】複数のアクセラレータを導入した場合に、効率的なデータの再配置を行うことができる情報処理装置、データ配置方法及びプログラムを提供すること
【解決手段】本発明にかかる情報処理装置10は、処理実行前データを記憶する共有メモリ30と、処理実行前データを用いて第1の処理を実行するアクセラレータ50G1〜50Gmと、複数のアクセラレータにおいて分散処理されたデータを、アクセラレータ50G1〜50Gmの数よりも多い分散配置データとして共有メモリ30に分散配置するデータ配置部32と、分散配置データを、アクセラレータ50G1〜50Gmのうち分散処理されたデータを用いて第2の処理を実行するアクセラレータと同数の集約配置データとして共有メモリ30に集約配置するデータ集約部34と、を備えるものである。
【選択図】図1

Description

本発明は複数のアクセラレータを制御してデータ処理を実行する情報処理装置に関する。
近年、半導体プロセスの進化により、多数の演算装置を内蔵したアクセラレータが普及している。例えば、アクセラレータとして、GPGPU(General-purpose computing on graphics processing units)がある。情報処理装置にアクセラレータを導入し、特定の処理についてアクセラレータを用いて実行することにより、情報処理装置は、CPUだけが計算を行う場合よりも高い性能を実現することができる。しかしながら、さらなる高性能化を目指して、情報処理装置に複数のアクセラレータを導入しても、複数のアクセラレータを効率よく活用することができないという課題があった。したがって、複数のアクセラレータを並列処理させるような情報処理装置が望まれていた。
図15は、ネットワーク接続された一般的な情報処理装置を示している。この図では、インターネット1000を介して、サーバ3000S1乃至3000S4とが接続されている。
ここで、複数の情報処理装置(サーバ3000S1乃至3000S4)における並列処理方式について説明する。この並列処理方式は特許文献1に開示されている。キーとバリューという、2つの値のペアの列からなるデータは、4つのサーバ3000S1乃至S4に等分供給され、それぞれのサーバ上でMAP処理と呼ばれるユーザ規定のプログラムを実行する。MAP処理を実行することにより、キーとバリューという2つの値のペアの列からなるデータ列が、サーバ3000S1乃至S4から中間バッファに出力され蓄えられる。
その後、中間バッファに蓄えられたデータは、キーの値に従い、サーバ3000S1乃至S4に再配置される。その後、サーバ3000S1乃至S4は、再配置されたデータを用いて、REDUCE処理と呼ばれるユーザ規定のプログラムを実行する。
米国特許7650331号公報 特開2010−244470号公報
しかしながら、特許文献1に開示されている方式は、次の問題点を有している。特許文献1には、複数のサーバにおける並列処理はネットワーク接続を介して実行されることが開示されている。そのため、単一情報処理装置内における複数のアクセラレータを用いた並列処理は想定されていない。また、MAP処理後における複数サーバ間でのデータの再配置は、やはりネットワーク接続を仮定しており、共有メモリ上におけるデータの再配置の方法は開示されていない。
また、特許文献2は、複数のサーバ間での負荷分散を開示しているものの、やはり特許文献1と同様に、共有メモリ上におけるデータの再配置の方法を開示していない。
そのため、特許文献1及び2に開示されている複数のサーバにおける並列処理もしくは負荷分散を用いたとしても、情報処理装置内に複数のアクセラレータを導入した場合における、効率的なデータの再配置を行うことができず、複数のアクセラレータを用いた高い並列処理能力を実現することができないという問題がある。
本発明はこのような問題を解決するために、複数のアクセラレータを導入した場合に、効率的なデータの再配置を行うことができる情報処理装置、データ配置方法及びプログラムを提供することを目的とする。
本発明の第1の態様にかかる情報処理装置は、処理実行前データを記憶する共有メモリと、前記処理実行前データを用いて第1の処理を実行する複数のアクセラレータと、前記複数のアクセラレータにおいて分散処理されたデータを、前記複数のアクセラレータの数よりも多い分散配置データとして前記共有メモリに分散配置するデータ配置部と、前記分散配置データを、前記複数のアクセラレータのうち前記分散処理されたデータを用いて第2の処理を実行するアクセラレータと同数の集約配置データとして前記共有メモリに集約配置するデータ集約部と、を備えるものである。
本発明の第2の態様にかかるデータ配置方法は、共有メモリに記憶されている処理実行前データを、複数のアクセラレータにおいて第1の処理を実行し、前記複数のアクセラレータにおいて分散処理されたデータを、前記複数のアクセラレータの数よりも多い分散配置データとして前記共有メモリに分散配置し、前記分散配置データを、前記複数おアクセラレータのうち前記分散処理されたデータを用いて第2の処理を実行するアクセラレータと同数の集約配置データとして前記共有メモリに集約配置するものである。
本発明の第3の態様にかかるプログラムは、複数のアクセラレータにおいて第1の処理を実行され、前記複数のアクセラレータにおいて分散処理されたデータを、前記複数のアクセラレータの数よりも多い分散配置データとして共有メモリに分散配置するステップと、前記分散配置データを、前記複数のアクセラレータのうち前記分散処理されたデータを用いて第2の処理を実行するアクセラレータと同数の集約配置データとして集約配置するステップと、をコンピュータに実行させるものである。
本発明により、複数のアクセラレータを導入した場合に、効率的なデータの再配置を行うことができる情報処理装置、データ配置方法及びプログラムを提供することができる。
実施の形態1にかかる情報処理装置の構成図である。 実施の形態1にかかる情報処理装置の構成図である。 実施の形態1にかかる情報処理装置の並列処理方式を示す図である。 実施の形態1にかかるプロセッサ制御部の構成図である。 実施の形態1にかかる情報処理装置におけるデータの配置を示す図である。 実施の形態1にかかる情報処理装置におけるデータの配置を示す図である。 実施の形態1にかかる情報処理装置におけるデータの配置を示す図である。 実施の形態1にかかる情報処理装置におけるデータの配置を示す図である。 実施の形態1にかかる情報処理装置におけるデータの配置を示す図である。 実施の形態1にかかる情報処理装置におけるデータの配置を示す図である。 実施の形態1にかかる情報処理装置におけるデータの配置を示す図である。 実施の形態1にかかる情報処理装置におけるデータの配置を示す図である。 実施の形態1にかかる情報処理装置におけるデータの配置を示す図である。 実施の形態1にかかる情報処理装置におけるMAPREDUCE処理のフローチャートである。 ネットワークを介して接続された複数のサーバ装置を示す図である。
(実施の形態1)
以下、図面を参照して本発明の実施の形態について説明する。図1を用いて本発明の実施の形態1にかかる情報処理装置10の構成例について説明する。情報処理装置10は、共有メモリ30と、アクセラレータ50G1〜50Gmと、データ配置部32と、データ集約部34と、を備えている。
共有メモリ30は、アクセラレータ50G1〜50Gmにおいてデータ処理される際に用いられるデータ(以下、処理実行前データと称する)を保持している。共有メモリ30は、RAM(Random Access Memory)等により構成されてもよい。
アクセラレータ50G1〜50Gmとは、情報処理装置10には、複数のアクセラレータが導入されていることを示している。mは2以上の整数である。アクセラレータ50G1〜50Gmは、共有メモリ30に保持されている処理実行前データを用いて、データの分散処理を実行する。
データ配置部32は、アクセラレータ50G1〜50Gmにおいて分散処理されたデータを、アクセラレータ50G1〜50Gmの数よりも多い分散配置データとして、共有メモリ30に分散配置する。
データ集約部34は、分散配置データを、アクセラレータ50G1〜50Gmのうち、分散処理されたデータを用いて、あらかじめ規定された演算処理を実行するアクセラレータと同数の集約配置データとして、共有メモリ30に集約配置する。アクセラレータ50G1〜50Gmの全てが分散処理されたデータを用いて、あらかじめ規定された演算処理を実行する場合、アクセラレータ50G1〜50Gmと同じ数の集約配置データが生成され、共有メモリ30に集約配置される。
以上説明したように、図1の情報処理装置10を用いることにより、アクセラレータ50G1〜50Gmにおいて分散処理されたデータを、アクセラレータ50G1〜50Gmの数よりも多い分散配置データとして分散配置することにより、分散処理されたデータに対する競合アクセスを減らすことができる。つまり、共有メモリ30上にアクセラレータ50G1〜50Gmの数と同じ数のデータに再配置する場合と比べて、アクセラレータ50G1〜50Gmの数よりも多い分散配置データとして分散配置することにより、共有メモリ上におけるロック競合などを緩和することができる。これにより、情報処理装置10の性能向上を実現することができる。
続いて、図2を用いて本発明の実施の形態1にかかる情報処理装置10の詳細な構成例について説明する。情報処理装置10は、CPU20P1〜20Pnを含むCPU群20と、共有メモリ30と、チップセット40と、アクセラレータ50G1〜50Gmと、ローカルメモリ60M1〜60Mmと、プロセッサ制御部100とを備えている。
CPU群20は、共有メモリ30と、チップセット40と、プロセッサ制御部100とに接続される。CPU群20に含まれるCPU20P1〜20Pnは、プロセッサや、中央演算装置等であり、計算(もしくは演算)処理を実行する回路により構成される。nは2以上の整数を示し、CPU群20は、2以上のCPUを含む。また、CPU群20は、プロセッサ制御部100からの指示を受けて動作するように構成されている。
共有メモリ30は、CPU20P1〜20Pn及びアクセラレータ50G1〜50Gmにおいてデータ処理されるデータを保持している。また、共有メモリ30上のデータは、プロセッサ制御部100によって制御されたCPU群20によって、データの再配置又はデータのコピー処理等が実行される。
チップセット40は、CPU群20と、アクセラレータ50G1〜50Gmとを接続するために用いられる。チップセット40は、例えば、CPU群20と、アクセラレータ50G1〜50Gmを接続するシステムバスとして動作してもよい。
アクセラレータ50G1〜50Gmは、GPGPUやFPGA(Field-Programmable Gate Array)といった、CPUよりも高密度な演算装置を備えたデバイスである。アクセラレータ50G1〜50Gmは、1対1に対応するローカルメモリ60M1〜60Mmに接続される。アクセラレータ50G1〜50Gmは、それぞれ同じ種類及び性能であっても異なる種類及び性能であってもよい。
プロセッサ制御部100は、アクセラレータ50G1〜50Gmと共有メモリ30との間におけるデータコピーや、アクセラレータ50G1〜50Gmにおけるプログラムの実行指示、共有メモリ30上におけるデータの分散配置、グルーピング、集約配置といった機能を有する。
ローカルメモリ60M1は、アクセラレータ50G1に接続され、ローカルメモリ60M2は、アクセラレータ50G2に接続され、ローカルメモリ60Mmは、アクセラレータ50Gmに接続されている。つまり、ひとつのアクセラレータに対してひとつのローカルメモリが対応して設けられている。ローカルメモリ60M1〜60Mmは、アクセラレータ50G1〜50Gmにおけるデータ処理に用いられるデータを保持し、もしくは、アクセラレータ50G1〜50Gmにおいてデータ処理されたデータを保持する。
続いて、図3を用いて本発明の実施の形態1にかかる並列処理方式を説明する。共有メモリ30に保持されているデータ200は、アクセラレータ50G1〜50Gmに等分ないしアクセラレータの演算能力に応じて配分供給される。アクセラレータ50G1〜50Gmは、供給されたデータを用いて、MAP処理と称されるユーザ規定のプログラムを実行する。アクセラレータ50G1〜50Gmは、MAP処理を実行することにより、キーとバリューという2つの値のペアの列からなるデータ列を生成する。例えば、アクセラレータ50G1は、キーの値を350、バリューの値を10とするデータを含むデータ列を生成する。アクセラレータ50G2は、キーの値を220、バリューの値を20とするデータを含むデータ列を生成し、アクセラレータ50G3は、キーの値を150、バリューの値を777とするデータを含むデータ列を生成し、アクセラレータ50Gmは、キーの値を70、バリューの値を1とするデータを含むデータ列を生成する。
ここで、アクセラレータ50G1においてMAP処理されたデータをデータ列300M1、アクセラレータ50G2においてMAP処理されたデータをデータ列300M2、アクセラレータ50G3においてMAP処理されたデータをデータ列300M3、アクセラレータ50GmにおいてMAP処理されたデータをデータ列300Mmとする。
MAP処理により生成されたデータ列は、中間バッファに蓄えられる。その後、中間バッファに蓄えられたデータは、それぞれのデータ列のキーの値に従い、アクセラレータ50G1〜50Gmに再配置される。例えば、本図においては、キーの値が1〜100であれば、アクセラレータ50G1へ、101〜200であれば、アクセラレータ50G2へ、201〜300であれば、アクセラレータ50G3へ、そして、301〜400であれば、アクセラレータ50Gmへと再配置される。その後、アクセラレータ50G1〜50Gmは、再配置されたデータを用いて、REDUCEと称されるユーザ規定のプログラムを実行する。REDUCE処理は、アクセラレータ50G1〜50Gmの全てにおいて実行されてもよく、アクセラレータ50G1〜50Gmの一部のアクセラレータにおいて実行されてもよい。
続いて、図4を用いて本発明の実施の形態1にかかるプロセッサ制御部100の構成例について説明する。プロセッサ制御部100は、データコピー制御部110と、アクセラレータ制御部120と、データ分散化制御部130と、データ再配置制御部140と、データ集約化制御部150と、を備えている。
データコピー制御部110は、共有メモリ30と、アクセラレータ50G1〜50Gmに接続されたローカルメモリ60M1〜60Mmとの間におけるデータの送受信制御を行う。つまり、データコピー制御部110は、CPU群20に対して、共有メモリ30に保持されているデータをローカルメモリ60M1〜60Mmへコピーし、もしくは、ローカルメモリ60M1〜60Mmに保持されているデータを共有メモリ30へコピーするように指示する。データコピー制御部110は、CPU群20に対して動作指示信号を出力し、CPU群20の動作を制御してもよい。プロセッサ制御部100内の他の構成要素についても同様である。
アクセラレータ制御部120は、アクセラレータ50G1〜50Gmに対して、MAP処理やREDUCE処理といったユーザ規定のプログラムの実行を指示する。
データ分散化制御部130は、共有メモリ30上のデータを分散的に配置する。具体的には、データ分散化制御部130は、CPU群20に対して、アクセラレータ50G1〜50GmにおいてMAP処理されたデータ列を用いて、アクセラレータ50G1〜50Gmの数よりも多い分散配置データ列を生成し、共有メモリ30上に分散配置データ列を分散的に配置するように指示する。
データ再配置制御部140は、データ分散化制御部130によって分散配置された分散配置データ列を、REDUCE処理を実行するアクセラレータの数と等分にグループ化する。もしくはデータ再配置制御部140は、REDUCE処理を実行するアクセラレータの演算能力に傾斜して、分散配置データ列を各グループに配分する。データ再配置制御部140は、CPU群20に対して、分散配置データ列をグループ化するように指示する。つまり、データ再配置制御部140は、CPU群20に対して、演算能力が他のアクセラレータに比べて高いアクセラレータに対して、相対的に多い数のデータをグループ化し、演算能力が他のアクセラレータに比べて低いアクセラレータに対して、相対的に低い数のデータをグループ化して対応づけるように指示してもよい。
データ集約化制御部150は、データ再配置制御部140によってグループ化されたデータを集約して、REDUCE処理を実行するために用いられる集約化データ列を生成する。具体的には、データ集約化制御部150は、CPU群20に対して、グループ化されたデータを集約して、集約化データ列を生成するように指示する。
続いて、図5を用いて、本発明の実施の形態1にかかる、初期データの配置について説明する。本図は、図2の構成において、共有メモリ30上に、処理対象となる初期データ列200が保持されている例を示している。
続いて、図6を用いて、MAP処理前のデータ配置について説明する。本図は、図5において共有メモリ30に保持されていた初期データ列200が分割され、ローカルメモリ60M1〜60Mmが、分割されたMAP処理前データ列201M1〜201Mmを保持している例について示している。初期データ列200は、データコピー制御部110の制御により、アクセラレータ50G1〜50Gmの数と等分に分割されてローカルメモリ60M1〜60Mmに配分されてもよく、アクセラレータ50G1〜50Gmの演算能力に応じて傾斜配分されてもよい。
続いて、図7を用いてMAP処理後のデータ配置について説明する。アクセラレータ50G1〜50Gmは、アクセラレータ制御部120の制御により、MAP処理前データ列201M1〜201Mmを用いてMAP処理を実行し、MAP処理後データ列300M1〜300Mmを生成する。MAP処理後データ列300M1〜300Mmは、ローカルメモリ60M1〜60Mmに保持される。つまり、ローカルメモリ60M1〜60Mmは、中間バッファとして、データ列300M1〜300Mmを保持してもよい。ここで、MAP処理前のデータ列201M1〜201MmとMAP処理後のデータ列300M1〜300Mmとの各サイズは同じでもよく、異なっていてもよい。
続いて、図8を用いて共有メモリ30におけるMAP処理後のデータ配置について説明する。ローカルメモリ60M1〜60Mmに保持されているMAP処理後データ列300M1〜300Mmは、データコピー制御部110の制御により、ローカルメモリ60M1〜60Mmから共有メモリ30に対してそのままコピーされる。このようにして、共有メモリ30上に、MAP処理後データ列300M1〜300Mmが保持される。
続いて、図9を用いて共有メモリ30におけるMAP処理後のデータの分散配置について説明する。共有メモリ30上のMAP処理後データ列300M1〜300Mmは、キーの値に応じて、データ分散化制御部130の制御により、情報処理装置10内のアクセラレータ数よりも多い数の分散配置データ列400M1〜400Mkへと再配置される。kは、2以上の整数であり、MAP処理後データ列に用いられる整数mよりも大きな値が設定される。例えば、分散配置データ列は、キーが1〜10であるデータを、分散配置データ列400M1とし、キーが11〜20であるデータを、分散配置データ列400M2とし、キーが391〜400であるデータを、分散配置データ列400Mkというように再配置する。分散配置データ列400M1〜400Mkは、MAP処理後データ列300M1〜300Mmの各サイズよりも小さくなるように、キーの範囲が定められる。
続いて、図10を用いて共有メモリ30上の分散配置データ列400M1〜400Mkのグルーピングについて説明する。分散配置データ列400M1〜400Mkは、アクセラレータ50G1〜50Gmの数よりも多いデータ列として、共有メモリ30上に分散配置されている。ここで、分散配置データ列400M1〜400Mkは、データ再配置制御部140の制御により、アクセラレータ50G1〜50Gmと同じ数のデータ列にグルーピングされる。もしくは、分散配置データ列400M1〜400Mkは、データ再配置制御部140の制御により、アクセラレータ50G1〜50GmのうちREDUCE処理を実行するアクセラレータの数と同じ数のデータ列にグルーピングされる。グルーピングされた分散配置データ列400M1〜400Mkの集合を、それぞれ500M1〜500Mmとする。各グループにおけるデータ列のサイズは、500M1〜500Mmにおいて等分にされてもよく、あるいは、アクセラレータの処理能力に応じて傾斜配分されてもよい。本図においては、キーの値が1〜100までをグループデータ列500M1とし、キーの値が101〜200までをグループデータ列500M2とし、キーの値が301〜400までをグループデータ列500Mmとするようにグルーピングされている。
続いて、図11を用いて共有メモリ30上のグループデータ列500M1〜500Mmの集約について説明する。グループデータ列500M1〜500Mmにグルーピングされている分散配置データ列は、データ集約化制御部150の制御により各グループ単位に集約されて、集約データ列600M1〜600Mmとして集約配置される。それぞれのグループデータ列500M1〜500Mmにグルーピングされている分散配置データ列を集約しているため、集約データ列600M1〜600Mmの数は、アクセラレータ50G1〜50Gmと同じ数となる。
続いて、図12を用いて、ローカルメモリ60M1〜60Mm上の集約データ列600M1〜600Mmの配置について説明する。共有メモリ30上に集約配置されている集約データ列600M1〜600Mmは、データコピー制御部110の制御により、それぞれローカルメモリ60M1〜60Mmへコピーされる。
続いて、図13を用いて、REDUCE処理後のデータの配置について説明する。アクセラレータ50G1〜50Gmは、アクセラレータ制御部120の制御により、ローカルメモリ60M1〜60Mmに蓄積されている集約データ列600M1〜600Mmを用いてREDUCE処理を実行する。アクセラレータ50G1〜50Gmは、REDUCE処理後のデータ列602M1〜602Mmを、ローカルメモリ60M1〜60Mmに蓄積する。ここで、REDUCE処理前の集約データ列600M1〜600MmとREDUCE処理後のデータ列602M1〜602Mmの各サイズは同じでもよく、異なっていてもよい。なお、アクセラレータ50G1〜50Gmは、REDUCE処理前に集約データ列600M1〜600Mmにソートをかけて、同一のキーが連続するように再配置を行ってもよい。同一のキーが連続するように再配置されることにより、REDUCE処理の実行時間を短縮させることができる。
ここで、共有メモリ30上のMAP処理後データ列の分散配置、及び、分散配置データ列の集約配置等は、CPU群20のCPU20P1〜20Pnによって実行される。そのため、分散配置されるデータ列の数は、CPU群20が備えるCPU20P1〜20Pnの数と同等もしくは、CPU20P1〜20Pnの数の近傍の数とすることにより情報処理装置10の性能が向上する。なぜなら、CPU20P1〜20Pnは、MAP処理後データ列にアクセスをして、分散配置を行い、分散配置データ列にアクセスをして、分散配置データ列を集約配置等行う。この時、CPU20P1〜20Pnは、同一の分散配置データ列へアクセスを行う場合、ロックなどの同期処理を用いて順序よくアクセスを行う。この場合、分散配置データ列の数が、CPU20P1〜20Pnの数よりも極端に少ない場合、複数のCPUから、分散配置データ列への競合アクセスが増加することになり、情報処理装置10の性能が低下する。そのため、分散配置データ列の数を増加させ、CPU20P1〜20Pnの数と同程度にすることにより、同一の分散配置データ列への競合アクセスを減少させることができる。
なお、上記の説明においては、分散配置の方法として、各分散配置データ列の扱うキーの範囲を小さくする方法について説明したが、ハッシュにより分散化する方法等を用いて分散配置を行ってもよい。
続いて、図14を用いて本発明の実施の形態1にかかる情報処理装置10におけるMAP/REDUCE処理の流れについて説明する。はじめに、データコピー制御部110は、CPU群20に対して、共有メモリ30の初期データ列200を分割し、MAP処理前データ列201M1〜201Mmとしてローカルメモリ60M1〜60Mmへコピーするように指示する(S1)。指示を受けたCPU群20のCPU20P1〜20Pnは、共有メモリ30上の初期データ列200へアクセスし、ローカルメモリ60M1〜60Mmへコピーするように動作する。
次に、アクセラレータ制御部120は、CPU群20を介してアクセラレータ50G1〜50Gmに対して、ローカルメモリ60M1〜60Mm上のMAP処理前データ列201M1〜201Mmを用いたMAP処理の実行を指示する(S2)。アクセラレータ50G1〜50Gmは、ローカルメモリ60M1〜60Mmに蓄積されているMAP処理前データ列201M1〜201Mmを抽出し、MAP処理を実行する。アクセラレータ50G1〜50Gmは、MAP処理後データ列300M1〜300Mmをローカルメモリ60M1〜60Mmへ蓄積する。
次に、データコピー制御部110は、CPU群20に対して、ローカルメモリ60M1〜60Mm上のMAP処理後データ列300M1〜300Mmを共有メモリ30へコピーするように指示する(S3)。指示を受けたCPU群20のCPU20P1〜20Pnは、アクセラレータ50G1〜50Gmを介してローカルメモリ60M1〜60Mmへアクセスし、MAP処理後データ列300M1〜300Mmを共有メモリ30上へコピーするように動作する。
次に、データ分散化制御部130は、CPU群20に対して、共有メモリ30上のMAP処理後データ列300M1〜300Mmを、分散配置データ列400M1〜400Mkとして分散配置するように指示する(S4)。指示を受けたCPU群20のCPU20P1〜20Pnは、共有メモリ30上のMAP処理後データ列300M1〜300Mmへアクセスし、MAP処理後データ列300M1〜300Mmをアクセラレータ50G1〜50Gmの数よりも多い数へ分散配置するように動作する。
次に、データ再配置制御部140は、CPU群20に対して、分散配置データ列400M1〜400Mkのグルーピングを指示する(S5)。例えば、指示を受けたCPU群20のCPU20P1〜20Pnは、アクセラレータ50G1〜50Gmの数と同数のグループを生成するように、分散配置データ列400M1〜400Mkのグルーピングをするように動作する。
次に、データ集約化制御部150は、CPU群20に対して、グループデータ列500M1〜500Mmを、集約データ列600M1〜600Mmとすることを指示する(S6)。指示を受けたCPU群20のCPU20P1〜20Pnは、グループデータ列500M1〜500Mmへアクセスし、それぞれのグループデータ列毎に、集約データ列600M1〜600Mmを生成するように動作する。
次に、データコピー制御部110は、CPU群20に対して共有メモリ30上の集約データ列600M1〜600Mmをローカルメモリ60M1〜60Mmへコピーすることを指示する(S7)。指示を受けたCPU群20のCPU20P1〜20Pnは、共有メモリ30上の集約データ列600M1〜600Mmへアクセスし、集約データ列600M1〜600Mmをローカルメモリ60M1〜60Mmへコピーするように動作する。
次に、アクセラレータ制御部120は、CPU群20を介してアクセラレータ50G1〜50Gmに対して、ローカルメモリ60M1〜60Mm上の集約データ列600M1〜600Mmを用いてREDUCE処理の実行を指示する(S8)。アクセラレータ50G1〜50Gmは、ローカルメモリ60M1〜60Mmに蓄積されている集約データ列600M1〜600Mmを抽出し、REDUCE処理を実行する。REDUCE処理実行後のデータ列は、ローカルメモリ60M1〜60Mmに一時的に蓄積され、その後、共有メモリ30にコピーされるようにしてもよい。
以上説明したように、本発明の実施の形態1にかかる情報処理装置10を用いることにより、MAP処理後データ列を、情報処理装置10内に搭載されているアクセラレータの数よりも多い数のデータ列に分散配置し、分散配置されたデータ列をさらにREDUCE処理を実行するアクセラレータの数に集約配置することができる。このように、分散配置を経ることにより、通常のデータ再配置と比較して、共有メモリ上でのロック競合等を緩和することができる。さらに、MAP処理後のキーの値に基づいて、分散配置することにより、分散配置されたデータを、キーの値に基づいてグルーピングすることができる。そのため、グルーピングされたデータを集約する際におけるロック競合も最低限に抑えることができる。
上述の実施の形態では、本発明をハードウェアの構成として説明したが、本発明は、これに限定されるものではない。本発明は、プロセッサ制御部100における図14のに記載の処理を、CPU(Central Processing Unit)にコンピュータプログラムを実行させることにより実現することも可能である。)
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
10 情報処理装置
20 CPU群
20P1〜20Pn CPU
30 共有メモリ
32 データ配置部
34 データ集約部
40 チップセット
50G1〜50Gm アクセラレータ
60M1〜60Mm ローカルメモリ
100 プロセッサ制御部
110 データコピー制御部
120 アクセラレータ制御部
130 データ分散化制御部
140 データ再配置制御部
150 データ集約化制御部

Claims (10)

  1. 処理実行前データを記憶する共有メモリと、
    前記処理実行前データを用いて第1の処理を実行する複数のアクセラレータと、
    前記複数のアクセラレータにおいて分散処理されたデータを、前記複数のアクセラレータの数よりも多い分散配置データとして前記共有メモリに分散配置するデータ配置部と、
    前記分散配置データを、前記複数のアクセラレータのうち前記分散処理されたデータを用いて第2の処理を実行するアクセラレータと同数の集約配置データとして前記共有メモリに集約配置するデータ集約部と、を備える情報処理装置。
  2. 前記分散処理されたデータは、キー情報とバリュー情報とを有するデータであって、
    前記データ配置部は、
    前記キー情報に基づいて前記分散処理されたデータを分散配置データとして分散配置する、請求項1に記載の情報処理装置。
  3. 前記処理実行前データ及び前記集約配置されたデータを、前記共有メモリから、前記アクセラレータによってアクセスされるローカルメモリへ出力するデータコピー部をさらに備える、請求項1又は2記載の情報処理装置。
  4. 前記ローカルメモリは、前記アクセラレータ毎に備えられ、
    前記アクセラレータは、
    前記ローカルメモリに記録された前記処理実行前データを用いて前記第1の処理を実行し、前記ローカルメモリに記録された前記集約配置データを用いて前記第2の処理を実行する、請求項3に記載の情報処理装置。
  5. 前記データ集約部は、
    前記集約配置データをキー情報に基づいて並び替えを行う、請求項2に記載の情報処理装置。
  6. 前記複数のアクセラレータは、
    前記処理実行前データを用いてマップリデュースプログラミングにおけるマップ処理を実行することにより前記データを分散処理し、前記集約配置データを用いてリデュース処理を行う、請求項3又は4に記載の情報処理装置。
  7. 前記アクセラレータにおいて分散処理されたデータを、前記データ配置部からの指示を受けて前記分散配置データとして前記共有メモリに分散配置し、前記分散配置データを、前記データ集約部からの指示を受けて前記集約配置データとして前記共有メモリに集約配置する処理を実行する複数のプロセッサをさらに備える、請求項1乃至6のいずれか1項に記載の情報処理装置。
  8. 前記データ配置部は、前記分散処理されたデータを、前記プロセッサの数と同数、又は前記プロセッサの数を下回りかつ前記アクセラレータの数を上回る数の分散配置データとして分散配置する、請求項1乃至7のいずれか1項に記載の情報処理装置。
  9. 共有メモリに記憶されている処理実行前データを、複数のアクセラレータにおいて第1の処理を実行し、
    前記複数のアクセラレータにおいて分散処理されたデータを、前記複数のアクセラレータの数よりも多い分散配置データとして前記共有メモリに分散配置し、
    前記分散配置データを、前記複数おアクセラレータのうち前記分散処理されたデータを用いて第2の処理を実行するアクセラレータと同数の集約配置データとして前記共有メモリに集約配置する、データ配置方法。
  10. 複数のアクセラレータにおいて第1の処理を実行され、前記複数のアクセラレータにおいて分散処理されたデータを、前記複数のアクセラレータの数よりも多い分散配置データとして共有メモリに分散配置するステップと、
    前記分散配置データを、前記複数のアクセラレータのうち前記分散処理されたデータを用いて第2の処理を実行するアクセラレータと同数の集約配置データとして集約配置するステップと、をコンピュータに実行させるプログラム。
JP2011156948A 2011-07-15 2011-07-15 情報処理装置、データ配置方法及びプログラム Withdrawn JP2013025392A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011156948A JP2013025392A (ja) 2011-07-15 2011-07-15 情報処理装置、データ配置方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011156948A JP2013025392A (ja) 2011-07-15 2011-07-15 情報処理装置、データ配置方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2013025392A true JP2013025392A (ja) 2013-02-04

Family

ID=47783710

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011156948A Withdrawn JP2013025392A (ja) 2011-07-15 2011-07-15 情報処理装置、データ配置方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2013025392A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016181648A1 (ja) * 2015-05-12 2016-11-17 日本電気株式会社 アクセラレータ制御装置、アクセラレータ制御方法および記録媒体
WO2017082323A1 (ja) * 2015-11-13 2017-05-18 日本電気株式会社 分散処理システム、分散処理装置、方法および記憶媒体
WO2018074444A1 (ja) * 2016-10-19 2018-04-26 日本電気株式会社 分散処理システム
JP2018120551A (ja) * 2017-01-27 2018-08-02 キヤノン株式会社 データ処理装置、画像再構成装置、データ処理方法、及びプログラム
US10831547B2 (en) 2016-01-29 2020-11-10 Nec Corporation Accelerator control apparatus for analyzing big data, accelerator control method, and program

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016181648A1 (ja) * 2015-05-12 2016-11-17 日本電気株式会社 アクセラレータ制御装置、アクセラレータ制御方法および記録媒体
JPWO2016181648A1 (ja) * 2015-05-12 2018-03-01 日本電気株式会社 アクセラレータ制御装置、アクセラレータ制御方法および記録媒体
US10606635B2 (en) 2015-05-12 2020-03-31 Nec Corporation Accelerator control apparatus, accelerator control method, and storage medium
WO2017082323A1 (ja) * 2015-11-13 2017-05-18 日本電気株式会社 分散処理システム、分散処理装置、方法および記憶媒体
US20180329756A1 (en) * 2015-11-13 2018-11-15 Nec Corporation Distributed processing system, distributed processing method, and storage medium
US10831547B2 (en) 2016-01-29 2020-11-10 Nec Corporation Accelerator control apparatus for analyzing big data, accelerator control method, and program
WO2018074444A1 (ja) * 2016-10-19 2018-04-26 日本電気株式会社 分散処理システム
JPWO2018074444A1 (ja) * 2016-10-19 2019-08-29 日本電気株式会社 分散処理システム
JP7014173B2 (ja) 2016-10-19 2022-02-01 日本電気株式会社 分散処理システム
JP2018120551A (ja) * 2017-01-27 2018-08-02 キヤノン株式会社 データ処理装置、画像再構成装置、データ処理方法、及びプログラム

Similar Documents

Publication Publication Date Title
US9817700B2 (en) Dynamic data partitioning for optimal resource utilization in a parallel data processing system
JP2013025392A (ja) 情報処理装置、データ配置方法及びプログラム
US9396154B2 (en) Multi-core processor for managing data packets in communication network
US20190087233A1 (en) Task allocating method and system for reconfigurable processing system
WO2012030991A1 (en) Non-uniform interleaving scheme in multiple channel dram system
JP6886964B2 (ja) 負荷平衡方法及び装置
JP5121291B2 (ja) データ転送システム
US20100332775A1 (en) Hybrid interleaving in memory modules
EP3477461A1 (en) Devices and methods for data storage management
US20200274733A1 (en) Collective Communication System and Methods
GB2529045A (en) A memory controller and method for controlling a memory device to process access requests issued by at least one master device
CN109165728A (zh) 一种卷积神经网络的基本计算单元及计算方法
KR20130087735A (ko) 인터럽트 스프레드 방법, 인터럽트 스프레드 장치 및 이를 구비하는 시스템 온-칩
JP6380952B2 (ja) 多数の要素からなる配列をソートする装置、方法およびプログラム
JP2015522878A (ja) 異種プロセッサを使用するアプリケーションに低レイテンシを提供するためのシステムおよび方法
WO2021109665A1 (zh) 一种数据处理装置、方法、基站和存储介质
CN103226494B (zh) 散布多个中断的方法、中断请求信号散布电路和片上系统
US8108661B2 (en) Data processing apparatus and method of controlling the data processing apparatus
US20200043128A1 (en) Processing system for graphs and operating method thereof
US20230052942A1 (en) Movement of tensor data during reshape operation
US9519948B2 (en) Data processing apparatus, data processing method, and non-transitory computer readable medium
JP6237945B1 (ja) メモリ制御装置
JP2021039486A (ja) メモリ制御方法、メモリ制御装置、プログラム
US20180329756A1 (en) Distributed processing system, distributed processing method, and storage medium
JP2013182373A (ja) 記憶装置及びその制御方法

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20141007