(57)【要約】【課題】パラメータの適合作業を複数のコアを有する演算装置を用いて行うにあたり、その演算資源を有効に活用することのできる適合方法を採ることによって適合作業に要する演算時間の短縮を実現する。【解決手段】複数のコアを有する演算装置は、まず、エンジン制御プログラムに含まれる全てのパラメータθ１，θ２，・・・，θ１４間のデータ依存関係をデータ依存解析技術を用いて抽出する。次いで、複数のコアによる並列計算の順序を抽出したデータ依存関係に基づいて決定し、決定した計算順序に従って各パラメータθ１，θ２，・・・，θ１４の最適化問題を何れかのコアに割り当てる。そして、抽出したデータ依存関係に従いコア間でデータを受け渡しながら、コアごとに割り当てた各パラメータθ１，θ２，・・・，θ１４の最適化問題を複数のコアにより並列に解いていく。【選択図】図３
2013061779.tif 000002
【特許請求の範囲】
【請求項１】
エンジンの制御プログラムに含まれる複数のパラメータの適合を複数のコアを有する演算装置を用いて行う方法であって、
前記複数のパラメータ間のデータ依存関係を抽出するステップと、
前記複数のパラメータの最適化計算を前記複数のコアを用いて並列に実行するときの計算順序を前記データ依存関係に基づいて決定するステップと、
決定した計算順序に従って前記複数のパラメータの最適化問題を前記複数のコアに割り当てるステップと、
前記データ依存関係に従い前記複数のコア間でデータを受け渡しながら、コアごとに割り当てた前記複数のパラメータの最適化問題を前記複数のコアにより並列に解いていくステップと、
を備えることを特徴とするパラメータ適合方法。
【請求項２】
複数のコアを有する演算装置を備え、エンジンの制御プログラムに含まれる複数のパラメータの適合を前記演算装置を用いて行うシステムであって、
前記演算装置は、
前記複数のパラメータ間のデータ依存関係を抽出し、
前記複数のパラメータの最適化計算を前記複数のコアを用いて並列に実行するときの計算順序を前記データ依存関係に基づいて決定し、
決定した計算順序に従って前記複数のパラメータの最適化問題を前記複数のコアに割り当て、そして、
前記データ依存関係に従い前記複数のコア間でデータを受け渡しながら、コアごとに割り当てた前記複数のパラメータの最適化問題を前記複数のコアにより並列に解いていくようにプログラムされていることを特徴とするパラメータ適合システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンジン制御のための複数のパラメータの適合を複数のコアを有する演算装置を用いて行うための技術に関する。
【背景技術】
【０００２】
自動車用エンジンの制御プログラムには多数のパラメータが設定されている。それらパラメータの値は実機による試験で得られたデータに基づいて適合により決定される。パラメータの適合作業には多大な労力を要するため、その作業は自動適合システムによって自動で行われている。ところが、エンジン制御プログラムにおけるパラメータの数は近年益々増えているため、従来の自動適合システムでは全パラメータについて適合が完了するまでに多大な演算時間を要している。
【０００３】
エンジン制御プログラムの開発効率を高める上では、パラメータの適合に要する演算時間はできる限り減らしたい。このような要望を受けて現在検討されている事項の１つが、複数のコアを有する演算装置の自動適合システムへの搭載である。複数のコアを有する演算装置については、例えば特開２０１１−０８１５３９号公報や特開２０１０−１２６０１２号公報に記載されている。従来の自動適合システムの演算装置は単一のコアしか有していない。このため、あるパラメータについて最適化計算を行っていると、それが終了するまでは他のパラメータの最適化計算を行うことができない。これに対して、複数のコアを有する演算装置によれば、複数のパラメータの最適化計算を並列化することにより、全パラメータの適合に要する演算時間の大幅な短縮が期待できる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−０２４０４６号公報
【特許文献２】特開２０１１−０８１５３９号公報
【特許文献３】特開２０１０−１２６０１２号公報
【特許文献４】特表２０１０−５１０４６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ただし、パラメータの最適化計算の並列化は単純な問題ではない。パラメータ間にはデータ依存関係、つまり、パラメータの値を同定するデータの依存関係が存在するからである。例えば、ある２つのパラメータの最適化計算を別々のコアによって並列に行うようにしたとする。しかし、それらパラメータ間にデータ依存関係がある場合、一方のパラメータの最適化計算が完了してその最適解が得られるまでは、他方のパラメータの最適化計算は待ち状態となってしまう。演算資源を有効に活用して全パラメータの最適化計算を高速で完了するためには、このような同期処理による待ち時間を極力発生させないことが必要である。
【０００６】
本発明は、上述のような課題に鑑みてなされたもので、パラメータの適合作業を複数のコアを有する演算装置を用いて行うにあたり、その演算資源を有効に活用することのできる適合方法を採ることによって適合作業に要する演算時間の短縮を実現することを目的とする。
【課題を解決するための手段】
【０００７】
上記の目的を達成するため、本発明の１つの形態によれば、複数のコアを有する演算装置は、まず、エンジン制御プログラムに含まれる全てのパラメータ間のデータ依存関係をデータ依存解析技術を用いて抽出する。次いで、複数のコアによる並列計算の順序を抽出したデータ依存関係に基づいて決定し、決定した計算順序に従って各パラメータの最適化問題を何れかのコアに割り当てる。そして、抽出したデータ依存関係に従いコア間でデータを受け渡しながら、コアごとに割り当てた各パラメータの最適化問題を複数のコアにより並列に解いていく。
【発明の効果】
【０００８】
複数のパラメータの最適化計算の順序を単純に並列化するのではなく、パラメータ間のデータ依存関係に基づいて並列計算の順序が決められるので、各コアで発生する同期処理のための演算の待ち時間を減らすことができる。これにより演算装置の演算資源は有効に活用されることになって、全体としてパラメータの適合作業に要する演算時間は短縮される。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態のパラメータ適合システムの構成を示す図である。
【図２】本発明の実施の形態のパラメータ適合方法を示すフローチャートである。
【図３】有向グラフに基づき決定した並列計算の順序の１つの例を示す図である。
【図４】有向グラフに基づき決定した並列計算の順序の別の例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について図を用いて説明する。
【００１１】
本実施の形態のパラメータ適合システムは、エンジン制御プログラムに含まれる多数のパラメータの適合を自動で行うシステムである。本発明においては、エンジン制御プログラムにより制御されるエンジンの種類や構造に限定は無く、エンジン制御プログラム自体についてもその内容に限定は無い。
【００１２】
図１は本パラメータ適合システムの構成を示す図である。本パラメータ適合システムは演算装置を備えている。この演算装置は、ハードウェアとしてのコア及びメモリと、ソフトウェアとしてのＯＳ（Operating System）及び自動適合プログラムを備えている。この演算装置が搭載するコアの数は４つであり、各コアは図示省略のＣＰＵとキャッシュを備えている。４つのコアとメモリは図示省略のバスで接続されている。メモリは４つのコア間で共有される共有メモリである。メモリには、エンジン制御プログラムで用いられるエンジン制御モデルとエンジンの試験データ及び設計データが記憶されている。ＯＳは４つのコアを統合的に管理している。自動適合プログラムはＯＳ上で動作するアプリケーションである。自動適合プログラムが実行されることにより本パラメータ適合システムが実現される。
【００１３】
エンジン制御プログラムでは、エンジンの制御構造をモデル化したエンジン制御モデルが用いられている。エンジン制御モデルは、吸気管、排気管、シリンダ、タービン、コンプレッサ等のエンジンを構成する部品ごとに作成された複数のサブモデルからなる。適合対象であるパラメータは各サブモデルに含まれている。サブモデルは次のような数式によって表すことができる。
【００１４】
【数１】
2013061779.tif 000003
【００１５】
上記の数式において、ｓはサブモデルの数を表している。ｙ１，ｙ２，…，ｙｓは各サブモデルの出力であって、過給圧、ＥＧＲ率、各部温度等のエンジンの物理量を表している。ｆ１，ｆ２，…，ｆｓは写像を意味し、ｔは離散的時刻を表している。ｕはアクチュエータ入力である。ｗは外乱項であり、例えばディーゼルエンジンの場合には回転数と噴射量が割り当てられる。ｘは回帰ベクトルであり、入出力の過去の値が入られる。そして、θ１，θ２，…，θｓが各サブモデルのパラメータである。各パラメータの値はサブモデルの入出力データから同定されるものであるため、パラメータ間にはデータの依存関係が存在している。
【００１６】
図２は本実施の形態のパラメータ適合方法を示すフローチャートである。演算装置により自動適合プログラムが実行されることによって、このフローチャートに示す適合方法が実施される。
【００１７】
最初のステップＳ１では、各サブモデルのパラメータ間に存在するデータ依存関係が有向グラフとして抽出される。データ依存関係の抽出には公知のデータ依存解析技術を用いることができる。データ依存解析技術としては今日様々な方法が提案されている。ただし、本発明においては、ステップＳ１で使用するデータ依存解析技術に限定は無い。
【００１８】
次のステップＳ２では、４つのコアによる並列計算の順序が有向グラフに基づいて決定される。図３及び図４は、有向グラフに基づき決定した並列計算の順序の例を示している。これらの図では、パラメータ間のデータの依存関係が矢印によって表されている。例えば、パラメータθ６の値はパラメータθ２の値に依存し、パラメータθ２の値はパラメータθ１の値に依存している。このようなデータ依存関係を有向グラフにより抽出することで、最適化計算を並列に行うことのできるパラメータが明らかになる。例えば、パラメータθ２とパラメータθ３の間には依存関係が無いことから、それらの最適化計算は並列に行うことができる。
【００１９】
また、有向グラフによれば、どのような組み合わせで並列計算を行えばコアの使用率を高めることができるかが明らかになる。例えば、図３に示す例では、パラメータθ９，θ１０，θ１１について並列計算を行い、その後に、パラメータθ１２，θ１３，θ１４について並列計算を行うことでコアの使用率を高くすることができる。一方、図４に示す例のように、パラメータθ１３，θ１４とは依存関係の無いパラメータθ１５，θ１６が存在するのであれば、パラメータθ９，θ１０，θ１１，θ１２について並列計算を行い、その後に、パラメータθ１３，θ１４，θ１５，θ１６について並列計算を行うことでコアの使用率をさらに高めることができる。
【００２０】
次のステップＳ３では、ステップＳ２で決定したパラメータ間の計算順序に従い、各パラメータの最適化問題が４つのコアに割り当てられる。最適化問題のコアへの割り当ては、全てのパラメータについて最適化計算が完了するまでの時間、つまり、適合作業に要する演算時間が最小になるように決められる。具体的には、コア間の同期処理のための待ち時間が最小になるように割り当てが決められる。例えば、図３においてコア１にパラメータθ３の最適化問題が割り当てられ、コア２にはパラメータθ４，θ７の最適化問題が割り当てられているとする。この場合、コア２によるパラメータθ４の計算が終わったとしても、コア１によるパラメータθ３の計算が終わっていない場合には、コア２は次のパラメータθ７の計算を開始することができない。つまり、コア１との間で同期を取るための待ち時間がコア２に発生することになる。このようなコア間の同期処理のための待ち時間が最小になるように各コアへの割り当てを定めることで、適合作業に要する全体としての演算時間を最小にすることができる。
【００２１】
そして、ステップＳ４では、演算装置が備える４つのコアによってパラメータの最適化問題の並列計算が行われる。その際、各コアは、コア間通信によって他のコアとの間でデータを受け渡しながら、自身に割り当てられたパラメータの最適化問題を指示された計算順序に従って解いていく。なお、本発明においては、パラメータの最適化問題の記述の仕方やその解法についての限定はない。
【００２２】
以上述べたように、本パラメータ適合方法によれば、複数のパラメータの最適化計算の順序を単純に並列化するのではなく、パラメータ間のデータ依存関係に基づいて並列計算の順序が決められる。これにより、各コアで発生する同期処理のための待ち時間を減らすことができ、短い時間で全パラメータの適合作業を完了することができる。また、本パラメータ適合方法によれば、エンジン制御プログラムに含まれる全てのパラメータについてデータ依存関係が抽出され、それに基づいて各パラメータの適合が行われる。これによれば、サブモデルごとに適合を行う場合のような局所最適ではなく、エンジン制御モデルの全体からみた大局的最適な適合を行うことができる。
【００２３】
ところで、本発明は上述の実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。例えば、図１に示すパラメータ適合システムでは１つのＯＳで４つのコアを管理しているが、コアごとに専用のＯＳを動作させてもよい。また、コアの数は４つには限定されない。本発明を適用する演算装置は複数のコアを有するいわゆるマルチコアチップの演算装置であればよく、コア数が数十個のいわゆるメニーコアチップの演算装置でもよい。
【００２４】
ステップＳ３における最適化問題のコアへの割り当て方法に関して言えば、上述の実施の形態とは異なる方法を採ることもできる。例えば、コア間通信の頻度が最小になるように割り当てるというオプションも選択可能である。パラメータθ１の計算をコア１で行いパラメータθ２の計算をコア２で行う場合、コア１とコア２との間にはパラメータθ２の計算に用いるデータを渡すためのコア間通信が発生する。しかし、パラメータθ１の計算とパラメータθ２の計算をともにコア１で行えば、パラメータθ２の計算のためのコア間通信を発生させなくて済む。また、コアごとの演算負荷のばらつきが最小になるように割り当てるというオプションも選択可能である。特定のコアに演算負荷が集中しないように各コアに均等に演算負荷を配分することで、演算装置全体としての電力消費を最小にすることができる。
【図１】
2013061779.tif 000004
【図２】
2013061779.tif 000005
【図３】
2013061779.tif 000006
【図４】
2013061779.tif 000007