"並列処理が可能な複数のプロセッサと、前記複数のプロセッサで共有されるメモリと、前記メモリのアクセス範囲が予め記述可能とされるとともに複数のスレッドで構成されたワークグループを、それぞれ記述された前記アクセス範囲を参照して前記複数のプロセッサのいずれかに実行させるために割り当てる割当手段と、を備えた情報処理装置。前記プロセッサは、キャッシュを介して前記メモリに接続されており、前記割当手段は、前記アクセス範囲の少なくとも一部が重複する複数のワークグループを同一のプロセッサに連続して割り当てる、請求項1記載の情報処理装置。前記割当手段は、前記アクセス範囲の少なくとも一部が重複する複数のワークグループのうち、最も重複範囲が大きいワークグループを優先的に同一のプロセッサに割り当てる、請求項2記載の情報処理装置。前記割当手段は、前記アクセス範囲が重複しない複数のワークグループを、並列処理させるためにそれぞれ異なるプロセッサに割り当てる、請求項1乃至請求項3のいずれか1項に記載の情報処理装置。前記割当手段は、前記アクセス範囲が重複しない複数のワークグループのうち、最もアドレスの近いワークグループを優先的にプロセッサに割り当てる、請求項4記載の情報処理装置。前記プロセッサは、GPUを構成する演算ユニットとして構成されており、前記メモリは、前記演算ユニットで共用されるVRAMとして構成されている、請求項1乃至請求項5のいずれか1項に記載の情報処理装置。前記プロセッサは、GPUが有する複数の演算ユニットのそれぞれを構成する演算エレメントとして構成されており、前記メモリは、前記演算ユニット毎に割り当てられたローカルメモリとして構成されている、請求項1乃至請求項5のいずれか1項に記載の情報処理装置。並列処理が可能な複数のプロセッサと、前記複数のプロセッサで共有されるメモリと、を備えた情報処理装置において実行される情報処理方法であって、前記メモリのアクセス範囲が予め記述可能とされるとともに複数のスレッドで構成されたワークグループについて、記述された前記アクセス範囲を参照する参照過程と、前記参照したアクセス範囲に基づいて、各前記ワークグループを前記複数のプロセッサのいずれかに実行させるために割り当てる割当過程と、を備えた情報処理方法。並列処理が可能な複数のプロセッサと、前記複数のプロセッサで共有されるメモリと、を備えた情報処理装置をコンピュータにより制御するための制御プログラムであって、前記コンピュータを、前記メモリのアクセス範囲が予め記述可能とされるとともに複数のスレッドで構成されたワークグループについて、記述された前記アクセス範囲を参照する参照手段と、前記参照したアクセス範囲に基づいて、各前記ワークグループを前記複数のプロセッサのいずれかに実行させるために割り当てる割当手段と、して機能させる制御プログラム。ところで、上述したようなGPGPUの実行プラットフォーム上におけるプログラミングにおいて、実行パフォーマンスを大きく左右する要因は、演算プロセッサ上における演算時間ではなく、各演算プロセッサがメモリにアクセスしてデータの読み書きを行うアクセス時間が主なものとなっていた。本発明は、上記に鑑みてなされたものであって、メモリに対するアクセス時間を低減し、ひいては、実行パフォーマンスを向上することが可能な情報処理装置、情報処理方法及び制御プログラムを提供することにある。実施形態の情報処理装置は、並列処理が可能な複数のプロセッサと、前記複数のプロセッサで共有されるメモリと、を備えている。そして、割当手段は、メモリのアクセス範囲が予め記述可能とされるとともに複数のスレッドで構成されたワークグループを、それぞれ記述されたアクセス範囲を参照して複数のプロセッサのいずれかに実行させるために割り当てる。次に図面を参照して実施形態について説明する。図1は、実施形態に係る情報処理装置の概要構成の一例を示す図である。情報処理装置10は、大別すると、汎用プロセッサであるMPU11、グラフィックプロセッサであるGPU12、比較的高速なバスBusを介して通信を行う回路を対象としてインタフェース動作を行うノースブリッジ13、ノースブリッジ13にメモリバス14を介して接続され、記録媒体として機能して、各種制御プログラム等が格納されたROM15、ノースブリッジ13にメモリバス14を介して接続され、ワークエリア等として各種データを格納するRAM16、ノースブリッジ13に接続され比較的低速なバスを介して通信を行う回路を対象としてインタフェース動作を行うサウスブリッジ17、サウスブリッジ17に接続され、外部記憶装置として機能するHDD18、サウスブリッジ17にPCIバス19を介して接続され、通信インタフェース動作を行う通信インタフェース部20を備えている。また、GPU12には、キャッシュ21を介してVRAM22が接続されている。上記構成において、MPU11は、いわゆるマイクロコンピュータとして構成されており、図示しないCPU、ROM、RAM等を備えている。GPU12は、行列演算などの定式化された単純な演算の繰り返しを高速で行うための複数の演算ユニットを多数備えている。ここで、図2を参照してGPU12について詳細に説明する。図2は、GPUの概要構成説明図である。GPU12は、複数の演算ユニット31と、これら複数の演算ユニット31上におけるスレッドの実行制御を行うコントローラ32を備えている。各演算ユニット31は、例えば、PCIExpress2.0規格に則った高速グラフィックバス33を介して、キャッシュ21に接続されている。さらにこのキャッシュ21を介して、複数の演算ユニット31により共用されるVRAM22が接続されている。VRAM22は、大別すると、汎用メモリエリア34及び各種定数を格納する定数メモリエリア35を備えている。図3は、演算ユニットの詳細構成説明図である。GPU12を構成している各演算ユニット31は、複数の演算エレメント41と、全演算エレメント41により共有されるメモリエリアを構成するローカルメモリ42と、各演算エレメント41に対応づけられ、当該対応する演算エレメント41により占有されるメモリエリアを構成するプライベートメモリ43と、各演算エレメント41とローカルメモリ42とを相互に接続するバス44と、を備えている。ここで、バス44と、高速グラフィックバス33とは、相互に接続されている。次に再び情報処理装置の構成について説明する。ノースブリッジ13は、比較的広帯域で高速なバスの通信インタフェース動作を行っている。ROM15は、制御プログラム等の不揮発的に記憶する必要があるデータを格納している。RAM16は、いわゆるメインメモリを構成しており、各種のデータを一時的に格納する。サウスブリッジ17は、機械的な駆動部を有するHDD、光ディスクドライブ等の比較的狭帯域で低速なバスに接続される装置との間の通信インタフェース動作を行う。HDD18は、低速動作ではあるが、大容量のデータを記憶する。通信インタフェース部20は、図示しないイーサネット登録商標規格に準拠した通信ネットワークを介して他の情報処理装置等との間でデータ通信を行う際の通信インタフェース動作を行う。ここで、実施形態の動作説明に先立ち、処理対象のデータについて説明する。本実施形態においては、スレッドを実行する演算ユニット31は、可能な場合には、メモリアクセス領域メモリアクセス範囲が近いスレッド群≒タスクを近い時間に実行するようにされている。GPU12においては、一つのアプリケーションプログラムが複数のデータに対して実行されるSPMDSingleProgramMultipleDataという実行モデルが適用されることが多い。ところで、一つのアプリケーションプログラムは、並列に実行されるスレッドワークアイテムと呼ばれる小さなプログラムで構成されている。そして、スレッドを実行するに際しては、複数のスレッドが、一つのワークグループとしてグルーピングされてワークグループ単位で実行される。したがって、一つのアプリケーションプログラムを実行することで複数のワークグループが並列に実行されることとなる。そして、各演算ユニット31には、ワークグループ単位で割り当てがなされる。演算ユニット31に割り当てられたワークグループを構成する複数のスレッドには、割り当てがなされた演算ユニット31に対応するローカルメモリ42が共有可能とされている。すなわち、同一の演算ユニット31に割り当てられた複数のワークグループは、ローカルメモリ42を共有する。さらにワークグループを構成する各スレッドは、それぞれ演算エレメント41に割り当てられ、各演算エレメント41に割り当てられたスレッドは、当該演算エレメント41に割り当てられたスレッドのみが参照可能なプライベートメモリ43を利用可能な状態となっている。図4は、GPUにおけるアプリケーションプログラムの実行モデルの概念説明図である。図4に示すように、アプリケーションプログラムAPLは、概念上、2次元のインデックス=Wx,Wyで識別され、それぞれ並列に実行可能とされた複数のワークグループWGにより構成されている。各ワークグループWGは、同様にそれぞれ並列に実行可能とされた複数のスレッドTHにより構成されている。図5は、各ワークグループのVRAMの利用状況の説明図である。図5においては、3つのワークグループがメモリを参照している場合の説明図である。図5に示すように、グループID=100が割り当てられているワークグループWG1のVRAM22の汎用メモリエリア34の参照エリアと、グループID=300が割り当てられているワークグループWG3のVRAM22の汎用メモリエリア34の参照エリアと、は一部重なる領域がある。これに対し、グループID=200が割り当てられているワークグループWG2の参照エリアは、いずれのワークグループWG1、WG3が参照しているエリアとは重なりがなく、異なる領域となっている。上述したようにグループID=100が割り当てられているワークグループWG1のVRAM22の汎用メモリエリア34の参照エリアと、グループID=300が割り当てられているワークグループWG3のVRAM22の汎用メモリエリア34の参照エリアと、は一部重なりがある。したがって、このまま、ワークグループWG1と、ワークグループWG3と、を並列動作可能な別の演算ユニット31にそれぞれ割り当てたとしても、ワークグループWG1及びワークグループWG3が同時に並列して実行された場合には、同一のメモリアドレスにアクセスすることはできない。すなわち、同一データのフェッチは排他制御により異なる演算ユニット31で同時に行うことはできないため、実質的な実行効率が低下することとなる。したがって、このような場合には、ワークグループWG1及びワークグループWG3を同一の演算ユニット31に割り当てることで、メモリアクセス空間における最適な割り当て空間方向のアクセス最適化を行うことが可能となる。一方、グループID=100が割り当てられているワークグループWG1のVRAM22の汎用メモリエリア34の参照エリアと、グループID=200が割り当てられているワークグループWG2のVRAM22の汎用メモリエリア34の参照エリアと、は、重なりがない。このため、このままワークグループWG1と、ワークグループWG2と、を同一の演算ユニット31に割り当てたとしても、例えば、ワークグループWG1の次にワークグループWG2を同一の演算ユニット31に割り当てて実行した場合には、演算ユニット31は、ワークグループWG1の処理終了後、ワークグループWG2の処理を行う前にデータの再読込を行う必要があり、キャッシュ21の利用効率が低下する。したがって、このような場合には、ワークグループWG1と、ワークグループWG2を同時並行して処理が可能な別の演算ユニット31にそれぞれ割り当てることで、時間軸方向における最適な割り当て時間方向のアクセス最適化を行うことが可能となる。これらのため、本実施形態においては、ワークグループについて空間方向及び時間方向のアクセス最適化を行うために、ランタイムモジュールに各ワークグループの参照エリアメモリアクセス範囲を通知する構成を採っている。この場合に、各ワークグループWG1~WG3に参照エリアが割り当てられる態様としては、アドレスが連続したメモリエリアが参照エリアとして割り当てられるラスター形式の割り当て態様と、アドレスは不連続であるが、概念的に2次元のメモリ空間上でタイル形状矩形形状のメモリエリアが参照エリアとして割り当てられるタイル形式の割り当て態様連続したメモリ空間では、所定アドレスずつ離れて、複数の同一容量のメモリ空間が配置される態様となる、が存在する。そこで、本実施形態においては、APIの仕様として、参照エリアがラスター形式で割り当てられる場合と、タイル形式で割り当てられる場合との、双方に対応可能な仕様を採用した。図6は、APIの仕様の一例の説明図である。図6の記述態様は、OpenCL規格に則った場合における参照エリア通知関数の記述態様である。参照エリアがラスター形式で通知される場合の参照エリア通知関数FNのパラメータとしては、システムのリソースを管理し、ハードウェアとソフトウェアコンポーネントのやりとりを管理するカーネルkernelを特定するためのカーネル名パラメータ、ラスター形式に相当する参照エリア割り当て形式パラメータ=TYPE_RASTER、参照エリア開始アドレスパラメータstartposition、参照エリアサイズパラメータsize及び参照エリア通知関数FNのフォーマットを一定とするために使用しないパラメータについて、対応するパラメータが存在しないことを示すNULLパラメータがある。また、参照エリアがタイル形式で通知される場合の参照エリア通知関数FNのパラメータとしては、カーネルを特定するためのカーネル名パラメータ、タイル形式に相当する参照エリア割り当て形式パラメータ=TYPE_TILE、参照エリア開始アドレスパラメータstartposition、参照エリアを2次元のメモリ空間として表現した場合の横幅に相当する連続アドレス数を示す参照エリア水平サイズパラメータhsize及び参照エリアを2次元のメモリ空間として表現した場合の縦幅に相当する参照エリア垂直サイズパラメータvsizeがある。この場合において、参照エリア開始アドレスパラメータは、ワークグループWG及び当該ワークグループWGに含まれるスレッドTHの数アイテム数により定まり、ワークグループWGを特定するためのインデックスに対応するワークグループID組込変数gidx及び当該ワークグループIDパラメータgidxで特定されるワークグループに含まれるスレッドTHの数を示すスレッド数アイテム数組込変数gnumに基づいて算出される。これらのワークグループID組込変数gidx及びスレッド数組込変数gnumは、ワークグループを構成するスレッドを特定するためのx方向及びy方向の2次元のデータであり、次元を表すパラメータ[0]又は[1]によりx方向=[0]及びy方向=[1]が示される。図6の例の場合、startposition=gnum[0]gidx[0]gnum[1]gidx[1]となっている。また、参照エリアサイズパラメータsizeは、定数である。次に実施形態の動作を説明する。図7は、実施形態の処理フローチャートである。まず、コントローラ32は、キューの先頭にあるタスクのグループのメモリアクセス領域を取得するステップS10。次にコントローラ32は、キューがいっぱいであるか否かを判別するステップS11。ステップS11の判別において、キューがいっぱいである場合にはステップS11;Yes、再び処理をステップS10に移行して待機状態となる。ステップS11の判別において、キューがいっぱいではない、すなわち、キューに余裕がある場合にはステップS11;No、スケジュール待ちをしているタスクのグループがあり、他のタスクのグループをキューに積むことが可能であるか否かを判別するステップS12。ステップS12の判別において、スケジュール待ちをしているタスクのグループがない場合にはステップS12;No、再び処理をステップS10に移行して待機状態となる。ステップS12の判別において、スケジュール待ちをしているタスクのグループがあり、他のタスクのグループをキューに積むことが可能である場合にはステップS12;Yes、当該スケジュール待ちをしているタスクのグループのメモリアクセス領域を計算により算出するステップS13。次にコントローラ32は、算出したメモリアクセス領域がキューの先頭にあるグループのメモリアクセス領域と重なっているか否かを判別するステップS14。ステップS14の判別において、算出したタスクのグループのメモリアクセス領域がキューの先頭にあるグループのメモリアクセス領域と重なっている場合にはステップS14;Yes、当該タスクのグループをメモリアクセス領域が重なるグループのリストに追加しステップS15、処理をステップS17に移行する。一方、ステップS14の判別において、算出したタスクのグループのメモリアクセス領域がキューの先頭にあるグループのメモリアクセス領域と重なっていない場合にはステップS14;No、当該タスクのグループをメモリアクセス領域が重ならないグループのリストに追加するステップS16。続いてコントローラ32は、メモリアクセス領域が重なるグループのリスト及びメモリアクセス領域が重ならないグループのリストに含まれるタスクのグループの数がキューにタスクのグループを積むか否かを判定するための所定の閾値を超えたか否かを判別するステップS17。ステップS17の判別において、両リストに含まれる全タスクのグループの数が所定の閾値を超えていない場合にはステップS17;No、コントローラ32は、スケジュール待ちをしているタスクのグループがあり、他のタスクのグループをキューに積むことが可能であるか否かを再び判別するステップS18。ステップS18の判別において、スケジュール待ちしているタスクのグループがある場合にはステップS18;Yes、処理を再びステップS13に移行し、以下、同様の処理を行う。ステップS18の判別において、スケジュール待ちしているタスクのグループがない場合にはステップS18;No、コントローラ32は、メモリアクセス領域が重なるグループのリストに含まれるタスクのグループのうち、最も重なる領域が多いタスクのグループを時間方向にキューに積むステップS19。すなわち、キューの先頭にあるワークグループの処理後に同一の演算ユニット3あるいは、演算エレメント41において、処理がなされるようにキューに積まれることとなる。また、コントローラ32は、メモリアクセス領域が重ならないグループのリストに含まれるタスクのグループのうち、最もアドレスが近いタスクのグループを空間方向にキューに積むステップS20。すなわち、キューの先頭にあるタスクのグループとは、別の演算ユニット31あるいは演算エレメント41において、処理がなされるようにキューに積まれることとなる。以上の説明のように、本実施形態によれば、メモリアクセス領域メモリ参照領域が重なり、同時にメモリにアクセスすることができないワークグループ同士あるいはスレッド同士は、時間方向にキューに積まれるように割り当てられる。したがって、キャッシュにおけるヒット率を向上させることができ、処理効率を向上させることができる。また、メモリアクセス領域メモリ参照領域が重ならず、同時にメモリにアクセスすることが可能なワークグループ同士あるいはスレッド同士は、空間方向にキューに積まれて、すなわち、別の演算ユニット31あるいは別の演算エレメント41に割り当てられる。したがって、同時にメモリにアクセスすることが可能なワークグループ同士あるいはスレッド同士を、同時並列に処理することが可能となり、処理効率を向上させることができる。本実施形態の情報処理装置で実行される制御プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM、フレキシブルディスクFD、CD-R、DVDDigitalVersatileDisk等のコンピュータで読み取り可能な記録媒体に記録されて提供される。また、本実施形態の情報処理装置で実行される制御プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態の情報処理装置で実行される制御プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。また、本実施形態の情報処理装置の制御プログラムを、ROM等の記憶媒体に予め組み込んで提供するように構成してもよい。本実施形態の情報処理装置で実行される制御プログラムは、上述した各部参照手段、割当手段を含むモジュール構成となっており、実際のハードウェアとしてはCPUプロセッサがROM等の記憶媒体あるいは上記記録媒体から制御プログラムを読み出して実行することにより上記各手段が主記憶装置上にロードされ、参照手段、割当手段が主記憶装置上に生成されるようになっている。本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。"