複数種類のプロセッサと、基本モジュールの処理を優先的に割り当てる前記プロセッサの種類が予め指定可能とされ、前記指定がなされている場合に、前記指定に基づいて実際に前記基本モジュールを割り当てるプロセッサを順次特定する処理割当手段と、を備えた情報処理装置。前記処理割当手段は、前記基本モジュール同士の並列処理の関係及び前記指定に基づいて、前記基本モジュールを割り当てるプロセッサを順次特定する、請求項1記載の情報処理装置。前記基本モジュール同士の並列処理の関係及び前記指定は、予め設定された並列実行制御情報として前記処理割当手段に提供される、請求項2記載の情報処理装置。前記処理割当手段は、同一種類の前記プロセッサが複数設けられている場合には、基本モジュールの処理を行っていない前記同一種類のプロセッサのうち、いずれかに新たな基本モジュールを割り当てる、請求項1乃至請求項3のいずれかに記載の情報処理装置。前記処理割当手段は、割り当て対象の基本モジュールを優先的に割り当てるべき種類のプロセッサが全て処理を実行している場合に、基本モジュールの割当がなされていない他の種類のプロセッサに当該割り当て対象の基本モジュールを割り当てる、請求項1乃至請求項4のいずれかに記載の情報処理装置。前記処理割当手段は、基本モジュールの割当がなされていない他の種類のプロセッサが存在し、当該他の種類のプロセッサに前記割り当て対象の基本モジュールを割り当てた方が、割り当てない場合と比較してトータルの処理コストが低下すると判別した場合に、当該他の種類のプロセッサに当該割り当て対象の基本モジュールを割り当てる、請求項5記載の情報処理装置。前記基本モジュールは、入力データが確定した時点でそれぞれ実行が可能となる、請求項1乃至請求項6のいずれかに記載の情報処理装置。複数種類のプロセッサを備えた情報処理装置において実行される情報処理方法において、基本モジュールの処理を優先的に割り当てる前記プロセッサの種類が予め指定された並列実行制御情報を取得する過程と、前記取得下並列実行制御情報に基づいて実際に前記基本モジュールを割り当てるプロセッサを順次特定し、割り当てを行う過程と、を備えた情報処理方法。複数種類のプロセッサを備えた情報処理装置をコンピュータにより制御するための制御プログラムにおいて、前記コンピュータを、基本モジュールの処理を優先的に割り当てる前記プロセッサの種類が予め指定された並列実行制御情報を取得する手段と、前記取得下並列実行制御情報に基づいて実際に前記基本モジュールを割り当てるプロセッサを順次特定し、割り当てを行う手段と、して機能させる制御プログラム。ところで、並列処理されるプログラム同士が実行順序を適切に保ちながら処理するには、プログラム間あるいはスレッド間であらかじめ依存関係を固定的に決定しておく必要がある。本発明は上記問題に鑑みてなされたもので、マルチスレッドによる並列処理において動的に複数のプロセッサに処理を行わせるに際して、より効率的に並列処理を行わせることができ、処理効率の向上を図ることが可能な情報処理装置、情報処理方法及び制御プログラムを提供する。実施形態の情報処理装置は、複数種類のプロセッサを備える。そして、処理割当手段は、基本モジュールの処理を優先的に割り当てる前記プロセッサの種類が予め指定可能とされ、指定がなされている場合に、指定に基づいて実際に基本モジュールを割り当てるプロセッサを順次特定する。[1]第1実施形態図1は、第1実施形態に係る情報処理装置の概要構成の一例を示す図である。情報処理装置100は、図1に示すように、複数種類に区分される複数のプロセッサ101A、101Bと、各種データを記憶するメモリ部102と、外部記憶装置として機能するHDD103と、各種データを各部間で転送するための内部バス104と、各種情報を表示するための画像表示装置105と、各種データを入力するためのキーボードなどの入出力装置106と、を備えている。なお、情報処理装置100の態様としては、画像表示装置105及び入出力装置106は、備えていない態様も考えられる。プロセッサ101Aは、いわゆる汎用プロセッサであり、比較的高度な分岐予測や機能豊富な演算器を用いることにより、複雑な処理を高速に実行することが可能なプロセッサである。例えば、CPUCentralProcessingUnitがこの種のプロセッサに相当する。一方、プロセッサ101Bは、大量のデータに対して比較的単純な演算処理例えば、行列演算等を高速に実行することが可能なプロセッサである。例えば、GPUGraphicProcessingUnitや、DSPDigitalSignalProcessorがこの種のプロセッサに相当する。メモリ部102は、各種データを不揮発的に記憶するROM102Aと、各種データを一時的に記憶し、ワーキングエリアを構成するRAM102Bと、各種データを更新可能かつ不揮発的に記憶するフラッシュROM102Cと、を備えている。HDD103は、比較的大容量のデータを記憶する。したがって、プロセッサ101A、101Bが処理するプログラムコードはHDD103に記憶しておき、処理する部分のみをメモリ部102特にRAM102Bに展開して、実行するように構成される。図2は、第1実施形態の機能ブロック図である。情報処理装置100で実行される並列プログラム110は、大別すると、基本モジュール111と、並列実行制御記述112と、を含んでいる。ここで、基本モジュール111は、情報処理装置100で実行されるモジュール化されたプログラムである。また、並列実行制御記述112は、基本モジュール111を実行する際に参照されるデータである。すなわち、並列実行制御記述112は、基本モジュール111のそれぞれについて並列処理時の依存関係についての記述がなされており、情報処理装置100で実行される前にトランスレータ113によってプラットホームに依存しないバイトコード記述114にコンパイルされる。このため、バイトコード記述114は、基本モジュール111同士の依存関係を表すものとなっている。具体的には、バイトコード記述114は、ある実行対象の基本モジュール111以下、便宜上この注目している基本モジュールを基本モジュール111Xと表すを想定した場合に、当該基本モジュール111Xの実行に必要な処理結果を出力する先行して実行される一又は複数の基本モジュール111及び当該基本モジュール111Xの実行結果を利用する後続の一又は複数の基本モジュール111と、当該基本モジュール111Xと、の関係を記述している。情報処理装置100上の非対称マルチプロセッサ上で実行されるソフトウェアは、基本モジュール111、バイトコード記述114、ランタイムライブラリ115、マルチスレッドライブラリ116及びオペレーティングシステム117を含んでいる。ランタイムライブラリ115は、基本モジュール111を情報処理装置100上で実行する際のAPIApplicationInterfaceなどを含み、また基本モジュール111を並列処理する際に必要となる排他制御を実現する。マルチスレッドライブラリ116は、基本モジュール111をマルチスレッドで実行する際に用いられるランタイムライブラリであり、基本モジュール111をマルチスレッドで処理する際に必要となる排他制御を実現する。一方、ランタイムライブラリ115あるいはマルチスレッドライブラリ116からトランスレータ113の機能を呼び出すように構成し、基本モジュール111の処理の過程で呼び出されるとき、次に処理する部分の並列実行制御記述112をその都度変換するようにしても良い。このように構成すればトランスレートするための常駐タスクが不要になり、並列処理をよりコンパクトに実現できる。オペレーティングシステム117は、情報処理装置100のハードウェアやタスクのスケジューリングなど、システム全体を管理している。オペレーティングシステム117を導入することで、基本モジュール111を実行する際、プログラマはシステムの雑多な管理から解放されプログラミングに専念できるとともに、一般的に多機種でも稼動可能なソフトウェアを容易に記述することができるというメリットがある。本実施形態に係る情報処理装置100では、同期処理やデータの授受の必要な部分で分割し、その間の関連を並列実行制御記述として定義することで基本モジュール111の部品化を促進し、並列実行制御記述112をコンパクトに管理するようにしている。図3は、本第1実施形態に係る基本モジュールの依存関係の一例を説明する図である。一連の処理を行う複数の基本モジュール111は、それぞれノードN1~N8として表現されており、ノードN1~N8のそれぞれは、処理開始条件が満たされれば、他のノードに対応する基本モジュールの動作状態に関係なく処理を進めることが可能となっている。図5においては、各ノードN1~N8は、上から下に向かって一方向に処理を行うものとする。各ノードN1~N8に接続されているリンクL1~L11は、各ノードと他のノードとの依存関係を表しており、入力側図5では、上側にリンクがあるノード、例えば、ノードN3は、入力側のノードN1の処理が完了するまでは、処理開始条件が満たされることはなく、処理を進めることができないようになっている。同様にノードN5のように入力側に複数のノードN2、N3がリンクL4、L5により接続されている場合、これらの複数のリンクL4、L5に対応するノードN2、N3の全てにおいて、処理が完了するまでは、処理開始条件が満たされることはなく、待機状態となっている。図4は、第1実施形態に係るノードの一例を説明する図である。上述したように、ノードNx本実施形態では、x=1~8は、個々の基本モジュール111に対応しており、並列実行制御記述112をトランスレータ113によりバイトコード記述114に変換後、このバイトコード記述114に基づいて基本モジュール111をグラフデータ構造化したものである。上述したように基本モジュール111をグラフデータ構造化したノードNxは、リンクLy本実施形態では、y=1~11により他のノードと依存関係を有している。図4のように基本モジュール111をノードNxとしてみたとき、リンクLyとしては、先行ノードへのn個のリンクLa1~Lanと、後続ノードへの結合子ctを有するm個のリンクLb1~Lbmと、の2種類のリンクが存在する。リンクLa1~Lanは、ノードNxが所定の処理を実行するのに必要なデータを得るために必要な他のノードの出力端に結合されるリンクである。リンクLa1~Lanのそれぞれは、どのような出力端を有するノードとのリンクが必要かなどの定義情報を持っている。リンクLb1~Lbmの各結合子ctは、ノードNxの処理後に出力するデータがいかなるものであるかを示す識別情報を備えている。後続のノードは、このリンクLb1~Lbmの各結合子ctの識別情報と並列実行制御記述112とに基づいて自身が実行可能な条件がそろったか否かを判別することができる。図5は、ノードの実行可能キューへのキューイングの説明図である。ノードNxはシステムにより実行可能な条件がそろったとみなされると、図5に示すようにノードの単位で実行可能キュー120にキューイングされ、実行可能キュー120にキューされたノードの中から次に実行すべきノードが取り出されて処理される。図6は、本実施形態に係るノードのバイトコード記述グラフデータ構造生成記述の一例を示す図である。図6においては、並列実行制御記述112に基づいて、トランスレータ113がコンパイルしたバイトコード記述114が示されている。バイトコード記述114に含まれる情報としては、基本モジュールID、先行ノードへの複数のリンク情報、当該ノードの出力バッファの種別、及び当該ノードの処理コスト等が挙げられる。ここでいう処理コストは、当該ノードに対応する基本モジュール111の処理に要する処理時間等を示している。この処理コストについての情報は実行可能キューにキューイングされたノードのうち、次に取り出すノードを選択する際に考慮される。先行ノードNbへのリンク情報には、当該ノードNxの先行ノードNbとなるべきノードの条件が定義されている。たとえば所定のデータタイプを出力するノード、特定のIDを持つノードなどの定義が挙げられる。このバイトコード記述114は、対応する基本モジュール111をノードとして表現するとともに、リンク情報などに基づいて図5に示すような既存のグラフデータ構造にこの基本モジュール111を追加するための情報として用いる。次に第1実施形態の動作例を説明する。以下の説明においては、前フレーム及び現フレームの2つの映像フレームから注目画素の動きベクトルを求める一般的な処理手順について説明する。図7は、第1実施形態の並列制御記述の一例の説明図である。図8は、現フレームにおける動きベクトルの説明図である。図9は、前フレームにおける動きベクトルの説明図である。まず、データ処理を行うための配列領域を確保するステップS1、S2。図7の例の場合、画面の解像度は、720×480ドットであり、前フレームの画素データを格納する配列mvpreviousと、現フレームの画素データを格納する配列mvcurrentと、の二つの配列領域それぞれ720×480画素分が確保されている。次にこれらの配列領域に格納された画素データに基づいて、注目画素の動きベクトルを算出するステップS3。まず最初に空間方向の動きベクトルを探索するステップS4。すなわち、空間方向の動きベクトルmvspaceは、座標の注目画素P1に対して、上に隣接し、座標に位置する画素P11の現フレームの動きベクトルmvcurrentij1と、座標の注目画素に対して左に隣接し、座標に位置する画素P12の現フレームの動きベクトルmvcurrenti1jと、をパラメータとして、探索中心点の探索関数mvsearchの値を求める。この場合において、注目画素に隣接する画素本実施形態では、注目画素P1の上の画素P11及び左の画素P12に同一フレーム内で処理に依存関係があるため逐次処理しかできない。このため、様々な条件分岐を伴うため、プロセッサとしては、汎用プロセッサ101Aに演算を行わせるのに適した処理となっている。したがって、並列実行制御記述112においては、当該処理を汎用プロセッサ101Aに行わせる旨の記述がなされている。この結果、オペレーティングシステム117は、当該処理をプロセッサに行わせるに際して、汎用プロセッサ101Aに処理を優先的に割り当てることとなる。続いて時間方向の動きベクトルを探索するステップS5。すなわち、時間方向の動きベクトルmvtimeは、座標の注目画素P1に対して、下に隣接し、座標に位置する画素P21の前フレームにおける動きベクトルmvpreviousと、座標の注目画素P1に対して、右に隣接し、座標に位置する画素P22の前フレームにおける動きベクトルmvpreviousと、座標の注目画素の前フレームにおける動きベクトルmvpreviousと、をパラメータとして、探索中心点の探索関数mvsearchの値を求める。次に、得られた空間方向の動きベクトルmvspace及び時間方向の動きベクトルmvtimeをパラメータとして探索中心点の探索関数mvsearchの値を求めて、現フレームの注目画素の動きベクトルmvcurrentijを算出するステップS6。この場合においても、この演算は、様々な条件分岐を伴うと考えられるため、プロセッサとしては、汎用プロセッサ101Aに演算を行わせるのに適した処理となる。したがって、並列実行制御記述112においては、当該処理を汎用プロセッサに行わせる旨の記述がなされている。この結果、オペレーティングシステムは、当該処理をプロセッサに行わせるに際して、汎用プロセッサ101Aに処理を優先的に割り当てることとなる。続いて、算出した現フレームを構成する全ての画素の動きベクトルの値を、前フレームの動きベクトルとして格納しステップS7、処理を終了するステップS8。以上の説明のように、本第1実施形態によれば、並列実行制御記述112において、処理を実際に行わせるプロセッサを予め指定することが可能であるので、基本モジュール111の実行を行うプロセッサデバイスを指定できるので、動的に複数のプロセッサに基本モジュール111の処理を行わせるに際して、より効率的に並列処理を行わせることができ、処理効率の向上を図ることが可能となる。[2]第2実施形態本第2実施形態は、タスクの実行特性を指定し、プロセッサデバイスの実行特性に応じてランタイムがタスク割り当てを決定する場合の実施形態である。以下においては、複数のCPU、複数のGPU及び複数のDSPDigitalSignalProcessorを有する情報処理装置を例として説明する。図10は、第2実施形態に係る情報処理装置の概要構成の一例を示す図である。図10において、図1と同様の部分には、同一の符号を付すものとする。情報処理装置100Aは、図10に示すように、複数図10では、3個のCPU101Aと、複数図10では、3個のGPU101Bと、複数図10では、3個のDSP101Cと、各種データを記憶するメモリ部102と、外部記憶装置として機能するHDD103と、各種データを各部間で転送するための内部バス104と、各種情報を表示するための画像表示装置105と、各種データを入力するためのキーボードなどの入出力装置106と、を備えている。なお、情報処理装置100Aの態様としては、画像表示装置105及び入出力装置106は、備えていない態様も考えられる。一般的に、CPU101Aは、計算主体の直列変算が得意であり、GPU101B及びDSP101Cは、並列演算が得意である。図11は、実行デバイスのキューの概念説明図である。そこで、本第2実施形態においては、図11に示すように、各プロセッサ101A~101Cを実行デバイスのキュー130に振り分けるに際し、並列実行デバイスのキュー131には、並列実行デバイスであるGPU101B及びDSP101Cを振り分け、直列実行デバイスのキュー132には、CPU101Aを振り分けている。図12は、第2実施形態の動作の一例を説明するための図である。本動作例では、第1実施形態と同様に、前フレーム及び現フレームの2つの映像フレームから注目画素P1の動きベクトルを求める一般的な処理手順を示している。まず、データ処理を行うための配列領域を確保するステップS11、S12。図12の例の場合、画面の解像度は、720×480ドットであり、前フレームの画素データを格納する配列mvpreviousと、現フレームの画素データを格納する配列mvcurrentと、の二つの配列領域それぞれ720×480画素分が確保されている。次にこれらの配列領域に格納された画素データに基づいて、注目画素の動きベクトルを算出するステップS13。まず最初に実行環境のプラットフォームにどのようなデバイスがあるのかを確認するステップS14。具体的には、デバイス検出関数checkplatformenvを実行して、当該実行環境のプラットフォームに存在するデバイスの種類及び数を検出する。例えば、図10の例の場合には、CPU101Aが3個、GPU101Bが3個、DSP101Cが3個と検出される。続いて、空間方向の動きベクトルを探索するステップS15。上述したように、空間方向の動きベクトルmvspaceは、注目画素に隣接する画素本実施形態では、注目画素の左及び上の画素に同一フレーム内で処理に依存関係があるため逐次処理、すなわち、計算主体のタスクであることを指示することとなる。より詳細には、並列実行制御記述112において、当該空間方向の動きベクトルmvspaceの算出においては、計算主体のタスクであることを指示する記述がなされている。この結果、オペレーティングシステムは、当該処理を直列実行デバイスのキュー132に登録されているCPU汎用プロセッサ101Aに処理を割り当てることとなる。続いて時間方向の動きベクトルを探索するステップS16。上述したように、時間方向の動きベクトルmvtimeは、前フレームで既に算出したデータを用いて演算を行うため、データ並列主体のタスクを指示することとなる。より詳細には、並列実行制御記述112において、当該時間方向の動きベクトルmvtimeの算出は、データ並列主体のタスクであることを指示する記述がなされている。この結果、オペレーティングシステムは、当該処理を並列実行デバイスのキュー131に登録されているGPU101BあるいはDSP101Cに処理を割り当てることとなる。続いて、得られた空間方向の動きベクトルmvspace及び時間方向の動きベクトルmvtimeをパラメータとして探索中心点の探索関数mvsearchの値を求めて、現フレームの注目画素の動きベクトルmvcurrentijを算出するステップS17。この現フレームの注目画素の動きベクトルmvcurrentijの算出に際しても、データ並列主体のタスクであることを指示する記述がなされている。この結果、オペレーティングシステムは、当該処理を並列実行デバイスのキュー131に登録されているGPU101BあるいはDSP101Cに処理を割り当てることとなる。続いて、算出した現フレームを構成する全ての画素の動きベクトルの値を、前フレームの動きベクトルとして格納しステップS18、処理を終了するステップS19。図13は、第2実施形態の処理フローチャートである。まず、当該プラットフォームに存在するプロセッサデバイスの個数本第2実施形態では、9個に相当する回数だけデバイスの種類を問い合わせるデバイスクエリーを実行しステップS21、デバイスクエリーの回答結果に基づいて、各プロセッサを実行キューに詰めるステップS22。次に処理対象のタスク個数に相当する回数だけ空きデバイスの確認を行いステップS23、空きデバイスの有無を判別するステップS24。ステップS24の判別において、空きデバイスが存在しない場合にはステップS23;無、待機状態となる。また、ステップS24の判別において空きデバイスが存在する場合にはステップS23;有、対応するタスクの実行に移行しステップS25、当該タスクのタイプを判別するステップS26。ステップS26の判別において、タスクタイプが計算主体の直列実行型のタスクである場合にはステップS26;直列、直列実行デバイス本実施形態では、CPU101Aを直列実行デバイスのキュー132から取得しステップS27、当該直列実行デバイスに当該タスクを実行させるステップS28。一方、ステップSの判別において、タスクタイプが並列実行型のタスクである場合にはステップS;並列実行型、並列実行デバイス本実施形態では、GPU101BあるいはDSP101Cを並列実行デバイスのキュー131から取得しステップS29、当該並列実行デバイスに当該タスクを実行させるステップS30。そして、ステップS21~ステップS30の処理を全てのタスクの実行が完了するまで繰り返すこととなる。以上の説明のように、本第2実施形態によれば、実行環境のプラットフォームに存在するデバイスの種類及び数を検出し、予め並列実行制御記述において指定されたデバイス種類に相当するデバイスに処理を割り当てるので、実効的な処理効率を向上させることができ、処理コストの低減に貢献することができる。本実施形態の情報処理装置で実行される制御プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM、フレキシブルディスクFD、CD-R、DVDDigitalVersatileDisk等のコンピュータで読み取り可能な記録媒体に記録されて提供される。また、本実施形態の情報処理装置で実行される制御ログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態の情報処理装置で実行される制御プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。また、本実施形態の情報処理装置の制御プログラムを、ROM等に予め組み込んで提供するように構成してもよい。本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。