(57)【要約】【課題】機器が配置されている環境に当該機器で実行される実行ファイルが最適であることを維持する。【解決手段】機器（例えばコンセントレータ）に第１の実行ファイルとインストルメントファイルが格納される。第１の実行ファイルは、業務処理を実行するための実行ファイルである。インストルメントファイルは、業務処理の実行に加えて当該業務処理の実行時コードパスの統計を含むプロファイルの出力を行うインストルメント化された実行ファイルである。それらのファイルのソースファイルは同一である。業務処理の実行に関わる状況が特定の状況になったことが検出された場合にインストルメントファイルが実行される。そして、出力されたプロファイルと上記ソースファイルとに基づき特定の状況に関し最適化された実行ファイルである第２の実行ファイルが実行される。【選択図】図１
2020126431.tif 000002
【特許請求の範囲】
【請求項１】
一又は複数の機器のうちの一つ以上の機器の各々において処理が実行されるシステムであって、
前記一つ以上の機器の各々に格納される第１の実行ファイルと、
前記一つ以上の機器の各々に格納されるインストルメントファイルと
を備え、
前記第１の実行ファイルは、業務として定義された処理である業務処理を実行するための実行ファイルであり、
前記インストルメントファイルは、前記業務処理の実行に加えて当該業務処理の実行時コードパスの統計を含むデータセットであるプロファイルの出力を行うインストルメント化された実行ファイルであり、
前記第１の実行ファイルも前記インストルメントファイルも同一のソースファイルが基であり、
前記一つ以上の機器のうち、前記第１の実行ファイルの実行中に前記業務処理の実行に関わる状況が特定の状況になったことが検出された機器である対象機器では、
前記第１の実行ファイルに代わって前記インストルメントファイルが実行され、
前記インストルメントファイルが実行されることにより出力されたプロファイルと前記同一のソースファイルとに基づいて生成され前記特定の状況に関し最適化された実行ファイルである第２の実行ファイルが、前記第１の実行ファイル又は前記インストルメントファイルに代わり実行される、
システム。
【請求項２】
前記一つ以上の機器は、一つ以上のセンサから一つ以上のセンサデータセットを取得し当該一つ以上のセンサデータセットに基づくセンサデータを出力する一つ以上のコンセントレータである、
請求項１に記載のシステム。
【請求項３】
前記一つ以上のコンセントレータの各々について、前記特定の状況は、当該コンセントレータの前記業務処理以外の処理に依存する状況を含まない、
請求項２に記載のシステム。
【請求項４】
前記一つ以上のコンセントレータの各々について、前記特定の状況は、下記（ｐ）及び（ｑ）のうちの少なくとも一つである、
（ｐ）当該コンセントレータと通信可能な一つ以上のセンサのうちの少なくとも一つのセンサのセンサデータセットが持つ測定値がそれの閾値を超えること、及び、
（ｑ）当該コンセントレータのｎ回の前記業務処理にそれぞれ対応したｎの時間長に従う時間であるサービス時間がそれの閾値を超えること（ｎは自然数）、
請求項３に記載のシステム。
【請求項５】
前記一つ以上のコンセントレータのうちの少なくとも一つのコンセントレータでは、前記特定の状況が検出されたことに加えて、当該コンセントレータの前記業務処理以外の処理に関して所定の条件が満たされている場合に、当該コンセントレータにおいて第１の実行ファイルに代わってインストルメントファイルが実行される、
請求項３に記載のシステム。
【請求項６】
前記所定の条件は、下記（ｖ）及び（ｗ）のうちの少なくとも一つである、
（ｖ）ページフォルトの発生頻度がそれの閾値を超えること、及び、
（ｗ）センサデータセットのタイムスタンプが周期的ではないこと、
請求項５に記載のシステム。
【請求項７】
前記一つ以上の機器以外のいずれかの機器であり前記一つ以上のコンセントレータからセンサデータを受信する機器であるストレージサーバにおいて実行される実行ファイルである切替指示ファイルを更に備え、
前記ストレージサーバが、前記一つ以上のコンセントレータのうちの少なくとも一つのコンセントレータから前記プロファイルを受け付けた場合、前記切替指示ファイルが、
当該プロファイルと前記同一のソースファイルとに基づく前記第２の実行ファイルの生成を前記ストレージサーバで実行させ、
当該第２の実行ファイルを当該コンセントレータに送信する、
請求項２に記載のシステム。
【請求項８】
前記ストレージサーバが、前記生成された第２の実行ファイルを、前記プロファイルの出力元のコンセントレータ以外の少なくとも一つのコンセントレータに送信し、
当該コンセントレータでは、当該コンセントレータで検出された前記特定の状況において前記第２の実行ファイルが実行される、
請求項７に記載のシステム。
【請求項９】
前記ストレージサーバが、同期間に二つ以上のコンセントレータから二つ以上のプロファイルを受け付けた場合、
当該二つ以上のプロファイルをマージし、
当該二つ以上のプロファイルをマージした結果として得られた統合プロファイルと、前記同一のソースファイルとに基づき第２の実行ファイルを生成し、
当該第２の実行ファイルを前記二つ以上のコンセントレータの各々に送信する、
請求項７に記載のシステム。
【請求項１０】
前記一つ以上の機器以外のいずれかの機器が、前記一つ以上のコンセントレータからセンサデータを受信する機器であるストレージサーバであり、
前記一つ以上のコンセントレータの少なくとも一つのコンセントレータに、当該コンセントレータにおいて実行される実行ファイルである切替制御ファイルが存在し、
当該コンセントレータにおいて前記プロファイルが出力された場合、前記切替制御ファイルが、
当該プロファイルと前記同一のソースファイルとに基づく前記第２の実行ファイルの生成を当該コンセントレータに実行させ、
当該第２の実行ファイルを当該コンセントレータに実行させる、
請求項２に記載のシステム。
【請求項１１】
前記一つ以上の機器以外のいずれかの機器が、前記一つ以上の機器の少なくとも一つの機器からプロファイルを受け付けた場合、
当該プロファイルと前記同一のソースファイルとに基づき第２の実行ファイルを生成し、
当該第２の実行ファイルを当該少なくとも一つの機器に送信する、
請求項１に記載のシステム。
【請求項１２】
一又は複数の機器のうちの一つ以上の機器の各々において処理を実行する方法であって、
前記一つ以上の機器のうち第１の実行ファイルを実行中の機器において、当該機器において業務処理の実行に関わる状況が特定の状況になったことが検出された場合に、当該機器において、
インストルメントファイルを前記第１の実行ファイルに代えて実行し、
前記第１の実行ファイルは、業務として定義された処理である業務処理を実行するための実行ファイルであり、
前記インストルメントファイルは、前記業務処理の実行に加えて当該業務処理の実行時コードパスの統計を含むデータセットであるプロファイルの出力を行うインストルメント化された実行ファイルであり、
前記第１の実行ファイルも前記インストルメントファイルも同一のソースファイルが基であり、
前記インストルメントファイルが実行されることにより出力されたプロファイルと前記同一のソースファイルとに基づいて生成され前記特定の状況に関し最適化された実行ファイルである第２の実行ファイルを、前記第１の実行ファイル又は前記インストルメントファイルに代えて実行する、
方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、一つ以上の機器において処理を実行する技術に関し、例えば、複数のセンサから複数のコンセントレータを通じてストレージサーバにセンサデータを送信する技術に関する。
【背景技術】
【０００２】
一つ以上の機器において処理を実行するシステムの一例として、複数のセンサから複数のコンセントレータを通じてストレージサーバにセンサデータを送信するシステムが知られている。
【０００３】
このようなシステムでは、一般に、各コンセントレータでは、業務として定義された処理である業務処理を行う実行ファイルが実行される。業務処理は、例えば、一つ以上のセンサから取得された一つ以上のセンサデータセットを分析する（例えば、当該一つ以上のセンサデータセットの各々が持つ画像データを分析する）分析処理と、取得された一つ以上のセンサデータセットからセンサデータを生成する加工処理とのうちの少なくとも一つを含んでよい。加工処理は、例えば、一つ以上のセンサデータセットが持つ一つ以上の測定値の演算や、当該一つ以上のセンサデータセットの圧縮を含む。
【０００４】
分析処理や加工処理は、比較的複雑であり、故に、比較的長いプロセッサ時間を要する。結果として、下記のうちの少なくとも一つのような影響が生じ得る。
・実行ファイルの下位のレイヤ（例えばハードウェアやドライバ）のバッファフルが生じ一部のデータを格納することができず、故に、当該データを送信対象にすることができない。
・省ける処理（例えば、プログラムバイナリのキャッシュ更新処理やアドレスの論物変換処理）が実行されてしまう。結果として、プロセッサ発熱量や消費電力が増加する。
【０００５】
このような影響を低減するためには、実行ファイルが最適化されていることが望ましい。実行ファイルの最適化に関し、例えば特許文献１及び２に開示の技術が知られている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開2011-31413号公報
【特許文献２】特開2007-226589号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
複数のコンセントレータが配置される複数の環境が全て同じとは限らない。このため、コンセントレータが行う所定の処理に最適であると推定された実行ファイルが各コンセントレータで実行されても、少なくとも一つのコンセントレータについて、当該実行ファイルが、当該コンセントレータが配置されている環境に正確に最適であるとは限らない。実際の環境に最適ではない実行ファイルが当該環境に配置されているコンセントレータで実行されている場合、当該コンセントレータでは、プロセッサ時間が比較的長いといった問題が生じ得る。
【０００８】
このような問題は、一つ以上の機器の各々が一つ以上のセンサから一つ以上のセンサデータセットを取得しセンサデータを送信するコンセントレータ以外の機器である場合についてもあり得る。
【課題を解決するための手段】
【０００９】
一つ以上の機器の各々には第１の実行ファイルとインストルメントファイルとが格納される。第１の実行ファイルは、業務として定義された処理である業務処理を実行するための実行ファイルである。インストルメントファイルは、業務処理の実行に加えて当該業務処理の実行時コードパスの統計を含むデータセットであるプロファイルの出力を行うインストルメント化された実行ファイルである。第１の実行ファイルもインストルメントファイルも同一のソースファイルが基である。第１の実行ファイルの実行中に業務処理の実行に関わる状況が特定の状況になったことが機器で検出された場合、第１の実行ファイルに代わってインストルメントファイルが実行される。インストルメントファイルが実行されることにより出力されたプロファイルと上記同一のソースファイルとに基づいて生成され特定の状況に関し最適化された実行ファイルである第２の実行ファイルが、第１の実行ファイル又はインストルメントファイルに代わり実行される。
【発明の効果】
【００１０】
一つ以上の機器の各々について、機器が配置されている環境に当該機器で実行される実行ファイルが最適であることを維持する。
【図面の簡単な説明】
【００１１】
【図１】実施例１の概要を示す。
【図２】実施例１に係るシステム全体の構成例を示す。
【図３】実施例１に係るシステムにおいて行われる全体的な処理の流れを示す。
【図４】平均サービス時間の定義を示す。
【図５】実施例２に係るシステムにおいて行われる処理を示す。
【図６】実施例３に係るシステムにおいて行われる処理を示す。
【図７】実施例４に係るシステムにおいて行われる処理を示す。
【発明を実施するための形態】
【００１２】
以下の説明では、「インターフェース装置」は、一つ以上のインターフェースデバイスでよい。当該一つ以上のインターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス（例えば一つ以上のＮＩＣ（Network Interface Card））であってもよいし二つ以上の異種の通信インターフェースデバイス（例えばＮＩＣとＨＢＡ（Host Bus Adapter））であってもよい。
【００１３】
また、以下の説明では、「メモリ」は、一つ以上のメモリデバイスであり、典型的には主記憶デバイスでよい。メモリにおける少なくとも一つのメモリデバイスは、揮発性メモリデバイスであってもよいし不揮発性メモリデバイスであってもよい。
【００１４】
また、以下の説明では、「永続記憶装置」は、一つ以上の永続記憶デバイスである。永続記憶デバイスは、典型的には、不揮発性の記憶デバイス（例えば補助記憶デバイス）であり、具体的には、例えば、ＨＤＤ（Hard Disk Drive）又はＳＳＤ（Solid State Drive）である。
【００１５】
また、以下の説明では、「記憶装置」は、メモリと永続記憶装置の少なくともメモリでよい。
【００１６】
また、以下の説明では、「プロセッサ」は、一つ以上のプロセッサデバイスである。少なくとも一つのプロセッサデバイスは、典型的には、ＣＰＵ（Central Processing Unit）のようなマイクロプロセッサデバイスであるが、ＧＰＵ（Graphics Processing Unit）のような他種のプロセッサデバイスでもよい。少なくとも一つのプロセッサデバイスは、シングルコアでもよいしマルチコアでもよい。少なくとも一つのプロセッサデバイスは、プロセッサコアでもよい。
【００１７】
また、以下の説明では、「実行ファイル」を主語として処理を説明する場合があるが、実行ファイルは、プロセッサによって実行されることで、定められた処理を、適宜に記憶装置及び／又はインターフェース装置等を用いながら行うため、処理の主語が、プロセッサ（或いは、そのプロセッサを有する装置）とされてもよい。
【００１８】
また、以下の説明では、「データセット」とは、アプリケーションプログラムのようなプログラムから見た一つの論理的な電子データの塊であり、例えば、レコード、ファイル、キーバリューペア及びタプル等のうちのいずれでもよい。例えば、一つのセンサから取得される一つのセンサデータセットは、当該センサにより取得された情報（例えば、測定値や画像データ）を持つ。
【００１９】
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号のうちの共通部分を使用し、同種の要素を区別する場合は、参照符号を使用することがある。例えば、コンセントレータを区別しない場合には、「コンセントレータ１１」と言い、コンセントレータを区別する場合には、「コンセントレータ１１Ａ」、「コンセントレータ１１Ｂ」のように言うことがある。
【００２０】
以下、図面を参照しながら、本発明の幾つかの実施例を説明する。なお、以下の実施例では、「一つ又は複数の機器」は、ストレージサーバと一つ以上のコンセントレータであり、「一つ以上の機器」は、一つ以上のコンセントレータである。
【実施例１】
【００２１】
図１は、実施例１の概要を示す。
【００２２】
複数のコンセントレータ１１が複数の地方に配置される。それら複数のコンセントレータ１１がストレージサーバ１２と通信可能に接続されている。各コンセントレータ１１には、当該コンセントレータと通信可能な一つ以上のセンサ１３がある。センサ１３は、例えば、温度センサ１３Ｔや気圧センサ１３Ｐである。
【００２３】
各コンセントレータ１１に、分析ファイル２１０２Ｘが存在する。分析ファイル２１０２Ｘは、第１の実行ファイルの一例である。分析ファイル２１０２Ｘがコンセントレータ１１で実行されることにより行われる業務処理は、分析処理であり、加工処理を含む。分析処理は、一つ以上のセンサ１３から取得された一つ以上のセンサデータセットを分析する処理である。加工処理は、センサデータの基になる一つ以上のセンサデータセットの圧縮や、センサデータセットが持つ画像データの加工を含んでよい。
【００２４】
また、各コンセントレータ１１に、更に、インストルメント分析ファイル２１０３が存在する。インストルメント分析ファイル２１０３は、分析処理の実行に加えて当該分析処理の実行時コードパスの統計を含むデータセットであるプロファイルの出力を行うインストルメント化された実行ファイルである。分析ファイル２１０２Ｘもインストルメント分析ファイル２１０３も同一のソースファイルが基である。
【００２５】
複数のコンセントレータ１１のうち、例えば、コンセントレータ１１Ａ（対象機器の一例）で、分析ファイル２１０２ＸＡの実行中に分析処理の実行に関わる状況が特定の状況になったことが検出されたとする。この検出は、分析ファイル２１０２ＸＡによって行われてもよいし、分析ファイル２１０２ＸＡとは別の実行ファイル（例えば後述の切替ファイル）により行われてもよい。特定の状況が検出されたコンセントレータ１１Ａでは、分析ファイル２１０２ＸＡに代わってインストルメント分析ファイル２１０３Ａが実行される。インストルメント分析ファイル２１０３Ａが実行されることにより、分析処理の実行に加えて、当該特定の状況下での分析処理実行に関する統計が取得され（つまりプロファイリングが行われ）当該統計を示すプロファイルが、ストレージサーバ１２に送信される。ストレージサーバ１２では、当該プロファイルと上記同一のソースファイルとに基づいて分析ファイル２１０２ＹＡが生成（ビルド）される。分析ファイル２１０２ＹＡは、第２の実行ファイルの一例である。分析ファイル２１０２ＹＡは、上記検出された特定の状況に関し最適化された分析ファイル（分析処理を行う実行ファイル）である。
【００２６】
生成された分析ファイル２１０２ＹＡは、プロファイルの送信元であるコンセントレータ１１Ａにストレージサーバ１２から送信され、コンセントレータ１１Ａにおいて分析ファイル２１０２ＸＡ又はインストルメント分析ファイル２１０３に代わって実行される。
【００２７】
このように、各コンセントレータ１１にインストルメント分析ファイル２１０３が存在し、当該コンセントレータ１１で分析ファイル２１０２Ｘの実行中に特定の状況が検出された場合に、インストルメント分析ファイル２１０３が実行されることで当該特定の状況での分析処理実行に関するプロファイルが当該インストルメント分析ファイル２１０３により生成されて出力される。そのようなプロファイルを基に同一のソースファイルから分析ファイル２１０２Ｙが生成されるので、生成された分析ファイル２１０２Ｙを構成するバイナリコードは、コンセントレータ１１が配置されている環境（現場）での特定の状況に最適な配列のコード（典型的には、プロセッサ時間やメモリの効率が最適となったコード）である。従って、各コンセントレータ１１について、コンセントレータ１１が配置されている環境に当該機器で実行される分析ファイル２１０２が最適であることを維持することができる。
【００２８】
なお、各コンセントレータ１１に準備されるインストルメント分析ファイル２１０３を生成すること、及び、インストルメント分析ファイル２１０３が実行されることにより出力されるプロファイルを基に分析ファイル２１０２Ｙを生成すること（具体的には、ソースファイルから実行ファイルを再コンパイルすること）には、典型的にはＰＧＯ（Profile Guided Optimization）という技術が利用される。ＰＧＯは、少なくとも一部のＯＳ、例えば、Windows OS（Windowsは登録商標）やLinux OS（Linuxは登録商標）でサポートされている。
【００２９】
また、分析ファイル２１０２Ｘ又はインストルメント分析ファイル２１０３に代わって分析ファイル２１０２Ｙが実行されているコンセントレータ１１では、当該分析ファイル２１０２Ｙが既存の分析ファイル２１０２Ｘに代わって又は加えて、分析ファイル２１０２Ｘとなる。記憶容量が少ないコンセントレータ１１では、複数の分析ファイル２１０２が併存すると分析処理で使用可能な記憶容量が少ないため、分析ファイル２１０２Ｙが当該コンセントレータ１１に格納される場合には既存の分析ファイル２１０２Ｘは削除されてよい。このようなコンセントレータ１１では、下記の（ａ）及び（ｂ）が繰り返される。
（ａ）分析ファイル２１０２Ｘの実行中に当該分析ファイル２１０２Ｘに最適な特定の状況とは別の特定の状況が検出された場合に分析ファイル２１０２Ｘに代えてインストルメント分析ファイル２１０３を実行すること。
（ｂ）当該インストルメント分析ファイル２１０３の実行により出力されたプロファイルを基に生成された分析ファイル２１０２Ｙをインストルメント分析ファイル２１０３に代えて実行すること。
【００３０】
温度センサ１３Ｔの制御により、分析ファイル２１０２を変更する例を参考に示す。温度センサ１３Ｔからの温度データセットより高温であることが判断されたとき、温度データセットの詳細を必要とする場合がある。このとき、温度データセットを高頻度で温度センサ１３Ｔから取ることが考えられる。また、他の温度以外のセンサデータセットは相対的に低優先となるため、データ収集周期を長くすることが考えられる。この場合、分析ファイル２１０２を分析ファイル２１０２Ｘから分析ファイル２１０２Ｙに変更することで上記の状態に変更できる。
【００３１】
温度センサ１３Ｔと気圧センサ１３Ｐの制御により、分析ファイル２１０２を変更する例を参考に示す。一般に気圧が低くなると天気が不安定で温度が変化しやすい。そこで、気圧センサ１３Ｐからの気圧データセットを基に低気圧であることが判別された場合、温度データセットを温度センサ１３Ｔから高頻度で取ることが考えられる。また、他の温度以外のセンサデータセットは相対的に低優先となるため、データ収集周期を長くすることが考えられる。この場合、分析ファイル２１０２を分析ファイル２１０２Ｘから分析ファイル２１０２Ｙに変更することで上記の状態に変更できる。
【００３２】
このように、センサデータセットを基に分析ファイル２１０２を変更することで、高優先のセンサと低優先のセンサを考慮した効率良い処理を行うことができる。
【００３３】
以下、本実施例を詳細に説明する。
【００３４】
図２は、実施例１に係るシステム全体の構成例を示す。
【００３５】
コンセントレータ１１は、一つ以上のセンサ１３と通信可能に接続される一つ以上のＵＳＢ（Universal Serial Bus）ポート１１０５と、通信ネットワーク１０１に接続されるＮＩＦ（ネットワークインターフェースデバイス）１１０１と、記憶装置１１０３と、それらの要素１１０５、１１０１及び１１０３に接続されるプロセッサ１１０４とを備える。また、ストレージサーバ１２は、通信ネットワーク１０１に接続されるＮＩＦ（ネットワークインターフェースデバイス）１２０１と、記憶装置１２０２と、それらの要素１２０１及び１２０２に接続されるプロセッサ１２０４とを備える。この構成において、下記のうちの少なくとも一つが採用されてもよい。
・コンセントレータ１１は、汎用的な物理計算機（例えばパーソナルコンピュータ）でよい。
・ストレージサーバ１２は、汎用的な物理計算機（例えばサーバ計算機）でもよいし、クラウド基盤（複数の物理的な計算資源）のような一つ以上の物理計算機で所定のソフトウェアが実行されることでストレージサーバとして動作する機能でもよい。
・記憶装置１１０３及び記憶装置１２０２の少なくとも一つは、ＨＤＤ、ＳＳＤ、ＮＡＮＤフラッシュ及びＮＯＲフラッシュのうちの少なくとも一つでよい。
・センサ１３からのセンサデータセットは、ＵＳＢ（Universal Serial Bus）に代えて、Wi-Fi（登録商標）、Wi-Sun（登録商標）、Bluetooth（登録商標）またはＮＩＦ１１０１経由で取得されてもよい。
【００３６】
記憶装置１１０３は、コンセントレータ１１のＯＳ（図示せず）のファイルシステム２１０１によって区画化される。ファイルシステム２１０１には、分析ファイル２１０２Ｘ及びインストルメント分析ファイル２１０３の他に、切替ファイル２１０４が存在する。実行ファイル２１０２Ｘ、２１０３及び２１０４がプロセッサ１１０４により実行される。切替ファイル２１０４は、実行ファイルの一つであり、実行対象の実行ファイルを切り替える。具体的には、切替ファイル２１０４は、分析ファイル２１０２Ｘの実行中に特定の状況が検出されたことを契機に実行対象を分析ファイル２１０２Ｘからインストルメント分析ファイル２１０３に切り替える。また、切替ファイル２１０４は、例えば分析ファイル２１０２Ｙが関連付けられた切替指示をストレージサーバ１２から受け付けた場合に、実行対象をインストルメント分析ファイル２１０３から分析ファイル２１０２Ｙに切り替える（更に、切替ファイル２１０４は、既存の分析ファイル２１０２Ｘを記憶装置１１０３から削除してもよい）。
【００３７】
記憶装置１２０２は、ストレージサーバ１２のＯＳ（図示せず）のファイルシステム２２０１によって区画化される。ファイルシステム２２０１には、切替指示ファイル２２０２、センサデータ格納ファイル２２０３、プロファイル格納域２２１１、センサデータ格納域２２１２、ソースファイル２２１３、コンパイラ２２０４、リンカ２２０５及び管理情報２２０６が設けられる。実行ファイル２２０２、２２０３、２２０４、２２０５及び２２０６がプロセッサ１２０４により実行される。切替指示ファイル２２０２は、実行ファイルの一つであり、プロファイルを受け付け当該プロファイルをプロファイル格納域２２１１に格納したり、当該プロファイルに基づきコンパイラ２２０４に再コンパイルさせたり、再コンパイル結果に基づきリンカ２２０５により生成された分析ファイル２１０２Ｙを関連付けた切替指示をコンセントレータ１１に送信したりする。センサデータ格納ファイル２２０３は、実行ファイルの一つであり、各コンセントレータ１１からのセンサデータをセンサデータ格納域２２１２に格納する。プロファイル格納域２２１１には、プロファイルが格納される。センサデータ格納域２２１２には、センサデータが格納される。ソースファイル２２１３は、分析ファイル２１０２のソースコードが記述されているファイルである。コンパイラ２２０４は、実行ファイルの一つであり、ソースファイル２２１３を基にコンパイルを行う。コンパイラ２２０４は、例えばＪＩＴ（Just-In-Time）コンパイラでよい。リンカ２２０５は、コンパイラ２２０４のコンパイル結果を基に分析ファイル２１０２を生成する。コンパイラ２２０４及びリンカ２２０５は、ＰＧＯをサポートしている。管理情報２２０６は、ストレージサーバ１２と通信可能な各コンセントレータ１１に関する情報（例えば、コンセントレータ１１毎に、コンセントレータ１１のＩＤや配置されている場所等を示す情報）を含んだ情報である。例えば管理情報２２０６を基に、送信先や受信元のコンセントレータ１１が判別される。
【００３８】
少なくとも一つのコンセントレータ１１について、一つ以上のセンサ１３は、仮想センサを含んでもよい。「仮想センサ」とは、センサデバイスであり、具体的には、当該デバイスの近隣の温度センサ１３Ｔが観測した気温を収集して気温の統計値を得、当該装置の位置における気温を天気予報サイトから気温と天気を取得するデバイスである。
【００３９】
図２に示す構成によれば、例えば、以下の処理が行われる。以下、一つのコンセントレータ１１を例に取る。また、以下の説明では、コンセントレータ１１のＯＳもストレージサーバ１２のＯＳもLinux OSであるとする。
【００４０】
１．コンセントレータ１１に分析ファイル２１０２Ｘ及びインストルメント分析ファイル２１０３を準備すること。詳細は下記（１−１）〜（１−３）の通りである。
【００４１】
（１−１）切替指示ファイル２２０２は、ソースファイル２２１３が持つソースコードをコンパイラ２２０４の引数に渡す。それにより、コンパイラ２２０４によりコンパイルが実行される。続いて、切替指示ファイル２２０２は、リンカ２２０５にそのコンパイル結果を渡す。それにより、リンカ２２０５により分析ファイル２１０２Ｘが生成される。コンパイラ２２０４は、例えばgccを用いるが、他のＰＧＯをサポートするコンパイラでもよい。
【００４２】
（１−２）切替指示ファイル２２０２は、ソースファイル２２１３が持つソースコードをコンパイラ２２０４の引数に渡し、且つ、コンパイラ２２０４の引数にfprofile-generateオプションを付与する。それにより、コンパイラ２２０４によりコンパイルが実行される。続いて、切替指示ファイル２２０４は、リンカ２２０５にそのコンパイル結果を渡す。それにより、リンカ２２０５によりインストルメント分析ファイル２１０３が生成される。
【００４３】
（１−３）切替指示ファイル２２０２は、生成された分析ファイル２１０２Ｘ及びインストルメント分析ファイル２１０３をＮＩＦ１２０１経由でコンセントレータ１１に送信する。これにより、分析ファイル２１０２Ｘ及びインストルメント分析ファイル２１０３が、コンセントレータ１１の記憶装置１１０３に格納される。
【００４４】
２．コンセントレータ１１で分析ファイル２１０２Ｘの実行中に特定の状況が検出された場合に分析ファイル２１０２Ｘに代えてインストルメント分析ファイル２１０３を実行すること。詳細は下記（２−１）〜（２−４）の通りである。
【００４５】
（２−１）切替ファイル２１０４は、インストルメント分析ファイル２１０３を、例えばforkとexecveで実行する。ＯＳがWindows OSの場合、forkとexecveの代わりとしてCreateProcess APIを採用できる。
【００４６】
（２−２）インストルメント分析ファイル２１０３は、温度センサ１３Ｔから一つ以上の温度データセットを取得し、また、気圧センサ１３Ｐから一つ以上の気圧データセットを取得する。インストルメント分析ファイル２１０３は、取得された一つ以上の温度データセットに基づくセンサデータや、取得された一つ以上の気圧データセットに基づくセンサデータを、ＮＩＦ１１０１経由で、ストレージサーバ１２へ送信する。
【００４７】
（２−３）その後、インストルメント分析ファイル２１０３は、プロセスを終了させる。gccを用いてコンパイルがされていた場合は、プロファイルは「.gcda」という拡張子のファイルとして出力される。
【００４８】
（２−４）切替ファイル２１０４は、インストルメント分析ファイル２１０３のプロセスが終了したことをwaitpidで検知し、その後、ＮＩＦ１１０１経由で、ストレージサーバ１２へ、出力されたプロファイルを送信する。ＯＳがWindows OSの場合、waitpidの代わりとしてWaitForSingleObjectsを採用できる。
【００４９】
３．ストレージサーバ１２で分析ファイル２１０２Ｘを生成すること。詳細は下記（３−１）〜（３−３）の通りである。
【００５０】
（３−１）切替指示ファイル２２０２は、上記（２−４）で生成されたプロファイルを受信し、当該プロファイルをプロファイル格納域２２１１に格納する。
【００５１】
（３−２）切替指示ファイル２２０２は、ソースファイル２２１３が持つソースコードをコンパイラ２２０４の引数に渡し、また、コンパイラの引数にfprofile-useオプションを付与し、そこに（３−１）で格納されたプロファイルのファイル名を指定する。それにより、コンパイラ２２０４によりコンパイルが実行される。続いて、切替指示ファイル２２０４は、リンカ２２０５にそのコンパイル結果を渡す。それにより、プロファイルを用いて最適化された分析ファイル２１０２Ｙが生成される。
【００５２】
（３−３）切替指示ファイル２２０２は、分析ファイル２１０２Ｙが関連付けられた切替指示を、ＮＩＦ１２０１経由で、コンセントレータ１１へ送信する。
【００５３】
４．コンセントレータ１１で分析ファイル２１０２Ｙを実行すること。詳細は下記（４−１）〜（４−３）の通りである。
【００５４】
（４−１）切替ファイル２１０４は、上記（３−３）でストレージサーバ１２から送信された切替指示を受信する。
【００５５】
（４−２）切替ファイル２１０４は、切替指示に応答して、当該切替指示に関連付けられている分析ファイル２１０２Ｙに関し、forkとexecveを用いて、プロセスの起動をする。
【００５６】
（４−３）分析ファイル２１０２Ｙが、温度センサ１３Ｔと気圧センサ１３Ｐの各々について、定期的に、一つ以上のセンサデータセットを取得し、当該一つ以上のセンサデータセットに基づくセンサデータをストレージサーバ１２に送信する。
【００５７】
図３は、実施例１に係るシステムにおいて行われる全体的な処理の流れを示す。以下、図３を参照して、当該システムで行われる処理の流れを説明する。その際、図２を参照して説明した処理に関しては、説明を省略又は簡略する。また、以下、説明を簡単にするために、下記が採用される。
・一つのセンサ１３について、コンセントレータ１１から送信されるセンサデータは、当該センサ１３から取得された一つのセンサデータセットの加工後のデータである。
・分析ファイル２１０２の主業務は、センサデータセットの受信（取得）、センサデータセットの加工処理、及び、センサデータの送信で構成され、特に加工処理が、業務処理に含まれる。本実施例では、センサデータセットの受信からセンサデータの送信までの間に、業務処理の構成要素として更に分析処理が行われるが、以下の説明では、分析処理は省略する。なお、本発明では、業務処理を行う実行ファイルは、分析ファイルに限らないので、分析処理は必須でない。すなわち、業務処理は、分析処理と加工処理のうちの少なくとも一つに代えて又は加えて他の処理を含んでよい。
・複数のコンセントレータ１１のうち、コンセントレータ１１Ａを例に取る。
【００５８】
コンセントレータ１１Ａのファイルシステムに分析ファイル２１０２ＸＡ及びインストルメント分析ファイル２１０３Ａが格納される。
【００５９】
コンセントレータ１１Ａで分析ファイル２１０２ＸＡの実行中に、主業務に関わる状況が特定の状況になったことが検出され、その検出を契機に、分析ファイル２１０２ＸＡに代えてインストルメント分析ファイル２１０３Ａが実行される（Ｓ３０１）。なお、分析ファイル２１０２ＸＡからインストルメント分析ファイル２１０３への切替は、分析ファイル２１０２ＸＡの一つの主業務サイクル（センサデータセットの受信からセンサデータの送信まで）の途中で行われず、当該主業務サイクルが終わったときに行われる。特定の状況に関し、下記（０１）〜（０５）のうちの少なくとも一つが採用されてよい。
【００６０】
（０１）特定の状況の検出は、分析ファイル２１０２Ｘと切替ファイル２１０４とのうちの少なくとも一つによって行われてよい。
【００６１】
（０２）特定の状況の定義を示す情報を基に特定の状況が検出されてよい。「特定の状況の定義を示す情報」は、分析ファイル２１０２Ｘと切替ファイル２１０４とは別に記憶装置１１０３に設けられた図示しない管理情報に含まれていてもよいし、分析ファイル２１０２Ｘと切替ファイル２１０４とのうちの少なくとも一つに記述されていてもよい。例えば、特定の状況の定義を示す情報が管理情報又は切替ファイル２１０４に記述されている場合、複数の特定状況の定義を示す情報が記述されていてよい。切替ファイル２１０４は、複数の特定状況のうち検出された特定状況に最適化された分析ファイルが、一つ以上の既存の分析ファイル２１０２Ｘに含まれているか否か判断してよい。この判断の結果が真であれば、切替ファイル２１０４は、検出された特定状況に最適な分析ファイル２１０２Ｘを、実行中の分析ファイル２１０２Ｘに代えて起動してよい。一方、その判断の結果が偽であれば、切替ファイル２１０４は、実行中の分析ファイル２１０２Ｘに代えてインストルメント分析ファイル２１０３を起動してよい。以下、説明を簡単にするために、分析ファイル２１０２が特定の状況を検出する主体であるとし、特定の状況の定義を示す情報は分析ファイル２１０２に記述されているとし、コンセントレータ１１Ａに格納可能な分析ファイル２１０２は一つであるとする。このため、分析ファイル２１０２毎に、検出すべき特定状況（例えば、後述する測定値の閾値）が異なってよい。例えば、「特定の状況」として低気圧が検出された場合、インストルメント分析ファイル２１０３が実行されることで低気圧に対応したプロファイルが出力され、当該プロファイルに基づき低気圧に最適化された分析ファイル２１０２Ｙが生成されて実行されるが、その後に、別の「特定の状況」として高気圧が検出された場合には、インストルメント分析ファイル２１０３が再度実行されることで高気圧に対応したプロファイルが出力され、当該プロファイルに基づき高気圧に最適化された分析ファイル２１０２Ｙが生成されて実行されてよい。
【００６２】
（０３）各コンセントレータ１１について、「特定の状況」は、当該コンセントレータ１１の分析処理以外の処理に依存する状況を含まない。各コンセントレータ１１について、分析処理以外の処理は、分析処理に比べて、当該コンセントレータ１１が配置されている環境に依存する度合が低い。このため、「特定の状況」が、分析処理以外の処理に依存する状況（例えばプロセッサ使用率がそれの閾値を超えた）を含むと、特定の状況が検出される頻度が高くなり、結果として、インストルメント分析ファイル２１０３が実行される頻度が高くなる可能性がある。インストルメント分析ファイル２１０３の実行では、分析処理に加えてプロファイリングが行われるため、プロセッサの負荷が大きく、故に、インストルメント分析ファイル２１０３の実行頻度は低い方が好ましい。本実施例では、「特定の状況」は、コンセントレータ１１の分析処理以外の処理に依存する状況を含まないので、インストルメント分析ファイル２１０３の実行頻度が高くなることを避けることができる。別の言い方をすれば、プロファイリングの回数を削減することができる。
【００６３】
（０４）上記（０３）に関し、各コンセントレータ１１について、「特定の状況」は、下記（ｐ）及び（ｑ）のうちの少なくとも一つである。（ｐ）は、センサ１３単体の観点から設けられた定義である。（ｑ）は、複数のセンサ１３を加味した観点から設けられた定義である。
（ｐ）当該コンセントレータ１１と通信可能な一つ以上のセンサ１３のうちの少なくとも一つのセンサ１３のセンサデータセットが持つ測定値がそれの閾値を超えること。
（ｑ）当該コンセントレータ１１のｎ回の業務処理にそれぞれ対応したｎの時間長に従う時間であるサービス時間がそれの閾値を超えること（ｎは自然数）。ｎは任意の値でよい。また、例えば、「ｎの時間長」は、ｎのサービス時間でよく、「ｎの時間長に従う時間であるサービス時間」は、平均サービス時間でよい。平均サービス時間の定義は、例えば次の通りでよい。すなわち、図４に例示するように、１回のサービス時間は、加工処理（業務処理の一例）の開始時刻ｔ４１で取得されたプロセッサ時間と、加工処理の終了時刻ｔ４２で取得されたプロセッサ時間との差分である。各々の取得されたプロセッサ時間は、主業務を行うプロセスに割り当てられていたプロセッサ時間であるため、当該差分は、他のプロセスに割り当てられていたプロセッサ時間を含まない。このようにしてそれぞれ計測されたｎのサービス時間を合計しｎで除算することで、平均サービス時間が得られる。平均サービス時間に代えて、他種のサービス時間、例えば、ｎのサービス時間のうちの最長又は最短のサービス時間が採用されてもよい。
【００６４】
（０５）少なくとも一つのコンセントレータ１１では、「特定の状況」が検出されたことに加えて、当該コンセントレータ１１の業務処理以外の処理に関して所定の条件が満たされている場合に、当該コンセントレータ１１において分析ファイル２１０２Ｘに代わってインストルメント分析ファイル２１０３が実行される。これにより、業務処理以外の処理に依存した状況も更に加味してインストルメント分析ファイル２１０３を実行するか否かを制御することができる。
【００６５】
（０６）上記（０５）に関し、「所定の条件」は、下記（ｖ）及び（ｗ）のうちの少なくとも一つである。
（ｖ）ページフォルトの発生頻度がそれの閾値を超えること。
（ｗ）センサデータセットのタイムスタンプが周期的ではないこと。
【００６６】
前記（ｖ）は、仮想アドレス空間に対応する物理メモリが紐づいていない場合に発生するプロセッサ例外処理である。通常はプログラムまたはデータの初回アクセスのみに発生し、多くのＯＳ設定では４０９６バイト単位で仮想アドレス空間に対応する物理メモリの紐づけを行う。ただし、使用可能な空き物理メモリが少なくなると、データはＨＤＤといった物理メモリ以外の領域に確保したスワップ領域（Linuxではswapパーティション、Windowsではpagefile.sysファイル）にメモリの内容を書き出し、空きメモリ領域を広げ、前記紐づけを解く。また、プログラム実行形式ファイルは、単純に物理メモリを解放し、前記紐づけを解く。このような場合に、再びプログラムやデータが必要になった場合は、再びページフォルトが発生する。このようなＯＳ動作から、同一のコードパスが継続的に実行されていた場合は、ページフォルトの発生頻度は低い。しかし、別のコードパスが現れるようになった場合や、コードパスが仮想アドレス空間の４０９６バイトを超える離れた位置に散在するようになると、ページフォルトの発生頻度が高くなる。プログラムの実行は、仮想アドレス空間と、実行ファイル内の命令セクションとを、ストレートマッピングしている為である。ＰＧＯは、頻発するコードパスを近くに配置する機能もあるため、ページフォルトの発生頻度が高いということは、ＰＧＯの効果が薄れていると判断できる。
【００６７】
前記（ｗ）は、センサデータセットを不正確に収集してしまっている状態といえる。このような状態になる理由は、大きくは前記（ｖ）のページフォルトが考えられるが、より細かいセンサデータセット取得時間精度を要する場合は、プロセッサとＯＳ内に備える、論理アドレス空間と物理アドレス空間を紐づけるキャッシャであるＴＬＢ（Translation Lookaside Buffer）ヒットミスが考えられる。前記（ｗ）によって、プログラム実行コードパスが離れている、即ちＰＧＯの効果が薄れていることを判断できる。
【００６８】
さて、図３に示すように、Ｓ３０１で、インストルメント分析ファイル２１０３Ａが実行された場合、インストルメント分析ファイル２１０３Ａにより所定の処理がｍ回以上実行された場合（ｍは自然数）、切替ファイル２１０４により、実行対象がインストルメント分析ファイル２１０３Ａから分析ファイル２１０２ＸＡに戻る（Ｓ３０２）。インストルメント分析ファイル２１０３Ａが実行において行われたプロファイリングの結果として出力されたプロファイル７０Ａは、コンセントレータ１１Ａ内のファイルシステム２１０１に保存される。切替ファイル２１０４が、当該プロファイル７０Ａをストレージサーバ１２に送信する（Ｓ３０３）。
【００６９】
ストレージサーバ１２において、当該プロファイル７０Ａとソースファイル２２１３とを基に分析ファイル２１０２ＹＡが生成される。切替指示ファイル２２０２が、当該分析ファイル２１０２ＹＡが関連付けられた切替指示をコンセントレータ１１Ａに送信する（Ｓ３０５）。
【００７０】
コンセントレータ１１Ａにおいて、切替ファイル２１０４が、当該切替指示に関連付けられている分析ファイル２１０２ＹＡを、分析ファイル２１０２ＸＡに代えて実行する（Ｓ３０６）。なお、ここで、既存の分析ファイル２１０２ＸＡが切替ファイル２１０４によりファイルシステム２１０１から削除されてよい。分析ファイル２１０２ＹＡには、当該分析ファイル２１０２ＹＡによって検出されるべき特定の状況の定義を示す情報が記述されてよく、既存の分析ファイル２１０２ＸＡの削除に伴い、分析ファイル２１０２ＹＡが分析ファイル２１０２ＸＡとなってよい。その後、Ｓ３０１以降が行われてよい。
【実施例２】
【００７１】
実施例２を説明する。その際、実施例１との相違点を主に説明し、実施例１との共通点については説明を省略又は簡略する。
【００７２】
図５は、実施例２に係るシステムにおいて行われる処理を示す。
【００７３】
ストレージサーバ１２において、切替指示ファイル２２０２が、生成された分析ファイル２１０２ＹＡを、プロファイル７０Ａの出力元のコンセントレータ１１Ａ以外の少なくとも一つのコンセントレータ１１に送信し、当該コンセントレータ１１では、当該コンセントレータ１１で検出された特定の状況において分析ファイル２１０２ＹＡが実行される。このため、当該コンセントレータ１１で特定の状況が検出されてもインストルメント分析ファイル２１０３の実行無しに当該特定の状況に最適化された分析ファイル２１０２ＹＡが当該コンセントレータ１１に存在し、故に、当該特定の状況が検出されてもインストルメント分析ファイル２１０３の実行が不要である。これにより、インストルメント分析ファイル２１０３の実行頻度を低減することができる。
【００７４】
実施例２の具体例として、例えば、下記の第１及び第２の具体例がある。
【００７５】
第１の具体例では、分析ファイル２１０２ＹＡが生成されても、別のコンセントレータ１１で特定の状況が検出されていなければ、当該分析ファイル２１０２ＹＡは当該別のコンセントレータ１１に送信されない。例えば、第１の具体例は以下の（Ｓ５０１）〜（Ｓ５０４）の通りである。コンセントレータ１１Ｃを例に取る。
【００７６】
（Ｓ５０１）コンセントレータ１１Ｃにおいて、特定の状況（例えば低気圧）が検出される。切替ファイル２１０４が、当該特定の状況に最適化された分析ファイル２１０２が、コンセントレータ１１Ｃ内のファイルシステム２１０１に存在するか否かを判断する。特定の状況と分析ファイル２１０２との対応関係を示す情報は、例えば、コンセントレータ１１Ｃ内の図示しない管理情報に含まれていてよく、当該管理情報を基に判断が行われてもよい。Ｓ５０１の判断結果が真の場合、後述のＳ５０４が切替ファイル２１０４により実行されてよい。
【００７７】
（Ｓ５０２）Ｓ５０１の判断結果が偽の場合、切替ファイル２１０４が、検出された特定の状況を示す情報が関連付けられた問合せ（当該特定の状況に最適化された分析ファイルの存在の問合せ）をストレージサーバ１２に送信する。
【００７８】
（Ｓ５０３）ストレージサーバ１２において、切替指示ファイル２２０２が、当該問合せに関連付けられている情報が示す特定の状況に最適化済の分析ファイル２１０２ＹＡ（図３のＳ３０４で生成された分析ファイル２１０２ＹＡ）を、コンセントレータ１１Ｃに送信する。
【００７９】
（Ｓ５０４）コンセントレータ１１Ｃにおいて、切替ファイル２１０４が、ストレージサーバ１２からの分析ファイル２１０２ＹＡをファイルシステム２１０１に保存し、当該分析ファイル２１０２ＹＡを実行する。
【００８０】
なお、第１の具体例において、切替指示ファイル２２０２は、Ｓ５０２で送信された問合せを受けた場合、特定の状況に最適化された分析ファイル２１０２がストレージサーバ１２内のファイルシステム２２０１に保存されているか否かを判断してよい。当該判断の結果が真の場合に、切替指示ファイル２２０２は、Ｓ５０３を実行してもよい。当該判断の結果が偽の場合、切替指示ファイル２２０２は、ファイル不在をコンセントレータ１１Ｃに回答してもよい。ファイル不在の回答をコンセントレータ１１Ｃが受けた場合、切替ファイル２１０４は、インストルメント分析ファイル２１０３Ｃを実行してよい。この場合、コンセントレータ１１Ｃに関して、図３を参照して説明したＳ３０２以降が行われる。
【００８１】
第２の具体例では、分析ファイル２１０２ＹＡが生成された場合に、別のコンセントレータ１１で特定の状況が検出されたか否かにか関わらず、当該分析ファイル２１０２ＹＡが当該別のコンセントレータ１１に送信される。例えば、第２の具体例は以下の（Ｓ５１１）〜（Ｓ５１４）の通りである。コンセントレータ１１Ｂを例に取る。
【００８２】
（Ｓ５１１）ストレージサーバ１２において、切替指示ファイル２２０２が、図３のＳ３０４で生成された分析ファイル２１０２ＹＡを、コンセントレータ１１Ｂに送信する。
【００８３】
（Ｓ５１２）コンセントレータ１１において、切替ファイル２１０４が、当該分析ファイル２１０２ＹＡを、ファイルシステム２１０１に保存する。
【００８４】
（Ｓ５１３）コンセントレータ１１Ｂにおいて、特定の状況（例えば低気圧）が検出される。切替ファイル２１０４が、当該特定の状況に最適化された分析ファイル２１０２ＹＡが、コンセントレータ１１Ｂ内のファイルシステム２１０１に存在するか否かを判断する。
【００８５】
（Ｓ５１４）Ｓ５１３の判断結果が真の場合、切替ファイル２１０４が、分析ファイル２１０２ＹＡを実行する。
【００８６】
なお、第２の具体例において、Ｓ５１３の判断結果が偽の場合、切替ファイル２１０４が、下記のうちのいずれかを行ってよい。
・切替ファイル２１０４が、インストルメント分析ファイル２１０３Ｂを実行する。この場合、コンセントレータ１１Ｂに関して、図３を参照して説明したＳ３０２以降が行われる。
・切替ファイル２１０４が、検出された特定の状況を示す情報が関連付けられた問合せ（当該特定の状況に最適化された分析ファイルの存在の問合せ）をストレージサーバ１２に送信する。この場合、コンセントレータ１１Ｂに関して、上述のＳ５０３以降が行われる。
【実施例３】
【００８７】
実施例３を説明する。その際、実施例１及び２との相違点を主に説明し、実施例１及び２との共通点については説明を省略又は簡略する。
【００８８】
図６は、実施例３に係るシステムにおいて行われる処理を示す。
【００８９】
ストレージサーバ１２が、同期間に二つ以上のコンセントレータ１１から二つ以上のプロファイル７０を受け付けることがある。ここでは、ストレージサーバ１２が、二つのコンセントレータ１１Ａ及び１１Ｂからそれぞれ二つのプロファイル７０Ａ及び７０Ｂを同期間（例えば同時）に受け付けたとする（Ｓ３０３Ａ及びＳ３０３Ｂ）。この場合、切替指示ファイル２２０２が、当該二つのプロファイル７０Ａ及び７０Ｂをマージする（Ｓ６０１）。結果として統合プロファイル７０Ｘが生成される。統合プロファイル７０Ｘとソースファイル２２１３とに基づき分析ファイル２１０２Ｙが生成される。切替指示ファイル２２０２は、当該分析ファイル２１０２Ｙを二つのコンセントレータ１１Ａ及び１１Ｂの各々に送信する。分析ファイル２１０２Ｙは、統合プロファイル７０Ｘを基に生成されたため、特定の状況に一層適していることが期待される。
【実施例４】
【００９０】
実施例４を説明する。その際、実施例１乃至３との相違点を主に説明し、実施例１乃至３との共通点については説明を省略又は簡略する。
【００９１】
図７は、実施例４に係るシステムにおいて行われる処理を示す。
【００９２】
特定の状況に最適化された分析ファイル２１０２Ｙの生成が、ストレージサーバ１２に代えてコンセントレータ１１で行われる。コンセントレータ１１Ａを例に取ると、以下の通りである。なお、以下に説明するコンセントレータ１１Ａの構成は、コンセントレータ１１Ａ以外の全てのコンセントレータ１１に適用されてもよい。ストレージサーバ１２は、実施例１乃至３のうちのいずれかの実施例におけるストレージサーバ１２と同様であってもよいし、ソースファイル２２１３、コンパイラ２２０４及びリンカ２２０５を有していなくてもよい。
【００９３】
コンセントレータ１１Ａのファイルシステム２１０１に、分析ファイル２１０２ＸＡ及びインストルメント分析ファイル２１０３に加えて、ソースファイル２２１３、コンパイラ２２０４及びリンカ２２０５が存在する。また、切替ファイル２１０４に代えて切替制御ファイル７００５が存在する。切替制御ファイル７００５は、実行ファイルの一つである。具体的には、切替制御ファイル７００５は、分析ファイル２１０２ＸＡに代わってインストルメント分析ファイル２１０３Ａが実行されたことによりプロファイル７０Ａが出力された場合、当該プロファイル７０Ａのファイル名とソースファイル２２１３が持つコースコードを引数としてコンパイラ２２０４に与えることでコンパイルを実行させ、コンパイル結果をリンカ２２０５に与える。これにより分析ファイル２１０２ＹＡが得られる。
【００９４】
本実施例によれば、複数のコンセントレータ１１とストレージサーバ１２間の通信量を削減することができる。
【００９５】
以上、幾つかの実施例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【００９６】
例えば、本発明は、コンセントレータ１１以外の機器にもストレージサーバ１２以外の機器にも適用することができる。また、一又は複数の機器のうちの一つ以上の機器の各々において処理が実行されるシステムは、単一の機器で処理が実行されるシステム（例えば単一の機器それ自体）でもよいし、複数の機器において処理が実行されるシステムでもよい。
【００９７】
また、上述した実施例１〜４のうちの二つ以上の実施例を組み合わせることができる。例えば、コンセントレータ１１Ａが、分析ファイル２１０２Ｙを生成して当該分析ファイル２１０２Ｙをストレージサーバ１２に送信し、ストレージサーバ１２が、当該分析亜フィル２１０２Ｙを、コンセントレータ１１Ａ以外の少なくとも一つのコンセントレータ１１に配信してもよい。言い換えれば、例えば、比較的高いスペックを持つコンセントレータ１１（例えば１１Ａ）と比較的低いスペックを持つコンセントレータ１１が混在してもよい。
【符号の説明】
【００９８】
１１…コンセントレータ  １２…ストレージサーバ
【図１】
2020126431.tif 000003
【図２】
2020126431.tif 000004
【図３】
2020126431.tif 000005
【図４】
2020126431.tif 000006
【図５】
2020126431.tif 000007
【図６】
2020126431.tif 000008
【図７】
2020126431.tif 000009