特許拒絶査定不服審判
2017-011727
計算タスクを処理するためのコンピュータクラスタ構成、およびそれを動作させるための方法
- 審判番号
- 2017-011727
- 法域
- 特許
- 審判種別
- 拒絶査定不服審判(拒絶査定不服の審決)
- 出願番号
- 特願2013-533215外部サイト(J-PlatPat)へ移動します
- 請求日
- 2017年08月04日
- 審決日
- 2019年01月23日
- 公報発行日
- 2019年03月29日
- 結論
- 原査定取消(特許/登録すべき)
- 当事者
- 分類
- P18 .121-WY (G06F) / P18 .537-WY (G06F)
- 条文(本文から自動抽出・参考)
- 特許法第29条第2項、特許法第36条第6項第2号
- データ出所
- 審決公報(SGML)
事件の表示
特願2013-533215「計算タスクを処理するためのコンピュータクラスタ構成、およびそれを動作させるための方法」拒絶査定不服審判事件〔平成24年 4月19日国際公開、WO2012/049247、平成25年10月28日国内公表、特表2013-539881、請求項の数(11)〕について、次のとおり審決する。
結論
【結 論】
原査定を取り消す。
本願の発明は、特許すべきものとする。
理由
【理 由】
第1 手続の経緯
本願は,2011年10月13日(パリ条約による優先権主張外国庁受理2010年10月13日,欧州特許庁)を国際出願日とする出願であって,平成27年11月18日付けで拒絶理由通知がされ,平成28年2月24日付けで意見書が提出されるとともに手続補正がされ,平成28年7月5日付けで拒絶理由通知がされ,平成28年12月12日付けで意見書が提出され,平成29年3月24日付けで拒絶査定(原査定)がされ,これに対し,平成29年8月4日に拒絶査定不服審判の請求がされると同時に手続補正がされ,平成30年3月20日付けで上申書が提出され,平成30年3月30日付けで当審より拒絶理由通知がされ,平成30年10月3日付けで意見書が提出されるとともに手続補正がされたものである。
第2 本願発明
本願請求項1-11に係る発明(以下,それぞれ「本願発明1」-「本願発明11」という。)は,平成30年10月3日付けの手続補正で補正された特許請求の範囲の請求項1-11に記載された事項により特定される発明であり,本願発明1-11は以下のとおりの発明である。
「 【請求項1】
計算タスクを処理するためのコンピュータクラスタであって,
複数の計算ノード(CN)を含み,それらの各々は通信インフラストラクチャ(IN)とインターフェイス接続し,それらの少なくとも2つは,前記計算タスクの少なくとも第1の部分を共同で計算するよう構成されており,前記コンピュータクラスタはさらに,
前記計算タスクの少なくとも第2の部分を計算するよう構成された少なくとも1つのブースタ(B)を含み,各ブースタ(B)は前記通信インフラストラクチャ(IN)とインターフェイス接続しており,前記コンピュータクラスタはさらに,
前記計算タスクの前記第2の部分の計算のために,割当パラメータの群のうちの少なくとも1つの割当パラメータの関数として特定される割当メトリックに従い,少なくとも1つのブースタ(B)を前記複数の計算ノード(CN)のうちの少なくとも1つに割当てるよう構成されたリソースマネージャ(RM)を含み,
前記リソースマネージャ(RM)は,
(i)前記計算タスクの実行開始時に,予め定められた割当メトリックを用いて前記割当てを行い,(ii)前記計算タスクの実行中に,(ii-1)当該割当てを初期化し,(ii-2)前記割当メトリックを変更し,(ii-3)変更後の前記割当メトリックを用いて前記割当てを行うように構成される,コンピュータクラスタ。」
本願発明2-11は,本願発明1を減縮した発明である。
第3 引用文献,引用発明等
1.引用文献1について
(1)原査定の拒絶の理由に引用された引用文献1(特開2007-328415号公報)には,図面とともに次の事項が記載されている。(下線は当審で付与した。以下,同様。)
A 「【0016】
<実施形態の全体構成>
図1は,本発明の一実施形態であるマルチプロセッサシステムの構成を示す。図1において,ヘテロジニアス・マルチプロセッサシステム1は,命令セット及び構成の異なるプロセッサエレメント(以下,PEとする)10~17と,これらPE10~17で共有する集中共有メモリ(以下,CSM:Centralized Shared Memory)18及び各PE10~17とCSM18を接続する内部ネットワーク19主体にして構成されたヘテロジニアス・マルチプロセッサシステムである。なお,内部ネットワーク19は,共有バスやクロスバなどで構成してもよい。
【0017】
各PE10~17,CSM18は,それぞれのインタフェース(図示省略)を介して,内部ネットワーク19に接続される。
【0018】
本実施形態ではPEの種類と個数を,4個の汎用処理プロセッサ(以下,CPU)10,11,12,13と,2個の動的再構成可能プロセッサ(以下,DRP:Dynamically Reconfigurable Processor)14,15と,2個の信号処理プロセッサ(以下,DSP:Digital Signal Processor)16,17で構成した例を示す。なお,上記PEの種類や数は本実施形態で示した限りではなく,さまざまな構成を取り得る。
【0019】
また,本実施形態では,DRP(0,1)14,15と,DSP(0,1)16,17を特定用途プロセッサエレメント(特定用途PE)とし,CPU(0,1,2,3)10,11,12,13を汎用プロセッサエレメント(汎用PE)とする。また,DRP14,15は,処理回路を動的に再構成することが可能なプロセッサを指し,限られたコア内で仮想的に回路を変更することができる。
【0020】
本実施形態では,特定用途PEのDRP14,15とDSP16,17は汎用PEのCPU10~13とは異なる命令セットを使用する。特定用途PEは予め設定されたタスク(処理の単位ブロック)の処理のみを実行可能に構成され,アクセラレータとして機能する。一方,汎用PEのCPU10~13は,各特定用途PEへの指令や汎用的な演算処理に加え,DRP14,15やDSP16,17の特定用途PEの処理を実行することが可能である。ただし,CPU10~13が特定用途PEの処理を実行した場合の速度は,DRP14,15やDSP16,17の処理速度より低下する。つまり特定用途PEは,特定のタスクに対して汎用PEのアクセラレータとして機能する。」
B 「【0032】
<マルチグレイン並列処理の概念>
次に,上記図1のヘテロジニアス・マルチプロセッサシステム1で実行するタスクの並列処理について説明する。各PEで実行するタスク(プログラム)は,後述するコンパイラによって入力プログラムを解析したマクロタスクグラフから生成される。つまり,入力プログラムは,まず後述するコンパイラにより,当該プログラムの構造を解析することで,代入文のみからなるベーシックブロック(BB),繰り返しブロック(RB),サブルーチン(SB)といった粒度が大きなステートメント・ブロックをマクロタスク(MT)として分割する。またマクロタスク内の処理がタスクとなる。」
C 「【0041】
ここで,本願発明の特徴として,タスクを各PEへ割り当てるとき,後述するプロセッサグループ毎にタスクを割り当てる。そして,各タスクが最も早く終了するようにスケジューリングを行う。このとき,DRP14,15やDSP16,17の特定用途PEが実行可能な特定のタスクでは,基本的に特定用途PEのグループ毎にタスクを割り当てる。しかし,特定のタスクを全て特定用途PEへ割り当てると,特定用途PEで処理完了待ちが発生する一方,汎用PEではタスク待ちが発生する場合がある。このような特定用途PEのリソースが不足する場合では,特定用途PEに割り当てるタスクを汎用PEグループに割り当てて,ヘテロジニアス・マルチプロセッサシステム全体の処理速度が速くなるようにスケジューリングを行うのである。なお,このスケジューリングについては後述するように,コンパイラで設定するスタティックスケジューリングで行う場合と,タスク間に埋め込まれたダイナミックスケジューリングで行う場合の2通りがある。」
D 「【0044】
汎用プロセッサグループPGは,プログラム(マクロタスクMT)の並列性や階層構造に応じて,CPUを仮想的にグルーピングしたものである。例えば,図3において,プログラム全体としては汎用プロセッサを4つ利用できる(図中4PEs)。第1階層は,例えば,図2に示したマクロタスクグラフの最上位であるマクロタスクグラフMTG1に相当する。このMTG1内部の並列性等を考慮して,ここでは4つのCPUのうち2つを1つのグループにしたものが汎用プロセッサグループPG1_0として,残り2つを1つのグループにしたものが汎用プロセッサグループPG1_1として表現され,MTG1内部のマクロタスクを割り当てる単位となる。
【0045】
ここでは,汎用プロセッサグループPG1_0には,図2のマクロタスクMT1_1およびマクロタスクMT1_2(マクロタスクグラフMTG1_2を内包)が割り当てられ,汎用プロセッサグループPG1_1にはマクロタスクMT1_3(マクロタスクグラフMTG1_3を内包)が割り当てられたとする。
【0046】
図3の第2階層では,汎用プロセッサグループPG1_0上でマクロタスクMT1_1を実行後,MT1_2およびMT1_3を並列実行している間のグルーピングの例が示されている。このとき,マクロタスクグラフMTG1_2内部の情報から汎用プロセッサグループPG1_0に含まれるCPUのうち1つが汎用プロセッサグループPG1_2_0として,他方のCPUが汎用プロセッサグループPG1_2_1としてグルーピングされる。そしてマクロタスクグラフMTG1_2内部の各マクロタスクグラフをPG1_2_0あるいはPG1_2_1,またはマクロタスクの種別に応じてアクセラレータグループに割り当てる。また,マクロタスクグラフMTG1_3内部の情報から,汎用プロセッサグループPG1_1に含まれる2つのCPUは汎用プロセッサグループPG1_3_0としてグルーピングされ,マクロタスクグラフMTG1_3に含まれる各マクロタスクがこの汎用プロセッサグループまたはアクセラレータグループに対して割り当てられる。この第2階層において,図2中のMT1_3_4のように内部にマクロタスクグラフを持つマクロタスクが割り当てられた場合,そのマクロタスクを実行している間は,その内部構造に応じて第3階層以下のグルーピングが用いられる。また,仮にMTG1がMT1_2やMT1_3以外のマクロタスクを含み,それが内部にマクロタスクグラフを持つ場合や,スケジューリングによってマクロタスクが割り当てられるプロセッサグループが上記と異なる場合,汎用プロセッサのマクロタスクグラフの情報に応じてグルーピングが決定されるため,第2階層以下ではマクロタスクの割り当て・実行状況に応じて図3と異なる汎用プロセッサのグルーピングが行われることになる。例えば,上記においてMT1_2がPG1_1に割り当てられた場合,PG1_2_0およびPG1_2_1はPG1_1に含まれるプロセッサを用いてグルーピングを行う。
【0047】
このように汎用プロセッサグループPGでは,プログラムの階層構造または並列性に応じて階層的にネストされたグルーピングが行われる。
【0048】
これに対してアクセラレータグループでは,プログラムの階層構造や並列性に依存せず,特定用途PEの種類または機能単位でグルーピングを行う。つまり,図3のように,DRP0,1をDRPのアクセラレータグループに割り当て,DSP0,1をDSPのアクセラレータグループに割り当てる。そして,アクセラレータグループでは,DRP,DSPともに各特定用途PE毎にタスクを割り当てる。また,DRPのアクセラレータグループでは,構成を変更したDRPの機能毎(例えば,DRPコアの構成毎)にグルーピングを行っても良い。
【0049】
このように,本発明のヘテロジニアス・マルチプロセッサシステム1では,PEのグルーピングを汎用プロセッサグループPGではプログラム(タスク)の階層構造や並列性に依存して階層的にグルーピングを行う一方,アクセラレータグループではプログラムの階層構造や並列性に依存することなく,特定用途PEの種類や機能単位でグルーピングを行う。
【0050】
これにより,汎用プロセッサグループPGからアクセラレータグループへのタスクの投入は,何れの階層からも実行することが可能となり,特定用途PEの利用率を向上させることができるのである。つまり,汎用プロセッサグループPGに特定用途PEを割り当てることも可能ではあるが,汎用プロセッサグループPGに割り当てられるタスクには常に特定用途PEで処理可能なタスクが含まれているとは限らない。
【0051】
そこで,特定用途PEを汎用プロセッサグループPGに含めずに,汎用プロセッサグループPGの何れの階層からもタスクを受け入れられるように,特定用途PEの種類や機能単位でグルーピングを行うことで,汎用PEと特定用途PEの利用率を向上させて,ヘテロジニアス・マルチプロセッサシステム1全体の処理速度を向上させるのである。」
E 「【0061】
<処理コスト解析>
次に,コンパイラ40は,上記生成されたマクロタスクMTを各PE10~17で実行した際に必要となる処理サイクルを見積もる,処理コスト解析を行う(S4)。処理コスト(演算コスト=処理時間)の見積もり方法としては,例えば汎用プロセッサグループPGなどに関しては,乗算や加算など命令レベルで必要とするサイクル数をタスク処理コストテーブル420にプロファイリング情報として保持しておき,当該テーブル420を参照することで,マクロタスクMTを当該プロセッサグループで実行する際の逐次処理サイクル数を見積もることができる。なお,処理コストは,後述するように各PE毎の処理時間とデータ転送時間を加えたものとすることができる。」
F 「【0146】
コンパイラ40は,ダイナミックスケジューリングコードS9により,図9に示すダイナミックスケジューリングコード90を生成する。なお,CPU0~3でダイナミックスケジューリングコード90を実行したときの機能をスケジューラSCとする。」
G 「【0160】
なお,ダイナミックスケジューリングコード90は,その階層の並列性や利用可能なプロセッサ数などから,分散スケジューリング方式あるいは集中スケジューリング方式のどちらかの形式を選択して実行される。分散スケジューリング方式が選択された階層では,その階層内の汎用プロセッサグループそれぞれの上でスケジューラが動作し,スケジューリングとタスク実行が交互に行われる。集中スケジューリング方式では,その階層の処理に参加する汎用プロセッサのうち,ある1つのがスケジューラの動作するプロセッサグループとして定義され,他の汎用プロセッサで構成された汎用プロセッサグループ,あるいは自らに対するタスク割り当てを担当する。このとき,スケジューリングを担当するプロセッサグループ以外はスケジューリング処理を行わず,タスク実行に専念する。」
H 「図1
」
I 「図2
」
J 「図3
」
(2)したがって,上記引用文献1には次の発明(以下,「引用発明」という。)が記載されていると認められる。
「命令セット及び構成の異なるプロセッサエレメント(以下,PEとする)10~17と,これらPE10~17で共有する集中共有メモリ(以下,CSM)18及び各PE10~17とCSM18を接続する内部ネットワーク19とから構成されたヘテロジニアス・マルチプロセッサシステム1であって,
各PE10~17,CSM18は,それぞれのインタフェースを介して,内部ネットワーク19に接続されており,
ヘテロジニアス・マルチプロセッサシステム1は,4個の汎用処理プロセッサ(以下,CPU)10,11,12,13と,2個の動的再構成可能プロセッサ(以下,DRP)14,15と,2個の信号処理プロセッサ(以下,DSP)16,17で構成され,
DRP(0,1)14,15と,DSP(0,1)16,17を特定用途プロセッサエレメント(特定用途PE)とし,CPU(0,1,2,3)10,11,12,13を汎用プロセッサエレメント(汎用PE)とし,
特定用途PEは予め設定されたタスク(処理の単位ブロック)の処理のみを実行可能に構成され,アクセラレータとして機能する一方,汎用PEのCPU10~13は,各特定用途PEへの指令や汎用的な演算処理に加え,DRP14,15やDSP16,17の特定用途PEの処理を実行することが可能であり,
各PEで実行するタスク(プログラム)は,コンパイラによって入力プログラムを解析したマクロタスクグラフから生成され,
入力プログラムは,まずコンパイラにより,当該プログラムの構造を解析することで,代入文のみからなるベーシックブロック(BB),繰り返しブロック(RB),サブルーチン(SB)といった粒度が大きなステートメント・ブロックをマクロタスク(MT)として分割し,マクロタスク内の処理がタスクとなるものであり,
タスクを各PEへ割り当てるときは,プロセッサグループ毎にタスクを割り当て,各タスクが最も早く終了するようにスケジューリングを行い,このとき,DRP14,15やDSP16,17の特定用途PEが実行可能な特定のタスクでは,基本的に特定用途PEのグループ毎にタスクを割り当てるが,特定用途PEのリソースが不足する場合では,特定用途PEに割り当てるタスクを汎用PEグループに割り当てて,ヘテロジニアス・マルチプロセッサシステム全体の処理速度が速くなるようにスケジューリングを行い,
このスケジューリングについては,コンパイラで設定するスタティックスケジューリングで行う場合と,タスク間に埋め込まれたダイナミックスケジューリングで行う場合の2通りがあり,
例えば,4つのCPUのうち2つを1つのグループにしたものが汎用プロセッサグループPG1_0として,残り2つを1つのグループにしたものが汎用プロセッサグループPG1_1として表現され,汎用プロセッサグループPG1_0には,マクロタスクMT1_1およびマクロタスクMT1_2(マクロタスクグラフMTG1_2を内包)が割り当てられ,汎用プロセッサグループPG1_1にはマクロタスクMT1_3(マクロタスクグラフMTG1_3を内包)が割り当てられたとすると,
第2階層では,汎用プロセッサグループPG1_0上でマクロタスクMT1_1を実行後,MT1_2およびMT1_3を並列実行している間,マクロタスクグラフMTG1_2内部の情報から汎用プロセッサグループPG1_0に含まれるCPUのうち1つが汎用プロセッサグループPG1_2_0として,他方のCPUが汎用プロセッサグループPG1_2_1としてグルーピングされ,マクロタスクグラフMTG1_2内部の各マクロタスクグラフをPG1_2_0あるいはPG1_2_1,またはマクロタスクの種別に応じてアクセラレータグループに割り当て,
また,マクロタスクグラフMTG1_3内部の情報から,汎用プロセッサグループPG1_1に含まれる2つのCPUは汎用プロセッサグループPG1_3_0としてグルーピングされ,マクロタスクグラフMTG1_3に含まれる各マクロタスクがこの汎用プロセッサグループまたはアクセラレータグループに対して割り当てられ,
この第2階層において,内部にマクロタスクグラフを持つマクロタスクが割り当てられた場合,そのマクロタスクを実行している間は,その内部構造に応じて第3階層以下のグルーピングが用いられるように,プログラムの階層構造または並列性に応じて階層的にネストされたグルーピングが行われるものであり,
これに対してアクセラレータグループでは,プログラムの階層構造や並列性に依存せず,特定用途PEの種類または機能単位でグルーピングを行い,DRP0,1をDRPのアクセラレータグループに割り当て,DSP0,1をDSPのアクセラレータグループに割り当て,アクセラレータグループでは,DRP,DSPともに各特定用途PE毎にタスクを割り当てるものであり,
コンパイラ40は,生成されたマクロタスクMTを各PE10~17で実行した際に必要となる処理サイクルを見積もる,処理コスト解析を行い,
ここで,処理コスト(演算コスト=処理時間)の見積もり方法としては,汎用プロセッサグループPGなどに関しては,乗算や加算など命令レベルで必要とするサイクル数をタスク処理コストテーブル420にプロファイリング情報として保持しておき,当該テーブル420を参照することで,マクロタスクMTを当該プロセッサグループで実行する際の逐次処理サイクル数を見積もることができ,
コンパイラ40は,ダイナミックスケジューリングコード90を生成し,
ダイナミックスケジューリングコード90は,その階層の並列性や利用可能なプロセッサ数などから,分散スケジューリング方式あるいは集中スケジューリング方式のどちらかの形式を選択して実行され,
分散スケジューリング方式が選択された階層では,その階層内の汎用プロセッサグループそれぞれの上でスケジューラが動作し,スケジューリングとタスク実行が交互に行われ,
集中スケジューリング方式では,その階層の処理に参加する汎用プロセッサのうち,ある1つがスケジューラの動作するプロセッサグループとして定義され,他の汎用プロセッサで構成された汎用プロセッサグループ,あるいは自らに対するタスク割り当てを担当し,このとき,スケジューリングを担当するプロセッサグループ以外はスケジューリング処理を行わず,タスク実行に専念する,
システム。」
2.引用文献2について
(1)また,原査定の拒絶の理由に引用された引用文献2(特開2006-277458号公報)には,図面とともに次の事項が記載されている。
K 「【0014】
図示するように,本実施形態のリソース割当管理システムは,リソース割当管理装置1と,複数のロードバランサ21~2n(以下,単にロードバランサ2とも称する)と,複数のサーバ計算機31~3mと(以下,単にサーバ計算機3とも称する)と,インターネット7に接続されたルータ4と,を有する。」
L 「【0019】
図示するように,サーバ計算機3は,業務用ネットワーク5および管理用ネットワーク6に接続するためのネットワークIF(インターフェース)部31と,メトリック情報計測部32と,インストーラ33と,モジュール実行部34と,を有する。
【0020】
メトリック情報計測部32は,自サーバ計算機3のメトリック情報を計測し,管理用ネットワーク6を介してリソース割当管理装置1に送信する。本実施形態では,メトリック情報として,単位時間当たりに業務用ネットワーク5から受信するリクエストの数(リクエスト受信数)を計測する。そして,計測したメトリック情報を,自サーバ計算機3の識別情報(例えばローカルアドレス)である計算機IDと共に,管理用ネットワーク6を介してリソース割当管理装置1に送信する。」
M 「【0026】
図示するように,リソース割当管理装置1は,業務用ネットワーク5および管理用ネットワーク6に接続するためのネットワークIF部11と,演算部12と,記憶部13と,を有する。
【0027】
記憶部13は,業務アプリ構成管理TL131と,リソース管理TL132と,メトリック情報管理TL133と,余裕率管理TL134と,調整計画管理TL135と,モジュール記憶部136と,ロードバランサ管理TL137と,を有する。」
N 「【0044】
図8はリソース割当管理装置1の動作フローを説明するための図である。なお,このフローには示さないが,上述したように,メトリック情報収集部121は,管理用ネットワーク6を介して各サーバ計算機3からメトリック情報を受信して,メトリック情報管理TL133をこのメトリック情報で更新する処理を常に行っている。
【0045】
さて,図8において,演算部12は,図示していない内蔵タイマを用いて,所定時間の経過や所定時刻の到来などのリソース割当判定タイミングを検出すると,あるいは,図示していない入力装置を介してユーザよりリソース割当判定指示を受け付けると(S10でYES),余裕率算出部122に余裕率管理TL更新処理の実施を指示する。
【0046】
これを受けて,余裕率算出部122は,余裕率管理TL更新処理を実施する(S11)。すなわち,業務アプリ構成管理TL131,リソース管理TL132およびメトリック情報管理TL133を用いて,モジュールPG毎に,現状台数,適正台数,サービスレベル余裕率および提供可能台数を計算する。そして,余裕率管理TL134の各レコード1340を,当該レコード1340のフィールド1342に登録されているモジュールIDを持つモジュールPGに対して計算した現状台数,適正台数,サービスレベル余裕率および提供可能台数で更新する。」
O 「【0077】
本実施形態において,リソース割当管理装置1は,業務アプリケーション毎に,当該業務アプリケーションに引当てられたサーバ計算機3のうち他の業務アプリケーションに引当て変更することのできるサーバ計算機3の数つまり提供可能台数を計算する。そして,提供可能台数が正の値(リソースが余っている)業務アプリケーションに割当てられている少なくとも1つのサーバ計算機3の引当てを,当該業務アプリケーションから,提供可能台数が負の値(リソースが不足している)業務アプリケーションに変更する。したがって,本実施形態によれば,各業務アプリケーションのサービスレベルの低下を防止できるように,各業務アプリケーションに割り当てるコンピュータを管理することができる。」
(2)したがって,上記引用文献2には次の技術的事項(以下,「引用文献2記載事項」という。)が記載されていると認められる。
「リソース割当管理装置1と複数のサーバ計算機31~3mとを有するリソース割当管理システムにおいて,
サーバ計算機3は,メトリック情報計測部32を有し,
リソース割当管理装置1は,余裕率管理TL134を有し,
メトリック情報計測部32は,自サーバ計算機3のメトリック情報として,単位時間当たりに業務用ネットワーク5から受信するリクエストの数(リクエスト受信数)を計測し,計測したメトリック情報を,自サーバ計算機3の識別情報と共に,管理用ネットワーク6を介してリソース割当管理装置1に送信し,
リソース割当管理装置1のメトリック情報収集部121は,管理用ネットワーク6を介して各サーバ計算機3からメトリック情報を受信して,メトリック情報管理TL133をこのメトリック情報で更新する処理を常に行っており,
所定時間の経過や所定時刻の到来などのリソース割当判定タイミングを検出すると,余裕率算出部122は,モジュールPG毎に,現状台数,適正台数,サービスレベル余裕率および提供可能台数を計算し,計算した現状台数,適正台数,サービスレベル余裕率および提供可能台数で余裕率管理TL134の各レコード1340を更新し,
リソース割当管理装置1は,業務アプリケーション毎に,当該業務アプリケーションに引当てられたサーバ計算機3のうち他の業務アプリケーションに引当て変更することのできるサーバ計算機3の数つまり提供可能台数を計算し,提供可能台数が正の値の(リソースが余っている)業務アプリケーションに割当てられている少なくとも1つのサーバ計算機3の引当てを,当該業務アプリケーションから,提供可能台数が負の値の(リソースが不足している)業務アプリケーションに変更する。」
第4 対比・判断
1.本願発明1について
(1)対比
本願発明1と引用発明とを対比すると,次のことがいえる。
(ア)引用発明の「タスク(処理の単位ブロック)」は本願発明1の「計算タスク」に相当し,引用発明の「ヘテロジニアス・マルチプロセッサシステム1」は,「命令セット及び構成の異なるプロセッサエレメント(以下,PEとする)10~17と,これらPE10~17で共有する集中共有メモリ(以下,CSM)18及び各PE10~17とCSM18を接続する内部ネットワーク19とから構成された」システムであって,複数のコンピュータを結合したひとまとまりのシステムとみることができるから,本願発明1の「コンピュータクラスタ」に相当するといえるので,引用発明と本願発明1とは,後記する相違点はあるものの,“計算タスクを処理するためのコンピュータクラスタ”である点で共通する。
(イ)上記(ア)のとおり,引用発明の「ヘテロジニアス・マルチプロセッサシステム1」は,「計算タスクを処理するためのコンピュータクラスタ」とみることができるものであるから,当該ヘテロジニアス・マルチプロセッサシステム1を構成する「4個の汎用処理プロセッサ(以下,CPU)10,11,12,13」が本願発明1の「複数の計算ノード(CN)」に相当し,当該「4個の汎用処理プロセッサ(以下,CPU)10,11,12,13」を含む「各PE10~17」は,「それぞれのインタフェースを介して,内部ネットワーク19に接続されて」いて,ここでの「内部ネットワーク19」は,本願発明1の「通信インフラストラクチャ(IN)」に相当するといえ,また,「各PE10~17」は,「内部ネットワーク19」と“インターフェイス接続”しているといえるから,引用発明の「ヘテロジニアス・マルチプロセッサシステム1」と本願発明1の「コンピュータクラスタ」とは,“複数の計算ノード(CN)を含み,それらの各々は通信インフラストラクチャ(IN)とインターフェイス接続し”ている点で共通する。
(ウ)引用発明では,「タスクを各PEへ割り当てるときは,プロセッサグループ毎にタスクを割り当て」,「例えば,4つのCPUのうち2つを1つのグループにしたものが汎用プロセッサグループPG1_0として,残り2つを1つのグループにしたものが汎用プロセッサグループPG1_1として表現され,汎用プロセッサグループPG1_0には,マクロタスクMT1_1およびマクロタスクMT1_2(マクロタスクグラフMTG1_2を内包)が割り当てられ,汎用プロセッサグループPG1_1にはマクロタスクMT1_3(マクロタスクグラフMTG1_3を内包)が割り当てられたとすると,
第2階層では,汎用プロセッサグループPG1_0上でマクロタスクMT1_1を実行」するものであり,「4つのCPUのうち2つを1つのグループにしたもの」を「汎用プロセッサグループPG1_0」とし,この「汎用プロセッサグループPG1_0」に,「マクロタスクMT1_1およびマクロタスクMT1_2(マクロタスクグラフMTG1_2を内包)が割り当てられ」て「汎用プロセッサグループPG1_0上でマクロタスクMT1_1を実行」するものであることからすると,引用発明では,「4つのCPUのうち2つ」(本願発明1の「それらの少なくとも2つ」に相当する。)によって,「汎用プロセッサグループPG1_0」が形成され,当該「汎用プロセッサグループPG1_0」内の“2つのCPU”は,同じグループに属するCPUとして,何らかの相互作用をしつつ,“共同で”,「マクロタスクMT1_1およびマクロタスクMT1_2」(本願発明1の「前記計算タスクの少なくとも第1の部分」に相当する。)を「実行」(本願発明1の「計算」に相当する。)しているとみることができるから,引用発明の「4個の汎用処理プロセッサ(以下,CPU)10,11,12,13」と本願発明1の「複数の計算ノード(CN)」とは,“それらの少なくとも2つは,前記計算タスクの少なくとも第1の部分を共同で計算するように構成されて”いる点で共通する。
(エ)引用発明の「ヘテロジニアス・マルチプロセッサシステム1」は,「2個の動的再構成可能プロセッサ(以下,DRP)14,15と,2個の信号処理プロセッサ(以下,DSP)16,17」を含むものであり,ここでの「DRP(0,1)14,15」と,「DSP(0,1)16,17」は,「特定用途プロセッサエレメント(特定用途PE)」であり,当該「特定用途PE」は「予め設定されたタスク(処理の単位ブロック)」(本願発明1の「前記計算タスクの少なくとも第2の部分」に相当する。)の「処理を実行可能に構成され」(本願発明1の「計算するように構成され」に相当する。),「アクセラレータとして機能する」ものであるところ,本願明細書の段落【0009】の「このコンピュータクラスタ構成では,個々のブースタによって加速機能性が提供されている。上述のコンピュータクラスタ構成は,算出ノードとも呼ばれ得る計算ノードへのそれらのブースタの緩い結合を可能にする。このため,計算ノードによる,ここではブースタの形をしたアクセラレータの共有が実現可能である。」との記載からすると,本願発明1の「ブースタ」は,「アクセラレータ」として機能するものであるから,引用発明の「特定用途プロセッサエレメント(特定用途PE)」が本願発明1の「少なくとも1つのブースタ(B)」に相当する。
してみれば,引用発明と本願発明1とは,“前記コンピュータクラスタはさらに,前記計算タスクの少なくとも第2の部分を計算するよう構成された少なくとも1つのブースタ(B)を含”む点で共通する。
(オ)引用発明の「DRP(0,1)14,15と,DSP(0,1)16,17(からなる)特定用途プロセッサエレメント(特定用途PE)」(本願発明1の「各ブースタ(B)」に相当する。)を含む「各PE10~17」は,「それぞれのインタフェースを介して,内部ネットワーク19に接続されて」(本願発明1の「前記通信インフラストラクチャ(IN)とインターフェイス接続して」に相当する。)いるから,引用発明と本願発明1とは,“各ブースタ(B)は前記通信インフラストラクチャ(IN)とインターフェイス接続して”いる点で共通する。
したがって,本願発明1と引用発明との間には,次の一致点,相違点があるといえる。
(一致点)
「計算タスクを処理するためのコンピュータクラスタであって,
複数の計算ノード(CN)を含み,それらの各々は通信インフラストラクチャ(IN)とインターフェイス接続し,それらの少なくとも2つは,前記計算タスクの少なくとも第1の部分を共同で計算するよう構成されており,前記コンピュータクラスタはさらに,
前記計算タスクの少なくとも第2の部分を計算するよう構成された少なくとも1つのブースタ(B)を含み,各ブースタ(B)は前記通信インフラストラクチャ(IN)とインターフェイス接続している,
コンピュータクラスタ。」
(相違点)
(相違点1)本願発明1は,「前記コンピュータクラスタはさらに,
前記計算タスクの前記第2の部分の計算のために,割当パラメータの群のうちの少なくとも1つの割当パラメータの関数として特定される割当メトリックに従い,少なくとも1つのブースタ(B)を前記複数の計算ノード(CN)のうちの少なくとも1つに割当てるよう構成されたリソースマネージャ(RM)を含」んでいるのに対して,
引用発明の「ヘテロジニアス・マルチプロセッサシステム1」は,そのような構成を含んでいない点。
(相違点2)本願発明1は,「前記リソースマネージャ(RM)は,
(i)前記計算タスクの実行開始時に,予め定められた割当メトリックを用いて前記割当てを行い,(ii)前記計算タスクの実行中に,(ii-1)当該割当てを初期化し,(ii-2)前記割当メトリックを変更し,(ii-3)変更後の前記割当メトリックを用いて前記割当てを行うように構成される」のに対して,
引用発明は,そのような構成は特定されていない点。
(2)相違点についての判断
(相違点1)について
上記相違点1について検討すると,本願発明1の「コンピュータクラスタ」は,「リソースマネージャ(RM)」を含んでいて,当該「リソースマネージャ(RM)」は,「前記計算タスクの前記第2の部分の計算のために」,「少なくとも1つのブースタ(B)を前記複数の計算ノード(CN)のうちの少なくとも1つに割当てるよう構成された」ものであるから,本願発明1の「リソースマネージャ(RM)」は,「ブースタ(B)」を「複数の計算ノード(CN)のうちの1つ」に「割当てる」ためのものであるのに対して,引用発明の「ヘテロジニアス・マルチプロセッサシステム1」は,スケジューリングを実行するための「スケジューラ」を含んでいるものの,当該「スケジューラ」が実行する「スケジューリング」は,「タスクを各PEへ割り当てるときは,プロセッサグループ毎にタスクを割り当て,各タスクが最も早く終了するようにスケジューリングを行い,このとき,DRP14,15やDSP16,17の特定用途PEが実行可能な特定のタスクでは,基本的に特定用途PEのグループ毎にタスクを割り当てるが,特定用途PEのリソースが不足する場合では,特定用途PEに割り当てるタスクを汎用PEグループに割り当てて,ヘテロジニアス・マルチプロセッサシステム全体の処理速度が速くなるようにスケジューリングを行」うというものであって,引用発明の「スケジューラ」は,「各タスクが最も早く終了するように」,「タスク」を「汎用PEグループ」または「特定用途PEのグループ」に「割り当てる」というものであって,本願発明1の「リソースマネージャ(RM)」のように,「ブースタ(B)」(引用発明の「特定用途プロセッサエレメント(特定用途PE)」)を「複数の計算ノード(CN)のうちの1つ」(引用発明の「汎用処理プロセッサ(CPU)」)に「割当てる」というものではない。
加えて,上記Dで引用した引用文献1の「これにより,汎用プロセッサグループPGからアクセラレータグループへのタスクの投入は,何れの階層からも実行することが可能となり,特定用途PEの利用率を向上させることができるのである。つまり,汎用プロセッサグループPGに特定用途PEを割り当てることも可能ではあるが,汎用プロセッサグループPGに割り当てられるタスクには常に特定用途PEで処理可能なタスクが含まれているとは限らない。」(段落【0050】),「そこで,特定用途PEを汎用プロセッサグループPGに含めずに,汎用プロセッサグループPGの何れの階層からもタスクを受け入れられるように,特定用途PEの種類や機能単位でグルーピングを行うことで,汎用PEと特定用途PEの利用率を向上させて,ヘテロジニアス・マルチプロセッサシステム1全体の処理速度を向上させるのである。」(段落【0051】)との記載によれば,引用発明は,「汎用プロセッサグループPGに特定用途PEを割り当てることも可能ではあるが」,“そのようにしないこと”で,すなわち,「特定用途PEを汎用プロセッサグループPGに含めずに,汎用プロセッサグループPGの何れの階層からもタスクを受け入れられるように,特定用途PEの種類や機能単位でグルーピングを行うこと」で,「汎用PEと特定用途PEの利用率を向上させ」ていると認められ,このことからすると,引用文献1は,「特定用途PE」を「汎用プロセッサグループPG」に「割当てる」ことをむしろ否定している文献といえるので,引用文献1には,引用発明の「特定用途PE」を「汎用PE」に「割当てる」ように構成するという動機付けは存在しない。
また,引用文献2には,
「リソース割当管理装置1と複数のサーバ計算機31~3mとを有するリソース割当管理システムにおいて,
サーバ計算機3は,メトリック情報計測部32を有し,
リソース割当管理装置1は,余裕率管理TL134を有し,
メトリック情報計測部32は,自サーバ計算機3のメトリック情報として,単位時間当たりに業務用ネットワーク5から受信するリクエストの数(リクエスト受信数)を計測し,計測したメトリック情報を,自サーバ計算機3の識別情報と共に,管理用ネットワーク6を介してリソース割当管理装置1に送信し,
リソース割当管理装置1のメトリック情報収集部121は,管理用ネットワーク6を介して各サーバ計算機3からメトリック情報を受信して,メトリック情報管理TL133をこのメトリック情報で更新する処理を常に行っており,
所定時間の経過や所定時刻の到来などのリソース割当判定タイミングを検出すると,余裕率算出部122は,モジュールPG毎に,現状台数,適正台数,サービスレベル余裕率および提供可能台数を計算し,計算した現状台数,適正台数,サービスレベル余裕率および提供可能台数で余裕率管理TL134の各レコード1340を更新し,
リソース割当管理装置1は,業務アプリケーション毎に,当該業務アプリケーションに引当てられたサーバ計算機3のうち他の業務アプリケーションに引当て変更することのできるサーバ計算機3の数つまり提供可能台数を計算し,提供可能台数が正の値の(リソースが余っている)業務アプリケーションに割当てられている少なくとも1つのサーバ計算機3の引当てを,当該業務アプリケーションから,提供可能台数が負の値の(リソースが不足している)業務アプリケーションに変更する。」
という引用文献2記載事項が記載されているが,当該技術的事項は,「サーバ計算機」を「業務アプリケーション」に割当てていて,業務アプリケーション毎のリソースの過不足に応じて,「サーバ計算機」の引当てを変更しているものであって,「ブースタ(B)」を「計算ノード(CN)」に「割当てる」ことは記載されていない。
そうすると,当業者であっても,引用発明に引用発明2記載事項を適用して,上記相違点1に係る「前記コンピュータクラスタはさらに,
前記計算タスクの前記第2の部分の計算のために,割当パラメータの群のうちの少なくとも1つの割当パラメータの関数として特定される割当メトリックに従い,少なくとも1つのブースタ(B)を前記複数の計算ノード(CN)のうちの少なくとも1つに割当てるよう構成されたリソースマネージャ(RM)を含」むという構成を容易に想到することができたとはいえない。
したがって,上記相違点2について判断するまでもなく,本願発明1は,当業者であっても引用発明及び引用文献2記載事項に基づいて容易に発明できたものであるとはいえない。
2.本願発明2-11について
本願発明2-11は,本願発明1を減縮した発明であり,上記相違点1に係る構成と同一の構成を備えるものであるから,本願発明1と同様の理由により,当業者であっても,引用発明及び引用文献2記載事項に基づいて容易に発明できたものとはいえない。
第5 原査定の概要及び原査定についての判断
原査定は,請求項1-12について上記引用文献1-2に基づいて,当業者が容易に発明できたものであるから,特許法第29条第2項の規定により特許を受けることができないというものである。しかしながら,平成29年8月4日付け手続補正により補正された請求項1は,上記相違点1に係る構成を有するものとなっており,上記のとおり,本願発明1-11は,引用発明及び引用文献2記載事項に基づいて,当業者が容易に発明できたものではない。したがって,原査定を維持することはできない。
第6 当審拒絶理由について
1.特許法第36条第6項第2号について
(1)当審では,請求項1の「割当パラメータの群のうちの少なくとも1つのパラメータの関数として特定される割当メトリックに従い」との記載では,「割当パラメータ」と「パラメータ」とが混在して用いられていて不明確であるとの拒絶の理由を通知しているが,平成30年10月3日付けの手続補正において,「パラメータ」が「割当パラメータ」と補正された結果,この拒絶の理由は解消した。
(2)当審では,請求項1の「割当パラメータの群のうちの少なくとも1つのパラメータの関数として特定される割当メトリック」との記載における「割当パラメータの関数」として特定される「割当メトリック」とは,具体的にどのようなものであるのかが不明確であるとの拒絶の理由を通知しているが,平成30年10月3日付けの意見書における,
「ご指摘に対しては,
(a)まず,割当てパラメータの関数として特定される割当メトリックは,具体的には,どのブースタをどの計算ノードに結合するかを決めるための基準として機能するものです。これは,出願当初明細書の段落0014の“割当メトリックが提供され,それはどのブースタをどの計算ノードと結合するかを決めるための基準として機能する”等の記載に基づきます。
(b)また,請求項2(元の請求項3に対応)の各パラメータがどのような内容のパラメータであるかは,以下の通りです。
「リソース情報」は,計算タスクの実行時に必要なメモリの大きさを示します(段落0038をご参照)。
「費用情報」は,計算タスクの実行時に必要なハードウェアリソース能力を示します(段落0015,段落0011等をご参照)。
「複雑性情報」は,クラスタで実行される計算タスクのアプリケーションコードの複雑さを示します(段落0017,段落0037等をご参照)。
「拡張性情報」は,クラスタで実行されるアプリケーションコードの拡張可能性の程度を示します(段落0037をご参照)。
「計算ログ記録」は,計算履歴を示し,具体的には,ブースタが計算タスクを処理する場合の応答時間の記録を示します(段落0016等をご参照)。
「優先度情報」は,計算タスクを,他の計算タスクに比べてどのくらい至急に計算しなければならないかを示します(段落0016をご参照)。
(c)また,請求項2(元の請求項3に対応)のパラメータ毎に想定される関数の例示としては,以下の通りです。
「リソース情報」については,例えば,計算タスクの実行時に必要なメモリの大きさ(段落0038をご参照)をパラメータとして,計算ノードに割当てる1つ以上のブースタを決定する関数があります(段落0021および段落0011等をご参照)。
「費用情報」については,例えば,計算タスクの実行時に必要なハードウェアリソース能力(段落0015,段落0011等をご参照)をパラメータとして,計算ノードに割当てる1つ以上のブースタを決定する関数があります(段落0021,段落0011等をご参照)。
「複雑性情報」については,例えば,クラスタで実行されるアプリケーションコードの複雑さ(段落0017,段落0037等をご参照),または,例えばマトリックスの次元数を関数のパラメータとして,計算ノードに割当てる1つ以上のブースタを決定する関数があります(段落0021,段落0017等をご参照)。
「拡張性情報」については,例えば,クラスタで実行されるアプリケーションコードの拡張可能性の程度(段落0037)をパラメータとして,計算ノードに割当てる1つ以上のブースタを決定する関数があります。
「計算ログ記録」については,例えばブースタが計算タスクを処理する場合の応答時間の記録(段落0016をご参照)をパラメータとして,計算ノードに割当てる1つ以上のブースタを決定する関数があります。
「優先度情報」については,計算タスクを,他の計算タスクに比べてどのくらい至急に計算しなければならないかを示す(段落0016をご参照)をパラメータとして,計算ノードに割当てる1つ以上のブースタを決定する関数があります。例えば,優先度が高いアプリケーションコードの部分であれば,計算ノードに1つ以上のブースタを割当てると決定する。」
との釈明により,この拒絶の理由は解消した。
(3)当審では,請求項1に「割当パラメータの群のうちの少なくとも1つのパラメータの関数として特定される割当メトリック」と記載されている一方で,請求項1を引用する請求項2には,「前記予め定められた割当メトリックは,メトリック特定技術の群のうちの少なくとも1つに従って形成され,前記群は,時相論理,割当マトリックス,割当テーブル,確率関数,および費用関数を含む」と記載されていて,「割当メトリック」が,「割当パラメータの関数」として特定されるものであるのか,「メトリック特定技術の群のうちの少なくとも1つに従って形成され」るものであるのかが不明確であるとの拒絶の理由を通知しているが,平成30年10月3日付けの手続補正において,補正前の請求項2が削除された結果,この拒絶の理由は解消した。
(4)当審では,請求項1の「(ii-2)前記割当メトリック変更し」との記載は,「(ii-2)前記割当メトリックを変更し」の誤記と思われるとの拒絶の理由を通知しているが,平成30年10月3日付けの手続補正において,「(ii-2)前記割当メトリックを変更し」と補正された結果,この拒絶の理由は解消した。
(5)当審では,請求項1の「割当メトリック」を「変更」するとは,具体的に,何をどのように「変更」することを想定しているのかが明確ではないとの拒絶の理由を通知しているが,平成30年10月3日付けの意見書における,
「このご指摘については,まず「割当てメトリック」を「変更」するとは,「割当てメトリック」を特定する「割当てパラメータの関数」において,当該「割当てパラメータの関数」に適用される割当てパラメータを,計算タスクの実行時に例えば実行時パラメータまたは計算タスク特性に基づき変更することを示します(段落0021,段落0011をご参照)。
なお,元の請求項2は削除しましたので,“「メトリック特定技術の群のうちの少なくとも1つに従って形成され」る「割当メトリック」の「何」を「どのように」変更する”かに関して,補正後の特許請求の範囲は不明確性を有しないと思料します。」
との釈明により,この拒絶の理由は解消した。
第7 むすび
以上のとおり,本願発明1-11は,当業者が引用発明及び引用文献2記載事項に基づいて容易に発明をすることができたものではない。
したがって,原査定の理由によっては,本願を拒絶することはできない。
また,他に本願を拒絶すべき理由を発見しない。
よって,結論のとおり審決する。
審決本文(J-PlatPat)
J-PlatPatの審決検索トップを開きます。番号入力で「審判番号」を選び、下の番号を貼り付けて検索してください。
J-PlatPat 審決検索を開く
2017-011727