"第1アプリケーションの起動時に第1CPUが前記第1アプリケーションの実行のための第1閾値を取得し、前記第1CPUが前記第1閾値を第2CPUに送信し、前記第2CPUの実行能力が前記第1閾値以上であるときは前記第2CPUは前記第1CPUに前記第1アプリケーションを実行できる旨を通知し、前記第2CPUの実行能力が前記第1閾値よりも小さいときは前記第2CPUは前記第1CPUへの通知を行わないことを特徴とするスケジューリング方法。前記第1CPUは、前記第1閾値以上の実行能力を有するCPUの数が前記第1アプリケーションで生成されるスレッドの数未満であるとき、前記第1閾値を前記第2CPUに送信することを特徴とする請求項1に記載のスケジューリング方法。前記第1CPUは、前記第1閾値が第2アプリケーションの起動時に取得した第2閾値以上であるときは、前記第1閾値を前記第2CPUに送信することを特徴とする請求項1または請求項2に記載のスケジューリング方法。前記第1閾値が前記第2CPUに送信されないとき、前記第1CPUは前記第1アプリケーションをCPUにランダムに割り当てることを特徴とする請求項1乃至請求項3の何れか一に記載のスケジューリング方法。前記第2CPUの実行能力が前記第1閾値より大きいとき前記第2CPUは前記第1CPUに前記第1アプリケーションを実行する旨を通知し、前記第2CPUの実行能力が前記第1閾値より小さいときに前記実行能力を第3閾値と比較することを特徴とする請求項1乃至請求項4の何れか一に記載のスケジューリング方法。前記第1閾値は前記第1アプリケーションの実行のための最大能力に対応し、前記第3閾値は前記第1アプリケーションの実行のための最小能力に対応することを特徴とする請求項5に記載のスケジューリング方法。前記第1閾値の通知から所定期間経過後に、前記第3閾値以上の実行能力を有する第3CPUの数が前記第1アプリケーションで生成されるスレッドの数以上であるとき、前記第3CPUの内の実行能力の大きいCPUに前記第1アプリケーションを割り当てることを特徴とする請求項5または請求項6に記載のスケジューリング方法。前記第3閾値以上の実行能力を有する第3CPUの数が前記第1アプリケーションで生成されるスレッドの数より少ないとき、前記第1アプリケーションをCPUにランダムに割り当てることを特徴とする請求項5または請求項6に記載のスケジューリング方法。第1アプリケーションの実行のための第1閾値を格納するメモリと、前記第1アプリケーションの起動時に前記第1閾値を取得する第1CPUと、実行能力が前記第1CPUから供給される前記第1閾値以上であるときは前記第1CPUに前記第1アプリケーションを実行できる旨を通知し、前記実行能力が前記第1閾値よりも小さいときは前記第1CPUに通知しない第2CPUとを含むことを特徴とするスケジューリングシステム。前記第1CPUは、前記第1閾値以上の実行能力を有するCPUの数が前記第1アプリケーションで生成されるスレッドの数未満であるとき、前記第1閾値を前記第2CPUに送信することを特徴とする請求項9に記載のスケジューリングシステム。前記第1CPUは、前記第1閾値が第2アプリケーションの起動時に取得した第2閾値以上であるときは、前記第1閾値を前記第2CPUに送信することを特徴とする請求項9または請求項10に記載のスケジューリングシステム。前記第2CPUは、前記第2CPUの実行能力が前記第1閾値より大きいとき前記第1CPUに前記第1アプリケーションを実行する旨を通知し、前記第2CPUの実行能力が前記第1閾値より小さいときに前記実行能力を第3閾値と比較することを特徴とする請求項9乃至請求項11の何れか一に記載のスケジューリングシステム。しかしながら、従来技術では、マルチコアやメニーコアの組込システムにおけるアプリケーションのスケジューリングにかかる時間が増大してしまうという問題がある。例えば、コア数やコア間の通信時間が増えると、アプリケーションのディスパッチが完了するまでにかかる時間が仕様で定められたディスパッチ周期よりも長くなり、性能ボトルネックとなってしまう場合がある。本発明は、上述した従来技術による問題点を解消するため、スケジューリングを効率的に行うことができるスケジューリング方法およびスケジューリングシステムを提供することを目的とする。上述した課題を解決し、目的を達成するため、本発明の一側面によれば、第1アプリケーションの起動時に第1CPUが前記第1アプリケーションの実行のための第1閾値を取得し、前記第1CPUが前記第1閾値を第2CPUに送信し、前記第2CPUの実行能力が前記第1閾値以上であるときは前記第2CPUは前記第1CPUに前記第1アプリケーションを実行できる旨を通知し、前記第2CPUの実行能力が前記第1閾値よりも小さいときは前記第2CPUは前記第1CPUへの通知を行わないスケジューリング方法が提案される。また、上述した課題を解決し、目的を達成するため、本発明の一側面によれば、第1アプリケーションの実行のための第1閾値を格納するメモリと、前記第1アプリケーションの起動時に前記第1閾値を取得する第1CPUと、実行能力が前記第1CPUから供給される前記第1閾値以上であるときは前記第1CPUに前記第1アプリケーションを実行できる旨を通知し、前記実行能力が前記第1閾値よりも小さいときは前記第1CPUに通知しない第2CPUとを含むスケジューリングシステムが提案される。本発明の一側面によれば、スケジューリングを効率的に行うことができるという効果を奏する。以下に添付図面を参照して、この発明にかかるスケジューリング方法およびスケジューリングシステムの実施の形態を詳細に説明する。本実施の形態において、スケジューリングシステムは、コアが複数搭載されたマルチコアプロセッサを含むマルチコアシステムである。マルチコアプロセッサは、コアが複数搭載されていれば、複数のコアが搭載された単一のプロセッサでもよく、シングルコアのプロセッサが並列されているプロセッサ群でもよい。ただし、本実施の形態では、説明を単純化するため、シングルコアのプロセッサが並列されているプロセッサ群を例に挙げて説明する。スケジューリング方法の一実施例図1は、実施の形態にかかるスケジューリング方法の一実施例を示す説明図である。図1において、マルチコアシステム100は、CPU1~CPUNと、メモリ101と、を含むスケジューリングシステムである。CPU1は、マスタCPUであり、マルチコアシステム100の全体の制御を司る。CPU1は、アプリケーションをどのCPUに割り当てるかを制御する。また、CPU1は、割り当てられたアプリケーションを実行する。CPU2~CPUNは、スレーブCPUであり、割り当てられたアプリケーションを実行する。メモリ101は、CPU1~CPUNに共有されるメモリである。以下、アプリケーションの起動時に実行されるマルチコアシステム100のスケジューリング処理の一実施例について説明する。1CPU1は、アプリケーション図1中、アプリAPの起動時に、アプリケーションAPの実行のためのアプリ情報110をメモリ101から読み出す。ここで、アプリ情報110は、例えば、アプリケーションAPに含まれるスレッド数や、アプリケーションAPの実行に必要なCPUの実行能力を示す情報である。2CPU1は、メモリ101から読み出したアプリケーションAPの実行のためのアプリ情報110を、CPU2~CPUNにブロードキャストする。3各CPU2~CPUNは、アプリ情報110に基づいて、アプリケーションAPの実行可否を判定する。具体的には、例えば、各CPU2~CPUNは、自CPUの実行能力と、アプリ情報110が示すアプリケーションAPの実行に必要なCPUの実行能力とを比較して、アプリケーションAPの実行可否を判定する。4a各CPU2~CPUNは、アプリケーションAPを実行可能な場合、アプリケーションAPが実行できる旨をCPU1に通知する。具体的には、例えば、各CPU2~CPUNは、自CPUの実行能力が、アプリケーションAPの実行に必要なCPUの実行能力以上の場合、アプリケーションAPが実行できる旨をCPU1に通知する。図1の例では、CPU2の実行能力がアプリケーションAPの実行に必要なCPUの実行能力以上のため、CPU2が、アプリケーションAPが実行できる旨をCPU1に通知している。4b各CPU2~CPUNは、アプリケーションAPを実行不能な場合、アプリケーションAPの実行可否に関するCPU1への通知を行わない。具体的には、例えば、各CPU2~CPUNは、自CPUの実行能力が、アプリケーションAPの実行に必要なCPUの実行能力よりも小さい場合、アプリケーションAPの実行可否に関するCPU1への通知を行わない。図1の例では、CPUNの実行能力がアプリケーションAPの実行に必要なCPUの実行能力よりも小さいため、CPUNからCPU1へのアプリケーションAPの実行可否に関する通知は行われていない図1中、非通知。5CPU1は、アプリケーションAPが実行できる旨の通知があったCPU例えば、CPU2に、アプリケーションAPを割り当てる。この結果、例えば、割当先のCPU2により、アプリケーションAPが実行される。このように、マルチコアシステム100によれば、新たに起動されたアプリケーションAPの実行可否を各CPU2~CPUNに判定させることができる。これにより、CPU1が各CPU2~CPUNの実行可否を判定する場合に比べて、スケジューリング時におけるCPU1の負荷を軽減させることができる。また、スケジューリング時に各CPU2~CPUNの負荷情報実行能力をCPU1に集約しないため、CPU1への通信コンフリクトを回避することができる。また、マルチコアシステム100によれば、新たに起動されたアプリケーションAPの実行のためのアプリ情報110をCPU1がメモリ101から取得して、各CPU2~CPUNにブロードキャストすることができる。これにより、メモリ101上の同一データへのCPU2~CPUNのアクセスコンテンションを回避することができる。すなわち、各CPU2~CPUNが、アプリケーションAPの実行可否を判定する際に、メモリ101からアプリ情報110をそれぞれ読み出す必要がないため、メモリ101上のアプリ情報110へのアクセスコンテンションを回避することができる。また、マルチコアシステム100によれば、CPU2~CPUNのうちアプリケーションAPを実行可能なCPU例えば、CPU2のみがCPU1への返答を行うため、スケジューリング時のCPU1への通信コンフリクトを回避することができる。これらのことから、マルチコアシステム100によれば、スケジューリング時の通信コストを削減して、効率的なスケジューリングを行うことができる。マルチコアシステム100のシステム構成つぎに、実施の形態にかかるマルチコアシステム100のシステム構成について説明する。図2は、実施の形態にかかるマルチコアシステムのシステム構成例を示す説明図である。図2において、マルチコアシステム100は、CPU1~CPUNと、メモリ101と、1次キャッシュ201-1~201-Nと、スヌープ回路202と、2次キャッシュ203と、I/FInterFace204と、メモリコントローラ205と、を有している。マルチコアシステム100において、2次キャッシュ203と、I/F204と、メモリコントローラ205とは、バス220を介して接続されている。また、メモリ101は、メモリコントローラ205を介して各部と接続されている。CPU1は、OSOperatingSystem210-1を実行し、マルチコアシステム100の全体の制御を司る。OS210-1は、マスタOSであり、アプリケーションをどのCPUに割り当てるかを制御するスケジューラ210を備えている。また、CPU1は、割り当てられたアプリケーションを実行する。CPU2~CPUNは、それぞれOS210-2~210-Nを実行し、各OSに割り当てられたアプリケーションを実行する。OS210-2~210-Nは、スレーブOSである。CPU1~CPUNは、それぞれレジスタとコアとを有している。各レジスタには、プログラムカウンタやリセットレジスタがある。また、各CPU1~CPUNは、各々の1次キャッシュ201-1~201-Nと、スヌープ回路202と、2次キャッシュ203とを介して各部に接続されている。1次キャッシュ201-1~201-Nは、それぞれキャッシュメモリとキャッシュコントローラとを有している。例えば、1次キャッシュ201-1は、OS210-1が実行するアプリケーションからメモリ101への書込処理を一時的に記憶する。1次キャッシュ201-1は、メモリ101から読み出されたデータを一時的に記憶する。スヌープ回路202は、CPU1~CPUNがアクセスする1次キャッシュ201-1~201-Nの整合性を取る。具体的には、例えば、スヌープ回路202は、1次キャッシュ201-1~201-Nの間で共有するデータがいずれかの1次キャッシュで更新された場合、該更新を検出して、他の1次キャッシュを更新する。2次キャッシュ203は、キャッシュメモリとキャッシュコントローラとを有している。2次キャッシュ203では、各1次キャッシュ201-1~201-Nから追い出されたデータを記憶する。具体的には、例えば、2次キャッシュ203は、OS210-1~210-Nで共有するデータを記憶する。I/F204は、通信回線を通じてLANLocalAreaNetwork、WANWideAreaNetwork、インターネットなどのネットワークに接続され、ネットワークを介して他の装置に接続される。そして、I/F204は、ネットワークと内部のインターフェースを司り、外部の装置からのデータの入出力を制御する。メモリコントローラ205は、メモリ101に対するデータのリード/ライトを制御する。メモリ101は、CPU1~CPUNに共有されるメモリである。メモリ101は、例えば、ROMReadOnlyMemory、RAMRandomAccessMemoryおよびフラッシュROMなどを有している。より具体的には、例えば、フラッシュROMが各OSのプログラムを記憶し、ROMがアプリケーションプログラムを記憶し、RAMがCPU1~CPUNのワークエリアとして使用される。メモリ101に記憶されているプログラムは、各CPUにロードされることで、コーディングされている処理を該各CPUに実行させることになる。ファイルシステム207は、例えば、アプリケーションの命令コードや、画像および映像などのコンテンツデータを記憶している。ファイルシステム207は、例えば、ハードディスクや光ディスクなどの補助記憶装置により実現される。なお、図示は省略するが、マルチコアシステム100は、各部に電源電圧を供給するPMUPowerManagementUnitのほか、ディスプレイやキーボードなどを有することにしてもよい。アプリケーションテーブル300の記憶内容つぎに、マスタCPUCPU1がアクセスするアプリケーションテーブル300の記憶内容について説明する。アプリケーションテーブル300は、例えば、図2に示したメモリ101に記憶されている。図3は、アプリケーションテーブルの記憶内容の一例を示す説明図である。図3において、アプリケーションテーブル300は、アプリID、Lmin、Lmaxおよびmのフィールドを有する。各フィールドに情報を設定することで、アプリケーションAP1~APKごとのアプリ情報300-1~300-Kがレコードとして記憶されている。ここで、アプリIDは、各アプリケーションAP1~APKの識別子である。Lminは、各アプリケーションAP1~APKに含まれる1以上のスレッド群のうち最小負荷のスレッドの負荷である。スレッドの負荷とは、該スレッドの実行にかかるCPUの負荷である。Lmaxは、各アプリケーションAP1~APKに含まれる1以上のスレッド群のうち最大負荷のスレッドの負荷である。mは、各アプリケーションAP1~APKに含まれるスレッド数である。なお、本明細書において、CPUの最大計算能力、余剰計算能力、負荷、スレッドの負荷は、統一的な価値基準に従って、設定または算出される値によって表現される。ここでは、マスタCPUであるCPU1の最大計算能力を1.0とする。また、スレーブCPUである各CPU2~CPUNの最大計算能力は、CPU1の動作周波数を基準として設定される。例えば、CPU2の動作周波数がCPU1の動作周波数と同じであれば、CPU2の最大計算能力は1.0となる。例えば、CPU2の動作周波数がCPU1の動作周波数の2倍であれば、CPU2の最大計算能力は2.0となる。例えば、CPU2の動作周波数がCPU1の動作周波数の半分であれば、CPU2の最大計算能力は0.5となる。また、CPUの負荷は、一定期間の間に該CPUの処理時間が占める割合によって表す。例えば、一定期間の間、常にCPU1が処理を行っている場合、CPU1の負荷は1.0となる。また、一定期間のうちの半分の時間、CPU1がアイドル状態となっている場合、CPU1の負荷は0.5となる。また、CPUの余剰計算能力は、CPUの最大計算能力からCPUの負荷を減算した値によって表す。すなわち、CPUの余剰計算能力は、該CPUが有する残余の計算能力を表している。例えば、CPU1の負荷が0.5の場合、CPU1の余剰計算能力は0.5となる。ここで、アプリ情報300-1を例に挙げると、アプリケーションAP1に含まれるスレッドの最小負荷Lminは0.1、最大負荷Lmaxは0.7、スレッド数mは2である。すなわち、最大計算能力がCPU1と同一のCPUが、最小負荷Lmin0.1のスレッドを実行するためには、該CPUの余剰計算能力が0.1以上である必要がある。同様に、最大負荷Lmax0.7のスレッドを実行するためには、該CPUの余剰計算能力が0.7以上である必要がある。なお、以下の説明では、アプリケーションAP1~APKのうち任意のアプリケーションをアプリケーションAPkと表記するk=1,2,...,K。また、アプリケーションAPkに含まれるスレッドの最小負荷を最小負荷Lkmin、最大負荷を最大負荷Lkmax、スレッド数をスレッド数mkと表記する。マスタCPUの機能的構成例つぎに、マスタCPUCPU1の機能的構成例について説明する。図4は、実施の形態にかかるマスタCPUの機能的構成を示すブロック図である。図4において、マスタCPUは、受付部401と、読出部402と、通知部403と、判定部404と、割当部405と、を含む構成である。この制御部となる機能受付部401~割当部405は、具体的には、例えば、メモリ101に記憶されたスケジューラ210をCPU1に実行させることにより、その機能を実現する。なお、各機能部の処理結果は、例えば、CPU1のレジスタ、1次キャッシュ201-1、2次キャッシュ203およびメモリ101などの記憶装置に記憶される。受付部401は、新たなアプリケーションAPkの起動要求を受け付ける。アプリケーションAPkの起動要求には、例えば、アプリケーションAPkのアプリIDが含まれている。具体的には、例えば、受付部401が、アプリケーションAPkの起動要求をOS210-1から受け付ける。読出部402は、アプリケーションAPkの起動要求が受け付けられた場合、アプリケーションAPkの実行のためのCPUの計算能力に関する閾値をメモリ101から読み出す。ここで、CPUの計算能力に関する閾値とは、例えば、アプリケーションAPkに含まれるスレッドの実行にかかるCPUの負荷である。より具体的には、例えば、CPUの計算能力に関する閾値は、アプリケーションAPkに含まれるスレッドの最小負荷Lkminや最大負荷Lkmaxである。具体的には、例えば、読出部402が、メモリ101にアクセスして、アプリケーションテーブル300の中から、起動要求に含まれるアプリケーションAPkのアプリIDに対応するアプリ情報300-kを読み出す。アプリ情報300-kには、アプリケーションAPkのスレッドの最小負荷Lkminおよび最大負荷Lkmaxが含まれている。通知部403は、アプリケーションAPkの実行のためのCPUの計算能力に関する閾値をCPU2~CPUNに通知する。具体的には、例えば、通知部403が、アプリ情報300-kから特定されるスレッドの最小負荷Lkminおよび最大負荷Lkmaxを、CPU2~CPUNにブロードキャストする。また、受付部401は、アプリケーションAPkの実行のためのCPUの計算能力に関する閾値がCPU2~CPUNに通知された結果、アプリケーションAPkを実行できる旨の応答をCPUjから受け付けるj=2,3,...,N。具体的には、例えば、受付部401が、第1の応答通知または第2の応答通知をCPUjから受け付ける。ここで、第1の応答通知とは、アプリケーションAPkに含まれる最大負荷Lkmaxのスレッドを実行できる旨の応答である。すなわち、第1の応答通知は、アプリケーションAPkに含まれるどのスレッドでもCPUjが実行できることを示すものである。第2の応答通知とは、アプリケーションAPkに含まれる最小負荷Lkminのスレッドを実行できる旨の応答である。すなわち、第2の応答通知は、アプリケーションAPkに含まれるスレッド群のうち、少なくとも最小負荷LkminのスレッドをCPUjが実行できることを示すものである。また、第2の応答通知には、例えば、CPUjの余剰計算能力を示す情報が含まれている。受け付けられた第1の応答通知は、例えば、図5に示す第1の応答通知リスト500に記憶される。また、受け付けられた第2の応答通知は、例えば、図6に示す第2の応答通知リスト600に記憶される。第1および第2の応答通知リスト500,600は、例えば、CPU1のレジスタ、1次キャッシュ201-1、2次キャッシュ203およびメモリ101などの記憶装置により実現される。ここで、第1の応答通知リスト500の具体例について説明する。図5は、第1の応答通知リストの具体例を示す説明図である。図5において、第1の応答通知リスト500は、アプリケーションAPkに含まれる最大負荷Lkmaxのスレッドを実行できる旨の第1の応答通知があったCPUごとのCPU情報例えば、CPU情報500-1~500-3をリスト化して示す情報である。ここで、最大負荷は、起動要求があったアプリケーションAPkに含まれるスレッドの最大負荷Lkmaxである。図5の例では、アプリケーションAP1に含まれるスレッドの最大負荷L1max0.7が示されている。CPU名は、第1の応答通知のあったCPUの識別子である。割当フラグは、第1の応答通知のあったCPUの割当状態を示すフラグである。割当フラグは、CPUにアプリケーションAPkのスレッドが割り当てられていない場合は0、CPUにアプリケーションAPkのスレッドが割り当てられた場合は1となる。なお、割当フラグは初期状態では0である。CPU情報500-1を例に挙げると、アプリケーションAP1に含まれる最大負荷L1max0.7のスレッドを実行できる旨の第1の応答通知があったCPUのCPU名CPU2および割当フラグ0が示されている。このCPU情報500-1は、CPU2から第1の応答通知があった際に作成されて、第1の応答通知リスト500に登録される。つぎに、第2の応答通知リスト600の具体例について説明する。図6は、第2の応答通知リストの具体例を示す説明図である。図6において、第2の応答通知リスト600は、アプリケーションAPkに含まれる最小負荷Lkminのスレッドを実行できる旨の第2の応答通知があったCPUごとのCPU情報例えば、CPU情報600-1~600-3をリスト化して示す情報である。ここで、最小負荷は、起動要求があったアプリケーションAPkに含まれるスレッドの最小負荷Lkminである。図6の例では、アプリケーションAP1に含まれるスレッドの最小負荷L1min0.1が示されている。CPU名は、第2の応答通知のあったCPUの識別子である。余剰計算能力は、第2の応答通知のあったCPUの余剰計算能力である。CPU情報600-1を例に挙げると、アプリケーションAP1に含まれる最小負荷L1min0.1のスレッドを実行できる旨の第2の応答通知があったCPUのCPU名CPU3および余剰計算能力0.3が示されている。このCPU情報600-1は、CPU3から第2の応答通知があった際に作成されて、第2の応答通知リスト600に登録される。なお、第1の応答通知リスト500および第2の応答通知リスト600の記憶内容は、例えば、アプリケーションAPkのスレッドの最小負荷Lkminおよび最大負荷LkmaxがCPU2~CPUNにブロードキャストされると、その都度初期化される。図4の説明に戻り、判定部404は、アプリケーションAPkを実行できる旨の応答が受け付けられたCPUの数が、アプリケーションAPkに含まれるスレッド数mk以上となったか否かを判定する。スレッド数mkは、アプリケーションAPkの起動要求から特定される。具体的には、例えば、判定部404は、アプリケーションAPkに含まれる最大負荷Lkmaxのスレッドを実行できる旨の第1の応答通知があったCPUの数以下、CPU数Xというが、スレッド数mk以上となったか否かを判定する以下、第1の判定処理という。より具体的には、例えば、判定部404が、図5に示した第1の応答通知リスト500を参照して、割当フラグが0のCPU情報を計数することにより、第1の応答通知があったCPU数Xを算出する。そして、判定部404が、算出したCPU数Xが、アプリケーションAPkに含まれるスレッド数mk以上となったか否かを判定する。また、判定部404は、アプリケーションAPkに含まれる最小負荷Lkminのスレッドを実行できる旨の第2の応答通知があったCPUの数以下、CPU数Yというが、スレッド数mk以上となったか否かを判定する以下、第2の判定処理という。より具体的には、例えば、判定部404が、図6に示した第2の応答通知リスト600を参照して、CPU情報を計数することにより、第2の応答通知があったCPU数Yを算出する。そして、判定部404が、算出したCPU数Yが、アプリケーションAPkに含まれるスレッド数mk以上となったか否かを判定する。第2の判定処理は、例えば、スレッドの最小負荷Lkminおよび最大負荷Lkmaxが通知されてから一定時間Tが経過しても、第1の判定処理においてCPU数Xがスレッド数mk未満であると判定された場合に実行されることにしてもよい。一定時間Tは、例えば、予め設定されてCPU1のレジスタ、1次キャッシュ201-1、2次キャッシュ203およびメモリ101などの記憶装置に記憶されている。割当部405は、判定された判定結果に基づいて、アプリケーションAPkに含まれるスレッド群をCPU2~CPUNに割り当てる。具体的には、例えば、割当部405が、アプリケーションAPkを実行できる旨の応答があったCPUjに、アプリケーションAPkに含まれるスレッドを割り当てる。以下、マスタCPUCPU1のスケジューリング方法の具体的な処理内容について説明する。<スケジューリング方法1>まず、マスタCPUCPU1のスケジューリング方法1について説明する。スケジューリング方法1は、上述した第1の判定処理の判定結果に基づいて、アプリケーションAPkに含まれるスレッド群の割り当てを行うものである。割当部405は、CPU数Xがスレッド数mk以上の場合第1の判定処理、第1の応答通知リスト500を参照して、割当フラグが0のCPUに、アプリケーションAPkに含まれるスレッド群をランダムに割り当てる。なお、スレッドをランダムに割り当てるとは、任意の選択アルゴリズムに基づいて、母集団となるCPU群の中からいずれかのCPUを選択してスレッドを割り当てることである。これにより、アプリケーションAPkに含まれるスレッド群を、余剰計算能力が最大負荷Lkmax以上のCPUjに割り当てることができる。なお、アプリケーションAPkのスレッドがCPUjに割り当てられた場合、第1の応答通知リスト500内のCPUjの割当フラグが0から1に変更される。一方、割当部405は、CPU数Xがスレッド数mk未満の場合第1の判定処理、アプリケーションAPkに含まれるスレッド群を、CPU2~CPUNにランダムに割り当てる。この際、割当部405は、CPU2~CPUNのうち第1の応答通知リスト500内の割当フラグが0のCPUを優先的に選択して、アプリケーションAPkのスレッドを割り当てることにしてもよい。これにより、CPU2~CPUNの中から余剰計算能力が最大負荷Lkmax以上のCPUjを優先的に選択して、アプリケーションAPkに含まれるスレッドを割り当てることができる。さらに、割当部405は、優先的に選択した第1の応答通知リスト500内の割当フラグが0のCPUに、アプリケーションAPkの高負荷のスレッドを割り当てることにしてもよい。ここで、アプリケーションAPkの各スレッドの負荷は、例えば、アプリケーションAPkのスレッド負荷情報から特定される。アプリケーションAPkのスレッド負荷情報は、例えば、図3に示したアプリケーションAPkのアプリ情報300-kと関連付けてメモリ101に記憶されている。ここで、スレッド負荷情報の具体例について説明する。図7は、スレッド負荷情報の具体例を示す説明図である。図7において、スレッド負荷情報700は、アプリケーションAP2に含まれる各スレッドt1~t5の負荷を示す情報である。具体的には、スレッドt1の負荷は0.3、スレッドt2の負荷は0.45、スレッドt3の負荷は0.5、スレッドt4の負荷は0.35、スレッドt5の負荷は0.4である。この場合、割当部405は、優先的に選択した第1の応答通知リスト500内の割当フラグが0のCPUに、高負荷のスレッド例えば、スレッドt3を割り当てる。これにより、余剰計算能力が最大負荷Lkmax以上のCPUjに高負荷のスレッドを割り当てることができる。<スケジューリング方法2>つぎに、マスタCPUCPU1のスケジューリング方法2について説明する。スケジューリング方法2は、上述した第2の判定処理の判定結果に基づいて、アプリケーションAPkに含まれるスレッド群の割り当てを行うものである。割当部405は、CPU数Yがスレッド数mk以上の場合第2の判定処理、第2の応答通知リスト600を参照して、第2の応答通知があったCPUに、アプリケーションAPkに含まれるスレッド群をランダムに割り当てる。これにより、アプリケーションAPkに含まれるスレッド群を、余剰計算能力が最小負荷Lkmin以上のCPUjに割り当てることができる。また、割当部405は、CPU数Yがスレッド数mk以上の場合第2の判定処理、第2の応答通知リスト600を参照して、余剰計算能力が大きいCPUから順に、アプリケーションAPkの高負荷のスレッドを割り当てることにしてもよい。具体的には、例えば、割当部405が、スレッド負荷情報700を参照して、余剰計算能力が大きいCPUから順に、高負荷のスレッド高:t3→t2→t5→t4→t1:低をそれぞれ割り当てる。これにより、余剰計算能力が最小負荷Lkmin以上のCPUの中から余剰計算能力が高いCPUjを優先的に選択して高負荷のスレッドを割り当てることができる。一方、割当部405は、CPU数Yがスレッド数mk未満の場合第2の判定処理、アプリケーションAPkに含まれるスレッド群を、CPU2~CPUNにランダムに割り当てる。この際、割当部405は、第2の応答通知リスト600を参照して、第2の応答通知があったCPUを優先的に選択して、アプリケーションAPkのスレッドを割り当てることにしてもよい。これにより、CPU2~CPUNの中から余剰計算能力が最小負荷Lkmin以上のCPUjを優先的に選択して、アプリケーションAPkに含まれるスレッドを割り当てることができる。さらに、割当部405は、優先的に選択した第2の応答通知があったCPUに、アプリケーションAPkの高負荷のスレッドを割り当てることにしてもよい。これにより、余剰計算能力が最小負荷Lkmin以上のCPUjに高負荷のスレッドを割り当てることができる。<スケジューリング方法3>つぎに、マスタCPUCPU1のスケジューリング方法3について説明する。スケジューリング方法3は、後述する第3の判定処理の判定結果に基づいて、アプリケーションAPkに含まれるスレッド群の割り当てを行うものである。判定部404は、上述した一定時間T経過後において、CPU数Xがスレッド数mk未満の場合第1の判定処理、CPU数Yが、スレッド数mkからCPU数Xを減算した値以上となったか否かを判定する以下、第3の判定処理という。なお、以下の説明では、スレッド数mkからCPU数Xを減算した値を残余のスレッド数mk-Xという。割当部405は、CPU数Yが残余のスレッド数mk-X以上の場合第3の判定処理、CPU2~CPUNのうち第1の応答通知リスト500内の割当フラグが0のCPUを優先的に選択して、アプリケーションAPkのスレッドを割り当てる。この際、割当部405は、優先的に選択したCPUにアプリケーションAPkの高負荷のスレッドを割り当てることにしてもよい。つぎに、割当部405は、第2の応答通知リスト600を参照して、第2の応答通知があったCPUに、アプリケーションAPkのスレッド群のうち割り当てられていない残余のスレッドを割り当てる。この際、割当部405は、余剰計算能力が大きいCPUから順に、高負荷のスレッドを割り当てることにしてもよい。これにより、CPU2~CPUNの中から余剰計算能力が最大負荷Lkmax以上のCPUjを優先的に選択して、アプリケーションAPkのスレッドを割り当てることができる。さらに、残余のスレッドを、余剰計算能力が最小負荷Lkmin以上のCPUjに割り当てることができる。一方、割当部405は、CPU数Yが残余のスレッド数mk-X未満の場合第3の判定処理、CPU2~CPUNのうち第1の応答通知リスト500内の割当フラグが0のCPUを優先的に選択して、アプリケーションAPkのスレッドを割り当てる。つぎに、割当部405は、第2の応答通知リスト600を参照して、第2の応答通知があったCPUを優先的に選択して、割り当てられていない残余のスレッドを割り当てる。そして、割当部405は、割り当てられていない残余のスレッドを、CPU2~CPUNにランダムに割り当てる。これにより、CPU2~CPUNの中から余剰計算能力が最大負荷Lkmax以上のCPUjを優先的に選択して、アプリケーションAPkのスレッドを割り当てることができる。さらに、余剰計算能力が最小負荷Lkmin以上のCPUjを優先的に選択して残余のスレッドを割り当てることができる。すなわち、アプリケーションAPkのスレッド群を、CPU2~CPUNのうちできるだけ余剰計算能力が高いCPUjに割り当てることができる。なお、上記判定部404は、通知部403によるアプリケーションAPkのスレッドの最小負荷Lkminおよび最大負荷Lkmaxのブロードキャストに先立って、第1の応答通知リスト500を参照して、第1の判定処理を実行することにしてもよい。すなわち、判定部404は、アプリケーションAPkよりも前に割り当てられたアプリケーションAPrr≠kに関する第1の応答通知を利用して、アプリケーションAPkの第1の判定処理を実行する。具体的には、例えば、まず、判定部404は、前回割り当てられたアプリケーションAPrのスレッドの最大負荷Lrmaxが、新たなアプリケーションAPkのスレッドの最大負荷Lkmax以上か否かを判定する。なお、前回割り当てられたアプリケーションAPrのスレッドの最大負荷Lrmaxは、例えば、第1の応答通知リスト500から特定される。ここで、最大負荷Lrmaxが最大負荷Lkmax以上の場合、判定部404は、第1の応答通知リスト500を参照して、割当フラグが0のCPU情報を計数することによりCPU数Xを算出する。そして、判定部404は、算出したCPU数Xが、アプリケーションAPkに含まれるスレッド数mk以上か否かを判定する。これにより、アプリケーションAPkのスレッドの最小負荷Lkminおよび最大負荷Lkmaxを、CPU2~CPUNにブロードキャストすることなく、第1の判定処理を行うことができる。ただし、最大負荷Lrmaxが最大負荷Lkmax未満の場合は、通知部403により、アプリケーションAPkのスレッドの最小負荷Lkminおよび最大負荷Lkmaxを、CPU2~CPUNにブロードキャストすることになる。同様に、CPU数Xがスレッド数mk未満の場合は、通知部403により、アプリケーションAPkのスレッドの最小負荷Lkminおよび最大負荷Lkmaxを、CPU2~CPUNにブロードキャストすることになる。スレーブCPUの機能的構成例つぎに、スレーブCPUCPU2~CPUNの機能的構成例について説明する。図8は、実施の形態にかかるスレーブCPUの機能的構成を示すブロック図である。図8において、スレーブCPUは、受付部801と、判定部802と、通知部803と、を含む構成である。この制御部となる機能受付部801~通知部803は、具体的には、例えば、メモリ101に記憶されたプログラムを各CPU2~CPUNに実行させることにより、その機能を実現する。なお、各機能部の処理結果は、例えば、各CPU2~CPUNのレジスタ、1次キャッシュ201-2~201-N、2次キャッシュ203およびメモリ101などの記憶装置に記憶される。受付部801は、アプリケーションAPkの実行のためのCPUの計算能力に関する閾値をCPU1から受け付ける。具体的には、例えば、受付部801が、アプリケーションAPkのスレッドの最小負荷Lkminおよび最大負荷LkmaxをCPU1から受け付ける。判定部802は、自CPUの計算能力が、受け付けられたアプリケーションAPkの実行のためのCPUの計算能力に関する閾値以上か否かを判定する。具体的には、例えば、判定部802が、自CPUの余剰計算能力が、アプリケーションAPkのスレッドの最大負荷Lkmax以上か否かを判定する。また、判定部802が、自CPUの余剰計算能力が、アプリケーションAPkのスレッドの最小負荷Lkmin以上か否かを判定する。通知部803は、自CPUの計算能力がアプリケーションAPkの実行のためのCPUの計算能力に関する閾値以上の場合、アプリケーションAPkを実行できる旨の応答をCPU1に通知する。具体的には、例えば、自CPUの余剰計算能力が最大負荷Lkmax以上の場合、通知部803が、第1の応答通知をCPU1に通知する。また、自CPUの余剰計算能力が最小負荷Lkmin以上の場合、通知部803が、第2の応答通知をCPU1に通知する。この際、通知部803が、自CPUの余剰計算能力を含む第2の応答通知をCPU1に通知することにしてもよい。マスタCPUの割当処理手順つぎに、マスタCPUCPU1の割当処理手順について説明する。ここでは、上述したスケジューリング方法1とスケジューリング方法2とを組み合わせた場合のマスタCPUCPU1の割当処理手順について説明する。図9は、実施の形態にかかるマスタCPUの割当処理手順の一例を示すフローチャートである。図9のフローチャートにおいて、まず、CPU1により、新たなアプリケーションAPkの起動要求を受け付けたか否かを判断するステップS901。ここで、CPU1により、起動要求を受け付けるのを待つステップS901:No。そして、CPU1により、起動要求を受け付けた場合ステップS901:Yes、アプリケーションテーブル300の中から、起動要求に含まれるアプリケーションAPkのアプリIDに対応するアプリ情報300-kを読み出すステップS902。つぎに、CPU1により、第1の応答通知リスト500を参照して、前回割り当てられたアプリケーションAPrのスレッドの最大負荷Lrmaxが、新たなアプリケーションAPkのスレッドの最大負荷Lkmax以上か否かを判定するステップS903。ここで、最大負荷Lrmaxが最大負荷Lkmax未満の場合ステップS903:No、CPU1により、アプリケーションAPkのスレッドの最小負荷Lkminおよび最大負荷Lkmaxを、CPU2~CPUNにブロードキャストするステップS904。なお、スレッドの最小負荷Lkminおよび最大負荷Lkmaxは、ステップS902において読み出したアプリ情報300-kから特定される。このあと、CPU1により、CPUjから第1の応答通知または第2の応答通知を受け付けたか否かを判断するステップS905。ここで、CPU1により、第1の応答通知または第2の応答通知を受け付けていない場合ステップS905:No、ステップS909に移行する。一方、CPU1により、第1の応答通知または第2の応答通知を受け付けた場合ステップS905:Yes、第1の応答通知リスト500内の割当フラグが0のCPU情報を計数することで第1の応答通知があったCPU数Xを算出するステップS906。そして、CPU1により、算出したCPU数Xが、アプリケーションAPkに含まれるスレッド数mk以上か否かを判定するステップS907。ここで、CPU数Xがスレッド数mk以上の場合ステップS907:Yes、CPU1により、第1の応答通知リスト500内の割当フラグが0のCPUに、アプリケーションAPkのスレッド群をランダムに割り当ててステップS908、本フローチャートによる一連の処理を終了する。また、ステップS907において、CPU数Xがスレッド数mk未満の場合ステップS907:No、CPU1により、最小負荷Lkminおよび最大負荷Lkmaxをブロードキャストしてから一定時間T経過したか否かを判断するステップS909。ここで、一定時間T経過していない場合ステップS909:No、ステップS905に戻る。一方、一定時間T経過した場合ステップS909:Yes、CPU1により、第2の応答通知リスト600内のCPU情報を計数することで第2の応答通知があったCPU数Yを算出するステップS910。そして、CPU1により、算出したCPU数Yが、アプリケーションAPkに含まれるスレッド数mk以上となったか否かを判定するステップS911。ここで、CPU数Yがスレッド数mk以上の場合ステップS911:Yes、CPU1により、第2の応答通知リスト600内の余剰計算能力が大きいCPUから順に高負荷のスレッドを割り当ててステップS912、本フローチャートによる一連の処理を終了する。一方、CPU数Yがスレッド数mk未満の場合ステップS911:No、CPU1により、アプリケーションAPkのスレッド群をCPU2~CPUNにランダムに割り当ててステップS913、本フローチャートによる一連の処理を終了する。また、ステップS903において、最大負荷Lrmaxが最大負荷Lkmax以上の場合ステップS903:Yes、CPU1により、第1の応答通知リスト500内の割当フラグが0のCPU情報を計数してCPU数Xを算出するステップS914。そして、CPU1により、算出したCPU数Xが、アプリケーションAPkに含まれるスレッド数mk以上か否かを判定するステップS915。ここで、CPU数Xがスレッド数mk以上の場合ステップS915:Yes、ステップS908に移行する。一方、CPU数Xがスレッド数mk未満の場合ステップS915:No、ステップS904に移行する。これにより、CPU2~CPUNの中から第1の応答通知があったCPUjを優先的に選択して、アプリケーションAPkのスレッドを割り当てることができる。また、CPU2~CPUNの中から第2の応答通知があったCPUjを優先的に選択して、アプリケーションAPkのスレッドを割り当てることができる。なお、ステップS903において、前回割り当てられたアプリケーションAPrが存在しない場合は、ステップS904に移行する。スレーブCPUの判定処理手順つぎに、スレーブCPUCPU2~CPUNの判定処理手順について説明する。ここでは、CPU2~CPUNのうちのCPUjを例に挙げて、スレーブCPUの判定処理手順について説明する。図10は、実施の形態にかかるスレーブCPUの判定処理手順の一例を示すフローチャートである。図10のフローチャートにおいて、まず、CPUjにより、アプリケーションAPkのスレッドの最小負荷Lkminおよび最大負荷LkmaxをCPU1から受け付けたか否かを判断するステップS1001。ここで、CPUjにより、最小負荷Lkminおよび最大負荷Lkmaxを受け付けるのを待つステップS1001:No。そして、CPUjにより、最小負荷Lkminおよび最大負荷Lkmaxを受け付けた場合ステップS1001:Yes、自CPUの余剰計算能力が、アプリケーションAPkのスレッドの最大負荷Lkmax以上か否かを判定するステップS1002。ここで、自CPUの余剰計算能力が最大負荷Lkmax以上の場合ステップS1002:Yes、CPUjにより、第1の応答通知をCPU1に通知してステップS1003、本フローチャートによる一連の処理を終了する。一方、自CPUの余剰計算能力が最大負荷Lkmax未満の場合ステップS1002:No、CPUjにより、自CPUの余剰計算能力が、アプリケーションAPkのスレッドの最小負荷Lkmin以上か否かを判定するステップS1004。ここで、自CPUの余剰計算能力が最小負荷Lkmin以上の場合ステップS1004:Yes、CPUjにより、第2の応答通知をCPU1に通知してステップS1005、本フローチャートによる一連の処理を終了する。一方、自CPUの余剰計算能力が最小負荷Lkmin未満の場合ステップS1004:No、本フローチャートによる一連の処理を終了する。これにより、自CPUの余剰計算能力が最大負荷Lkmax以上の場合に第1の応答通知をCPU1に通知することができる。また、自CPUの余剰計算能力が最小負荷Lkmin以上の場合に第2の応答通知をCPU1に通知することができる。以上説明した実施の形態にかかるマルチコアシステム100によれば、CPU1からCPUjにアプリケーションAPkのスレッドの最大負荷Lkmaxを通知して、最大負荷Lkmaxのスレッドの実行可否をCPUjに判定させることができる。また、マルチコアシステム100によれば、CPU2~CPUNの中から第1の応答通知があったCPUjを優先的に選択して、アプリケーションAPkのスレッドを割り当てることができる。これにより、アプリケーションAPkのスレッドを、余剰計算能力が最大負荷Lkmax以上のCPUjに割り当てることができる。また、マルチコアシステム100によれば、CPU1からCPUjにアプリケーションAPkのスレッドの最小負荷Lkminを通知して、最小負荷Lkminのスレッドの実行可否をCPUjに判定させることができる。また、マルチコアシステム100によれば、CPU2~CPUNの中から第2の応答通知があったCPUjを優先的に選択して、アプリケーションAPkのスレッドを割り当てることができる。これにより、アプリケーションAPkのスレッドを、余剰計算能力が最小負荷Lkmin以上のCPUjに割り当てることができる。また、マルチコアシステム100によれば、まず、第1の応答通知があったCPUを選択してアプリケーションAPkのスレッドを割り当て、つぎに、第2の応答通知があったCPUを選択して残余のスレッドを割り当てることができる。これにより、アプリケーションAPkのスレッドをできるだけ余剰計算能力が高いCPUjに割り当てることができ、負荷分散の適正化を図ることができる。また、マルチコアシステム100によれば、できるだけ余剰計算能力が高いCPUjに高負荷のスレッドを割り当てることにより、負荷分散の適正化を図ることができる。また、マルチコアシステム100によれば、前回割り当てたアプリケーションAPrの最大負荷Lrmaxのスレッドを実行できる旨の第1の応答通知があったCPUjを優先的に選択して、アプリケーションAPkのスレッドを割り当てることができる。この際、アプリケーションAPrの最大負荷LrmaxがアプリケーションAPkの最大負荷Lkmax以上の場合に、CPU1が前回第1の応答通知があったCPUjを優先的に選択する。これにより、アプリケーションAPkのスレッドの最大負荷Lkmaxをブロードキャストすることなく、余剰計算能力が最大負荷Lkmax以上のCPUjを選択でき、通信コスト通信量、通信処理を削減することができる。これらのことから、スケジューリング方法およびスケジューリングシステムによれば、新たに起動されたアプリケーションのスケジューリングを効率的に行うことができる。この結果、スケジューリングにかかる処理時間や通信時間が性能ボトルネックとなることを防いで、スケジューリングシステムの高性能化を図ることができる。なお、本実施の形態で説明したスケジューリング方法は、予め用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本スケジューリングプログラムは、ハードディスク、フレキシブルディスク、CD-ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本スケジューリングプログラムは、インターネット等のネットワークを介して配布してもよい。"