(57)【要約】【課題】ヘテロジニアス・マルチプロセッサの並列処理における処理割り当て方法の改善による並列処理効率の向上と、並列ソフトウェアの開発効率の向上。【解決手段】複数のプロセッサの実行状況と、次に実行するソフトウェアの特性とから、次に実行するソフトウェアを適切なプロセッサに割当てる方式を提供することを最も主要な特徴とする。【選択図】図１
2011028705.tif 000002
【特許請求の範囲】
【請求項１】
異なる命令セットを持つ複数のプロセッサからなるヘテロジニアス・マルチプロセッサ・システムで、オブジェクト指向プログラミング言語で記述されたソフトウェアのオブジェクトに属するメソッドの実行時に、オブジェクトを識別するオブジェクトＩＤと、オブジェクトＩＤとプロセッサＩＤを対応付けるオブジェクト配置情報に基づき、前述のプロセッサＩＤにより識別されるプロセッサにメソッドを実行するように割り当てることを特徴とするソフトウェア実行方式
【請求項２】
オブジェクトの型情報と、オブジェクトの型情報とプロセッサＩＤを対応付けるためのオブジェクト型情報プロセッサ対応情報に基づきオブジェクト配置情報を作成することを特徴とする請求項１に記載のソフトウェア実行方式
【請求項３】
プロセッサＩＤで識別されるプロセッサでメソッドＩＤで識別されるメソッドを実行した際のメソッド実行時間を、メソッドＩＤとプロセッサＩＤとを対応付けてメソッド実行時間情報を記録し、そのメソッド実行時間情報に基づいてオブジェクト配置情報を作成することを特徴とする請求項１に記載のソフトウェア実行方式
【請求項４】
メソッド実行間に各プロセッサの実行状況情報を参照し、そのプロセッサ実行状況情報に基づいてオブジェクト配置情報を作成することを特徴とする請求項１に記載のソフトウェア実行方式
【請求項５】
ある特定の期間においてシステムにおけるプロセッサ負荷状況を記録し、記録したプロセッサ負荷情報に基づきオブジェクト配置情報を作成することを特徴とする請求項１に記載のソフトウェア実行方式
【請求項６】
オブジェクト間のメソッド呼び出しにおいて、メソッド呼び出し元オブジェクトのオブジェクトＩＤ１と、呼び出し先のオブジェクトＩＤ２と、呼び出し回数情報に基づいた親密度情報とを対応付けたオブジェクト親密度情報を記録し、そのオブジェクト親密度情報に基づきオブジェクト配置情報を作成することを特徴とする請求項１に記載のソフトウェア実行方式
【発明の詳細な説明】
【技術分野】
【０００１】本発明は、プロセッサの並列処理方式に関するものである。より詳細には、複数のプロセッサを用いた並列ソフトウェア実行方式に関するものである。
【背景技術】
【０００２】デジタル処理を行うプロセッサにおいては、単純な命令セットを持つ単一のプロセッサを高速に動作させることで、処理性能の向上が行われてきた。しかし、半導体の物性的な限界により今後更なる高速化を進める事は難しい。【０００３】そのため、単一のプロセッサではなく複数のプロセッサを用いて処理を並列化することで、処理性能を向上するための研究開発が行われている。しかし、処理に内在する並列度には限界があることと、並列化した際の各処理間のオーバーヘッドがあるため、単に並列処理を行うだけでは処理性能の向上は難しい。【０００４】また、並列処理を行うソフトウェアの設計実装が難しいという問題がある。そのため、逐次処理で記述されたソフトウェアをコンパイル時に自動的に並列化するという研究開発がおこなわれている。【０００５】特許文献１は、並列化コンパイル処理方法及び並列化されたオブジェクトコードを実行する並列計算機に関するものであるが、処理に内在する並列度には限界があることと、並列化した際の各処理間のオーバーヘッドがあるという問題の解決には至らない。【０００６】単一の命令セットを持つプロセッサの数を増やすことでの並列処理を行い処理効率を向上する計算方式はホモジニアス・マルチプロセッサもしくは対称型マルチプロセッサと呼ばれる。その限界を超える計算方式として、ヘテロジニアス・マルチプロセッサもしくは非対称型マルチプロセッサと呼ばれる方式がある。ヘテロジニアス・マルチプロセッサにおいては、１つの目的の処理を処理分野ごとに分解し、得意な処理分野を持つ複数・異種のプロセッサが分担して処理を行うことで、ホモジニアス・マルチプロセッサ以上の処理効率を追求することが可能である。【０００７】しかし、ヘテロジニアス・マルチプロセッサにおいては、処理を割り当てることとプロセッサの選択を最適化することで処理効率の向上が可能であるが、その一方で処理割り当ての最適化が複雑となるために、ホモジニアス・マルチプロセッサに比べてソフトウェアの設計実装は更に難しいと認識されている。【０００８】特許文献２は、ヘテロジニアス・マルチプロセッサのための並列コンパイル処理方式に関するものである。命令セット及び構成の異なるプロセッサエレメントを複数備えたヘテロジニアス・マルチプロセッサシステムにおいて、マルチプロセッサシステム全体の処理能力を向上させることを狙っている。コンパイル時のソフトウェアの静的な解析により、タスクのサイズに応じて処理するプロセッサの割り当て（スケジューリング）を決定する処理方式が述べられている。【０００９】一般に、ソフトウェアの実行時間は入力データに依存する。そのため、コンパイル時に処理プロセッサの割り当てを静的に決定することは困難である。そのため、実際の動作時の状況に応じて動的に処理プロセッサの割り当てを行う方式が必要である。【００１０】また、処理プロセッサの割り当てを含めて、並列ソフトウェアの開発は困難であると認識されており、ソフトウェアの開発を容易化し開発効率を向上するための手法が必要である。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００６−２６８０７０（Ｐ２００６−２６８０７０Ａ）公報
【００１２】
【特許文献２】特開２００７−３２８４１５（Ｐ２００７−３２８４１５Ａ）公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】本発明が解決しようとする課題は、ヘテロジニアス・マルチプロセッサの並列処理における処理割り当て方法の改善による並列処理効率の向上と、並列ソフトウェアの開発容易化による開発効率の向上である。
【課題を解決するための手段】
【００１４】上記の目的を達成するため、本発明のソフトウェア実行方式は、異なる命令セットを持つ複数のプロセッサからなるヘテロジニアス・マルチプロセッサ・システムで、オブジェクト指向プログラミング言語で記述されたソフトウェアのオブジェクトに属するメソッドの実行時に、オブジェクトを識別するオブジェクトＩＤと、オブジェクトＩＤとプロセッサＩＤを対応付けるオブジェクト配置情報に基づき、前述のプロセッサＩＤにより識別されるプロセッサにメソッドを実行するように割り当てることを特徴とするものである。【００１５】また、本発明のソフトウェア実行方式は、オブジェクトの型情報と、オブジェクトの型情報とプロセッサＩＤを対応付けるためのオブジェクト型情報プロセッサ対応情報に基づきオブジェクト配置情報を作成するように構成される。【００１６】また、本発明のソフトウェア実行方式は、プロセッサＩＤで識別されるプロセッサでメソッドＩＤで識別されるメソッドを実行した際のメソッド実行時間を、メソッドＩＤとプロセッサＩＤとを対応付けてメソッド実行時間情報を記録し、そのメソッド実行時間情報に基づいてオブジェクト配置情報を作成するように構成される。【００１７】また、本発明のソフトウェア実行方式は、メソッド実行間に各プロセッサの実行状況情報を参照し、そのプロセッサ実行状況情報に基づいてオブジェクト配置情報を作成するように構成される。【００１８】また、本発明のソフトウェア実行方式は、ある特定の期間においてシステムにおけるプロセッサ負荷状況を記録し、記録したプロセッサ負荷情報に基づきオブジェクト配置情報を作成するように構成される。【００１９】また、本発明のソフトウェア実行方式は、オブジェクト間のメソッド呼び出しにおいて、メソッド呼び出し元オブジェクトのオブジェクトＩＤ１と、呼び出し先のオブジェクトＩＤ２と、呼び出し回数情報に基づいた親密度情報とを対応付けたオブジェクト親密度情報を記録し、そのオブジェクト親密度情報に基づきオブジェクト配置情報を作成するように構成される。
【発明の効果】
【００２０】このような特徴を有する本発明のソフトウェア実行方式によれば、オブジェクト配置情報に基づきメソッドを実行するプロセッサを割り当てることで、ソフトウェアとオブジェクト配置情報を明確に分離することで、ヘテロジニアス・マルチプロセッサ・システムにおける並列処理効率の向上と、並列ソフトウェアの開発容易化による開発効率の向上が行える。【００２１】従来のソフトウェア実行方式では、効率的な処理を行うためのオブジェクト配置情報の作成方法が知られていなかったが、本発明のソフトウェア実行方式によれば、オブジェクトの型情報とオブジェクト型情報プロセッサ対応情報に基づきオブジェクト配置情報を作成することで、オブジェクトの型に対応付けられた処理に適したプロセッサを選択的に割り当てて並列処理効率の向上を行うことが出来、また通常のオブジェクト指向プログラミングで用いられるオブジェクトの型情報をオブジェクト配置情報に結びつけることで、並列ソフトウェアの開発容易化による開発効率の向上が行える。【００２２】従来のソフトウェア実行方式では、ソフトウェアの実動作に追従して効率的な処理を行うためのオブジェクト配置情報の作成方法が知られていなかったが、本発明のソフトウェア実行方式によれば、メソッド実行時間情報に基づいてオブジェクト配置情報を作成することで、ソフトウェア実行前の静的な情報に加えて、ソフトウェアを実行した際の動的な情報を用いてオブジェクト配置を決定することが出来るため、ソフトウェアの実動作に追従した並列処理効率の向上を行うことが出来る。【００２３】従来のソフトウェア実行方式では、プロセッサの実行状況に追従して効率的な処理を行うためのオブジェクト配置情報の作成方法が知られていなかったが、本発明のソフトウェア実行方式によれば、プロセッサ実行状況情報に基づいてオブジェクト配置を決定することが出来るため、プロセッサの実行状況に追従して並列処理効率の向上を行うことが出来る。【００２４】従来のソフトウェア実行方式では、ヘテロジニアス・マルチプロセッサ・システムに含まれる各プロセッサの負荷傾向に追従した効率的な処理を行うためのオブジェクト配置情報の作成方法が知られていなかったため、仮に負荷が低いプロセッサが存在していても使用できない場合があったが、本発明のソフトウェア実行方式によれば、プロセッサ負荷情報に基づきオブジェクト配置情報を作成することで、ヘテロジニアス・マルチプロセッサ・システム上で実行されるソフトウェア全体の動向を基にオブジェクト配置を決定することが出来るため、ヘテロジニアス・マルチプロセッサ・システムに含まれる各プロセッサの負荷傾向に追従した並列処理効率の向上を行うことが出来る。【００２５】従来のソフトウェア実行方式では、オブジェクト間の関係性の粗密に追従して効率的な処理を行うためのオブジェクト配置情報の作成方法が知られていなかったが、本発明のソフトウェア実行方式によれば、オブジェクト親密度情報に基づきオブジェクト配置情報を作成することで、オブジェクト間の関係性の粗密に追従してプロセッサへのオブジェクト配置を決定することが可能になり、並列処理効率の向上を行うことが出来る。
【図面の簡単な説明】
【００２６】
【図１】図１はオブジェクト配置情報に基づく処理割り当てを示した説明図である。（実施例１）
【図２】図２はオブジェクト型情報に基づく静的配置を示した説明図である。（実施例２）
【図３】図３はメソッド実行時間情報に基づく動的配置を示した説明図である。（実施例３）
【図４】図４はプロセッサ実行状況情報に基づく動的配置を示した説明図である。（実施例４）
【図５】図５はプロセッサ負荷情報に基づく動的配置を示した説明図である。（実施例５）
【図６】図６はオブジェクト間の親密度に基づく動的配置を示した説明図である。（実施例６）
【発明を実施するための形態】
【００２７】以下に、本発明を実施する場合の１つの形態について、具体的に図面を参照して説明する。
【００２８】説明に先立ち、用語の説明をする。
マルチプロセッサシステムは、複数プロセッサから構成されるシステムのことである。ホモジニアス・マルチプロセッサシステムとは、マルチプロセッサシステムの一種で、同一の命令セットを持つ複数のプロセッサからなるシステムのことであり、対称型マルチプロセッサシステムともいう。また、ヘテロジニアス・マルチプロセッサシステムとは、マルチプロセッサシステムの一種で、異なる命令セットを持つ複数のプロセッサからなるシステムのことであり、非対称型マルチプロセッサシステムともいう。
【００２９】オブジェクトとは、オブジェクト指向プログラミングにおけるメソッド（処理）とデータからなるオブジェクトを示す。メソッドはオブジェクトに対応して定義される。オブジェクトは型（クラス）を持ち、同じ型を持つオブジェクトが複数存在することがあり得る。
【００３０】オブジェクト配置情報とは、オブジェクトと、オブジェクトに属するメソッドを実行するプロセッサを対応付ける情報のことである。また、静的なオブジェクト配置情報とは、ソフトウェアの実行前に決定可能な、オブジェクトとプロセッサを対応付ける情報のことである。また、動的なオブジェクト配置情報とは、ソフトウェアの実行時に決まる、オブジェクトとプロセッサを対応付ける情報のことである。また、オブジェクト親密度とは、オブジェクトと、オブジェクトの間の関係性の強さを表す指標である。
【実施例１】
【００３１】図１は、ヘテロジニアス・マルチプロセッサ・システムにおけるソフトウェア実行の方式を説明する図である。１１〜１３のプロセッサは、異なる命令セットを持つ複数のプロセッサとする。１４〜１５の各オブジェクトは、オブジェクト指向プログラミング言語で記述されたソフトウェアのオブジェクトである。各オブジェクトのメソッドは、いずれかのプロセッサで実行されるが、どのプロセッサで実行するかについては選択可能であるとする。実行するプロセッサを割り当てるのが１６の割り当て処理部である。割り当て処理部は、オブジェクトを識別するオブジェクトＩＤと、オブジェクトＩＤとプロセッサＩＤを対応付ける１０のオブジェクト配置情報に基づき、前述のプロセッサＩＤにより識別されるプロセッサにメソッドを実行するように割り当てる。【００３２】従来のソフトウェアはプロセッサで行うメソッドと割り当て処理の区別が無く一体となっていたため、開発者はソフトウェアの配置とソフトウェア本来の処理の両方を気にしてソフトウェアを開発する必要があった。そのため、マルチコア向けの並列ソフトウェアの開発は、従来の単一プロセッサのソフトウェア開発に比較して新たな技能を必要とし、困難であった。本構成によれば、ソフトウェア開発においては、適切な粒度でオブジェクトに属するメソッドを定義するだけでよく、オブジェクトの配置については切り分けて考える事が出来るために、ソフトウェアの開発効率が向上する。【００３３】また、ヘテロジニアス・マルチプロセッサ・システムにおいては、オブジェクトをどのプロセッサに配置するかによってメソッドの処理時間が大きく違うことがある。そのため、ヘテロジニアス・マルチプロセッサ・システムにおいては、ホモジニアス・マルチプロセッサ・システムに比較してオブジェクトの配置に関する最適化を行う自由度が高い。従来はソフトウェア本来の処理への影響を憂慮して最適化を十分行うことが困難であったが、本構成においては、最適化を行うことが容易になるため、より処理効率を高める事が出来、ソフトウェアの改善による高速化・低消費電力化、ひいてはシステムの低発熱化・省エネルギー化が可能になる。
【実施例２】
【００３４】図２は、オブジェクトの型情報とオブジェクト型情報プロセッサ対応情報に基づきオブジェクト配置情報を作成する構成を示す。オブジェクト１４は２４のオブジェクト型情報、オブジェクト１５は２５のオブジェクト型情報を持つとする。配置情報生成部２１は、オブジェクト型とプロセッサとの対応情報２２を参照することで、オブジェクト配置情報１０を作成する。この際、オブジェクトの型に対応付けられた処理に適したプロセッサを選択的に割り当てて並列処理効率の向上を行うことが出来る。【００３５】例えば、「画像処理クラス」というオブジェクト型を持つオブジェクトは、画像処理が得意なプロセッサに対応付ける情報を２２の中に持つことで、本機構を用いて「実行時に画像処理クラスは画像処理が得意なプロセッサに割り当てる」という効果を得ることが出来、処理効率を高める事が可能となる。オブジェクトの型情報は、通常のオブジェクト指向プログラミングで用いられるものであるため、多くの開発者にとって理解が容易であり、並列ソフトウェアの開発容易化による開発効率の向上が行える。
【実施例３】
【００３６】図３は、メソッド実行時間情報に基づいてオブジェクト配置情報を作成するための構成を示す。オブジェクト１４〜１５がプロセッサ１１〜１３で実行される際に、メソッドの実行ごとに実行時間を３２のメソッド実行時間記録部がメソッドＩＤとプロセッサＩＤを対応付けて記録を行う。記録した情報は３３のメソッド実行時間情報に蓄積される。３１の配置情報生成部が３３に基づいてオブジェクト配置情報１０を生成して実行することで、ソフトウェア実行前の静的な情報に加えて、ソフトウェアを実行した際の動的な情報を用いてオブジェクト配置を決定することが出来るため、ソフトウェアの実動作に追従した並列処理効率の向上を行うことが出来る。
【実施例４】
【００３７】図４は、プロセッサ実行状況情報に基づいてオブジェクト配置情報を作成するための構成を示す。４２のプロセッサ実行状況情報参照部は、オブジェクト１４〜１５のメソッド実行中にプロセッサ１１〜１３の実行状況情報を参照する。配置情報生成部４１は、４２の参照情報に基づいてオブジェクト配置情報１０を生成する。プロセッサの実行状況に追従してオブジェクト配置を決定することが出来るため、並列処理効率の向上を行うことが出来る。
【実施例５】
【００３８】図５は、プロセッサ負荷情報に基づきオブジェクト配置情報を作成するための構成を示す。５２のプロセッサ負荷情報記録部は、オブジェクト１４〜１５のメソッド実行中にプロセッサ１１〜１３のプロセッサ負荷情報を参照する。プロセッサ負荷情報は、例えばプロセッサ稼働率に表れる処理の負荷や、入出力に関する負荷の事である。プロセッサ負荷情報は５３に蓄積され、配置情報生成部５１は、５３に基づいてオブジェクト配置情報１０を生成する。本構成により、ヘテロジニアス・マルチプロセッサ・システムに含まれる各プロセッサの負荷傾向に追従した効率的な処理を行う可能になる。例えば、１１のプロセッサの負荷が１２〜１３のプロセッサに比較して低い場合、オブジェクトのメソッド実行時に１１のプロセッサに優先的に配置するという配置情報生成が可能となる。このように、ヘテロジニアス・マルチプロセッサ・システム上で実行されるソフトウェア全体の動向を基にオブジェクト配置を決定することが出来るため、ヘテロジニアス・マルチプロセッサ・システムに含まれる各プロセッサの負荷傾向に追従した並列処理効率の向上を行うことが出来る。
【実施例６】
【００３９】図６は、オブジェクト親密度情報に基づきオブジェクト配置情報を作成するための構成を示す。オブジェクト親密度情報記録部６２は、オブジェクト間のメソッド呼び出し時に、メソッド呼び出し元オブジェクトのオブジェクトＩＤ１と、呼び出し先のオブジェクトＩＤ２と、呼び出し回数情報に基づいた親密度情報とを対応付けたオブジェクト親密度情報を６３に記録する。配置情報生成部６１は、６３に基づきオブジェクト配置情報１０を生成する。一般的に、異なるプロセッサ間でのメソッド呼び出しは、同一のプロセッサ内でのメソッド呼び出しに比較して、時間・エネルギーの面で効率が悪い。例えば、メソッド呼び出しが良く行われるオブジェクトは、同一のプロセッサに割り当てることで、呼び出し時のデータの受け渡しを効率よく行うことが可能になる。そのため、このような構成を取ることで、オブジェクト間の関係性の粗密に追従してプロセッサへのオブジェクト配置を決定することが可能になり、並列処理効率の向上を行うことが出来る。
【産業上の利用可能性】
【００４０】本発明のソフトウェア実行方式は、複数のプロセッサの実行状況と、次に実行するソフトウェアの特性とから、次に実行するソフトウェアを適切なプロセッサに割当てる方式を提供することを主要な特徴とするものであり、並列処理によるエネルギー効率向上（低消費電力化・低発熱化・処理高速化）が有効なあらゆる場面にも用いる事が出来る。【００４１】応用先の例としては、可能な限り高速な処理が必要となる科学技術向け高速計算機（スパコン）が挙げられる。高速計算機においては発熱の問題が性能の上限となるため、プロセッサ・ソフトウェアの工夫を総動員して処理の効率を高めて低消費電力化を行う必要がある。本発明のソフトウェア実行方式によると、ヘテロジニアス・マルチプロセッサ・システムのエネルギー効率を最適化することが可能になる。【００４２】また、低消費電力化により携帯情報機器のバッテリー寿命が長くなるなど、省エネルギーが必要となる場面に活用することが可能である。その他、信頼性の観点からプロセッサのクロック周波数を低くする必要がある場面で、処理効率を高めることで同一の処理性能を持ちながらクロック周波数を低減することが可能になる。
【符号の説明】
【００４３】１０  オブジェクト配置情報
１１〜１３  プロセッサ
１４〜１５  オブジェクト
１６  割り当て処理部
２１、３１、４１、５１、６１  配置情報生成部
２２  オブジェクト型とプロセッサとの対応情報
２４〜２５  オブジェクトの型情報
３２  メソッド実行時間記録部
３３  メソッド実行時間情報
４２  プロセッサ実行状況情報参照部
５２  プロセッサ負荷情報記録部
５３  プロセッサ負荷情報
６２  オブジェクト親密度情報記録部
６３  オブジェクト親密度情報
【図１】
2011028705.tif 000003
【図２】
2011028705.tif 000004
【図３】
2011028705.tif 000005
【図４】
2011028705.tif 000006
【図５】
2011028705.tif 000007
【図６】
2011028705.tif 000008