JP7009971B2 - プロセススケジューリング装置およびプロセススケジューリング方法 - Google Patents

プロセススケジューリング装置およびプロセススケジューリング方法 Download PDF

Info

Publication number
JP7009971B2
JP7009971B2 JP2017239656A JP2017239656A JP7009971B2 JP 7009971 B2 JP7009971 B2 JP 7009971B2 JP 2017239656 A JP2017239656 A JP 2017239656A JP 2017239656 A JP2017239656 A JP 2017239656A JP 7009971 B2 JP7009971 B2 JP 7009971B2
Authority
JP
Japan
Prior art keywords
pattern
weight variable
processes
classification
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017239656A
Other languages
English (en)
Other versions
JP2019106120A (ja
Inventor
武徳 三塩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2017239656A priority Critical patent/JP7009971B2/ja
Publication of JP2019106120A publication Critical patent/JP2019106120A/ja
Application granted granted Critical
Publication of JP7009971B2 publication Critical patent/JP7009971B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本開示は、プロセススケジューリング装置、プロセス実行装置およびプロセススケジューリング方法に関する。
典型的なコンピュータシステムでは、タスクを実行するアプリケーションが1または複数のプロセスを生成し、CPU(Central Processing Unit)が、生成されたプロセスを実行する。プロセスを実行するために、コンピュータシステムのリソースを必要とする。しかし、一般的に、割り当てられるリソースは限られているため、同時に全てのプロセスを実行することは出来ない。
そのため、典型的なコンピュータシステムにおいては、複数のプロセスが共有のリソースを交互に利用することにより、限られたリソースを用いて、より多くのプロセスを実行するマルチタスキングを実現している。これにより、コンピュータシステムにおいて、複数のプロセスを同時に処理するようにみせている。
ここで、より多くのプロセスを処理するためには、各プロセスをどの順番で実行するかを決定するプロセススケジューラが必要になる。プロセススケジューラは、プロセス実行時の性能項目値が高くなるように、複数のプロセスの実行順序を決定する。そのため、プロセススケジューラをどのように設計するかにより、プロセス実行時の性能項目値が左右される。そこで、実行されるプロセスの最適な優先度を決定する技術が検討されている(例えば、特許文献1)。
特許文献1には、システム内時間を入力とし、遅延コストまたは優先順位を出力とする遅延コスト関数を定義し、多層ニューラルネットワークによって実施されることにより、プロセス実行優先度を決定する技術が開示されている。
特開平7-175669号公報
特許文献1においては、遅延コスト関数は、システム内時間を入力とする関数となっている。換言すると、特許文献1においては、システム内時間であるプロセスが有する1つの特徴に基づいてプロセス実行優先度を決定している。しかしながら、プロセスが有する特徴は1つでは無いことから、特許文献1に開示された技術では、最適なプロセス実行優先度となっているとは限らない。また、特許文献1には、遅延コスト関数を、複数の変数の関数とした場合についても言及しているが、具体的な内容が開示されていない。したがって、プロセスが有する複数の特徴を用いたプロセススケジューラを提供することが望まれる。
本開示の目的は、このような問題を解決するためになされたものであり、プロセスが有する複数の特徴を用いたプロセススケジューリングを可能とする、プロセススケジューリング装置、プロセス実行装置およびプロセススケジューリング方法を提供することである。
第1の態様にかかるプロセススケジューリング装置は、
プロセスが有する少なくとも1つの特徴を用いて、複数のプロセスを複数のプロセスタイプに分類する分類パターンを、それぞれ異なる少なくとも1つの特徴を用いて複数生成するパターン生成部と、
前記複数の分類パターンの各々に対して、予め定められた性能項目に対する評価値を決定する評価部と、
前記決定された評価値に基づいて、前記複数のプロセスに対する分類パターンを決定する決定部と、を備える。
第2の態様にかかるプロセス実行装置は、
プロセスが有する少なくとも1つの特徴を用いて、複数の第1のプロセスを複数のプロセスタイプに分類する分類パターンを、それぞれ異なる少なくとも1つの特徴を用いて複数生成し、前記複数の分類パターンの各々に対して、予め定められた性能項目に対する評価値を決定し、前記決定された評価値に基づいて決定された分類パターンを用いて、アプリケーションプログラムが生成する複数の第2のプロセスを実行するプロセス実行部を備える。
第3の態様にかかるプロセススケジューリング方法は、
プロセスが有する少なくとも1つの特徴を用いて、複数のプロセスを複数のプロセスタイプに分類する分類パターンを、それぞれ異なる少なくとも1つの特徴を用いて複数生成することと、
前記複数の分類パターンの各々に対して、予め定められた性能項目に対する評価値を決定することと、
前記決定された評価値に基づいて、前記複数のプロセスに対する分類パターンを決定することと、を含む。
上述した態様によれば、プロセスが有する複数の特徴を用いたプロセススケジューリングが可能となる。
実施の形態1にかかるプロセススケジューリング装置の構成例を示すブロック図である。 実施の形態2にかかるプロセス実行システムの構成例を示すブロック図である。 学習ケースを説明するための図である。 モデリングおよびモデリングパターンを説明するための図である。 実施の形態2にかかるプロセススケジューリング装置の全体動作を説明するフローチャートである。 最適重み変数セットの決定動作について説明するフローチャートである。 最適モデリングパターンおよび最適重み変数セットの決定動作について説明するフローチャートである。 実施の形態2にかかるプロセス実行装置の動作例を説明するフローチャートである。 実施の形態2の変形例にかかるプロセススケジューリング装置20の構成例を示すブロック図である。 実施の形態2の変形例にかかるプロセス実行装置の構成例を示すブロック図である。 他の実施の形態にかかるプロセススケジューリング装置およびプロセス実行装置の構成例を示す図である。
以下、図面を参照しつつ、本開示の実施の形態について説明する。なお、実施の形態において、同一の要素には、同一の符号を付し、重複する説明は省略される。
(実施の形態1)
まず、図1を用いて、実施の形態1にかかるプロセススケジューリング装置10について説明する。図1は、実施の形態1にかかるプロセススケジューリング装置の構成例を示すブロック図である。
プロセススケジューリング装置10は、例えば、サーバ、パーソナルコンピュータ等の情報処理装置である。プロセススケジューリング装置10は、複数のプロセスの実行時の優先度を決定する情報処理装置である。プロセススケジューリング装置10は、パターン生成部11と、評価部12と、決定部13とを備える。
パターン生成部11は、プロセスが有する少なくとも1つの特徴を用いて、複数のプロセスを複数のプロセスタイプに分類する分類パターンを、それぞれ異なる少なくとも1つの特徴を用いて複数生成する。換言すると、パターン生成部11は、分類パターンを生成する際に用いる特徴の全てが重複する分類パターンを生成しないように複数の分類パターンを生成する。
プロセスが有する特徴は、フォアグランドプロセスまたはバックグラウンドプロセスであること、プロセス実行順、プロセス発生順であってもよい。もしくは、プロセスが有する特徴は、過去に割り当てられたプロセスのCPU時間、プロセス名、ユーザ情報およびプロセスに入力された入力情報であってもよい。
評価部12は、パターン生成部11が生成した複数の分類パターンの各々に対して、予め定められた性能項目に対する評価値を決定する。評価部12は、パターン生成部11が生成した複数の分類パターンに含まれるプロセスタイプを実行することによって、性能項目に対する評価値を決定する。
性能項目は、スループット、消費電力、割り当てられたリソースの平等性であってもよい。もしくは、性能項目は、上記のうちの少なくとも1つを含む組み合わせであってもよい。
性能項目がスループット、消費電力、リソース割り当て率の少なくとも1つを含む性能項目である場合、評価部12は、各性能項目の評価値の総和を評価値と決定してもよい。
決定部13は、評価部12によって決定された評価値に基づいて、複数のプロセスに対する分類パターンを決定する。
以上説明した様に、パターン生成部11が、プロセスが有する複数の特徴を用いて、複数のプロセスを複数のプロセスタイプに分類する分類パターンを、複数生成する。評価部12は、パターン生成部11が生成した複数の分類パターンの各々に対して、性能項目に対する評価値を決定し、決定部13は、決定された評価値に基づいて、分類パターンを決定する。プロセスを実行する場合、決定された分類パターンを用いてプロセスを実行することにより最適なプロセススケジューリングを行うことが可能となる。したがって、実施の形態1にかかるプロセススケジューリング装置10によれば、プロセスが有する複数の特徴を用いたプロセススケジューリングが可能となる。
(実施の形態2)
続いて、実施の形態2について説明する。実施の形態2は、実施の形態1を詳細にした実施の形態である。具体的には、実施の形態1においては、複数の分類パターンに対する評価値を決定して、決定された評価値に基づいて分類パターンを決定した。本実施の形態においては、複数のプロセスを表すプロセス群を複数生成する。さらに、複数の分類パターンにより、プロセスをプロセスタイプに分類し、分類されたプロセスタイプの各々に重み付けを行う重み変数セットを導入する。またさらに、最適な分類パターンと、最適な重み変数セットとを、機械学習によって決定する。本実施の形態の詳細を以下に説明する。
<プロセス実行システムの構成例>
まず、図2を用いて、実施の形態2にかかるプロセス実行システム100の構成例について説明する。図2は、実施の形態2にかかるプロセス実行システムの構成例を示すブロック図である。
プロセス実行システム100は、プロセスを実行する装置と、プロセスを実行する装置において生成されたプロセスをスケジューリングする装置と、を含む情報処理システムである。プロセス実行システム100は、プロセススケジューリング装置20と、プロセス実行装置30とを備える。
プロセススケジューリング装置20は、実施の形態1にかかるプロセススケジューリング装置10に対応する情報処理装置である。プロセススケジューリング装置20は、プロセス実行装置30において生成されたプロセスをスケジューリングする情報処理装置である。なお、説明を行う上で便宜的に、プロセス実行装置30において生成されたプロセスを「実プロセス」と称して記載をすることがある。
プロセス実行装置30は、プロセス実行装置30にインストールされているアプリケーションプログラムが生成する実プロセスを実行する情報処理装置である。プロセス実行装置30は、例えば、サーバ、パーソナルコンピュータ等の情報処理装置であってもよい。
<プロセススケジューリング装置の構成例>
続いて、プロセススケジューリング装置20の構成例について説明する。図2に示す様に、プロセススケジューリング装置20は、プロセス生成部21、パターン生成部22、変数生成部23、記憶部24、算出部25、評価部26、決定部27および送信部28を備える。
プロセス生成部21は、プロセス実行装置30において生成される実プロセスの実行順序を決定するための複数の評価用プロセスを生成する。つまり、プロセス生成部21は、プロセス実行装置30において生成されると想定される複数の仮想プロセスを生成する。
プロセス生成部21は、プロセス実行装置30において生成される実プロセス数に応じて、評価用のプロセスを生成してもよい。例えば、プロセス実行装置30においてインストールされているアプリケーションプログラムが1万プロセスを生成すると予め分かっている場合、プロセス生成部21は、1万プロセスを生成してもよい。もしくは、プロセス生成部21は、プロセス実行システム100の管理者または運用者が、任意に決めた数の評価用プロセスを生成してもよい。
プロセス生成部21は、生成した複数の評価用プロセスのうち、ランダムに2つ以上の評価用プロセスを抽出して、評価用のプロセスの集合を表す評価用プロセス群を複数生成する。プロセス生成部21は、プロセス実行装置30において、同時に実行される可能性がある評価用プロセスの集合である評価用プロセス群を複数生成する。つまり、プロセススケジューリング装置20は、プロセス実行装置30において生成されると想定される複数の仮想プロセスのうち、同時に実行されると想定される仮想プロセスの集合を複数生成して評価を行う。なお、以降の説明では、プロセス生成部21が生成する評価用プロセス群を「学習ケース」と称して記載することがある。また、説明を行う上で便宜的に、プロセス生成部21は、複数の学習ケースa,a,...,a(m:1以上の整数)を生成したと仮定して説明を行う。
プロセス生成部21は、生成した学習ケースa,a,...,aを、記憶部24の学習ケース保存領域241に記憶する。
ここで、図3を用いて、学習ケースの一例について説明する。図3は、学習ケースを説明するための図である。図3に示す様に、例えば、プロセス生成部21がプロセス1~5の評価用プロセスを生成したとする。プロセス生成部21は、生成したプロセス1~5のうち、2つ以上の評価用プロセスを抽出して学習ケースを生成する。
図3に示す一例では、プロセス1とプロセス2とを抽出して生成した学習ケースをaとし、プロセス1とプロセス3とを抽出して生成した学習ケースをaとしたことを示している。また、学習ケースは、2つのプロセスのみに限られないため、図3の学習ケースaのように3つのプロセスによって生成された学習ケースが存在してもよい。学習ケースは、多ければ多いほど最適な評価結果を導けるため、プロセス数が4つにより生成された学習ケースが存在してもよいし、プロセス数が5つにより生成された学習ケースが存在してもよい。
図2に戻り、パターン生成部22について説明する。パターン生成部22は、実施の形態1にかかるパターン生成部11に対応する。パターン生成部22は、プロセスが有する少なくとも1つの特徴を用いて、複数のプロセスを複数のプロセスタイプに分類する分類パターンを、それぞれ異なる少なくとも1つの特徴を用いて複数生成する。換言すると、パターン生成部11は、分類パターンを生成する際に用いる特徴の全てが重複する分類パターンを生成しないように複数の分類パターンを生成する。
なお、以降の説明では、複数のプロセスを複数のプロセスタイプに分類することを「モデリング」と称して記載することがある。また、パターン生成部22が生成した複数の分類パターンを「モデリングパターン」と称して記載することがある。また、説明を行う上で便宜的に、パターン生成部22は、複数のモデリングパターンb,b,...,b(n:1以上の整数)を生成したと仮定して説明を行う。なお、mとnは、同じ整数であってもよいし、異なる整数であってもよい。
パターン生成部22は、生成したモデリングパターンb,b,...,bを、記憶部24のモデリングパターン保存領域242に記憶する。
ここで、図4を用いて、モデリングおよびモデリングパターンについて説明する。図4は、モデリングおよびモデリングパターンを説明するための図である。まず、図4の上図を用いてモデリングについて説明する。図4の上図には、プロセス1~3を含む、ある学習ケースが示されている。プロセス1~3は2つの特徴を有しており、1つ目の特徴は、フォアグラウンドプロセスまたはバックグラウンドプロセスのいずれであるかを示す属性情報であるとする。また、2つ目の特徴は、プロセスの生成順であるとする。プロセス1は、フォアグラウンドのプロセスであって、1番目に生成されたプロセスであることを示している。プロセス2は、バックグラウンドのプロセスであって、2番目に生成されたプロセスであることを示している。プロセス3は、フォアグラウンドのプロセスであって、3番目に生成されたプロセスであることを示している。
この状態で、2つの特徴のうち、少なくとも1つの特徴を用いて、プロセスをプロセスタイプに分類することをモデリングと言う。図4の上図では、フォアグラウンドプロセスまたはバックグラウンドプロセスのいずれであるかを示す属性情報を用いて、プロセスをプロセスタイプに分類した場合を示している。つまり、フォアグラウンドプロセスであるプロセス1および3はプロセスタイプTYPE 1に分類され、バックグラウンドプロセスであるプロセス2はプロセスタイプTYPE 2に分類されることを示している。このように、複数のプロセスを複数のプロセスタイプに分類することをモデリングと言う。
次に、モデリングパターンについて説明する。図4の下図は、2つ目の特徴であるプロセスの生成順を用いてモデリングを行ったことを示している。図4の下図では、1番目に生成されるプロセスをプロセスタイプTYPE 1とし、2番目以降に生成されるプロセスをプロセスタイプTYPE 2とするモデリングが行われていることを示している。ここで、図4の上図、下図のように、異なる特徴を用いてモデリングされた分類パターン(パターンXまたはパターンY)をそれぞれモデリングパターンとする。
図2に戻り説明を続ける。パターン生成部22は、後述する評価部26が決定した評価値に基づいて、所定の条件を満たすまで、新たな複数のモデリングパターンを繰り返し生成する。詳細は動作例において説明を行うが、パターン生成部22は、モデリングパターンを個体とし、評価部26が決定した評価値を適応度とした、遺伝的アルゴリズムを適用して、新たな複数のモデリングパターンを繰り返し生成する。
所定の条件は、遺伝的アルゴリズムを適用して、学習を行う全体の経過時間が所定の閾値を超過した場合であってもよい。もしくは、所定の条件は、遺伝的アルゴリズムを適用して世代交代をしたときの所定の世代数となった場合であってもよい。もしくは、所定の条件は、遺伝的アルゴリズムを適用して生成された複数のモデリングパターンに対する評価部26が決定した評価値が全て同じ値となる場合であってもよい。
パターン生成部22は、新たな複数のモデリングパターンを生成した場合、記憶部24のモデリングパターン保存領域242に記憶されているモデリングパターンを更新する。
また、パターン生成部22は、学習ケースa,a,...,aの各々に、モデリングパターンb,b,...,bを適用する。なお、以降の説明では、学習ケースにモデリングパターンを適用して生成されたものを「学習モデル」と称して記載することがある。
ここで、学習ケースa(i=0~mの整数)に対して、モデリングパターンb(j=0~nの整数)を適用して生成された学習モデルをcijとすると、学習モデルcijは、cij=aとして表すこととする。つまり、パターン生成部22は、c11=a,c12=a,...,c1n=a,c21=a,c22=a,...,c2n=a,...,cm1=a,cm2=a,cmn=aを生成する。
パターン生成部22が生成した学習モデルc11~cmnを記憶部24の学習モデル保存領域243に記憶する。
ここで、学習モデルcij=aは、学習ケースaに含まれている評価用プロセスが、モデリングパターンbによってプロセスタイプに分類されている。学習モデルcijに含まれているプロセスタイプ毎の数を学習モデルcijの特徴とし、プロセスタイプ毎にいくつ含まれているかを特徴量とする。
例えば、学習モデルcijが、プロセスタイプTYPE 1とTYPE 2とを含んでいるとすると、プロセスタイプTYPE 1の特徴量はmで表され、プロセスタイプTYPE 2の特徴量はmで表される。一般化して表すと、プロセスタイプTYPE Fの特徴量は、mとして定義出来る。
次に、変数生成部23について説明する。変数生成部23は、各学習モデルに含まれるプロセスタイプの各々に重み付けを行う重み変数の集合である重み変数セットを複数生成する。変数生成部23が生成する重み変数セットは、プロセスタイプ毎の優先度を決定する関数を構成する変数の集合である。
ここで、プロセスタイプ毎の優先度を決定する関数について説明を行った上で、変数生成部23が生成する重み変数セットについて説明する。
プロセスタイプ毎の優先度を決定する関数は、以下の数式(1)のように定義される。
Figure 0007009971000001
ここで、n:プロセスタイプTYPE aの優先度、d:プロセスタイプTYPE aの重み変数、d:プロセスタイプTYPE kの重み変数m:プロセスタイプTYPE kの特徴(プロセスタイプTYPE kの数)、q:1~プロセスタイプ数。
変数生成部23は、上記数式(1)において、プロセスタイプ毎の重み変数の集合であるd=(d11,d12,...,d1q)を重み変数セットとして生成する。また、変数生成部23は、複数の重み変数セットをランダムに生成する。変数生成部23が、d1,,...,d(o:1以上の整数)を生成したとする。具体的には、各重み変数セットは、d=(d11,d12,...,d1q),d=(d21,d22,...,d2q),...,d=(do1,do2,...,doq)である。
なお、適用するモデリングパターンによって、学習モデルに含まれるプロセスタイプ数が異なる場合も想定される。具体的には、ある学習モデルの場合、プロセスタイプを2つ(TYPE 1およびTYPE 2)含み、別の学習モデルの場合、プロセスタイプを3つ(TYPE 1、TYPE 2およびTYPE3)含むことが想定される。そのため、変数生成部23は、重み変数セットを生成する際に、全ての学習モデルに含まれるプロセスタイプ数を確認し、プロセスタイプ数が最も多い学習モデルのプロセスタイプ数に応じた重み変数を集合とする重み変数セットを生成する。
また、変数生成部23は、後述する評価部26が決定した評価値に基づいて、所定の条件を満たすまで、新たな複数の重み変数セットを繰り返し生成する。詳細は動作例において説明を行うが、変数生成部23は、重み変数セットを個体とし、評価部26が決定した評価値を適応度として、遺伝的アルゴリズムを適用して、新たな複数の重み変数セットを繰り返し生成する。
所定の条件は、遺伝的アルゴリズムを適用して、学習を行う全体の経過時間が所定の閾値を超過した場合であってもよい。もしくは、所定の条件は、遺伝的アルゴリズムを適用して世代交代をしたときの所定の世代数となった場合であってもよい。もしくは、所定の条件は、遺伝的アルゴリズムを適用して生成された複数の重み変数セットに対する評価部26が決定した評価値が全て同じ値となる場合であってもよい。
変数生成部23は、新たな複数の重み変数セットを生成した場合、記憶部24の重み変数セット保存領域244に記憶されている重み変数セットを更新する。
次に、記憶部24について説明する。記憶部24には、学習ケース保存領域241、モデリングパターン保存領域242、学習モデル保存領域243および重み変数セット保存領域244が設けられている。
学習ケース保存領域241は、プロセス生成部21が生成した学習ケースが保存される領域である。
モデリングパターン保存領域242は、パターン生成部22が生成したモデリングパターンが保存される領域である。
学習モデル保存領域243は、パターン生成部22が生成した学習モデルが保存される領域である。
重み変数セット保存領域244は、変数生成部23が生成した重み変数セットが保存される領域である。
次に、算出部25について説明する。算出部25は、学習モデルと重み変数セットとの組み合わせ毎に、学習モデルに含まれるプロセスタイプ毎の特徴量、つまり、プロセスタイプ毎の数と、前記重み変数セットとを用いて、プロセスタイプ毎の優先度を算出する。具体的には、算出部25は、学習モデルと重み変数セットとの組み合わせ毎に、学習モデルに含まれるプロセスタイプ毎の特徴量を求め、重み変数セットを用いて、上記数式(1)からプロセスタイプ毎の優先度を算出する。
次に、評価部26について説明する。評価部26は、実施の形態1における評価部12に対応する。評価部26は、学習モデルと重み変数セットとの組み合わせ毎に、算出部25が算出したプロセスタイプ毎の優先度に基づいて、学習モデルに含まれるプロセス(プロセスタイプ)を実行し、予め定められた性能項目の評価値を決定する。具体的には、評価部26は、算出されたプロセスタイプ毎の優先度が高いプロセスタイプから実行し、性能項目の評価値を決定する。
性能項目は、例えば、スループット、消費電力、割り当てられたリソースの平等性であってもよい。もしくは、予め定められた性能項目は、例えば、スループットおよび消費電力などのように複数の性能項目の組み合わせであってもよい。
性能項目がスループットである場合、プロセスタイプ毎の優先度に基づいて、学習モデルに含まれるプロセス(プロセスタイプ)を実行したときの実行開始から全プロセス(全プロセスタイプ)の終了までの時間を計測する。そして、その計測時間に応じて評価値を決定する。評価値は、例えば、計測されたスループットを所定の閾値と比較し、所定の閾値以上の場合、評価値を1として、所定の閾値未満である場合、評価値を0としてもよい。もしくは、評価値は、計測されたスループットを所定の閾値と比較し、所定の閾値との差分に応じた評価値としてもよい。
性能項目が消費電力である場合、プロセスタイプ毎の優先度に基づいて、学習モデルに含まれるプロセス(プロセスタイプ)を実行したときの消費電力を監視し、消費電力の大小に応じて評価値を決定する。評価値は、例えば、計測された消費電力を所定の閾値と比較し、所定の閾値未満の場合、評価値を1として、所定の閾値以上である場合、評価値を0としてもよい。もしくは、評価値は、計測された消費電力を所定の閾値と比較し、所定の閾値との差分に応じた評価値としてもよい。なお、消費電力は小さい程、良い性能を発揮していると考えられるため、計測された消費電力の逆数を用いて評価値を決定してもよい。
性能項目が、割り当てられたリソースの平等性である場合、プロセスタイプ毎の優先度に基づいて、学習モデルに含まれるプロセス(プロセスタイプ)を実行したときの各プロセスに割り当てられたリソースを監視する。そして、割り当てられたリソースのプロセス間のばらつき(分散)に基づいて評価値を決定する。評価値は、例えば、割り当てられたリソースのプロセス間のばらつきを所定の閾値と比較し、所定の閾値未満の場合、評価値を1として、所定の閾値以上である場合、評価値を0としてもよい。もしくは、評価値は、割り当てられたリソースのプロセス間のばらつきを所定の閾値と比較し、所定の閾値との差分に応じた評価値としてもよい。なお、割り当てられたリソースのプロセス間のばらつきは小さい程、良い性能を発揮していると考えられるため、割り当てられたリソースのプロセス間のばらつきの逆数を用いて評価値を決定してもよい。
性能項目が、例えば、スループットおよび消費電力のように、複数の性能項目の組み合わせである場合、各性能項目に対して、上記のように決定した評価値を総和することにより決定してもよい。なお、説明を行う上で便宜的に、性能項目は、スループットとして以降の説明を行う。
詳細は後述するが、プロセススケジューリング装置20は、最適なモデリングパターンと最適な重み変数セットとを決定することを目的とする。そのため、評価部26は、モデリングパターンと重み変数セットとの組み合わせ毎に評価値を決定する。ここで、各学習モデルは、学習ケースのそれぞれに、モデリングパターンを適用して生成されている。つまり、同一のモデリングパターンによって生成された学習モデルは、学習ケース分存在する。そのため、モデリングパターンを評価する際、重み変数セットを評価する際、各学習ケースの評価値を決定して、決定した評価値を総和した値を、モデリングパターンに対する評価値、重み変数セットに対する評価値として決定する。
次に、決定部27について説明する。決定部27は、実施の形態1にかかる決定部13に対応する。決定部27は、評価部26において決定された評価値に基づいて、最適なモデリングパターンと最適な重み変数セットとを決定する。パターン生成部22および変数生成部23は、所定の条件を満たすまで、新たな複数のモデリングパターンおよび新たな複数の重み変数セットを繰り返し生成する。決定部27は、所定の条件を満たした場合、最も高い評価値に対応する、モデリングパターンおよび重み変数セットを決定する。なお、説明を行う上で便宜的に、最も良い評価値のモデリングパターンを「最適モデリングパターン」と称して記載し、最も良い評価値の重み変数セットを「最適重み変数セット」と称して記載することがある。
次に、送信部28について説明する。送信部28は、最適モデリングパターンと、最適重み変数セットとをプロセス実行装置30に送信する。
<プロセスス実行装置の構成例>
続いて、プロセス実行装置30について説明する。プロセス実行装置30は、受信部31、記憶部32およびプロセス実行部33を備える。
受信部31は、最適モデリングパターンと、最適重み変数セットとを送信部28から受信する。受信部31は、最適モデリングパターンと、最適重み変数セットとを受信すると、記憶部32に記憶する。
記憶部32は、モデリングパターン保存領域321と、重み変数セット保存領域322と、を備える。
モデリングパターン保存領域321は、受信部31が受信した最適モデリングパターンが保存される保存領域である。
重み変数セット保存領域322は、受信部31が受信した最適重み変数セットが保存される保存領域である。
次に、プロセス実行部33について説明する。プロセス実行部33は、プロセス実行装置にインストールされたアプリケーションプログラムが生成した複数の実プロセスを実行する。具体的には、プロセス実行部33は、複数の実プロセスを最適モデリングパターンに基づいて、複数のプロセスタイプに分類する。そして、プロセス実行部33は、プロセスタイプ毎の数を算出し、最適重み変数セットを用いて、上記数式(1)に代入してプロセスタイプ毎の優先度を算出する。プロセス実行部33は、算出されたプロセスタイプ毎の優先度が高いプロセスタイプに分類された実プロセスから実行する。ただし、同じ優先度のプロセスタイプに対応する実プロセスが複数存在する場合は、プロセス実行部33は、各プロセスに既に割り振ったリソースの量が少ないものを先に実行する。優先度が等しく、かつ、既に割り振ったリソースの量も等しい場合は、プロセス実行部33は、先に生成されたプロセスから順に実行する。
<プロセススケジューリング装置の動作例>
続いて、図5~図7を用いて、プロセススケジューリング装置20の動作例を説明する。
まず、図5を用いて、プロセススケジューリング装置20の全体動作を説明する。図5は、実施の形態2にかかるプロセススケジューリング装置の全体動作を説明するフローチャートである。
プロセス生成部21は、複数の学習ケースを生成する(ステップS1)。具体的には、プロセス生成部21は、複数の評価用プロセスを生成する。そして、プロセス生成部21は、生成した複数の評価用プロセスのうち、ランダムに2つ以上の評価用プロセスを抽出して、学習ケースを複数生成する。プロセス生成部21は、複数の学習ケースa,a,...,aを生成したとする。プロセス生成部21は、生成した複数の学習ケースa,a,...,aを学習ケース保存領域241に記憶する。
次に、パターン生成部22は、複数のモデリングパターンを生成する(ステップS2)。具体的には、パターン生成部22は、プロセスが有する複数の特徴のうち、それぞれ異なる少なくとも1つの特徴をランダムに抽出して、複数のプロセスを複数のプロセスタイプに分類する分類パターンを表すモデリングパターンを複数生成する。パターン生成部22は、複数のモデリングパターンb,b,...,bを生成したとする。なお、mとnは、同じ整数であってもよいし、異なる整数であってもよい。パターン生成部22は、生成した複数のモデリングパターンb,b,...,bをモデリングパターン保存領域242に記憶する。
次に、パターン生成部22は、複数の学習モデルを生成する(ステップS3)。具体的には、パターン生成部22は、学習ケースa,a,...,aの各々に、モデリングパターンb,b,...,bを適用して、複数の学習ケースを生成する。パターン生成部22は、c11=a,c12=a,...,c1n=a,c21=a,c22=a,...,c2n=a,...,cm1=a,cm2=a,cmn=aを生成したとする。パターン生成部22は、生成した学習モデルc11,c12,...,c1n,c21,c22,...,c2n,...,cm1,cm2,cmnを学習モデル保存領域243に記憶する。
次に、変数生成部23は、複数の重み変数セットを生成する(ステップS4)。具体的には、変数生成部23は、複数の学習モデルのうち、最も多いプロセスタイプ数の学習モデルを特定する。変数生成部23は、特定したプロセスタイプ数分(最も多いプロセスタイプ数の学習モデルのプロセスタイプ数分)の重み変数の集合を1つの重み変数セットとして、複数の重み変数セットをランダムに生成する。変数生成部23は、d1,,...,dを生成したとする。なお、各重み変数セットは、d=(d11,d12,...,d1q),d=(d21,d22,...,d2q),...,d=(do1,do2,...,doq)となっている。変数生成部23は、生成した複数の重み変数セットを重み変数セット保存領域244に記憶する。
次に、最適重み変数セットと最適モデリングパターンとを決定する(ステップS5)。詳細は後述するが、ステップS5は、具体的には、図6に示す動作例と、図7に示す動作例と、を含む動作となっている。また、ステップS5は、図6の動作例を実施した後に、図7の動作例を実施することにより構成される。具体的には、図6の動作例を実施することにより、ステップS2において生成した各モデリングパターンに対する最適重み変数セットを決定する。そして、図7の動作例を実施することにより、最適モデリングパターンと最適重み変数セットとを決定する。
次に、送信部28は、決定部27が決定した最適重み変数セットと最適モデリングパターンとをプロセス実行装置30に送信する(ステップS6)。
続いて、図6を用いて、最適重み変数セットの決定動作について説明する。図6は、最適重み変数セットの決定動作について説明するフローチャートである。上述したように、図6に示すフローチャートは、図5におけるステップS5において実施される動作例である。
図6に示す様に、ステップS11~S18は、モデリングパターン数分繰り返し行われる。ステップS12~S15は、モデリングパターン数分かつ重み変数セット数分、繰り返し行われる。ステップS12~S14は、モデリングパターン数分かつ重み変数セット数分かつ学習ケース数分、繰り返し行われる。
まず、算出部25は、複数の学習モデルのうち、モデリングパターンsにより生成された学習モデルを抽出する(ステップS11)。ここで、抽出された学習モデルはc1s,c2s,...,cmsである。
次に、算出部25は、抽出した学習モデルc1s,c2s,...,cmsのそれぞれに対して、プロセスタイプ毎の優先度を算出する(ステップS12)。算出部25は、抽出した学習モデルc1s,c2s,...,cmsのそれぞれに対して、プロセスタイプ毎の数を求め、プロセスタイプ毎の数と、重み変数セットとを、上述した数式(1)に代入することによりプロセスタイプ毎の優先度を算出する。
次に、評価部26は、ステップS12において算出されたプロセスタイプ毎の優先度を用いて、処理対象の学習モデルを実行し(ステップS13)、処理対象の学習モデルの性能項目の評価値を決定する(ステップS14)。評価部26は、プロセス実行時の実行開始から全プロセス(全プロセスタイプ)の終了までの時間を計測し、その計測時間に応じて、スループットによる評価値を決定する。
次に、評価部26は、抽出した学習モデルに対して評価値が決定されると、各評価値の総和を、重み変数セットtに対する評価値と決定する(ステップS15)。
ここで、上記のステップS12~S15の処理内容について、具体例を用いて説明する。例えば、学習ケースa,aが存在し、プロセスをプロセスタイプTYPE 1とTYPE 2との2つに分類するモデリングパターンbが存在すると仮定する。そうすると、学習モデルc11=とc21=aとが生成される。学習モデルc11は、プロセスタイプTYPE 1がm11個、TYPE 2がm12個を含んでいたとする。学習モデルc21は、プロセスタイプTYPE 1がm21個、TYPE 2がm22個を含んでいたとする。さらに、重み変数セットd=(d11,d12)、d=(d21,d22)が生成されているとする。
重み変数セットd1の評価値は、上記数式(1)に、m11とm12と、d=(d11,d12)と、を代入し、プロセスタイプTYPE 1とTYPE 2との優先度を算出する。算出した優先度に基づいて、学習モデルc11=を実行し、プロセス実行時の実行開始から全プロセス(全プロセスタイプ)の終了までの時間を計測する。そして、その計測時間に応じて、スループットによる評価値を決定する。同様に、c21=aに対しても評価値を決定する。算出されたc11の評価値とc21の評価値との和が重み変数セットdに対する評価値として決定される。重み変数セットdに対しても上記と同様のことを行い、算出されたc11の評価値とc21の評価値との和が重み変数セットdに対する評価値として決定される。
全ての重み変数セットに対して評価値が決定されると、終了条件となったかを判定する(ステップS16)。終了条件は、学習を行う全体の経過時間が所定の閾値を超過した場合であるとする。つまり、図6のステップS11からの処理の経過時間が所定の閾値を超過した場合(ステップS16のYES)、決定部27は、決定した評価値の中から最も高い評価値に対応する重み変数セットを最適重み変数セットと決定する(ステップS17)。
一方、図6のステップS11からの処理の経過時間が所定の閾値を超過していない場合(ステップS16のNO)、変数生成部23は、新たな複数の重み変数セットを生成する(ステップS18)。
具体的には、変数生成部23は、遺伝的アルゴリズムを用いて、新たな複数の重み変数セットを生成する。この際、遺伝的アルゴリズムにおける、初期集団は図5のステップS4において生成した複数の重み変数セットとなる。また、個体を重み変数セットとし、ステップS15において決定された評価値を適応度とする。終了条件は、学習を行う全体の経過時間が所定の閾値を超過したこととする。つまり、終了条件を満たした場合とは、図6のステップS11開始からの経過時間が所定の閾値を超過した場合である。
選択は、例えば、複数の重み変数セットのうち、評価値が高い方から一定量選び、次の世代に残すことにより行う。交叉は、選択によって残った重み変数セットのうち、2つを選択して、各重み変数セットの平均を取ることにより行う。例えば、重み変数セットがd=(d11,d12)、d=(d21,d22)である場合、交叉により、d=((d11+d21)/2,(d12+d22)/2)が生成される。
突然変異は、図5のステップS4において生成した重み変数セットのように、完全にランダムな重み変数セットを低確率で生成することにより行う。なお、選択、交叉および突然変異については、まず、選択を行い、その後に、交叉および突然変異を行うようにする。以上のような条件である遺伝的アルゴリズムを適用して、新たな複数の重み変数セットを生成する。
ステップS18において、新たな複数の重み変数セットを生成すると、ステップS11以降の処理を、終了条件(所定の条件)を満たすまで繰り返し行う。終了条件を満たした場合、決定部27は、決定した評価値の中から最も高い評価値に対応する重み変数セットを最適重み変数セットと決定する(ステップS17)。
続いて、図7を用いて、最適モデリングパターンおよび最適重み変数セットの決定動作について説明する。図7は、最適モデリングパターンおよび最適重み変数セットの決定動作について説明するフローチャートである。上述したように、図7に示す動作例は、図5のステップS5において行われる動作であって、図6に示した動作の後に行われる。なお、前提として、図6が実行されると、各モデリングパターンに対して、最適重み変数セットが決定されている。
図7に示す様に、ステップS21~S25は、モデリングパターン数分繰り返し行われる。ステップS22~S24は、モデリングパターン数分かつ学習ケース分、繰り返し行われる。
まず、算出部25は、複数の学習モデルのうち、モデリングパターンvにより生成された学習モデルを抽出する(ステップS21)。ここで、抽出された学習モデルはc1v,c2v,...,cmvである。
次に、算出部25は、抽出した学習モデルc1v,c2v,...,cmvのそれぞれに対して、プロセスタイプ毎の優先度を算出する(ステップS22)。算出部25は、抽出した学習モデルc1v,c2v,...,cmvのそれぞれに対して、プロセスタイプ毎の数を求め、求めたプロセスタイプ毎の数と、重み変数セットとを、上述した数式(1)に代入してプロセスタイプ毎の優先度を算出する。
次に、評価部26は、ステップS22において算出されたプロセスタイプ毎の優先度を用いて、処理対象の学習モデルを実行し(ステップS23)、処理対象の学習モデルの性能項目の評価値を決定する(ステップS24)。評価値の決定については、図6のステップS14と同様とする。
次に、評価部26は、抽出した学習モデルに対して評価値が決定されると、各評価値の総和を、モデリングパターンvに対する評価値と決定する(ステップS25)。全てのモデリングパターンに対して評価値が決定されると、終了条件となったかを判定する(ステップS26)。終了条件は、学習を行う全体の経過時間が所定の閾値を超過した場合であるとする。つまり、図7のステップS21からの処理の経過時間が所定の閾値を超過した場合(ステップS26のYES)、決定部27は、決定した評価値の中から最も高い評価値に対応するモデリングパターンおよび重み変数セットを決定する。決定部27は、決定したモデリングパターンおよび重み変数セットを、最適モデリングパターンおよび最適重み変数セットと決定する(ステップS27)。
一方、図7のステップS21からの処理の経過時間が所定の閾値を超過していない場合(ステップS26のNO)、パターン生成部22は、新たな複数のモデリングパターンを生成する(ステップS28)。
具体的には、パターン生成部22は、遺伝的アルゴリズムを用いて、新たな複数のモデリングパターンを生成する。この際、遺伝的アルゴリズムにおける、初期集団は図5のステップS2において生成した複数のモデリングパターンとなる。また、個体をモデリングパターンとし、ステップS25において決定された評価値を適応度とする。終了条件は、学習を行う全体の経過時間が所定の閾値を超過したこととする。つまり、終了条件を満たした場合とは、図7のステップS21開始からの経過時間が所定の閾値を超過した場合である。
選択は、例えば、複数のモデリングパターンの評価値が高い方から一定量選び、次の世代に残すことにより行う。交叉は、選択によって残った重み変数セットのうち、2つを選択して、各重み変数セットの平均を取ることにより行う。例えば、モデリングパターンbとbとが、プロセスの特徴yとzを元に、3種類のプロセスをプロセスタイプに分類するモデリングであると仮定する。また、モデリングパターンbとbの関数が以下のようになっていたとする。
Figure 0007009971000002
この場合、交叉によって新たに生成されるモデリングパターンをbとすると、以下のような関数が生成される。
Figure 0007009971000003
突然変異は、図5のステップS2において生成したモデリングパターンのように、ランダムなモデリングパターンを低確率で生成することにより行う。なお、選択、交叉および突然変異については、まず、選択を行い、その後に、交叉および突然変異を行うようにする。以上のような条件である遺伝的アルゴリズムを適用して、新たな複数のモデリングパターンを生成する。
ステップS28において、新たな複数のモデリングパターンを生成すると、新たな複数のモデリングパターンを学習ケースa,a,...,aに適用して、新たな複数の学習モデルを生成する(ステップS29)。ステップS29で行うことは、図5のステップS3と同じである。
次に、新たな複数の学習モデルに対して最適重み変数セットを決定する(ステップS30)。新たな学習モデルが生成された場合は、当然ながら既に存在する重み変数セットのいずれかが、新たな学習モデルに対する最適重み変数セットになるとは限らない。そのため、ステップS30において、新たな学習モデルに対して、最適重み変数セットを決定する。ステップS30において実施される内容は、図6に示した動作と同じである。つまり、ステップS30においても、図6が実施され、最適重み変数セットを決定する。なお、図6においては、全ての学習モデルに対して実施されるが、ステップS30においては、新たなモデリングパターンにより生成された新たな学習モデルに対してのみ、図6の動作が実施される。
以降、ステップS21以降の処理を、終了条件(所定の条件)を満たすまで繰り返し行う。終了条件を満たした場合、決定部27は、決定した評価値の中から最も高い評価値に対応するモデリングパターンおよび重み変数セットを決定する。決定部27は、決定したモデリングパターンおよび重み変数セットを、最適モデリングパターンおよび最適重み変数セットと決定する(ステップS27)。
<プロセス実行装置の動作例>
続いて、図8を用いて、プロセス実行装置30の動作例について説明する。図8は、実施の形態2にかかるプロセス実行装置の動作例を説明するフローチャートである。
まず、受信部31は、最適モデリングパターンおよび最適重み変数セットをプロセススケジューリング装置20の送信部28から受信する(ステップS31)。受信部31は、最適モデリングパターンおよび最適重み変数セットを、それぞれモデリングパターン保存領域321および重み変数セット保存領域322に記憶する。
次に、プロセス実行部33は、プロセス実行装置30にインストールされているアプリケーションプログラムが生成した実プロセスを、最適モデリングパターンを用いてプロセスタイプに分類する(ステップS32)。
次に、プロセス実行部33は、最適重み変数セットを用いて、プロセスタイプ毎の優先度を算出する(ステップS33)。プロセス実行部33は、ステップS32において分類されたプロセスタイプ毎の数を求め、求めたプロセスタイプ毎の数と最適重み変数セットとを、上述した数式(1)に代入して、プロセスタイプ毎の優先度を算出する。
次に、プロセス実行部33は、算出したプロセスタイプ毎の優先度に基づいて、実プロセスを実行する(ステップS33)。プロセス実行部33は、複数の実プロセスを最適モデリングパターンに基づいて、複数のプロセスタイプに分類している。また、プロセス実行部33は、プロセスタイプ毎の優先度を算出しているので、分類したプロセスタイプを、プロセスタイプ毎の優先度が高いプロセスタイプから実行する。同じ優先度のプロセスタイプが複数存在する場合は、プロセス実行部33は、各プロセスに既に割り振ったリソースの量が少ないプロセスを先に実行する。優先度が等しく、かつ、既に割り振ったリソースの量も等しい場合は、プロセス実行部33は、先に生成されたプロセスから順に実行する。
続いて、実施の形態2の効果について説明する。1つ目は、プロセスが有する複数の特徴を用いたプロセススケジューリングが可能となる。実施の形態2においても、パターン生成部22が、プロセスが有する複数の特徴を用いて、複数のモデリングパターンを生成する。評価部26は、複数のモデリングパターンの各々に対して、評価値を決定し、決定部27は、決定された評価値に基づいて、最適な分類パターンを決定する。したがって、実施の形態2にかかるプロセススケジューリング装置10によれば、プロセスが有する複数の特徴を用いたプロセススケジューリングが可能となる。
2つ目は、プロセスが有する特徴を用いたモデリングを行うことにより、プロセスが有する特徴を入力とした機械学習を行う場合と比較して情報量を削減することが可能となる。最適なプロセススケジューリングとなる解を導くために、機械学習を用いることが考えられる。機械学習を行う際に、プロセスが有する複数の特徴を、そのまま入力値とすることも想定される。しかしながら、この場合、プロセスの実行優先度は絶対的なものではなく、他に存在するプロセスにより決定される相対的なものとなる。つまり、全てのプロセスに関する情報も機械学習の入力情報とする必要が生じてしまう。しかし、各プロセスの特徴だけでなく、他のプロセスの特徴も考慮した機械学習を行う場合、全てのプロセスの特徴情報を保持しなければならないため、情報量が膨大になるという課題が生じてしまう。そこで、本実施の形態では、複数の特徴を用いて、プロセスをプロセスタイプに分類することによって、適切に情報量を削減することが可能となる。また、このようにすることで、容易に、かつ有用な学習結果を得ることが出来る。つまり、最適なモデリングパターンおよび最適な重み変数セットを容易に求めることが出来、最適なプロセススケジューリングを行うことが可能となる。
3つ目は、プロセスが有する複数の特徴のうち、最適な特徴を決定して、最適なプロセススケジューリングとすることが可能となる。最適なプロセススケジューリングとなるような特徴を決定する場合、人間が1つ1つの特徴に対して評価を行うことも想定される。しかしながら、例えば、ある特徴は、プロセススケジューリングに関係が無いとして評価を行わないと言う場合も考えられる。本実施の形態にかかるプロセススケジューリング装置20は、プロセスが有する複数の特徴を用いて、最適なモデリングパターンと最適な重み変数セットとを決定する。そのため、プロセスが有する複数の特徴を反映したプロセススケジューリングを可能とする。つまり、人為的に発見することの難しい特徴を用いたプロセススケジューリングを行うことが可能となる。したがって、本実施の形態にかかるプロセススケジューリング装置20によれば、人為的に発見することの難しい特徴を用いた最適なプロセススケジューリングとなる関数を発見できるという利点がある。
4つ目は、機械学習に適したプロセスのモデリングパターンを導出する手法を確立できる。関連する技術では、機械学習に適したプロセスをプロセスタイプにモデリングすることは検討されていない。また、複数のモデリングパターンを生成することも検討されていない。仮に、人間が機械学習に適したプロセスのモデリングパターンを作成することも想定されるが、人間が作成するのは容易ではない。一方、上述した本実施の形態によれば、複数のモデリングパターンによりモデル化された学習モデルを学習することより、任意の機械学習手法に適したモデリングパターンを導出することが可能となる。これにより人間がモデリングパターンを作成する必要がなくなるという効果を有する。
5つ目は、最適な重み変数セットを導出することが可能となるので、より最適なプロセススケジューリングを可能とする。本実施の形態によれば、最適なモデリングパターンだけでなく、最適なモデリングパターンにより分類された各プロセスタイプに対して最適な重み付けを行うことが可能となる。つまり、本実施の形態によれば、最適なモデリングパターンと、最適な重み変数セットと、によって、最適なバランスとなるプロセススケジューリングとすることが可能となる。上述したように、人間が最適なモデリングパターンを決定することは容易ではないが、仮に、人間が最適なモデリングパターンを作成出来たとしても、各プロセスタイプを最適に重み付けする変数を決定することも容易ではない。本実施の形態によれば、最適なモデリングパターンだけでなく、最適なモデリングパターンにより分類された各プロセスタイプに対して最適な重み付けを行うことが可能となる。
(変形例)
上述した実施の形態において、以下のような変形を施してもよい。
<1>上述した実施の形態では、プロセススケジューリング装置20において決定した最適モデリングパターンおよび最適重み変数セットを用いて、プロセス実行装置30が実プロセスを実行する構成として説明した。例えば、上述した実施の形態2を変形して、プロセススケジューリング装置20が最適モデリングパターンおよび最適重み変数セットを用いて、実プロセスを実行するようにしてもよい。
図9は、実施の形態2の変形例にかかるプロセススケジューリング装置20の構成例を示すブロック図である。この場合、図9に示す様に、プロセススケジューリング装置20において、実施の形態2における送信部28を設けなくてよい。また、プロセススケジューリング装置20において、プロセス実行部29を設け、実施の形態2におけるプロセス実行部33と同様の構成とすればよい。さらに、モデリングパターン保存領域242および重み変数セット保存領域244において、最適モデリングパターンおよび最適重み変数セットが特定出来るように変更すればよい。このようにすることで、プロセス実行部29は、最適モデリングパターンおよび最適重み変数セットを特定することができ、実施の形態2と同様の効果を得ることが可能となる。
<2>上述した実施の形態2において、プロセス実行装置30は、プロセススケジューリング装置20から決定した最適モデリングパターンと最適重み変数セットとを受信した。例えば、プロセス実行装置30の記憶部32に、予め最適モデリングパターンと最適重み変数セットとを記憶しておいてもよい。つまり、受信部31を設けない構成であってもよい。図10は、実施の形態2の変形例にかかるプロセス実行装置の構成例を示すブロック図である。図10に示す様に、プロセス実行装置30は、記憶部32と、プロセス実行部33とを備える構成であってもよい。
(他の実施の形態)
図11は、上述した実施の形態において説明したプロセススケジューリング装置10、20(以下、プロセススケジューリング装置10等と称する)およびプロセス実行装置30の構成例を示すブロック図である。図11を参照すると、プロセススケジューリング装置10等およびプロセス実行装置30は、ネットワーク・インターフェース1201、プロセッサ1202、及びメモリ1203を含む。ネットワーク・インターフェース1201は、通信システムを構成する他のネットワークノード装置と通信するために使用される。ネットワーク・インターフェース1201は、例えば、IEEE 802.3 seriesに準拠したネットワークインターフェースカード(NIC)を含んでもよい。
プロセッサ1202は、メモリ1203からソフトウェア(コンピュータプログラム)を読み出して実行することで、上述の実施形態においてフローチャートを用いて説明されたプロセススケジューリング装置10等およびプロセス実行装置30の処理を行う。プロセッサ1202は、例えば、マイクロプロセッサ、MPU(Micro Processing Unit)、又はCPU(Central Processing Unit)であってもよい。プロセッサ1202は、複数のプロセッサを含んでもよい。
メモリ1203は、揮発性メモリ及び不揮発性メモリの組み合わせによって構成される。メモリ1203は、プロセッサ1202から離れて配置されたストレージを含んでもよい。この場合、プロセッサ1202は、図示されていないI/Oインタフェースを介してメモリ1203にアクセスしてもよい。
図11の例では、メモリ1203は、ソフトウェアモジュール群を格納するために使用される。プロセッサ1202は、これらのソフトウェアモジュール群をメモリ1203から読み出して実行することで、上述の実施形態において説明されたプロセススケジューリング装置10等およびプロセス実行装置30の処理を行うことができる。
図11を用いて説明したように、プロセススケジューリング装置10等およびプロセス実行装置30が有するプロセッサの各々は、図面を用いて説明されたアルゴリズムをコンピュータに行わせるための命令群を含む1または複数のプログラムを実行する。
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)を含む。さらに、非一時的なコンピュータ可読媒体の例は、CD-ROM(Read Only Memory)、CD-R、CD-R/Wを含む。さらに、非一時的なコンピュータ可読媒体の例は、半導体メモリを含む。半導体メモリは、例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory)を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
なお、本開示は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。また、本開示は、それぞれの実施の形態を適宜組み合わせて実施されてもよい。
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
プロセスが有する少なくとも1つの特徴を用いて、複数のプロセスを複数のプロセスタイプに分類する分類パターンを、それぞれ異なる少なくとも1つの特徴を用いて複数生成するパターン生成部と、
前記複数の分類パターンの各々に対して、予め定められた性能項目に対する評価値を決定する評価部と、
前記決定された評価値に基づいて、前記複数のプロセスに対する分類パターンを決定する決定部と、を備えるプロセススケジューリング装置。
(付記2)
前記パターン生成部は、所定の条件を満たすまで、前記決定された評価値に基づいて新たな複数の前記分類パターンを繰り返し生成する、付記1に記載のプロセススケジューリング装置。
(付記3)
前記分類パターンに含まれるプロセスタイプの各々に重み付けを行う重み変数の集合である重み変数セットを複数生成する変数生成部をさらに備え、
前記評価部は、前記分類パターンと前記重み変数セットとの組み合わせ毎に、前記評価値を決定し、
前記決定部は、前記決定された評価値に基づいて、前記複数のプロセスに対する分類パターンおよび重み変数セットを決定する、付記1または2に記載のプロセススケジューリング装置。
(付記4)
前記変数生成部は、所定の条件を満たすまで、前記決定された評価値に基づいて新たな複数の前記重み変数セットを繰り返し生成する、付記3に記載のプロセススケジューリング装置。
(付記5)
前記分類パターンと前記重み変数セットとの組み合わせ毎に、前記分類パターンに含まれるプロセスタイプ毎の数と前記重み変数セットとを用いて、プロセスタイプ毎の優先度を算出する算出部をさらに備え、
前記評価部は、前記分類パターンと前記重み変数セットとの組み合わせ毎に、前記算出されたプロセスタイプ毎の優先度に基づいて、前記複数のプロセスを実行し、前記評価値を決定する、付記3または4のいずれか1項に記載のプロセススケジューリング装置。
(付記6)
前記複数のプロセスを表すプロセス群を複数生成するプロセス生成部をさらに備え、
前記パターン生成部は、前記複数のプロセス群の各々に対して、前記複数の分類パターンを適用し、
前記変数生成部は、前記プロセス群と前記分類パターンとの組み合わせ毎に、前記複数の重み変数セットを生成し、
前記評価部は、前記プロセス群と前記分類パターンと前記重み変数セットとの組み合わせ毎に、前記評価値を決定し、各プロセス群の前記評価値の総和を、前記分類パターンと前記重み変数セットとの組み合わせに対する評価値と決定し、
前記決定部は、前記決定された評価値に基づいて、前記複数のプロセス群に対する分類パターンおよび重み変数セットを決定する、付記3~5のいずれか1項に記載のプロセススケジューリング装置。
(付記7)
前記パターン生成部は、遺伝的アルゴリズムを適用して、新たな複数の前記分類パターンを生成する、付記2に記載のプロセススケジューリング装置。
(付記8)
前記変数生成部は、遺伝的アルゴリズムを適用して、新たな複数の前記重み変数セットを生成する、付記4に記載のプロセススケジューリング装置。
(付記9)
前記性能項目は、スループット、消費電力および割り当てられたリソースの平等性の少なくとも1つを含む、付記1~8のいずれか1項に記載のプロセススケジューリング装置。
(付記10)
前記プロセスが有する少なくとも1つの特徴は、フォアグランドプロセスまたはバックグラウンドプロセスであること、プロセス実行順、プロセス発生順、過去に割り当てられたプロセスのCPU時間、プロセス名、ユーザ情報およびプロセスに入力された入力情報のうち、少なくとも1つを含む、付記1~9のいずれか1項に記載のプロセススケジューリング装置。
(付記11)
前記決定部が決定した分類パターンおよび重み変数セットの少なくとも1つに基づいて、アプリケーションプログラムが生成する複数のプロセスを実行するプロセス実行部をさらに備える、付記1~10のいずれか1項に記載のプロセススケジューリング装置。
(付記12)
プロセスが有する少なくとも1つの特徴を用いて、複数の第1のプロセスを複数のプロセスタイプに分類する分類パターンを、それぞれ異なる少なくとも1つの特徴を用いて複数生成し、前記複数の分類パターンの各々に対して、予め定められた性能項目に対する評価値を決定し、前記決定された評価値に基づいて決定された分類パターンを用いて、アプリケーションプログラムが生成する複数の第2のプロセスを実行するプロセス実行部を備える、プロセス実行装置。
(付記13)
前記プロセス実行部は、前記決定された分類パターンを用いて、前記複数の第2のプロセスを複数のプロセスタイプに分類し、前記分類されたプロセスタイプ毎の優先度を算出し、前記算出されたプロセスタイプ毎の優先度に基づいて、前記複数の第2のプロセスを実行する、付記12に記載のプロセス実行装置。
(付記14)
プロセスが有する少なくとも1つの特徴を用いて、複数のプロセスを複数のプロセスタイプに分類する分類パターンを、それぞれ異なる少なくとも1つの特徴を用いて複数生成することと、
前記複数の分類パターンの各々に対して、予め定められた性能項目に対する評価値を決定することと、
前記決定された評価値に基づいて、前記複数のプロセスに対する分類パターンを決定することと、を含むプロセススケジューリング方法。
(付記15)
プロセスが有する少なくとも1つの特徴を用いて、複数のプロセスを複数のプロセスタイプに分類する分類パターンを、それぞれ異なる少なくとも1つの特徴を用いて複数生成することと、
前記複数の分類パターンの各々に対して、予め定められた性能項目に対する評価値を決定することと、
前記決定された評価値に基づいて、前記複数のプロセスに対する分類パターンを決定することと、をコンピュータに実行させるプログラム。
(付記16)
前記分類パターンに含まれるプロセスタイプの各々に重み付けを行う重み変数の集合である重み変数セットを複数生成することをさらに含み、
前記分類パターンと前記重み変数セットとの組み合わせ毎に、前記評価値を決定し、
前記決定された評価値に基づいて、前記複数のプロセスに対する分類パターンおよび重み変数セットを決定する、付記15に記載のプログラム。
(付記17)
プロセス実行時のプロセス優先度を決定するプロセススケジューリング装置と、
アプリケーションプログラムが生成した実プロセスを実行するプロセス実行装置と、を備え、
前記プロセススケジューリング装置は、
プロセスが有する少なくとも1つの特徴を用いて、複数のプロセスを複数のプロセスタイプに分類する分類パターンを、それぞれ異なる少なくとも1つの特徴を用いて複数生成するパターン生成部と、
前記複数の分類パターンの各々に対して、予め定められた性能項目に対する評価値を決定する評価部と、
前記決定された評価値に基づいて、前記複数のプロセスに対する分類パターンを決定する決定部と、
前記決定された分類パターンを前記プロセス実行装置に送信する送信部と、を備え、
前記プロセス実行装置は、
前記決定された分類パターンを前記プロセススケジューリング装置から受信する受信部と、
前記受信した分類パターンに基づいて、アプリケーションプログラムが生成する複数のプロセスを実行するプロセス実行部と、を備える、プロセス実行システム。
(付記18)
前記プロセススケジューリング装置は、
前記分類パターンに含まれるプロセスタイプの各々に重み付けを行う重み変数の集合である重み変数セットを複数生成する変数生成部をさらに備え、
前記評価部は、前記分類パターンと前記重み変数セットとの組み合わせ毎に、前記評価値を決定し、
前記決定部は、前記決定された評価値に基づいて、前記複数のプロセスに対する分類パターンおよび重み変数セットを決定し、
前記送信部は、前記決定された分類パターンおよび重み変数セットを送信し、
前記受信部は、前記決定された分類パターンおよび重み変数セットを受信し、
前記プロセス実行部は、前記受信した分類パターンおよび重み変数セットに基づいて、前記アプリケーションプログラムが生成する複数のプロセスを実行する、付記17に記載のプロセス実行システム。
10、20 プロセススケジューリング装置
11、22 パターン生成部
12、26 評価部
13、27 決定部
21 プロセス生成部
23 変数生成部
24、32 記憶部
25 算出部
28 送信部
29、33 プロセス実行部
30 プロセス実行装置
31 受信部
33 プロセス実行部
100 プロセス実行システム

Claims (8)

  1. プロセスが有する少なくとも1つの特徴を用いて、複数のプロセスを複数のプロセスタイプに分類する分類パターンを、それぞれ異なる少なくとも1つの特徴を用いて複数生成するパターン生成部と、
    前記分類パターンに含まれるプロセスタイプの各々に重み付けを行う重み変数の集合である重み変数セットを複数生成する変数生成部と、
    前記分類パターンと前記重み変数セットとの組み合わせ毎に、予め定められた性能項目に対する評価値を決定する評価部と、
    前記決定された評価値に基づいて、前記複数のプロセスに対する分類パターンおよび重み変数セットを決定する決定部と、を備える、プロセススケジューリング装置。
  2. 前記パターン生成部は、所定の条件を満たすまで、前記決定された評価値に基づいて新たな複数の前記分類パターンを繰り返し生成する、請求項1に記載のプロセススケジューリング装置。
  3. 前記変数生成部は、所定の条件を満たすまで、前記決定された評価値に基づいて新たな複数の前記重み変数セットを繰り返し生成する、請求項1又は2に記載のプロセススケジューリング装置。
  4. 前記分類パターンと前記重み変数セットとの組み合わせ毎に、前記分類パターンに含まれるプロセスタイプ毎の数と前記重み変数セットとを用いて、プロセスタイプ毎の優先度を算出する算出部をさらに備え、
    前記評価部は、前記分類パターンと前記重み変数セットとの組み合わせ毎に、前記算出されたプロセスタイプ毎の優先度に基づいて、前記複数のプロセスを実行し、前記評価値を決定する、請求項1~3のいずれか1項に記載のプロセススケジューリング装置。
  5. 前記複数のプロセスを表すプロセス群を複数生成するプロセス生成部をさらに備え、
    前記パターン生成部は、前記複数のプロセス群の各々に対して、前記複数の分類パターンを適用し、
    前記変数生成部は、前記プロセス群と前記分類パターンとの組み合わせ毎に、前記複数の重み変数セットを生成し、
    前記評価部は、前記プロセス群と前記分類パターンと前記重み変数セットとの組み合わせ毎に、前記評価値を決定し、各プロセス群の前記評価値の総和を、前記分類パターンと前記重み変数セットとの組み合わせに対する評価値と決定し、
    前記決定部は、前記決定された評価値に基づいて、前記複数のプロセス群に対する分類パターンおよび重み変数セットを決定する、請求項1~4のいずれか1項に記載のプロセススケジューリング装置。
  6. 前記性能項目は、スループット、消費電力および割り当てられたリソースの平等性の少なくとも1つを含む、請求項1~のいずれか1項に記載のプロセススケジューリング装置。
  7. 前記プロセスが有する少なくとも1つの特徴は、フォアグランドプロセスまたはバックグラウンドプロセスであること、プロセス実行順、プロセス発生順、過去に割り当てられたプロセスのCPU時間、プロセス名、ユーザ情報およびプロセスに入力された入力情報のうち、少なくとも1つを含む、請求項1~のいずれか1項に記載のプロセススケジューリング装置。
  8. プロセスが有する少なくとも1つの特徴を用いて、複数のプロセスを複数のプロセスタイプに分類する分類パターンを、それぞれ異なる少なくとも1つの特徴を用いて複数生成することと、
    前記分類パターンに含まれるプロセスタイプの各々に重み付けを行う重み変数の集合である重み変数セットを複数生成することと、
    前記分類パターンと前記重み変数セットとの組み合わせ毎に、予め定められた性能項目に対する評価値を決定することと、
    前記決定された評価値に基づいて、前記複数のプロセスに対する分類パターンおよび重み変数セットを決定することと、を含むプロセススケジューリング方法。
JP2017239656A 2017-12-14 2017-12-14 プロセススケジューリング装置およびプロセススケジューリング方法 Active JP7009971B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017239656A JP7009971B2 (ja) 2017-12-14 2017-12-14 プロセススケジューリング装置およびプロセススケジューリング方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017239656A JP7009971B2 (ja) 2017-12-14 2017-12-14 プロセススケジューリング装置およびプロセススケジューリング方法

Publications (2)

Publication Number Publication Date
JP2019106120A JP2019106120A (ja) 2019-06-27
JP7009971B2 true JP7009971B2 (ja) 2022-01-26

Family

ID=67062709

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017239656A Active JP7009971B2 (ja) 2017-12-14 2017-12-14 プロセススケジューリング装置およびプロセススケジューリング方法

Country Status (1)

Country Link
JP (1) JP7009971B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102496115B1 (ko) * 2019-11-28 2023-02-06 한국전자통신연구원 강화학습 기반 이타적 스케줄링 장치 및 방법
CN114968569A (zh) * 2022-05-18 2022-08-30 浙江工商大学 一种基于分布式异构系统的任务智能处理方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004326486A (ja) 2003-04-25 2004-11-18 Matsushita Electric Ind Co Ltd タスク管理装置
JP2009020692A (ja) 2007-07-11 2009-01-29 Toshiba Corp タスク管理装置、タスク管理方法及びタスク管理プログラム
WO2010055719A1 (ja) 2008-11-14 2010-05-20 日本電気株式会社 スケジュール決定装置、並列実行装置、スケジュール決定方法、及びプログラム
JP2010257056A (ja) 2009-04-22 2010-11-11 Fujitsu Ltd 並列処理装置、並列処理方法及び並列処理プログラム
JP2012517041A (ja) 2009-02-05 2012-07-26 日本電気株式会社 遺伝的アプローチによる期限付きタスクの受付制御・スケジューリング方法、システムおよびプログラム
JP2016139171A (ja) 2015-01-26 2016-08-04 日本電信電話株式会社 リソース割当装置、リソース割当システム、および、リソース割当方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004326486A (ja) 2003-04-25 2004-11-18 Matsushita Electric Ind Co Ltd タスク管理装置
JP2009020692A (ja) 2007-07-11 2009-01-29 Toshiba Corp タスク管理装置、タスク管理方法及びタスク管理プログラム
WO2010055719A1 (ja) 2008-11-14 2010-05-20 日本電気株式会社 スケジュール決定装置、並列実行装置、スケジュール決定方法、及びプログラム
JP2012517041A (ja) 2009-02-05 2012-07-26 日本電気株式会社 遺伝的アプローチによる期限付きタスクの受付制御・スケジューリング方法、システムおよびプログラム
JP2010257056A (ja) 2009-04-22 2010-11-11 Fujitsu Ltd 並列処理装置、並列処理方法及び並列処理プログラム
JP2016139171A (ja) 2015-01-26 2016-08-04 日本電信電話株式会社 リソース割当装置、リソース割当システム、および、リソース割当方法

Also Published As

Publication number Publication date
JP2019106120A (ja) 2019-06-27

Similar Documents

Publication Publication Date Title
CN113064879A (zh) 数据库参数调整方法、装置及计算机可读存储介质
Mechalikh et al. PureEdgeSim: A simulation framework for performance evaluation of cloud, edge and mist computing environments
CN111258767A (zh) 复杂系统仿真应用的云计算资源智能分配方法与装置
Nguyen et al. Scaling upf instances in 5g/6g core with deep reinforcement learning
US11513851B2 (en) Job scheduler, job schedule control method, and storage medium
Subashini et al. Comparison of multi-objective evolutionary approaches for task scheduling in distributed computing systems
Subramoney et al. A comparative evaluation of population-based optimization algorithms for workflow scheduling in cloud-fog environments
Taami et al. Experimental characterization of latency in distributed iot systems with cloud fog offloading
JP7009971B2 (ja) プロセススケジューリング装置およびプロセススケジューリング方法
CN110502323A (zh) 一种云计算任务实时调度方法
Unuvar et al. Selecting optimum cloud availability zones by learning user satisfaction levels
Badri et al. A sample average approximation-based parallel algorithm for application placement in edge computing systems
CN115641173A (zh) 一种应用与算力网络融合方法、系统及电子设备
AlOrbani et al. Load balancing and resource allocation in smart cities using reinforcement learning
CN111915102A (zh) 一种基于负载预测的工作平台工作量预测方法及系统
KR20150114028A (ko) 단위 산업별 기술 가치 예측 시스템 및 그 시스템의 정보 처리 방법
Laroui et al. Scalable and cost efficient resource allocation algorithms using deep reinforcement learning
Gamal et al. Mapping and scheduling for non-uniform arrival of virtual network function (VNF) requests
Hirai et al. Machine Learning based Performance Prediction for Cloud-native 5G Mobile Core Network
CN106953811B (zh) 一种大规模网络服务系统行为重构方法
CN114327925A (zh) 一种电力数据实时计算调度优化方法及系统
WO2017213065A1 (ja) サービス管理システム、サービス管理方法、および、記録媒体
Zavvar et al. Measuring service quality in service-oriented architectures using a hybrid particle swarm optimization algorithm and artificial neural network (PSO-ANN)
CN112579246B (zh) 虚拟机迁移处理方法及装置
Sarathambekai et al. Comparison among four modified discrete particle swarm optimization for task scheduling in heterogeneous computing systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201109

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210907

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210928

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211125

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211214

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211227