JP2016507093A - 回帰モデルを計算するための方法、コンピュータ・プログラム、およびシステム - Google Patents

回帰モデルを計算するための方法、コンピュータ・プログラム、およびシステム Download PDF

Info

Publication number
JP2016507093A
JP2016507093A JP2015552149A JP2015552149A JP2016507093A JP 2016507093 A JP2016507093 A JP 2016507093A JP 2015552149 A JP2015552149 A JP 2015552149A JP 2015552149 A JP2015552149 A JP 2015552149A JP 2016507093 A JP2016507093 A JP 2016507093A
Authority
JP
Japan
Prior art keywords
mapper
actual
records
predictor
computer
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.)
Granted
Application number
JP2015552149A
Other languages
English (en)
Other versions
JP6234477B2 (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2016507093A publication Critical patent/JP2016507093A/ja
Application granted granted Critical
Publication of JP6234477B2 publication Critical patent/JP6234477B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】タスク結果を計算するための技法を提供する。【解決手段】レコードの処理データ集合を生成し、このレコードの各々が、実際のサブタスク集合からの1つのサブタスクに固有のデータを含み、更に、実際のサブタスク集合によって共有されるデータに対する参照を含み、レコードの数が、実際のサブタスク集合内の実際のサブタスクの数に相当する。マッパー集合における各マッパーによって、処理データ集合のレコードの1つを受信し、レコードの受信した1つを用いて割り当てられたサブタスクを実行して出力を発生させる。単一のリデューサーによって、マッパー集合内の各マッパーからの出力を集約してタスク結果を決定する。【選択図】図1

Description

本発明の実施形態は、マップ・リデュース(map-reduce)フレームワークにおけるスイープ(sweep)動作を用いた可能な回帰モデルの計算に関する。
1つの目標変数(Y)と予測変数(X)のリストとの間の関係を分析するために、通常、多数の線形回帰モデルが用いられる。k個の予測子の大きい集合から、他の予測子よりも大きくターゲットに影響するいくつかの予測子を選択するために、変数増加法(forward selection)、変数減少法(backward elimination)、変数増加法(forward stepwise)等、多数の技法が提案されている。
予測子は、予測回帰モデルにおいてターゲットを予測するかまたはターゲットに影響するフィールド(field)と称することができる。ターゲットは、回帰モデルにおいて1つまたは複数の予測子によって予測されるかまたは影響されるフィールドと称することができる。
最良回帰を見出す1つの方法は、自由度調整済み決定係数(adjusted R square)等の選択した基準に基づいて全ての2の回帰モデルを実行することである。この技法は「全数検索(exhaustive search)」とも呼ばれる。kが大きい場合、全ての可能な回帰の実行は、計算時間がkと共に指数関数的に長くなるために現実的でないことがある。これまで性能向上の取り組みが行われており、それらは概ね2つの経路をたどる。すなわち、(1)逐次的な戦略を利用し、ある回帰モデルから別の回帰モデルに移動すること、および(2)並列計算戦略を利用して集中的な計算を分散させること、である。
マップ・リデュース・フレームワークは、インターネット時代にますます一般的になっている分散データ・ソースにおいてペタバイト単位のデータを処理することができるので、人気のあるパラダイムとなっている。マップ・リデュース・フレームワークは、アプリケーションが分散クラスタにおける数千のノードと共に動作することを可能とする。典型的なマップ・リデュース・ジョブは通常、多数のマッパー(mapper)を用いて、異なるデータ・スプリット/ブロックに対する計算を行い、1つまたは複数のリデューサー(reducer)を用いて、最終的な結果/統計データがデータ全体に基づいたものになるようにマッパーの結果をマージする。
タスク結果を計算するための方法、コンピュータ・プログラム、およびシステムを提供する。レコードの処理データ集合を生成し、このレコードの各々が、実際のサブタスク集合からの1つのサブタスクに固有のデータを含み、更に、実際のサブタスク集合によって共有されるデータに対する参照を含み、レコードの数が、実際のサブタスク集合内の実際のサブタスクの数に相当する。マッパー集合における各マッパーによって、処理データ集合のレコードの1つを受信し、レコードの受信した1つを用いて割り当てられたサブタスクを実行して出力を発生させる。単一のリデューサーによって、マッパー集合内の各マッパーからの出力を集約して(reduce)タスク結果を決定する。
これより図面を参照する。図面全体を通して、同様の参照番号は対応する部分を表す。
いくつかの実施形態に従ったマップ・リデュース・フレームワークを示す。 いくつかの実施形態に従った回帰モデルのシーケンスを表で示す。 いくつかの実施形態に従った、可能な回帰モデルを計算するための全体的なプロセスを示す。 いくつかの実施形態に従った、グローバル・シーケンスをローカル・シーケンスに分割する例を示す。 いくつかの実施形態に従った、マップ・リデュース・フレームワークの実施の一例を示す。 マップ/リデュース・フレームワークを用いて元のデータセットに対してタスクを実行するための動作をフロー図で示す。 マップ/リデュース・フレームワークを用いて元のデータセットに対してタスクを実行するための動作をフロー図で示す。 いくつかの実施形態に従ったクラウド計算ノードを示す。 いくつかの実施形態に従ったクラウド計算環境を示す。 いくつかの実施形態に従った抽象回帰モデルレイヤを示す。
本発明の様々な実施形態の記載は、例示のために提示するが、網羅的であることも、開示する実施形態に限定されることも意図していない。記載する実施形態の範囲から逸脱することなく、当業者には多くの変更および変形が明らかであろう。本明細書において用いる用語は、実施形態の原理、実際的な用途、もしくは市場に存在する技術に対する技術的な改良を最も良く説明するため、または、本明細書に開示する実施形態を当業者が理解することを可能とするために、選択したものである。
実施形態は、マップ・リデュース・フレームワークを利用し、スイープ動作を用いることによって、k個の予測子について2の可能な回帰モデルを計算する。実施形態は、多数のノード(マッパー)を用いてローカル回帰モデル(例えばローカル最良回帰モデル)を並列に計算し、次いで1つのノード(リデューサー)を用いて多数のノードからの結果を組み合わせて、ローカル回帰モデルから1つのグローバル回帰モデル(例えばグローバル最良回帰モデル)を選択する。実施形態は、グローバル検索シーケンスを多数のローカル検索シーケンスに体系的に分解し、これらのローカル検索シーケンスは多数のノード上で別個に実行することができる。ローカル検索シーケンスは、グローバル検索シーケンスからのサブシーケンスと呼ぶことができる。
ノードは、クラスタ内の1つの中央処理装置(CPU)コアに関連付けた実行ユニットと呼ぶことができる。クラスタは、多数のノードを有するものと説明することができ、これらのノードは同一または異なるコンピュータ上に存在し得る。いくつかの実施形態において、1つのノードは1つのマップまたはリデュースのタスクを実行することができる。
いくつかの実施形態において、多数のマッパーおよび単一のリデューサーが、多数のCPUコアを有する単一のコンピュータ/マシン上で動作することができる。いくつかの実施形態では、多数のマッパーおよび単一のリデューサーが異なるコンピュータ/マシン上で動作することができる。
実施形態は、グローバル検索シーケンス/空間を、M(=2)個(m<k−1)のローカル検索シーケンス/空間に分解し、2k−mのスイープピボットのローカル検索シーケンス上でスイープ動作を適用し、これによって2k−mの回帰モデルを得る。ピボットは、スイープ動作が適用される行列の特定の対角成分に相当する。そして、実施形態は、M個のマッパーにおいて並列にローカル回帰モデルを見出し、1つのリデューサーを用いてそれらのマッパーからの結果を組み合わせてグローバル回帰モデルを見出す。図1は、いくつかの実施形態に従ったマップ・リデュース・フレームワーク100を示す。いくつかの実施形態において、計算アーキテクチャを用いて、マップ・リデュース・フレームワーク100における全ての可能な回帰モデルを計算する。マップ・リデュース・フレームワーク100は、入力としてグローバル検索空間110を受信し、グローバル回帰モデル160を出力する。マップ・リデュース・フレームワーク100は、マッパー120、130、...140、およびリデューサー150を含む。グローバル検索空間110は、複数のローカル検索空間に分割される。各マッパー120、130、...140は、1つのローカル検索空間を受信し、1つのローカル回帰モデルをリデューサー150に出力する。リデューサー150は、各マッパー120、130、...140からのローカル回帰モデルを用いてグローバル回帰モデルを識別し、これがグローバル回帰モデル160として出力される。
実施形態は、回帰モデル解決策を講じるにあたってマップ・リデュース・フレームワーク100を活用する。また、実施形態はスイープ動作を用いる。
スイープ動作
単に実施形態の理解を深めるためであるが、ここでスイープ動作の特性について述べる。
回帰モデルにおいて、予測子は、連続フィールドまたはカテゴリ・フィールドである場合がある。カテゴリ・フィールドは、有限数の名目カテゴリまたは序数カテゴリを値として有するものと呼ぶことができる。パラメータ化技法に基づいて、J個のカテゴリを有する各カテゴリ予測子をJ個のダミー変数によって拡張することができ、従って、回帰モデルにおいては1つのカテゴリ予測子に対応するJ個の係数がある。
予測子X行列にk個の効果(effects)があると仮定する。k個の効果は連続予測子およびカテゴリ予測子の双方を含み得るので(実際、k個の効果の一部はいくつかの予測子の組み合わせであり得るが、簡単にするためにかつ一般性を失うことなく、それらは除外されるので、k個の効果はk個の予測子とする)、回帰モデルにおける係数の数、例えばpは、kよりも大きくなり得る。標準方程式
Figure 2016507093

に基づいて、回帰係数
Figure 2016507093

には閉形式解がある。ここでYはn×1ベクトルであり、nはレコード数であり、Xはk個の予測子から導出されたn×p行列であり、
Figure 2016507093

は係数推定値のp×1ベクトルである。
Figure 2016507093

を得るための技法がスイープ動作である。スイープ動作は以下のように機能する。すなわち、交差積(p+1)×(p+1)行列
Figure 2016507093

で、第1のp個のピボットまたはピボット要素についてスイープを行い、その結果が以下である。
Figure 2016507093

ここで、残差平方和(SSE)は、回帰モデルを選択する際に用いる基準の計算において通常必要となる残差平方和である。一般に、第1のp個のピボット要素のいずれかのサブセットについてCをスイープすると、Xのそのサブセットに対するYの回帰に相当する回帰係数の推定値が得られる。
スイープ動作には2つの特性がある。すなわち、(1)可逆的である(同一のピボット要素を用いた2回の連続スイープはヌル動作と同じである)、および(2)可換である(r番目のピボット要素に、次いでs番目のピボット要素についてスイープを行うと、逆の順序のスイープと同じ結果が得られる)。これらの特性を利用して、(連続予測子について)特定の行および列に、または(カテゴリ予測子に対応するJ個のダミー変数の集合について)Cの特定のJ個の行および列の集合に、スイープ動作をそれぞれ適用すると、適合した回帰モデルに予測子が導入されるか、または、予測子がすでにモデル内に存在する場合は予測子が除去される。すなわち、1つの予測子に対する各スイープ動作によって1つの回帰モデルが得られる。いくつかの実施形態では、以下のように、2k−1のスイープ動作のシーケンスによって、可能な2k−1の回帰を得ることができる。
・k=1である場合、2−1=1であり、第1の予測子に対応するピボット要素(複数のピボット要素)についてスイープを行うことで単一の回帰を実行する。ピボットのシーケンスはS={1}である。
・k=2である場合、第1の予測子についてスイープを行うことで第1の回帰を実行する。そして、第2の予測子についてスイープを行うと、第1および第2の予測子の双方を含む新しい回帰が生成される。次に再び第1の予測子についてスイープを行うと、第1の予測子は削除され、第2の予測子のみを含む回帰が生成される。ピボットのシーケンスS={121}についてC行列をスイープすることで、全ての2−1=3の回帰モデルが生成される。
・k=3である場合、シーケンスSにおいて第1の回帰が3つ得られる。そして、第3の予測子についてスイープを行うと、シーケンスSにより生成された回帰に第3の予測子を追加した新しい回帰が生成される。シーケンスSは、第3の予測子を含まない3つの別個の回帰を生成したので、シーケンスSを繰り返すと、第3の予測子を含む別の3つの回帰が生成される。次いで、ピボットのシーケンスS={S,3,S}={1213121}についてC行列をスイープすることで、2−1=7の回帰モデルが生成される。
・第1のk−1個の予測子のシーケンスSk−1で、k−1個の予測子に対する全ての2k−1の可能な回帰が得られると想定する。そして、k番目の予測子についてスイープを行うと、シーケンスSk−1により生成された回帰モデルにk番目の予測子を追加した新しい回帰モデルが生成される。次いでシーケンスSk−1を繰り返すと、k番目の予測子を含む別の2k−1の別個の回帰モデルが生成される。従って、ピボットのシーケンスS={Sk−1,k,Sk−1}についてC行列をスイープすることで、2k−1の回帰モデルが生成される。
図2は、いくつかの実施形態に従った回帰モデルのシーケンスを表200で示す。図2において、Sは、ピボットとされる予測子の指数を識別する。図2において、3列目の各カッコは回帰モデルを表す。カッコ内の数は、その回帰モデルに含まれる予測子を示す。
表200から、4個の予測子のシーケンスは、S4={121312141213121}(2列目)と表され、15の回帰モデルを生成する(3列目)(インターセプトのみの回帰モデルが含まれる場合は回帰モデルは16である)。検索シーケンスのサイズは15である。
シーケンスS、すなわち
Figure 2016507093

等を構築するための1つの技法は帰納的プロセスであり、2−1の回帰モデルを順次生成することができる。一方、シーケンスSをいくつかのサブシーケンスに分解可能であることは容易に理解でき、その後に各サブセットから2−1の回帰モデルのサブセットを生成することができる。例えば、シーケンス
Figure 2016507093

を4個のサブシーケンスまたはローカル・シーケンスに分解すると、{121}、{3121}、{34121}、{4121}であり、これら4つのサブシーケンスによって15の回帰モデルを並列に生成することができる。
回帰モデル
スイープ動作を用いて回帰モデルを発生させるため、実施形態は最初に、XおよびYに基づいた(p+1)×(p+1)行列である交差積行列Cを計算する。この計算は、大きい分散データ・ソースのためのマップ・リデュース・フレームワークにおいて行われる。次いで、2の回帰モデルの計算により、C行列に繰り返しスイープ動作を適用する。このような計算はデータ・ソースに基づかないので、典型的なマップ・リデュース・ジョブではない。従って実施形態は、2の回帰モデルを計算するために、マップ・リデュース・フレームワークにおける並列計算の潜在機能を活用する。
実施形態では、(1)クラスタ内の利用可能ノードを充分かつ効果的に利用するために適正な数のマッパーを指定し、(2)2の回帰モデルのサブセットを正しく実行するために最少量の入力を各マッパーに供給する。
Lは、分散クラスタにおいて利用可能な中央処理装置(CPU)コアの数であり、既知であると仮定すると、マッパーまたは実際のサブタスクの数Mは、以下の2つのルールに基づいて指定される。
(a)M≦L いくつかの実施形態では、効率を上げるためにこれを用いる。代替的な実施形態では、M>Lを用いる。
(b)M=2、m<k−1 各ローカル検索シーケンスのサイズが2k−mであると、M個のマッパーは2の回帰モデルをカバーすることができる。
典型的なマップ・リデュース・ジョブにおいて、マッパーに対する入力はスプリット/ブロックからのデータであるので、データ・スプリットの数がマッパーの数を決定する。スプリットは、固定サイズの部分に分割される大きいデータセットのサブセットと称することができる。例えば実施形態は、各スプリットに1つのマップタスクを生成し、スプリット内の各レコードでユーザ指定のマップ機能を実行する。いくつかの実施形態では、ほとんどのジョブについて、良好なスプリット・サイズは、Hadoop分散ファイル・システム(HDFS)ブロックのサイズである傾向があり、デフォルトで64MBであるが、これはクラスタのために(全ての新しく生成されたファイルについて)変更したり、各ファイルを生成する際に指定したりすることができる。
ここでの2の回帰モデルの計算は、元のデータ・スプリットに基づいていない。代わりに実施形態は、M行を有する一時的な入力ファイルを生成し、スプリット・サイズを1行のサイズとして構成することでM個のスプリットを生成し、M個のマッパーを導出することによって、M個のマッパーが存在するように制御を行うことができる。
一時的な入力ファイル内の1行の情報は、1つの入力スプリットおよび1つのマッパーに送信される。この行の情報はローカル検索シーケンスを含み、これはマッパーに対して、回帰モデルのシーケンスを得るためにどのようにスイープ動作の順序を適用するかを教える。ローカル検索シーケンスは、マッパーによって異なり、ローカル・シーケンスを組み合わせることで2の可能な回帰モデルが生成されるようになっている。いくつかの実施形態では、異なるマッパーにローカル検索シーケンス全体をそれぞれ送信すると、kが大きい場合はネットワーク・トラフィックが増大する可能性がある。このため実施形態は、異なるマッパーに、各ローカル検索シーケンスの一部分(すなわち先行インデックス・シーケンス)を送信することで、ネットワーク・トラフィックを軽減する。これが実行可能である理由は、ローカル検索シーケンスを2つの部分、すなわち(i)「共通インデックス・シーケンス」および(ii)「先行インデックス・シーケンス」に、更に分解可能であるからである。
共通インデックス・シーケンスは、全てのローカル検索シーケンスについて同一であり、同じ予測子グループ(「共通インデックス予測子」と呼ばれる)に関連付けられているので、共通インデックス・シーケンスは、ネットワークを介して送信されずに、各マッパー内で発生させることができる。
先行インデックス・シーケンスは、ローカル検索シーケンスによって異なり、異なる予測子(「先行インデックス予測子」と呼ばれる)に関連付けられているので、それらの各々は異なるマッパーに送信される。いくつかの実施形態では、先行インデックス・シーケンスは共通インデックス・シーケンスよりも著しく小さいので、(先行インデックス・シーケンスおよび共通インデックス・シーケンスの双方でなく)先行インデックス・シーケンスのみを送信することで、ネットワーク・トラフィックを軽減することができる。
異なるマッパーに送信される個々の情報の他に、入力の第2の部分は、全てのマッパーについて同一であり、交差積行列C、共通インデックス予測子等を含む。共通インデックス・シーケンスは、共通インデックス予測子に基づいて各マッパー内で発生させることができる。
マップ・リデュース・フレームワークを利用する実施形態は、はるかに多くの予測子を用いて全ての可能な回帰モデルを実行するか、または固定数の予測子について性能を向上させることができる。従って、実施形態はスケーラブルであり、予測子の数kが大きい場合に最良回帰モデルを見出す能力が向上する。実施形態は、マッパーの数を制御することで高効率となり、ネットワークを介して伝達する情報のサイズを縮小する。実施形態は、マッパー間に作業負荷を均等に分散することができるので、バランスがとれる。
実施形態は、マップ・リデュース・フレームワーク100内に2の可能な回帰モデルの計算を適合させるために、2つの部分から成る。すなわち、(1)M=2のマッパーの各々が、2の可能な回帰モデルのサブセットを実行するための命令を受信し、ローカル回帰モデルをリデューサーに送信する、および(2)リデューサーが、(例えば分散ファイル・システムに)出力するグローバル回帰モデルを見出すために、ローカル回帰モデルを選択する。回帰モデルは、他のいずれかの予測モデルと同様、ターゲットと予測子集合との間の関係の予測または発見あるいはその両方、および解釈を行うために用いることができる。
実施形態は、マップ・リデュース・フレームワーク100および分散ファイル・システム(例えばHadoop分散ファイル・システム(HDFS)によって実施することができる。図3は、いくつかの実施形態に従った、可能な回帰モデルを計算するためのプロセス全体を示す。いくつかの実施形態では、全ての可能な回帰モデルを計算する。図3は、ローカル・ファイル・システム300、分散ファイル・システム310、およびマップ・リデュース・ジョブ330を含む。
ローカル・ファイル・システム300は、(1)先行インデックス・シーケンスである固有入力情報、(2)共通インデックス予測子、C行列、および他の入力(例えばレコード数)を含む共有入力情報、ならびに(3)分散ファイル・システム310内で共有入力情報の位置を識別する共有入力情報に対する参照、を記憶している。いくつかの実施形態では、この参照はURI(Uniform Resource Identifier)であり、分散ファイル・システム310内で共有入力情報の名前またはリソースを識別するために用いられる文字列である。分散ファイル・システム310は、(1)スプリット1、スプリット2、...スプリットM(M行)を含む一時ファイル(各スプリットが固有先行インデックス・シーケンスおよび共有入力情報に対する参照を含む)、ならびに(2)ローカル・ファイル・システムからアップロードされた共有入力情報、を含む。マップ・リデュース・ジョブ330は、マッパー1 332、マッパー2 334、...マッパーM 336、およびリデューサー338を含む。
共有入力情報は、ローカル・ファイル・システム300から分散ファイル・システム310にアップロードされる。同時に、分散ファイル・システム内の共有入力情報に対する参照が記録される。次いで、分散ファイル・システム310において、M行を有する一時ファイルが生成される。一時ファイルの1行内に、1つの先行インデックス・シーケンスおよび共有入力情報に対する参照が書き込まれる。一時ファイルの1行のサイズとして1つの入力スプリットのサイズが構成され、これは、指定数(M)のマッパーによるマップ・リデュース・ジョブを駆動するために用いられる。従って、1行は1つのスプリットおよび1つのマッパーに対応する。マッパー332、334、...336が駆動されると、マッパー332、334、...336は、各入力スプリット内の内容を抽出する。マッパー332、334、...336は、参照によって分散ファイル・システム310内の共有入力情報の位置を識別し、共有入力情報をそのローカル・ファイル・システムにダウンロードする。固有先行インデックス・シーケンスおよび共有入力情報を用いて、マッパーはローカル検索を実行し、ローカル回帰モデルを発生させ、これがリデューサー338に出力される。リデューサー338は、マッパー332、334、...336からのローカル回帰モデルからの結果を比較し、グローバル回帰モデルを分散ファイル・システム350に出力する。いくつかの実施形態では、分散ファイル・システム310、350は同一の分散ファイル・システムであり、他の実施形態では、分散ファイル・システム310、350は異なる分散ファイル・システムである。
いくつかの実施形態においては、参照を一時ファイルに記憶する必要はない。いくつかの実施形態では、参照は、構成のインスタンスにプロパティとして記憶し、Hadoopフレームワーク内の構成アプリケーション・プログラミング・インタフェース(API)を介して各マッパーに渡すことができる。次いで、全てのマッパーがこの参照を受信し、HDFSにおいてどこで共有入力情報を抽出するかを知る。他の実施形態では、参照は記憶され、マップ・リデュース・フレームワークのための一時ファイルを介して渡される。
分散クラスタにおいて利用可能なCPUコアの数Lが与えられると共に、k個の予測子の指数(1、...、kと表される)が与えられると、マッパーの数Mは、M≦LおよびM=2と指定することができる(m<k−1)。k個の予測子は、m個の先行インデックス予測子およびk−m個の共通インデックス予測子に分割することができる。2のサイズのグローバル検索シーケンスは、2k−mのサイズのM個のローカル検索シーケンスに分解されて、各マッパーにおいて2k−m個の回帰モデルを生成する。
典型的なマップ・リデュース・ジョブにおいて、入力は分散ファイル・システムに記憶されたデータセットである。多数のノードに計算を分散させるため、データは多数のピースに分割され、各ピースは入力スプリットと呼ばれる。デフォルトの入力スプリット・サイズは、分散ファイル・システムのデフォルトのブロック・サイズである。このため、マッパーの数は、入力データセットのデータ・ブロック数によって決定される。換言すると、マッパーの数は入力データのボリュームによって決定される。すなわち、データセットが大きくなればなるほどマッパーの数が増える。
実施形態では、2の回帰モデルの計算は元のデータ・スプリットに基づかないので、実施形態は、駆動される指定マップ・リデュース・ジョブにおけるマッパーの数を制御するために、M行の一時入力ファイルを生成し、入力スプリット・サイズを1行のサイズとして再構成する。1行の内容を1つのマッパーに送信して、2k−mの回帰モデルを生成する。行の内容の候補として当然のものはローカル検索シーケンスである。しかしながら、kが大きいと、ローカル検索シーケンスのサイズ(2k−m)はまだ大きいことがある。従って実施形態は、各行にローカル検索シーケンスの小さい一部分(すなわちmの先行インデックス予測子に基づいて発生させた先行インデックス・シーケンス)を含む。ローカル検索シーケンスの他の部分(すなわちk−mの共通インデックス予測子に基づいて発生させた共通インデックス・シーケンス)は、各マッパー内で発生させる。一般に、kが大きい場合、先行インデックス・シーケンスのサイズ(m)は共通インデックス・シーケンスのサイズ(2k−m−1)より小さく、従って、先行インデックス・シーケンスのみを異なるマッパーに送信することで、ネットワーク・トラフィックが著しく軽減する。
マップ・リデュース・ジョブを駆動する前に、先行インデックス・シーケンスおよび共有入力情報に対する参照を、M行の単一ファイルに書き込む。各行が、1つの先行インデックス・シーケンスおよび共有入力情報に対する参照を表す。それらの先行インデックス・シーケンスのための空間を小さいサイズにすることで、各行の長さを同一に保つ。ファイルは、マッパーの入力として分散ファイル・システムにセーブされる。入力スプリット・サイズは1行のサイズとして構成されるので、M行の入力ファイルからM個のスプリットを導出することができ、M個のスプリットはM個のマッパーを決定する。更に、1行に対応するように入力キー/値を定義する。キーは行のオフセットであり、値はファイル内の対応する行の内容である。従って、各マッパーは1つのキー/値対を受信し、次いで1つの固有先行インデックス・シーケンスおよび共有入力情報に対する参照を抽出する。
入力の第2の部分は、マッパーのための共有(同一)入力情報である。入力の第2の部分は、(1)ピボットとしての先行インデックス・シーケンスおよび共通インデックス・シーケンスに従ってC行列にスイープ動作を適用することによって異なる回帰モデルを発生するために用いられるC行列、(2)(SSEに加えて)基準値を計算するために用いられるレコードの数、ならびに(3)マッパー内で共通インデックス・シーケンスを発生するために用いられる共通インデックス予測子のリスト、を含む。共有入力情報がネットワーク内で正しく伝送されることを保証するため、共有入力情報は、ファイル(またはファイル・ストリーム)内にシリアル化し、分散ファイル・システムに記憶することができる。次いで、全てのマッパーは、共有入力情報に対する参照によって、分散ファイル・システムからマッパー内のローカル・システムに共有入力情報をコピーすることができる。
入力のこれら2つの部分を用いて、各マッパーは以下のタスクを実行する。すなわち、(1)そのマッパーに割り当てられた先行インデックス・シーケンス全体についてC行列にスイープ動作を適用して、1つの回帰モデルと、結果として得られるC行列(C*である)とを生成する。(2)共通インデックス予測子に基づいて共通インデックス・シーケンスを発生させる。(3)順次、共通インデックス・シーケンスに従ってC*行列内のピボットについてスイープして、2k−m−1の回帰モデルを生成する。(4)2k−mの回帰モデルから基準値に基づいてローカル回帰モデルを見出す(例えば基準が自由度調整済み決定係数である場合、最大の自由度調整済み決定係数を有するローカル回帰モデルを選択する)。(5)ローカル回帰モデルにキーを割り当て、ローカル回帰モデルの結果を値として指定する。(6)出力キー/値の対を介してローカル回帰モデルをリデューサーに渡す。
リデューサーは、入力キー/値の対を介してローカル回帰モデルを集めて、M個の回帰モデル間でグローバル回帰モデルを見出し、このグローバル回帰モデルを、出力キー/値の対を介して分散ファイル・システムにエクスポートする。マッパー、リデューサー、および分散ファイル・システム間で回帰モデルを受け渡しするため、マッパーの出力キー/値の対ならびにリデューサーの入力および出力キー/値の対は同じタイプとして定義することができる。1つのキー/値の対は1つの回帰モデルに対応し、キーは1つの回帰モデルの識別子(ID)として定義され、値は回帰モデルの関連する結果として定義される。
分散コンピューティングも並列コンピューティングも行わずに可能な回帰モデルを実行する時間計算量(time complexity)は、k個の予測子でO(2)である。一方、M個のマッパーを用いた同じ計算の時間計算量は約O(2k−m)であり、リデューサーの時間計算量は約O(M)である。従って、マップ・リデュース・フレームワークにおける全体的な時間計算量は、約O(2k−m)+O(M)≒O(2k−m)である。マッパーの数が増えれば増えるほど、性能は向上する。
m個の先行インデックス予測子およびk−m個の共通インデックス予測子を含むk個の予測子があると仮定する。事前順序付け(pre-ordering)動作を実行する。すなわち、まず、連続予測子(1つのカテゴリを有する)を選択し、次いで、カテゴリ予測子をカテゴリ数の昇順にソートする。一般性を失うことなく、実施形態は、k個の事前順序付け予測子の指数を1、...、kに割り当てるので、予測子kはカテゴリ数が最大となる。更に、最初のk−m個の事前順序付け予測子を共通インデックス予測子に割り当て、最後のm個の予測子を先行インデックス予測子に割り当てる。この動作によって、2の回帰モデルを実行するために用いるスイープ動作数が最小限に抑えられることが確実となる。
M=2個のマッパーを指定すると仮定する。2のサイズのグローバル検索シーケンスは、2k−mのサイズのM個のローカル検索シーケンスに分解され、各ローカル検索シーケンスは、更に2つの部分に分解される。すなわち、(1)k−m個の共通インデックス予測子に関連付けられ、全てのマッパーについて同一である「共通インデックス・シーケンス」、および(2)m個の先行インデックス予測子に関連付けられ、マッパーによって異なる「先行インデックス・シーケンス」である。上述したスイープ動作のための帰納的技法に基づいて、共通インデックス・シーケンスはk−m個の共通インデックス予測子から導出され、2k−m−1のサイズのSk−mである。先行インデックス・シーケンスの集合は、全てのl(l=0、...、m)についてm個の先行インデックス予測子のlの組み合わせの集合として構築されるので、それらは2となり、M=2個のマッパーに送信される。このため、任意の先行インデックス・シーケンスの最大サイズはmであり、kが大きい場合は共通インデックス・シーケンスのサイズ(2k−m−1)より小さい。そして、先行インデックス・シーケンスをマッパーに送信し、各マッパー内で共通インデックス・シーケンスを発生させることによって、ネットワーク・トラフィックを軽減することができる。
図4は、いくつかの実施形態に従ったローカル・シーケンスの一例を示す。単に理解を深めるため、本明細書に一例を提供する。この例は、5個の予測子および4個のマッパーを有し、ローカル検索シーケンス、先行インデックス・シーケンス、および共通インデックス・シーケンスについて示すと共に、それらの対応するサイズを示す。
実施形態を用いず、並列コンピューティングを利用しない状況において、5個の予測子があり、グローバル検索シーケンスを、{1213121412131215121312141213121}として発生させて、32=2の回帰モデルを順次生成する。
図4において、パネル400は並列コンピューティングを利用する状況を示す。5個の予測子は事前順序付けされ、先行インデックス予測子4、5と共通インデックス予測子1、2、3とに分割されている。先行インデックス・シーケンス集合は、先行インデックス予測子4および5のうち0個、1個、および2個の組み合わせの集合である。すなわち、{0}(スイープ動作を行わないことを意味する)、{4}、{5}、および{45}であるので、最大サイズは2である。先行インデックス・シーケンスは、{00}{40}{05}{45}と書かれ、一次入力ファイルの4つの行で同一のサイズを保つことができる。共通インデックス・シーケンスは、S={1213121}であるので、サイズは7である。次いで4個のローカル・シーケンスを構築する。各ローカル・シーケンスは、1つの先行インデックス・シーケンス(1つの回帰モデルを生成する)および共通インデックス・シーケンス(7個の回帰モデルを生成する)を有し、4個のローカル・シーケンスが32の回帰モデルを並列に生成するようになっている。
先行インデックス・シーケンスまたは共通インデックス・シーケンスにおける1つの値は、(連続予測子について)特定の行および列に、または(カテゴリ予測子に対応するJ個のダミー変数の集合について)特定のJ個の行および列の集合に、スイープ動作を適用することを示す。4個のローカル・シーケンスにおいて、共通インデックス予測子1、2、および3は、それぞれ16回、8回、および4回現れるので、それらにスイープ動作はそれぞれ16回、8回、および4回適用される。先行インデックス予測子4および5は2回現れ、2回スイープされる。予測子1が連続予測子である場合、スイープ動作数は16である。しかし、予測子1がJ個のカテゴリを有するカテゴリ予測子である場合、その数は16Jになる。このように、事前順序付け予測子動作を実行して、スイープ動作の合計数が最小限であり、ある程度の計算時間を節約可能であることを保証する。
図4の例は、共通インデックス・シーケンスのサイズ(2k−m−1)が通常は先行インデックス・シーケンスのサイズ(m)より大きいことを明示している。また、図4は、先行インデックス・シーケンス(および共通インデックス・シーケンスでない)が、M行の一時入力ファイルに含まれて異なるマッパーに送信された場合、ネットワーク・トラフィックが軽減される(共通インデックス・シーケンスを送信しないので)ことを示す。更に図4の例に示すように、事前順序付け動作が、実行するスイープ動作数を最小限に抑えることができる。
実施形態は、マップ・リデュース特性を利用して、(a)マップ・リデュース・フレームワークを構成するためのM行の入力ファイルを生成して、この入力ファイルをM個の入力スプリットに設定し、次いでこれを用いて指定されたマップ・リデュース・ジョブのためのM個のマッパーを導出し、(b)入力を、2つの部分、すなわち、キー/値の対によってパースされて正しい命令が各マッパーに送信されるようになっている、共有入力情報に対する参照と一緒になった個別情報と、ファイルにシリアル化されることで情報がネットワークを介してマッパーによって正しく引き出されるようになっている共有情報と、に分割し、更に、(c)各マッパーの出力ならびにリデューサーの入力および出力のためのキー/値の対を同じタイプで定義することで、選択された回帰モデルをネットワーク内で正しく伝達可能とする。
実施形態は、マッパーに先行インデックス・シーケンスを送信するが、共通インデックス・シーケンスは送信しないので、(a)先行インデックス・シーケンス集合が、全てのl(l=0、...、m)についてm個の先行インデックス予測子のl個の組み合わせの集合である場合、(b)いくつかのカテゴリ予測子が存在する場合に事前順序付け動作によってカテゴリ予測子を先行インデックス予測子に割り当て、最小数のスイープ動作を実行することを保証した場合、ネットワーク・トラフィックを軽減することができる。
図5は、いくつかの実施形態に従ったマップ・リデュース・フレームワーク実施の一例を示す。図5は、図4を参照して検討したものと同じ例を参照して検討する。この場合も、この例では、5個の予測子および4個のマッパーがあると想定する。図5は、ローカル・ファイル・システム500、分散ファイル・システム510、およびマップ・リデュース・ジョブ530を含む。
予測子1、2、および3は共通インデックス予測子であり、対応する共通インデックス・シーケンスは{1213121}である。図5では、共通インデックス予測子のみを4個のマッパー全てに送信し、次いで共通インデックス予測子に基づいて各マッパーによって共通インデックス・シーケンスを発生させる。
予測子4および5は先行インデックス予測子であるが、対応する先行インデックス・シーケンスは異なるので、マッパーに送信される入力が異なるようになっている。図5のマップ・リデュース・フレームワークでは、先行インデックス・シーケンスは{0}、{4}、{45}、{5}であり、それらはファイル内に4行として含まれてマッパーに送信され、次いで各マッパーは1つの特定のシーケンスに対してC行列をスイープして、結果としてC*行列を得る。
マップ・リデュース・フレームワークでは、各マッパーは8個の回帰モデルを生成し、1つのローカル回帰モデルを選択し、次いで4個のマッパーからのローカル回帰モデルがリデューサーに送信され、リデュースサーはグローバル回帰モデルを選択し、これが分散ファイル・システムに送信される。
マップ・リデュース・フレームワークは、2の回帰モデルを実行するためにクラスタ内でいかなる数のノードも利用可能であるので、スケーラブルである。
図6Aおよび図6Bは、マップ・リデュース・フレームワークにおいて並列計算の潜在能力を利用するために、マップ・リデュース・フレームワークを用いて元のデータセットにタスクを実行するための動作をフロー図で示す。いくつかの実施形態では、タスクは、C行列をスイープして全ての可能な2の回帰モデルを計算することによって線形回帰モデルを選択することである。このような実施形態では、C行列が元のデータセットである。
制御はブロック600において開始し、元のデータセットの少なくとも1つの特徴に基づいて、タスクの潜在的サブタスクの最大数Nを計算する。いくつかの実施形態では、タスクの潜在的サブタスクの最大数はN=2である。可能な回帰モデルを計算するための元のデータセットの特徴は、kに関連するC行列(元のデータセット)の次元である。C行列はXおよびYに基づいて構築され、Xにおける予測子数がkであるからである。
ブロック602において、利用可能なマッパーの数Lを決定する。いくつかの実施形態では、数Lはクラスタ内で利用可能なCPUコアの数である。
ブロック604において、LおよびNに基づいて、実際のサブタスクTの数Mを計算する。ここで、各サブタスクはT、...、Tとして識別される。各サブタスク(T)は、マッパーが2k−mの回帰モデル間でローカル線形回帰モデルを見出そうとすることにより実行される。
いくつかの実施形態では、実際のサブタスクの数MはM=2であり、m<k−1であるので、M<N(=2)である。更に、実際のサブタスクの数Mは、効率を上げるために、マッパーの数L以下に指定される(すなわちM≦L)。従って、ほとんどの状況では、M、L、およびN間の関係は、M≦L<Nである。
しかしながら、いくつかの実施形態では、実際のサブタスクの数Mがマッパーの数Lよりも大きい場合がある(すなわちM>L)。このような実施形態では、CPUがそれらのサブタスクの各々の処理に利用可能となるまで、いくつかのサブタスクはキューで待機する場合がある。
ブロック606において、処理データセットを生成する。この場合データセットは、R、...、Rとして識別されるM個のレコードを含み、レコードRの各々はサブタスクTに固有のデータを含み、レコードRの各々は実際のサブタスクの全てに適用可能なデータに対する参照を含み、元のデータセットからの少なくとも一部の情報を含む。いくつかの実施形態では、処理データセットは一時入力ファイルであり、このファイルはR、...、Rとして識別されるM行を含み、各レコードRは各サブタスクTについての別個の先行インデックス・シーケンス(最大サイズはm)を含み、各レコードRは、C行列に対する参照、(k−mの)共通インデックス予測子のリスト、および全てのサブタスクに適用可能な他の入力を含む。いくつかの実施形態では、参照は、Hadoopフレームワークの構成APIを介して各マッパーに渡すことができる。
ブロック608において、マップ/リデュース・フレームワークを構成して、設定した処理データの1つのレコードRを処理のためにキー/値の対を介して各マッパーに送信する。
ブロック608(図6A)から、処理は続いてブロック610に移る(図6B)。
ブロック610において、タスクをマップ/リデュース・フレームワークにサブミットし、各マッパーは、処理データセットのレコードR内のデータに基づいて割り当てられたサブタスクTを実行して、出力(例えばローカル回帰モデル)を発生する。いくつかの実施形態では、サブタスクTはマップ/リデュース・フレームワークにおいて実行され、各マッパーはレコードRを取得してサブタスクTを実行するが、この際に、(a)先行インデックス・シーケンスに対してC行列にスイープ動作を適用する、(b)共通インデックス予測子に基づいて共通インデックス・シーケンスを発生する、(c)共通インデックス・シーケンスに対してスイープ動作を適用する、そして(d)ローカル回帰モデルを見出す。
ブロック612において、リデューサーは、マッパーからの出力を集約して、タスク結果(例えばグローバル回帰モデル)を決定する。タスク結果は、異なる実施形態において様々に変動する可能性がある。例えばタスク結果は、解決しようとする問題によって単純または複雑なものであり得る。いくつかの実施形態では、M個のローカル回帰モデルをマッパーからリデューサーに送信してグローバル回帰モデルを識別する。
クラウド・コンピューティング
本開示はクラウド・コンピューティングに関する詳細な記述を含むが、本明細書に述べる教示の実施はクラウド・コンピューティング環境に限定されないことは予め理解されるであろう。本発明の実施形態は、現在既知であるかまたは今後開発される他のいかなるタイプのコンピューティング環境とも関連付けて実施することができる。
クラウド・コンピューティングは、サービス配信の回帰モデルであり、構成可能コンピューティング・リソースの共有プール(例えばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、記憶装置、アプリケーション、仮想マシン、およびサービス)に対して便利なオンデマンド・ネットワーク・アクセスを可能とし、管理上の労力またはサービス・プロバイダとの相互作用を最小限に抑えながら、迅速にプロビジョニング(provision)およびリリースすることができる。このクラウド回帰モデルは、少なくとも5つの特徴、少なくとも3つのサービス回帰モデル、および少なくとも4つの展開回帰モデルを含むことができる。
特徴は以下の通りである。
オンデマンド・セルフサービス:クラウド消費者は、必要に応じて自動的に、サーバ時間およびネットワーク記憶装置等のコンピューティング機能を一方的にプロビジョニングすることができ、サービス・プロバイダとの人の相互作用は必要ない。
広範なネットワーク・アクセス:機能は、ネットワークを介して利用可能であり、異種のシック(thick)またはシン(thin)・クライアント・プラットフォーム(例えば移動電話、ラップトップ・コンピュータ、およびPDA)による使用を推進する標準的な機構を介してアクセスされる。
リソースのプール:プロバイダのコンピューティング・リソースはプールされて、マルチテナント回帰モデルを用いて多数の消費者に供給され、異なる物理リソースおよび仮想リソースが需要に応じて動的に割り当ておよび再割り当てされる。一般に消費者は提供されるリソースの正確な位置について制御しないし知ることもないが、もっと高い抽象レベルでは位置を指定可能であり得るという点で、位置独立の感覚がある。
素早い順応性:機能は、場合によっては自動的に、素早くかつ順応性高くプロビジョニングして迅速にスケールアウトし、素早くリリースして迅速にスケールインすることができる。消費者にとって、プロビジョニングに利用可能な機能は無限のように見えることが多く、いつでもいかなる量でも購入することができる。
測定されたサービス:クラウド・システムは、サービスのタイプ(例えば記憶装置、処理、帯域幅、およびアクティブなユーザ・アカウント)に適した一定の抽象レベルで計測機能を活用することで、リソース使用を自動的に制御し最適化する。リソース使用を監視、制御、および報告することで、利用されたサービスのプロバイダおよび消費者の双方に透明性を与えることができる。
サービス回帰モデルは以下の通りである。
サース(SaaS:Software as a Service):消費者に提供される機能は、クラウド・インフラストラクチャ上で動作しているプロバイダのアプリケーションを用いることである。アプリケーションは、ウェブ・ブラウザ等のシン・クライアント・インタフェース(例えばウェブ・ベースの電子メール)を介して様々なクライアント・デバイスからアクセス可能である。消費者は、ネットワーク、サーバ、オペレーティング・システム、記憶装置、または個々のアプリケーション機能をも含めて、基礎にあるクラウド・インフラストラクチャを管理することも制御することもないが、例外的にあり得るのは、限られたユーザ固有のアプリケーション構成設定である。
パース(PaaS:Platform as a Service):消費者に提供される機能は、プロバイダによりサポートされるプログラミング言語およびツールを用いて生成された、消費者が生成または取得したアプリケーションを、クラウド・インフラストラクチャ上に展開することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、または記憶装置を含む、基礎にあるクラウド・インフラストラクチャを管理することも制御することもないが、展開したアプリケーションを制御し、場合によってはアプリケーション・ホスティング環境構成も制御する。
イアース(IaaS:Infrastructure as a Service):消費者に提供される機能は、消費者が、オペレーティング・システムおよびアプリケーションを含み得る、任意のソフトウェアを展開および実行することができる処理、記憶装置、ネットワーク、および他の基本的なコンピューティング・リソースをプロビジョニングすることである。消費者は、基礎にあるクラウド・インフラストラクチャを管理することも制御することもないが、オペレーティング・システム、記憶装置、展開したアプリケーションを制御し、場合によってはネットワーク・コンポーネント(例えばホスト・ファイアウォール)の選択において限られた制御を有する。
展開回帰モデルは以下の通りである。
プライベート・クラウド:クラウド・インフラストラクチャは1つの組織のためにのみ操作される。これは、その組織または第三者によって管理することができ、構内または構外に存在し得る。
コミュニティ・クラウド:クラウド・インフラストラクチャはいくつかの組織によって共有され、共通の関心事(例えば任務、セキュリティ要求、政策、およびコンプライアンスの問題)を持つ特定のコミュニティをサポートする。これは、その組織または第三者によって管理することができ、構内または構外に存在し得る。
パブリック・クラウド:クラウド・インフラストラクチャは、一般大衆または大きい業界団体に利用可能とされ、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合であり、独自のエンティティのままであるが、データおよびアプリケーションのポータビリティを可能とする標準化技術または独自の技術によって結合される(例えば、クラウド間でのロード・バランシングのめのクラウド・バースト(cloud bursting))。
クラウド・コンピューティング環境はサービス指向型であり、ステートレス(statelessness)、低結合、モジュール性、および意味相互運用性に焦点を当てている。クラウド・コンピューティングの中核は、相互接続されたノードのネットワークを含むインフラストラクチャである。
ここで図7を参照すると、クラウド・コンピューティング・ノードの一例の概略が示されている。クラウド・コンピューティング・ノード710は、適切なクラウド・コンピューティング・ノードの一例に過ぎず、本明細書に記載する本発明の実施形態の使用または機能性の範囲について限定を示唆することは意図していない。ともかく、クラウド・コンピューティング・ノード710は、上述の機能性のいずれも実施または実行あるいはその両方を行うことができる。
クラウド・コンピューティング・ノード710には、コンピュータ・システム/サーバ712があり、これは多数の他の汎用または特殊用途コンピューティング・システム環境または構成と共に動作する。コンピュータ・システム/サーバ712と共に用いるのに適切であり得る周知のコンピューティング・システム、環境、または構成あるいはそれら全ての例は、限定ではないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルド・デバイスまたはラップトップ・デバイス、マルチプロセッサ、システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラマブル家庭用電子機器、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記のシステムまたはデバイスのいずれかを含む分散型クラウド・コンピューティング環境等を含む。
コンピュータ・システム/サーバ712は、コンピュータ・システムによって実行される、プログラム・モジュール等のコンピュータ・システム実行可能命令の一般的な状況で記述することができる。一般に、プログラム・モジュールは、特定のタスクを実行するかまたは特定の抽象データ・タイプを実施するルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造等を含むことができる。コンピュータ・システム/サーバ712は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散型クラウド・コンピューティング環境において実現可能である。分散型クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ記憶デバイスを含むローカルおよびリモートの双方のコンピュータ・システム記憶媒体に配置することができる。
図7に示すように、クラウド・コンピューティング・ノード710におけるコンピュータ・システム/サーバ712は、汎用コンピューティング・デバイスの形態で示す。コンピュータ・システム/サーバ712のコンポーネントは、限定ではないが、1つまたは複数のプロセッサまたは処理ユニット716と、システム・メモリ728と、システム・メモリ728を含む様々なシステム・コンポーネントをプロセッサまたは処理ユニット716に結合するバス718と、を含むことができる。
バス718は、多種多様なバス・アーキテクチャのいずれかを用いた、メモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート(AGP)、およびプロセッサまたはローカル・バスを含むいくつかのタイプのバス構造のいずれかの1つまたは複数を表す。限定ではなく一例として、そのようなアーキテクチャは、業界標準アーキテクチャ(ISA:Industry Standard Architecture)・バス、マイクロ・チャネル・アーキテクチャ(MCA)・バス、エンハンストISA(EISA)バス、ベザ(VESA:Video Electronics Standards Association)ローカル・バス、および周辺コンポーネント相互接続(PCI)バスを含む。
コンピュータ・システム/サーバ712は典型的に、多種多様なコンピュータ・システム読み取り可能媒体を含む。そのような媒体は、コンピュータ・システム/サーバ712によってアクセス可能ないずれかの利用可能媒体であればよく、揮発性および不揮発性の媒体、着脱可能および固定(non-removable)の媒体の双方を含む。
システム・メモリ728は、ランダム・アクセス・メモリ(RAM)730またはキャッシュ・メモリ732あるいはその両方等、揮発性メモリの形態のコンピュータ・システム読み取り可能媒体を含むことができる。コンピュータ・システム/サーバ712は更に、他の着脱可能/固定、揮発性/不揮発性のコンピュータ・システム読み取り可能媒体を含んでもよい。一例に過ぎないが、固定の不揮発性磁気媒体(図示せず。典型的には「ハード・ドライブ」と呼ばれる)からの読み取りおよびこれへの書き込みのために、記憶システム734を設けることができる。図示しないが、着脱可能な不揮発性磁気ディスク(例えば「フレキシブルディスク」)からの読み取りおよびこれへの書き込みのための磁気ディスク・ドライブと、CD−ROM、DVD−ROM、または他の光媒体等の着脱可能な不揮発性光ディスクへの読み取りおよびこれへの書き込みのための光ディスク・ドライブと、を設けることができる。そのような例では、各々を1つまたは複数のデータ媒体インタフェースによってバス718に接続することができる。以下で更に図示し記載するように、メモリ728は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールのセット(少なくとも1つ)を有する少なくとも1つのプログラムを含んでもよい。
限定ではなく一例として、メモリ728に、プログラム・モジュール742のセット(少なくとも1つ)を有するプログラム/ユーティリティ740を記憶することができ、更に、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データも記憶することができる。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データの各々、またはそれらの何らかの組み合わせは、ネットワーキング環境の実施を含むことができる。プログラム・モジュール742は一般に、本明細書に記載したような本発明の実施形態の機能または方法あるいはその両方を実行する。
また、コンピュータ・システム/サーバ712は、キーボード、ポインティング・デバイス等の1つまたは複数の外部デバイス714、ディスプレイ724等、ユーザとコンピュータ・システム/サーバ712との相互作用を可能にする1つまたは複数のデバイス、またはコンピュータ・システム/サーバ712が1つまたは複数の他のコンピューティング・デバイスと通信することを可能とするいずれかのデバイス(例えばネットワーク・カード、モデム等)、あるいはそれら全てと通信を行うことができる。このような通信は、入出力(I/O)インタフェース722を介して実行することができる。更に、コンピュータ・システム/サーバ712は、ネットワーク・アダプタ720を介して、ローカル・エリア・ネットワーク(LAN)、一般ワイド・エリア・ネットワーク(WAN)、またはパブリック・ネットワーク(例えばインターネット)あるいはそれら全てのような1つまたは複数のネットワークと通信することができる。図示のように、ネットワーク・アダプタ720は、バス718を介してコンピュータ・システム/サーバ712の他のコンポーネントと通信する。図示しないが、コンピュータ・システム/サーバ712と関連付けて、他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方も使用可能であることは理解されよう。その例は、限定ではないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ記憶システム等を含む。
ここで図8を参照すると、例示的なクラウド・コンピューティング環境850が示されている。図示のように、クラウド・コンピューティング環境850は1つまたは複数のクラウド・コンピューティング・ノード710を含み、これは、クラウド消費者により用いられるローカル・コンピューティング・デバイスと通信を行うことができる。このデバイスは、例えばパーソナル・デジタル・アシスタント(PDA)または携帯電話854A、デスクトップ・コンピュータ854B、ラップトップ・コンピュータ854C、または自動車コンピュータ・システム854Nあるいはそれら全てである。ノード710は、相互に通信を行うことも可能である。それらは、上述したようなプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、もしくはハイブリッド・クラウド、またはそれらの組み合わせ等の1つまたは複数のネットワークに、物理的または仮想的にグループ化(図示せず)することができる。これによって、クラウド・コンピューティング環境850は、インフラストラクチャ、プラットフォーム、またはソフトウェアあるいはそれら全てをサービスとして提供することができ、それらについてクラウド消費者はローカル・コンピューティング・デバイス上にリソースを維持する必要はない。図8に示すコンピューティング・デバイス854A〜854Nのタイプが例示のみを意図していること、更に、コンピューティング・ノード710およびクラウド・コンピューティング環境850がいずれかのタイプのネットワークまたはネットワークアドレス可能接続あるいはその両方を介して(例えばウェブ・ブラウザを用いて)いかなるタイプのコンピュータ化デバイスとも通信可能であることは理解されよう。
ここで図9を参照すると、クラウド・コンピューティング環境850(図8)が提供する機能抽象レイヤ集合が示されている。図9に示すコンポーネント、レイヤ、および機能が例示に過ぎず、本発明の実施形態がこれらに限定されないことは予め理解されるであろう。図示のように、以下のレイヤおよび対応する機能が提供される。
ハードウェアおよびソフトウェア・レイヤ960は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例は、一例ではIBM(R)zSeries(R)システムであるメイン・フレーム、一例ではIBM(R)pSeries(R)システムであるリスク(RISC:Reduced Instruction Set Computer)アーキテクチャ・ベースのサーバ、IBMxSeries(R)システム、IBMBladeCenter(R)システム、記憶デバイス、ネットワークおよびネットワーキング・コンポーネントを含む。ソフトウェア・コンポーネントの例は、一例ではIBM WebSphere(R)アプリケーション・サーバ・ソフトウェアであるネットワーク・アプリケーション・サーバ・ソフトウェア、一例ではIBM DB2(R)データベース・ソフトウェアであるデータベース・ソフトウェアを含む。(IBM、zSeries、pSeries、xSeries、BladeCenter、WebSphere、およびDB2は、世界の多くの管轄区域で登録されたインターナショナル・ビジネス・マシーンズ・コーポレーションの商標である。)
仮想化レイヤ962は抽象レイヤを提供し、ここから以下の仮想エンティティを提供することができる。その例には、仮想サーバ、仮想記憶装置、仮想プライベート・ネットワークを含む仮想ネットワーク、仮想アプリケーションおよびオペレーティング・システム、ならびに仮想クライアントが挙げられる。
一例において、管理レイヤ964は以下に記載する機能を提供することができる。リソース・プロビジョニングは、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソースおよび他のリソースの動的な調達を行う。計測および価格付けは、クラウド・コンピューティング環境内でリソースが利用される際にコスト追跡を行い、これらのリソースの消費について課金または送り状作成を行う。一例では、これらのリソースはアプリケーション・ソフトウェア・ライセンスを含む場合がある。セキュリティは、クラウド消費者およびタスクについてアイデンティティ検証を行い、更にデータおよび他のリソースの保護を行う。ユーザ・ポータルは、消費者およびシステム管理者にクラウド・コンピューティング環境へのアクセスを与える。サービス・レベル管理は、必要なサービス・レベルを満足させるようにクラウド・コンピューティング・リソースの割り当ておよび管理を行う。サービス・レベル合意書(SLA)計画および実行は、SLAに従って、将来の必要性が予測されるクラウド・コンピューティング・リソースのための事前取り決めおよびその調達を行う。
作業負荷レイヤ966は、クラウド・コンピューティング環境を利用することができる機能の例を与える。このレイヤから提供され得る作業負荷および機能の例は、マッピングおよびナビゲーション、ソフトウェア開発およびライフサイクル管理、仮想教室教育配信、データ分析処理、トランザクション処理、ならびに回帰モデルの計算を含む。
従って、いくつかの実施形態において、本明細書に記載した実施形態に従って回帰モデルの計算を実施するソフトウェアまたはプログラムが、クラウド環境におけるサービスとして提供される。
クラウド環境においていくつかの実施形態を実施する。いくつかの代替的な実施形態はクラウド環境では実施されない。
追加の実施形態の詳細
当業者によって認められるように、本発明の態様は、システム、方法、またはコンピュータ・プログラムとして具現化することができる。従って、本発明の態様は、全体的にハードウェアの実施形態、全体的にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、または、ソフトウェアおよびハードウェアの態様を組み合わせた実施形態という形態を取ることができ、それらは全て本明細書において、「回路」、「モジュール」、または「システム」と一般的に称することができる。更に、本発明の態様は、具現化されたコンピュータ読み取り可能プログラム・コードを有する1つまたは複数のコンピュータ読み取り可能媒体(複数の媒体)において具現化されたコンピュータ・プログラムの形態を取ることも可能である。
1つまたは複数のコンピュータ読み取り可能媒体(複数の媒体)のあらゆる組み合わせを利用することができる。コンピュータ読み取り可能媒体は、コンピュータ読み取り可能信号媒体またはコンピュータ読み取り可能記憶媒体とすることができる。コンピュータ読み取り可能記憶媒体は例えば、限定ではないが、電子、磁気、光、電磁、赤外線、または半導体のシステム、装置、デバイス、または前述のもののいずれかの適切な組み合わせとすることができる。コンピュータ読み取り可能記憶媒体の更に具体的な例(非網羅的な列挙)は、以下を含む。すなわち、1つまたは複数のワイヤを有する電気的接続、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、光ファイバ、携帯型コンパクト・ディスク読み取り専用メモリ(CD−ROM)、光記憶デバイス、磁気記憶デバイス、固体メモリ、磁気テープ、または前述のもののいずれかの適切な組み合わせである。この文書の文脈において、コンピュータ読み取り可能記憶媒体は、命令実行システム、装置、またはデバイスによってまたはそれと接続して用いるためにプログラムを含有または記憶することが可能ないずれかの有形の(tangible)媒体とすることができる。
コンピュータ読み取り可能信号媒体は、例えばベースバンドにおいてまたは搬送波の一部として、具現化されたコンピュータ読み取り可能プログラム・コードを有する伝播データ信号を含むことができる。かかる伝播信号は様々な形態のいずれかを取ることができ、それらは限定ではないが、電磁、光、またはそれらのいずれかの適切な組み合わせを含む。コンピュータ読み取り可能信号媒体は、コンピュータ読み取り可能記憶媒体でないが、命令実行システム、装置、またはデバイスによってまたはそれと接続して用いるためにプログラムを伝達、伝播、または転送することが可能ないずれかのコンピュータ読み取り可能媒体とすることができる。
コンピュータ読み取り可能媒体上で具現化されるプログラム・コードは、限定ではないが、無線、有線、光ファイバ・ケーブル、RF等、または前述のもののいずれかの適切な組み合わせを含むいずれかの適切な媒体を用いて伝送することができる。
本発明の態様の動作を実行するためのコンピュータ・プログラム・コードは、Java、Smalltalk、C++等のオブジェクト指向プログラミング言語および「C」プログラミング言語または同様のプログラミング言語等の従来の手順プログラミング言語を含む1つまたは複数のプログラミング言語のいずれかの組み合わせにおいて記述することができる。プログラム・コードは、全体的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンのソフトウェア・パッケージとして、部分的にユーザのコンピュータ上でおよび部分的にリモート・コンピュータ上で、または全体的にリモート・コンピュータもしくはサーバ上で、実行することができる。後者の場合、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含むいずれかのタイプのネットワークを介してユーザのコンピュータに接続することができ、または、接続は、(例えばインターネット・サービス・プロバイダを用いてインターネットを介して)外部コンピュータに対して行うことができる。
本発明の実施形態に従った方法、装置(システム)、およびコンピュータ・プログラムのフローチャート図またはブロック図あるいはその両方を参照して、本発明の実施形態の態様について以下に記載する。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組み合わせは、コンピュータ・プログラム命令によって実施可能であることは理解されよう。これらのコンピュータ・プログラム命令は、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて機械を生成することができ、これによって、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能/行為を実施するための手段を生成するようになっている。
また、これらのコンピュータ・プログラム命令はコンピュータ読み取り可能媒体に記憶することができ、これによって、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスに特定の方法で機能するように指示することができ、これにより、コンピュータ読み取り可能媒体に記憶された命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能/行為を実施する命令を含む製造品を生成するようになっている。
また、コンピュータ・プログラム命令を、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードして、そのコンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作処理(例えば動作またはステップ)を実行させてコンピュータ実施プロセスを生成することができ、これによって、コンピュータまたは他のプログラマブル装置上で実行する命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能/行為を実施するためのプロセスを提供するようになっている。
更に、前述の動作を実施するコードは、ハードウェア論理または回路(例えば集積回路チップ、プログラマブル・ゲート・アレイ(PGA)、特定用途向けIC(ASIC)等)で実施することができる。ハードウェア論理をプロセッサに結合して動作を実行することができる。
明示的に指定する場合を除いて、相互に連通しているデバイスは、相互に連続的に連通している必要はない。更に、相互に連通しているデバイスは、直接にまたは1つまたは複数の媒介部を介して間接的に通信を行うことができる。
相互に連通したいくつかのコンポーネントを有する実施形態の記載は、そのようなコンポーネントが全て必須であることを示唆するわけではない。むしろ、本発明の幅広い可能な実施形態を例示するために、多種多様な任意選択のコンポーネントを記載している。
更に、プロセス・ステップ、方法ステップ、アルゴリズム等は、連続した順序で記載することができるが、そのようなプロセス、方法、およびアルゴリズムは代替的な順序で動作するように構成することも可能である。換言すると、記載され得るステップのいかなるシーケンスまたは順序も、必ずしもそれらのステップをその順序で実行することを要求するわけではない。本明細書に記載するプロセスのステップは、他のいずれの順序の実施においても実行可能である。更に、いくつかのステップは同時に実行される場合もある。
本明細書において単一のデバイスまたは物品を記載する場合、単一のデバイス/物品の代わりに2つ以上のデバイス/物品(それらが共働するものであろうとなかろうと)を使用可能であることは容易に認められよう。同様に、本明細書において2つ以上のデバイス(それらが共働するものであろうとなかろうと)または物品を記載する場合、2つ以上のデバイスもしくは物品の代わりに単一のデバイス/物品を使用可能であること、または示した数のデバイスもしくはプログラムの代わりに異なる数のデバイス/物品を使用可能であることは、容易に明らかとなろう。デバイスの機能性または特性(features)あるいはその両方は、そのような機能性/特性を有すると明示的に記載されていない1つまたは複数の他のデバイスによって代替的に具現化することができる。従って、本発明の他の実施形態は、デバイス自体を含むことは必須ではない。
フロー図に示した動作は、いくつかのイベントが一定の順序で発生することを示す。代替的な実施形態では、いくかの動作は異なる順序で実行されるか、変更されるか、または除去される場合がある。また、動作を上述の論理に追加することができ、その場合も記載した実施形態に適合させることができる。更に、本明細書に記載した動作は順次発生することがあり、または、いくつかの動作は並列処理される場合がある。また、動作は、単一の処理ユニットによってまたは分散型処理ユニットによって実行することができる。
本明細書において用いた用語は、特定の実施形態を記載する目的のためだけのものであり、本発明を限定することは意図していない。本明細書において用いたように、単数形「1つの(a)、(an)、(the)」は、文脈によって明らかに他の場合が示されない限り、複数形を含むことが意図されている。また、「含む(comprises)」または「含んでいる(comprising)」という言葉あるいはその両方は、本明細書において用いられた場合、述べた特性、整数、ステップ、動作、要素、またはコンポーネントあるいはそれら全ての存在を規定するが、1つまたは複数の他の特性、整数、ステップ、動作、要素、コンポーネント、またはそれらのグループあるいはそれら全ての存在または追加を除外するものではないことは、理解されよう。
「一実施形態」、「実施形態」、「複数の実施形態」、「その実施形態」、「それらの実施形態」、「1つまたは複数の実施形態」、「いくつかの実施形態」、および「1つの実施形態」という言葉は、明示的に指定する場合を除いて、「本発明(複数の本発明)の1つまたは複数の(ではあるが全てではない)実施形態」を意味する。
「含んでいる(including)」、「含んでいる(comprising)」、「有している(having)」という言葉およびそれらの変形は、明示的に指定する場合を除いて、「限定ではないが、以下を含む」という意味である。
明示的に指定する場合を除いて、項目の列挙は、それらの項目のいずれかまたは全てが相互に排他的であることを示唆するものではない。
以下の特許請求の範囲における全てのミーンズまたはステップ・プラス・ファンクション要素の対応する構造、材料、行為、および均等物は、具体的に特許請求したような他の特許請求した要素と組み合わせて機能を実行するためのいずれかの構造、材料、または行為を含むことが意図されている。本発明の実施形態の記載は、例示および記述の目的のために提示したが、網羅的であることや、開示した形態に本発明を限定することは、意図していない。本発明の範囲から逸脱することなく、当業者には多くの変更および変形が明らかであろう。実施形態は、本開示の原理および実際的な用途を最良に説明するため、更に、想定される特定の用途に適した様々な変更と共に様々な実施形態に関して当業者が本発明を理解することを可能とするために、選択し記載したものである。
図面におけるフローチャートおよびブロック図は、本発明の様々な実施形態に従ったシステム、方法、およびコンピュータ・プログラムの可能な実施のアーキテクチャ、機能性、および動作を例示する。この点で、フローチャートまたはブロック図における各ブロックは、規定された論理機能(複数の論理機能)を実施するための1つまたは複数の実行可能命令を含むコードのモジュール、セグメント、または一部を表すことができる。また、いくつかの代替的な実施において、ブロックに明記した機能は、図面に明記した順序通りでなく発生する場合があることに留意すべきである。例えば、関与する機能性に応じて、連続して示した2つのブロックは実際には実質的に同時に実行されることがあり、またはブロックは時に逆の順序で実行される場合がある。また、ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組み合わせは、規定された機能もしくは行為を実行する特殊目的ハードウェア・ベースのシステム、または特殊目的ハードウェアおよびコンピュータ命令の組み合わせによって実施可能であることに留意すべきである。
本発明の実施形態の前述の記載は、例示および記述の目的のために提示したものである。網羅的であることや、開示した形態そのものに本発明を限定することは意図していない。上述の教示に照らし合わせて、多くの変更および変形が可能である。実施形態の範囲は、この詳細に記載によって限定されるのではなく、添付の特許請求の範囲によって限定されることが意図される。この明細書、例示、およびデータは、実施形態の構成の製造および使用の完全な記述を提供する。本発明の範囲から逸脱することなく多くの実施形態を生成可能であるので、実施形態は、添付の特許請求の範囲または全ての以降提出される特許請求の範囲およびそれらの均等物において存在する。

Claims (25)

  1. レコードの処理データ集合を生成することであって、前記レコードの各々が、実際のサブタスク集合からの1つのサブタスクに固有のデータを含み、更に、前記実際のサブタスク集合によって共有されるデータに対する参照を含み、前記レコードの数が、前記実際のサブタスク集合内の前記実際のサブタスクの数に相当する、ことと、
    マッパー集合における各マッパーによって、前記処理データ集合の前記レコードの1つを受信することと、
    前記レコードの前記受信した1つを用いて割り当てられたサブタスクを実行して出力を発生させることと、
    単一のリデューサーによって、前記マッパー集合内の各マッパーからの前記出力を集約してタスク結果を決定することと、
    を含むコンピュータ・システムによって実行される方法。
  2. 元のデータセットの少なくとも1つの特徴に基づいて、潜在的サブタスクの最大数を計算することと、
    前記実際のサブタスクの実行に利用可能な前記マッパー集合内のマッパー数と前記潜在的サブタスクの最大数とに基づいて、実行される前記実際のタスク集合内の実際のサブタスク数を計算することと、
    を更に含む、請求項1に記載の方法。
  3. M個の実際のサブタスクとして示される前記実際のサブタスク数を計算することを更に含み、M=2であり、M≦Lおよびm<k−lであり、Lは、前記実際のサブタスクの計算に利用可能な前記マッパー集合内の前記マッパー数であり、kは予測子の数である、請求項2に記載の方法。
  4. 前記予測子を、先行インデックス予測子と共通インデックス予測子とに分割することを更に含む、請求項3に記載の方法。
  5. グローバル検索シーケンスをM個の多数のローカル検索シーケンスに分割することと、
    前記ローカル検索シーケンスの各々について、前記先行インデックス予測子から先行インデックス・シーケンスを識別することと、
    M個のレコードを用いて一時入力ファイルを生成することと、を更に含み、前記レコードの各々が先行インデックス・シーケンスを含み、前記レコードの各々が、共通インデックス予測子およびスイープ動作を適用する行列に対する参照を含む、請求項4に記載の方法。
  6. 前記マッパー集合内の各マッパーにおいて、
    前記ローカル検索シーケンスの1つの先行インデックス・シーケンスを受信することと、
    処理データ集合の各レコードにおける前記参照を介して共通インデックス予測子および前記行列を受信することと、
    前記共通インデックス予測子を用いて共通インデックス・シーケンスを発生させることと、
    前記先行インデックス・シーケンスに従って前記行列にスイープ動作を実行することと、
    前記共通インデックス・シーケンスに従って、結果として得られた前記行列にスイープ動作を実行することと、
    前記出力を識別することと、を更に含み、前記出力がローカル回帰モデルである、請求項5に記載の方法。
  7. 前記共通インデックス・シーケンスを送信することなく、前記先行インデックス・シーケンスを前記マッパー集合内の各マッパーに送信することが、ネットワーク・トラフィックを軽減する、請求項6に記載の方法。
  8. 前記タスク結果がグローバル回帰モデルである、請求項6に記載の方法。
  9. クラウド環境におけるサービスとしてソフトウェアが提供される、請求項1に記載の方法。
  10. 具現化されたコンピュータ読み取り可能プログラム・コードを有するコンピュータ読み取り可能記憶媒体であって、前記コンピュータ読み取り可能プログラム・コードが、コンピュータの少なくとも1つのプロセッサによって実行された場合、
    レコードの処理データ集合を生成することであって、前記レコードの各々が、実際のサブタスク集合からの1つのサブタスクに固有のデータを含み、更に、前記実際のサブタスク集合によって共有されるデータに対する参照を含み、前記レコードの数が、前記実際のサブタスク集合内の前記実際のサブタスクの数に相当する、ことと、
    マッパー集合における各マッパーによって、前記処理データ集合の前記レコードの1つを受信することと、
    前記レコードの前記受信した1つを用いて割り当てられたサブタスクを実行して出力を発生させることと、単一のリデューサーによって、前記マッパー集合内の各マッパーからの前記出力を集約してタスク結果を決定することと、を実行するように構成されている、コンピュータ読み取り可能記憶媒体、
    を含む、コンピュータ・プログラム。
  11. 前記コンピュータ読み取り可能プログラム・コードが、前記コンピュータの前記少なくとも1つのプロセッサによって実行された場合、
    元のデータセットの少なくとも1つの特徴に基づいて、潜在的サブタスクの最大数を計算することと、
    前記実際のサブタスクの実行に利用可能な前記マッパー集合内のマッパー数と前記潜在的サブタスクの最大数とに基づいて、実行される前記実際のタスク集合内の実際のサブタスク数を計算することと、
    を実行するように構成されている、請求項10に記載のコンピュータ・プログラム。
  12. 前記コンピュータ読み取り可能プログラム・コードが、前記コンピュータの前記少なくとも1つのプロセッサによって実行された場合、
    M個の実際のサブタスクとして示される前記実際のサブタスク数を計算することを実行するように構成され、M=2であり、M≦Lおよびm<k−lであり、Lは、前記実際のサブタスクの計算に利用可能な前記マッパー集合内の前記マッパー数であり、kは予測子の数である、請求項10に記載のコンピュータ・プログラム。
  13. 前記コンピュータ読み取り可能プログラム・コードが、前記コンピュータの前記少なくとも1つのプロセッサによって実行された場合、
    前記予測子を、先行インデックス予測子と共通インデックス予測子とに分割することを実行するように構成されている、請求項12に記載のコンピュータ・プログラム。
  14. 前記コンピュータ読み取り可能プログラム・コードが、前記コンピュータの前記少なくとも1つのプロセッサによって実行された場合、
    グローバル検索シーケンスをM個の多数のローカル検索シーケンスに分割することと、
    前記ローカル検索シーケンスの各々について、前記先行インデックス予測子から先行インデックス・シーケンスを識別することと、
    M個のレコードを用いて一時入力ファイルを生成することと、を実行するように構成され、前記レコードの各々が先行インデックス・シーケンスを含み、前記レコードの各々が、共通インデックス予測子およびスイープ動作を適用する行列に対する参照を含む、請求項13に記載のコンピュータ・プログラム。
  15. 前記コンピュータ読み取り可能プログラム・コードが、前記コンピュータの前記少なくとも1つのプロセッサによって実行された場合、
    前記マッパー集合内の各マッパーにおいて、前記ローカル検索シーケンスの1つの先行インデックス・シーケンスを受信することと、
    処理データ集合の各レコードにおける前記参照を介して共通インデックス予測子および前記行列を受信することと、
    前記共通インデックス予測子を用いて共通インデックス・シーケンスを発生させることと、
    前記先行インデックス・シーケンスに従って前記行列にスイープ動作を実行することと、
    前記共通インデックス・シーケンスに従って、結果として得られた前記行列にスイープ動作を実行することと、
    前記出力を識別することと、を実行するように構成され、前記出力がローカル回帰モデルである、請求項14に記載のコンピュータ・プログラム。
  16. 前記共通インデックス・シーケンスを送信することなく、前記先行インデックス・シーケンスを前記マッパー集合内の各マッパーに送信することが、ネットワーク・トラフィックを軽減する、請求項15に記載のコンピュータ・プログラム。
  17. サース(SaaS:Software as a Service)が、前記コンピュータ・プログラムの動作を実行するように構成されている、請求項10に記載のコンピュータ・プログラム。
  18. コンピュータ・システムであって、
    プロセッサと、
    前記プロセッサに接続された記憶デバイスと、を備え、前記記憶デバイスがプログラムを記憶しており、前記プロセッサが前記プログラムの命令を実行して動作を実行するように構成され、前記動作が、
    レコードの処理データ集合を生成することであって、前記レコードの各々が、実際のサブタスク集合からの1つのサブタスクに固有のデータを含み、更に、前記実際のサブタスク集合によって共有されるデータに対する参照を含み、前記レコードの数が、前記実際のサブタスク集合内の前記実際のサブタスクの数に相当する、ことと、
    マッパー集合における各マッパーによって、前記処理データ集合の前記レコードの1つを受信することと、前記レコードの前記受信した1つを用いて割り当てられたサブタスクを実行して出力を発生させることと、
    単一のリデューサーによって、前記マッパー集合内の各マッパーからの前記出力を集約してタスク結果を決定することと、
    を含む、コンピュータ・システム。
  19. 前記動作が更に、
    元のデータセットの少なくとも1つの特徴に基づいて、潜在的サブタスクの最大数を計算することと、
    前記実際のサブタスクの実行に利用可能な前記マッパー集合内のマッパー数と前記潜在的サブタスクの最大数とに基づいて、実行される前記実際のタスク集合内の実際のサブタスク数を計算することと、
    を含む、請求項18に記載のコンピュータ・システム。
  20. 前記動作が更に、
    M個の実際のサブタスクとして示される前記実際のサブタスク数を計算することを含み、M=2であり、M≦Lおよびm<k−lであり、Lは、前記実際のサブタスクの計算に利用可能な前記マッパー集合内の前記マッパー数であり、kは予測子の数である、請求項18に記載のコンピュータ・システム。
  21. 前記動作が更に、
    前記予測子を、先行インデックス予測子と共通インデックス予測子とに分割することを含む、請求項20に記載のコンピュータ・システム。
  22. 前記動作が更に、
    グローバル検索シーケンスをM個の多数のローカル検索シーケンスに分割することと、
    前記ローカル検索シーケンスの各々について、前記先行インデックス予測子から先行インデックス・シーケンスを識別することと、
    M個のレコードを用いて一時入力ファイルを生成することと、を含み、前記レコードの各々が先行インデックス・シーケンスを含み、前記レコードの各々が、共通インデックス予測子およびスイープ動作を適用する行列に対する参照を含む、請求項21に記載のコンピュータ・システム。
  23. 前記動作が更に、
    前記マッパー集合内の各マッパーにおいて、前記ローカル検索シーケンスの1つの先行インデックス・シーケンスを受信することと、
    処理データ集合の各レコードにおける前記参照を介して共通インデックス予測子および前記行列を受信することと、
    前記共通インデックス予測子を用いて共通インデックス・シーケンスを発生させることと、
    前記先行インデックス・シーケンスに従って前記行列にスイープ動作を実行することと、
    前記共通インデックス・シーケンスに従って、結果として得られた前記行列にスイープ動作を実行することと、
    前記出力を識別することと、を含み、前記出力がローカル回帰モデルである、請求項22に記載のコンピュータ・システム。
  24. 前記共通インデックス・シーケンスを送信することなく、前記先行インデックス・シーケンスを前記マッパー集合内の各マッパーに送信することが、ネットワーク・トラフィックを軽減する、請求項23に記載のコンピュータ・システム。
  25. サース(SaaS:Software as a Service)が、前記システムの動作を実行するように設けられている、請求項18に記載のコンピュータ・システム。
JP2015552149A 2013-01-11 2013-10-24 回帰モデルを計算するための方法、コンピュータ・プログラム、およびシステム Active JP6234477B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/739,667 US9159028B2 (en) 2013-01-11 2013-01-11 Computing regression models
US13/739,667 2013-01-11
PCT/IB2013/059603 WO2014108768A1 (en) 2013-01-11 2013-10-24 Computing regression models

Publications (2)

Publication Number Publication Date
JP2016507093A true JP2016507093A (ja) 2016-03-07
JP6234477B2 JP6234477B2 (ja) 2017-11-22

Family

ID=51166314

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015552149A Active JP6234477B2 (ja) 2013-01-11 2013-10-24 回帰モデルを計算するための方法、コンピュータ・プログラム、およびシステム

Country Status (4)

Country Link
US (2) US9159028B2 (ja)
JP (1) JP6234477B2 (ja)
CN (1) CN104937544B (ja)
WO (1) WO2014108768A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10491663B1 (en) * 2013-10-28 2019-11-26 Amazon Technologies, Inc. Heterogeneous computations on homogeneous input data
US9811504B1 (en) 2013-11-08 2017-11-07 Michael Epelbaum Lifespan in multivariable binary regression analyses of mortality and survivorship
US9600342B2 (en) * 2014-07-10 2017-03-21 Oracle International Corporation Managing parallel processes for application-level partitions
CN104407811B (zh) * 2014-11-12 2017-09-19 珠海世纪鼎利科技股份有限公司 一种基于云计算的合并io装置
US10496514B2 (en) * 2014-11-20 2019-12-03 Kevin D. Howard System and method for parallel processing prediction
CN104834561B (zh) 2015-04-29 2018-01-19 华为技术有限公司 一种数据处理方法及装置
WO2018222217A1 (en) * 2017-05-29 2018-12-06 Epelbaum Michael Lifespan in regression-based estimation of phenomenon-specific probabilities of mortality or survivorship
CN109885388A (zh) * 2019-01-31 2019-06-14 上海赜睿信息科技有限公司 一种适用于异构系统的数据处理方法和装置
CN111782385A (zh) * 2019-04-04 2020-10-16 伊姆西Ip控股有限责任公司 用于处理任务的方法、电子设备和计算机程序产品
US11144435B1 (en) 2020-03-30 2021-10-12 Bank Of America Corporation Test case generation for software development using machine learning
US11036613B1 (en) 2020-03-30 2021-06-15 Bank Of America Corporation Regression analysis for software development and management using machine learning
CN117555696B (zh) * 2024-01-11 2024-03-15 西北工业大学 一种多模型并发执行的数据交互方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11259433A (ja) * 1998-03-09 1999-09-24 Fujitsu Ltd 並列実行システム
US20120016816A1 (en) * 2010-07-15 2012-01-19 Hitachi, Ltd. Distributed computing system for parallel machine learning
US8209274B1 (en) * 2011-05-09 2012-06-26 Google Inc. Predictive model importation
JP2012160014A (ja) * 2011-01-31 2012-08-23 Nippon Telegr & Teleph Corp <Ntt> データ分析及び機械学習処理装置及び方法及びプログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5841772A (en) * 1996-03-07 1998-11-24 Lsi Logic Corporation ATM communication system interconnect/termination unit
AU2002316146B2 (en) * 2001-05-15 2007-09-06 Psychogenics Inc. Systems and methods for monitoring behaviour informatics
US8190610B2 (en) * 2006-10-05 2012-05-29 Yahoo! Inc. MapReduce for distributed database processing
US7599898B2 (en) 2006-10-17 2009-10-06 International Business Machines Corporation Method and apparatus for improved regression modeling
US20100162230A1 (en) * 2008-12-24 2010-06-24 Yahoo! Inc. Distributed computing system for large-scale data handling
WO2010085773A1 (en) * 2009-01-24 2010-07-29 Kontera Technologies, Inc. Hybrid contextual advertising and related content analysis and display techniques
US8713038B2 (en) * 2009-04-02 2014-04-29 Pivotal Software, Inc. Integrating map-reduce into a distributed relational database
US8572575B2 (en) 2009-09-14 2013-10-29 Myspace Llc Debugging a map reduce application on a cluster
US9619291B2 (en) * 2009-12-20 2017-04-11 Yahoo! Inc. System and method for a task management library to execute map-reduce applications in a map-reduce framework
GB201007697D0 (en) * 2010-05-06 2010-06-23 Ucl Business Plc A supra-threshold test for use in detecting sensitivity loss across the field of vision
GB2485783A (en) 2010-11-23 2012-05-30 Kube Partners Ltd Method for anonymising personal information
US8799916B2 (en) * 2011-02-02 2014-08-05 Hewlett-Packard Development Company, L. P. Determining an allocation of resources for a job
US8943011B2 (en) * 2011-06-28 2015-01-27 Salesforce.Com, Inc. Methods and systems for using map-reduce for large-scale analysis of graph-based data
CN102385719A (zh) 2011-11-01 2012-03-21 中国科学院计算技术研究所 回归预测方法及装置
CN102662639A (zh) 2012-04-10 2012-09-12 南京航空航天大学 一种基于Mapreduce的多GPU协同计算方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11259433A (ja) * 1998-03-09 1999-09-24 Fujitsu Ltd 並列実行システム
US20120016816A1 (en) * 2010-07-15 2012-01-19 Hitachi, Ltd. Distributed computing system for parallel machine learning
JP2012022558A (ja) * 2010-07-15 2012-02-02 Hitachi Ltd 分散計算システム
JP2012160014A (ja) * 2011-01-31 2012-08-23 Nippon Telegr & Teleph Corp <Ntt> データ分析及び機械学習処理装置及び方法及びプログラム
US8209274B1 (en) * 2011-05-09 2012-06-26 Google Inc. Predictive model importation

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
福本 佳史、鬼塚 真: "複数分析処理におけるMapReduce最適化", 第3回データ工学と情報マネジメントに関するフォーラム 論文集, vol. DEIM Forum 2011 C3-4, JPN6017037395, 27 February 2011 (2011-02-27), pages 1 - 8, ISSN: 0003650937 *

Also Published As

Publication number Publication date
US20140207722A1 (en) 2014-07-24
JP6234477B2 (ja) 2017-11-22
CN104937544A (zh) 2015-09-23
WO2014108768A1 (en) 2014-07-17
CN104937544B (zh) 2017-06-13
US9152921B2 (en) 2015-10-06
US9159028B2 (en) 2015-10-13
US20140201744A1 (en) 2014-07-17

Similar Documents

Publication Publication Date Title
JP6234477B2 (ja) 回帰モデルを計算するための方法、コンピュータ・プログラム、およびシステム
US10346391B2 (en) Vertical tuning of distributed analytics clusters
US10310908B2 (en) Dynamic usage balance of central processing units and accelerators
US11182193B2 (en) Optimizing image reconstruction for container registries
US20180107527A1 (en) Determining storage tiers for placement of data sets during execution of tasks in a workflow
US11263052B2 (en) Determining optimal compute resources for distributed batch based optimization applications
US20160321095A1 (en) Placement of virtual machines on physical hosts
US11321121B2 (en) Smart reduce task scheduler
JP2023541146A (ja) 局所性鋭敏型ハッシングを使用する連合機械学習
US20200167206A1 (en) System, method and recording medium for temperature-aware task scheduling
US11842260B2 (en) Incremental and decentralized model pruning in federated machine learning
US11573823B2 (en) Parallel execution of applications
US10346424B2 (en) Object processing
US10635579B2 (en) Optimizing tree pruning for decision trees
US20230325256A1 (en) Deep neural network management of overbooking in a multi-tenant computing environment
US10423575B2 (en) Computational storage for distributed computing
US11487750B2 (en) Dynamically optimizing flows in a distributed transaction processing environment
US10680912B1 (en) Infrastructure resource provisioning using trace-based workload temporal analysis for high performance computing
US11204923B2 (en) Performance for query execution
US11500870B1 (en) Flexible query execution
US20230186168A1 (en) Performing automated tuning of hyperparameters in a federated learning environment
US20230266997A1 (en) Distributed scheduling in container orchestration engines
US20230177307A1 (en) Model compression service based on runtime performance
US20220012220A1 (en) Data enlargement for big data analytics and system identification
US20220114434A1 (en) Goal-seek analysis with spatial-temporal data

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161018

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170830

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: 20171003

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171024

R150 Certificate of patent or registration of utility model

Ref document number: 6234477

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150