説明

混成マルチスレッドおよびマルチプロセス・コンピュータ・シミュレーション・システムおよび方法

【課題】複数の問題モジュールに対する解を決定することを含む計算実行方法を提供する。
【解決手段】問題モジュールは、複雑度が異なり、それらの解を組み合わせて計算に対する解を決定する。本方法は、問題モジュールの各々を少なくとも1つのマスタ・サーバに送出するステップと、問題モジュールの各々について複雑度を推定するステップと、閾値複雑度レベルを決定するステップと、複雑度が閾値複雑度レベルを超過する問題モジュールを少なくとも1つのスレーブ・サーバに送り、ここから問題モジュールに対する解を得るステップと、複雑度が閾値複雑度レベルを超過していない各問題モジュールの解を、少なくとも1つのマスタ・サーバにおいて決定するステップと、計算に対する解を決定するために、問題モジュールに対する解を組み合わせるステップとを含むことができる。

【発明の詳細な説明】
【技術分野】
【0001】
(関連出願に対する相互引用)
本願は、2005年9月27日に出願し、連番第60/721,239号を有する米国仮特許出願の優先権を主張する。その開示内容は、ここで引用したことにより、本願にも含まれるものとする。
(発明の分野)
本発明は、一般的にそして種々の実施形態において、コンピュータ・シミュレーション・システムおよび方法に関し、更に特定すれば、信用供与(credit exposure)を判断するために投資ポートフォリオにおける取引を値踏みする混成マルチスレッドおよびマルチプロセス・コンピュータ・シミュレーション・システムおよび方法に関する。
【背景技術】
【0002】
本願が取り組む問題全般は次の通りである。非常に多数の独立した問題に対する解を得て、次いで解に基づいて総合的な成果をあげるためには、コンピュータ・システムが必要である。個々の問題には、千差万別の複雑度がある可能性があり、したがって解くために必要となる計算時間も千差万別となる場合もある。問題を解くことは、1つ以上の共通入力に依存する可能性があるが、問題は、他のいずれに対して得られた解を参照することなく、各々を解くことができるという意味で、独立である。ここで用いる場合、「問題モジュール」という用語は独立した問題の各々を指す。
【0003】
本願が取り組む具体的な問題は、投資ポートフォリオに伴う信用供与を評価するという問題である。即ち、投資ポートフォリオの所有者は、所与の投資ポートフォリオにおける各カウンターパーティ(counterparty:取引相手の金融機関)に対する彼らの信用供与を定量化することが必要となる場合が頻繁にある。ポートフォリオは、通例、カウンターパーティの集合体から成り、各カウンターパーティは、ポートフォリオ所有者に対して支払いを行うこと、および/またはここでは「取引」と称する、1つ以上の金融商品取り扱いに応じたその他の義務(duty)を果たすことを余儀なくされている。各取り扱いの基礎となる金融商品は、例えば、何らかの金融資産、商品指標、既定の変数、またはその組み合わせに応じた値を有するコール(call)またはプット(put)オプションのような、派生商品である場合もある。ポートフォリオ所有者の各カウンターパーティに対する総信用供与は、現在の信用供与および潜在的な信用供与の和として表すことができる。現在の信用供与は、カウンターパーティが現在その義務を果たし損ねている(即ち、不履行)場合にポートフォリオ所有者が被る最大損失を表す。潜在的な信用供与は、商品の満期に先立つ先日付において不履行となった場合に被る最大損失を表す。ポートフォリオ所有者による信用供与の判断は、とりわけ、あるカウンターパーティおよび信用危険度査定(credit risk valuation)に対する所定の信用限度に基づいて、当該カウンターパーティとの追加トランザクションを承認するために用いられる。
【0004】
潜在的な支払いの判断は本来投機的であるので、所与のポートフォリオ内においてポートフォリオ所有者の各カウンターパーティに対する潜在的な信用供与をシミュレーションするために、統計モデルが採用されることが多い。第1ステップとして、このようなモデルは、通例、多数の市場想定場面(market scenario)を、とりわけ、各カウンターパーティと関連のある取引の価値に影響を及ぼす1つ以上の市場危険要因に基づいて、シミュレートする。このような危険要因には、例えば、取引した資産の今後の価格、利率、および通貨交換レートが含まれる可能性がある。各市場の想定場面では、例えば、複数の時間範囲(time horizon)、例えば、指定した期間における各月におけるこのような要因に対して数値を得ることができる。各想定場面は、その発生尤度(likelihood)を表す確率も含むことができる。
【0005】
市場の想定場面をシミュレートする時間は、取引の基礎となる金融商品の満期までの残存時間に基づいて選択することができる。シミュレートした市場の想定場面の作成は、例えば、既知のモンテ・カルロ・シミュレーション技法を用いて実施することができる。シミュレートした市場の想定場面を作成するとき、個々のカウンターパーティと関連のある各取引に、シミュレートした市場の想定場面毎に、時間範囲にわたって値踏みすることができる。決定した値踏みに基づいて、各シミュレートした市場の想定場面に対するポートフォリオ所有者のカウンターパーティに対する潜在的な信用供与を判断することができる。次いで、シミュレートした市場の想定場面全てに対する潜在的な信用供与を統計的に分析して、ポートフォリオ所有者のカウンターパーティに対する潜在的信用供与の全体的推定値を決定することができる。必要であれば、ポートフォリオ内におけるカウンターパーティの推定潜在的信用供与を組み合わせて、ポートフォリオ全体が表す潜在的な信用供与の推定値を決定することもできる。
【0006】
ポートフォリオ内部においてポートフォリオ所有者の各カウンターパーティに対する信用供与の推定値を決定するために取引を値踏みするプロセスでは、計算が集中的に行われる。即ち、大型の投資ポートフォリオでは、数千ものカウンターパーティを含むことも希ではなく、各カウンターパーティが1つ以上の商取引(transaction)の下でポートフォリオ所有者に契約上義務を負わされている。多数の市場の想定場面(例えば、1000〜2000)を作成し、更に想定場面に対してかなりの数の時間範囲を設定する場合、必要な値踏み計算の回数は軽く100億回の桁になる場合もある。このため、信用供与に基づいてポートフォリオ所有者がリアル・タイムに投資判断を行う能力は、このような値踏み計算を実行するのに要する時間量によって制限されるのが一般である。
【0007】
信用供与の決定は、先に引用した一般的な問題の一例である。即ち、一般的な問題に対して引用した問題モジュールは、特定のカウンターパーティと関連のある個々の取引に対する信用供与の計算に対応する。信用供与の決定は、一般的な問題の範疇に該当する。何故なら、個々の取引毎の信用供与は、他のいずれの取引に対する信用供与を参照しなくても計算することができるからである。取引の複雑度は範囲が大きく変動するのが通例であるので、個々の取引に対して信用供与を計算するには、一般に、広く異なる量の計算時間が必要となる。
【0008】
ポートフォリオ所有者の潜在的な供与を決定するために取引を値踏みすることは、マルチスレッド・プロセス手法を用いて以前から行われている。図1は、マルチスレッド・プロセス手法を実施する従来技術のコンピュータ・システムのブロック図である。図1に示すように、ルート・スクリプト(root script)15が、並列に動作する複数のマスタ・サーバ25の各々において、マルチスレッド・プロセス20を開始する。ルート・スクリプト15は、例えば、マスタ・サーバ25の各々と通信する制御サーバ16上で実行することができる。各マスタ・サーバ25内において、マルチスレッド・プロセス20の各スレッド30を、対応するサーバ・エンジン35内に実装し、シミュレートした市場の想定場面の1つ以上にわたって、所与のカウンターパーティ45に対して取引40を値踏みするように動作する。各マスタ・サーバ25が同時に実装することができるスレッド30の数が制限されるので、シミュレートした市場の想定場面に基づいて所与のカウンターパーティ45と関連のある全ての取引40を値踏みするためには、各マルチスレッド・プロセス20にはかなりの時間量が必要となるのが通例である。
【0009】
所与のカウンターパーティ45に対する取引40に値踏みするために各マルチスレッド・プロセス20が必要とする時間は、取引40の数および複雑度によってほぼ決定される。即ち、取引40の一部が単純であれば値踏みは比較的素早く行うことができるが、他の取引40が複雑な程、値踏みに要する時間は大幅に延長する可能性がある。各取引40には、アルゴリズムが連動し、時間範囲の各々において市場の想定場面毎に走らせなければならない場合もある。取引40の種別によって、このアルゴリズムの複雑度、およびそれを走らせるのに必要な時間が決まる。
【発明の開示】
【発明が解決しようとする課題】
【0010】
図1に示すように、カウンターパーティの取引40を値踏みする純粋なマルチスレッド・プロセスを利用するコンピュータ・システムは、シングル・プロセスの中で所与のカウンターパーティ45の値踏み計算を全て実行する。このようなシステムは、取引40が比較的単純であれば、容認できる期間の間に値踏み計算を完了することができるが、複雑な取引40があると、値踏み計算を実行するためには、容認できないほど長い時間を必要とすることもあり得る。
【課題を解決するための手段】
【0011】
一般的な一態様では、本願は、複数の問題モジュールに対する解を決定することを含む計算実行方法を開示する。問題モジュールは、複雑度が異なり、それらの解を組み合わせて計算に対する解を決定する。本方法は、問題モジュールの各々を少なくとも1つのマスタ・サーバに送出するステップと、問題モジュールの各々について複雑度を推定するステップと、閾値複雑度レベルを決定するステップと、複雑度が閾値複雑度レベルを超過する問題モジュールを少なくとも1つのスレーブ・サーバに送り、ここから問題モジュールに対する解を得るステップと、複雑度が閾値複雑度レベルを超過していない各問題モジュールの解を、少なくとも1つのマスタ・サーバにおいて決定するステップと、計算に対する解を決定するために、問題モジュールに対する解を組み合わせるステップとを含むことができる。
【0012】
別の一般的な態様では、本願は、更に、投資ポートフォリオの所有者のカウンターパーティに対する信用供与を投資ポートフォリオ内において定量化する方法を開示する。カウンターパーティは複数の取引に応じてポートフォリオ所有者に義務を負う。本方法は、カウンターパーティおよび取引を示す信号を少なくとも1つのマスタ・サーバに送るステップと、取引の各々について複雑度を推定するステップと、複雑度が閾値複雑度レベルを超過していない取引の各々について、少なくとも1つのマスタ・サーバにおいて取引に対する価格を決定するステップと、閾値複雑度レベルを決定するステップと、複雑度が閾値複雑度レベルを超過する取引の各々について、当該取引を少なくとも1つのスレーブ・サーバに送り、少なくとも1つのスレーブ・サーバにおいて取引に対する価格を決定するステップと、ポートフォリオ所有者のカウンターパーティに対する信用供与を決定するために、取引に対する価格を組み合わせるステップとを含むことができる。
【0013】
別の一般的な態様では、本願は、複数の想定場面に基づいて取引を値踏みするために用いられるアルゴリズムの基本的複雑度を計算する方法を開示する。想定場面は、複数の時間範囲にわたる取引の価格に関係するパラメータの今後の値を表す。各基本的複雑度は特定の取引種別に関連があり、取引の各々について実際の取引の複雑度を推定するために用いられる。本方法は、取引種別毎に、取引種別の少なくとも1つの特性的特徴を用いて検査取引を定義し、複数の想定場面に基づいて検査取引を値踏みし、複数の想定場面において検査取引を値踏みするのに必要な時間に基づいて、取引種別に対する基本的複雑度を決定することを含む。
【発明を実施するための最良の形態】
【0014】
図2は、本発明の種々の実施形態によるコンピュータ・システムのブロック図である。コンピュータ・システム50は、1つ以上のマスタ・サーバ55を備えることができる。種々の実施形態によれば、各マスタ・サーバ55は、複数のシミュレートした市場の想定場面の各々について、特定のカウンターパーティ70と関連のある取引65の少なくとも一部に値踏みを行うマルチスレッド・プロセス60を実施するように動作的に構成することができる。種々の実施形態によれば、シミュレートした市場の想定場面は、例えば、将来の市場のモンテ・カルロ・シミュレーションを用いて、予め決定することができる。各マスタ・サーバ55上におけるプロセスの実施は、マスタ・サーバ55の各々と通信する制御サーバ76上で実行するルート・スクリプト75の出力に応じて開始し制御することができる。更に、コンピュータ・システム50は、各マスタ・サーバ55と通信する1つ以上のスレーブ・サーバ・プール80も含むことができる。各スレーブ・サーバ・プール80は、対応するマスタ・サーバ55から供給されるデータを受信し処理するために、1つ以上のスレーブ・サーバ(図示せず)をまたがって分散した1つ以上のスレーブ・サーバ・エンジン100を備えることができる。以下で論ずるが、スレーブ・サーバ・プール80は、必要に応じて、マスタ・サーバ55に対して計算支援を行うグリッド・コンピューティング・ネットワークを集合的に定義することができる。
【0015】
図2に示すように、特定のカウンターパーティ70に対して値踏みする取引65は、推定した相対的な複雑度に応じて、各マスタ・サーバ55内において順序付けすることができる。取引65の複雑度は、一般に、その価格を決定する際に必要となる時間量に応じて変動する。例えば、値踏みするのに3msの計算時間を必要とする取引65は、値踏みするのに1msの計算時間を必要とする取引65よりも複雑である。カウンターパーティ70毎の取引65の相対的な複雑度は、種々の実施形態によれば、3つの成分、即ち、1)基準複雑度成分(基幹形態複雑度成分と呼ぶ場合もある)、2)実状/基準調節成分、および3)時間範囲調節成分に基づいて決定することができる。これらの成分は、例えば、取引65に値踏みをする時間範囲の数、取引65によって表されるキャッシュ・フローの数、および取引65の値踏みをする、シミュレートした市場の想定場面の数のような、取引65の複雑度に影響を及ぼす可能性がある種々の要因を反映する。図2に示すように、取引65は、複雑度が最も高いものから最も低いものに順番に並べることができる。
【0016】
各マスタ・サーバ55内において、取引65の推定相対的複雑度に基づいてこれらを順番に並べた後、複雑度閾値85に応じて取引65を類別することができる。種々の実施形態によれば、複雑度閾値85は、システム50のユーザによって定義することができる。他の実施形態では、複雑度閾値85は、既定の調節不能な値としてもよい。複雑度閾値85は、取引65を、複雑度閾値85未満の複雑度を有する第1グループと、複雑度閾値85以上の複雑度を有する第2グループとに分離するように動作する。ある実施形態では、複雑度閾値85は作業負荷をマスタ・サーバ55とスレーブ・サーバとの間で分散し、できるだけ速く解を決定するように選択することもできる。
【0017】
次に、制御サーバ76のルート・スクリプト75が供給する出力に応じて、各マスタ・サーバ55上において、マルチスレッド・プロセス60を開始することができる。図2に示すように、定義した複雑度閾値85よりも複雑度が低い各取引65の値踏みは、対応するサーバ・エンジン95の内部に実装したシングル・プロセス・スレッド90によって、対応するマスタ・サーバ55の内部で実行することができる。つまり、これらの取引65について、各マスタ・サーバ55上に実装したマルチスレッド・プロセス60のみを利用して、値踏みの計算を並列に処理する。
【0018】
複雑度が定義した複雑度閾値85以上である各取引65について、対応するマスタ・サーバ55は、それと通信する1つ以上のスレーブ・サーバ・プール80の内の1つにおいて、別個のプロセスを開始することができる。次いで、マスタ・サーバ55は、これらの取引65の各々に関するデータ、およびシミュレートした市場の想定場面に関するデータを直列化し、1つ以上のスレーブ・サーバ・プール80内部において対応するプロセスに分散する。受信した直列化データに基づいて、スレーブ・サーバ・プール80内部の各プロセスは、スレーブ・サーバの対応するスレーブ・サーバ・エンジン100内に実装してあるプロセス・スレッド(図示せず)を利用して、取引65を値踏みすることができる。つまり、複雑度が高い取引65に対して、分散マルチプロセス手法を利用して、値踏み計算を並列で処理する。スレーブ・サーバ・プール80内に実装したプロセスが生成する値踏みを直列化し、対応するマスタ・サーバ55に伝達し、マスタ・サーバ55の内部で決定した値踏みと合体することができる。
【0019】
このように、図2のコンピュータ・システム50は、混成並列化手法を実施し、所与のカウンターパーティ70と関連のある取引65の複雑度が低い程、マルチスレッド・プロセス60を用いて内部で値踏みを行い、同じカウンターパーティ70と関連がある取引65の複雑度が高い程、分散プロセスを用いて離れて値踏みを行うことが認められよう。混成並列化によって、図1のシステム10のようなマルチスレッド並列化のみを利用するシステムと比較して、様々な利点が得られる。第1に、マルチスレッドおよび分散処理を用いる混成並列化は粒度(granularity)を高める。即ち、分散プロセスを用いる並列化は、プロセス間通信量が増大するが、この増大は、分散プロセスによって利用可能となる計算リソース量の増大によって相殺される。第2に、混成並列化は、カウンターパーティ70毎にトランザクションの全てを値踏みするのに必要な時間を短縮するように機能する。即ち、スレーブ・サーバ・プール80内部における多数のプロセス間で複雑な取引65を分散することによって、このような取引65が、マスタ・サーバ55内に実装したマルチスレッド・プロセス60の「遂行を妨げる(bottlenecking)」ことを防止する。複雑な取引65の数に応じて、計算効率の利得は計算時間を著しく短縮することができる。第3に、混成並列化によって高いスケーラビリティ(scalability)が可能となる。即ち、コンピュータ・システム50が複雑な取引65を処理する能力の対応する向上を実現するために、追加のスレーブ・サーバ・プール80を加えることもできる。
【0020】
図3は、本発明の種々の実施形態にしたがって、複雑度が異なる問題モジュールから成る複合問題105を解く方法110を示す。ステップ120において、各問題モジュールを複数のマスタ・サーバ55の1つに送出する。マスタ・サーバ55の各々は、前述のように、1つ以上のスレーブ・サーバ・プール80と通信することができる。ステップ130において、各問題モジュールの複雑度の推定を行う。ステップ140において、マスタ・サーバ55とスレーブ・サーバのスレーブ・サーバ・エンジン100との間の計算負荷を均衡させるのに役立つ閾値複雑度レベル85を決定する。
【0021】
ステップ150において、各問題モジュールの複雑度を、閾値複雑度レベル85と比較する。ステップ160において、複雑度が閾値複雑度レベル85を超過しない問題モジュールをマスタ・サーバ55において処理し、一方複雑度が閾値複雑度レベル85を超過する問題モジュールを、処理のために、マスタ・サーバ55と通信するスレーブ・サーバ・プール80内にあるスレーブ・サーバ・エンジン100に送る。
【0022】
ステップ180において、全ての問題モジュールの解を組み合わせて、複合問題105の解を決定する。
【0023】
図4aおよび図4bは、本発明の種々の実施形態にしたがって、一部が例外的に複雑である可能性がある、複雑度が異なる問題モジュールから成る複合問題105を解く方法200のフロー図である。ステップ120において、各問題モジュールを複数のマスタ・サーバ55の1つに送出する。マスタ・サーバ55の各々は、前述のように、1つ以上のスレーブ・サーバ・プール80と通信することができる。ステップ130において、各問題モジュールの複雑度の推定を行う。ステップ210において、複雑度に基づいて問題モジュールを並び替え、最も複雑な問題モジュールから最も複雑でない問題モジュールまで順に並べる。ステップ140において、マスタ・サーバ55とスレーブ・サーバのスレーブ・サーバ・エンジン100との間の計算負荷を均衡させるのに役立つ閾値複雑度レベル85を決定する。複雑度に基づいて問題モジュールを並び換えることによって、複数のマスタ・サーバ55および/またはスレーブ・サーバを最大限利用することを可能にすることにより、計算時間を短縮することができる。ある数のサーバがアイドル状態にある一方別のサーバが特に複雑な計算を終了するという計算のよどみ(tail)は、このようにすれば、低減または解消することができる。
【0024】
ステップ150において、問題問モジュールの複雑度を、閾値複雑度レベル85と比較する。ステップ160において、複雑度が閾値複雑度レベル85を超過しない問題モジュールをマスタ・サーバ55において処理し、一方ステップ220において複雑度が閾値複雑度レベル85を超過する問題モジュールを検査する。ステップ240において、例外的に複雑度が高い問題モジュールを、処理のために複数のスレーブ・サーバ・エンジン100に分散することができる。複雑度が例外的に高くない各問題モジュールは、ステップ170において1つのスレーブ・サーバ・エンジン100で解くことができる。ステップ180において、全ての問題モジュールの解を組み合わせて、複合問題の解を決定する。尚、問題モジュールを並び換えるステップ210、および複数のスレーブ・サーバ・エンジン100において複雑度が例外的に高い問題モジュールを解くステップ240は、互いに独立して用いても、同じプロセス200で用いてもよいことを注記しておく。
【0025】
図5は、本発明の種々の実施形態にしたがって投資ポートフォリオにおいて取引65を値踏みする方法300のフロー図である。この方法が取り組む問題は、先に引用した一般的問題の一例である。ポートフォリオは、複数のカウンターパーティ70に対して複数の取引65を収容すると見なされる。方法300は、1つのカウンターパーティ70に対する取引65の全てを値踏みすることを目的とする。方法300は、全てのカウンターパーティ70について繰り返して、ポートフォリオに対する価格を決定することができる。先に引用した複合問題は、1つのカウンターパーティ70の取引65の全てを値踏みすることに対応する。問題モジュールは、1つの取引65を値踏みすることに対応する。
【0026】
方法300を実際に用いる当事者は、多数の想定場面を含むデータベースを有すると考えられ、各想定場面は、複数の時間範囲に跨って多数の経済的指標に対して値を指定する。時間範囲は、例えば、指定した基幹における各月としてもよい。各取引65を値踏みするには、想定場面をデータとして用い、取引65に値踏みアルゴリズムを適用する。
【0027】
ステップ310において、各取引65を複数のマスタ・サーバ55に送出する。ステップ320において、各取引65の複雑度を推定する。ステップ330において、閾値複雑度レベル85を決定する。ステップ340において、各取引65の複雑度を閾値複雑度レベル85と比較する。個々の取引65について推定した複雑度が閾値複雑度レベル85を超過していない場合、ステップ350において取引65の価格をマスタ・サーバ55において計算する。取引65の複雑度が閾値複雑度レベル85を超過している場合、ステップ360において、スレーブ・サーバ・プール80のスレーブ・サーバ・エンジン100の内の1つにおいて取引65の値踏みを行う。ステップ370において、全ての取引65の価格を組み合わせて、ポートフォリオ所有者のカウンターパーティ70に対する信用供与を決定する。
【0028】
図6は、本発明の種々の実施形態にしたがって、ポートフォリオにおける取引65の価格に基づいて、ポートフォリオ所有者のカウンターパーティ70に対する信用供与を決定する方法375のフロー図である。方法375は、カウンターパーティ70の全ての取引65の観念値(notional value)即ち額面額、および各々について計算した価格を収容するデータベース380を用いる。ステップ390において、観念値の全てを加算し、計算した価格をそれから減算して、ポートフォリオ所有者のカウンターパーティ70に対する信用供与を決定する。
【0029】
図7aおよび図7bは、本発明の種々の実施形態にしたがって、投資ポートフォリオにおける取引65を値踏みする方法400のフロー図である。方法300におけると同様、ステップ310において、カウンターパーティ70の各取引65を複数のマスタ・サーバ55に送出する。ステップ320において、各取引65の複雑度を推定する。任意のステップ410において、取引65を並び換えて、複雑度が最も高い取引から最も低い取引に順に並べる。
【0030】
ステップ300におけると同様、方法400は更に閾値複雑度レベル85を決定するステップ330を含み、ステップ340において、各取引65を検査して、その複雑度が閾値複雑度レベル85を超過するか否か判定を行う。取引65の複雑度が閾値複雑度レベル85を超過していない場合、ステップ350において、その価格をマスタ・サーバ55において決定する。その価格が閾値複雑度レベル85を超過している場合、任意のステップ420においてそれを再度検査して、その複雑度が例外的に高いか否か判定を行う。複雑度が例外的に高くはない場合、ステップ360において、スレーブ・コンピュータ・プール80のスレーブ・サーバ・エンジン100の内の1つにおいてその値を判定する。その複雑度が例外的に高い場合、ステップ430において、処理のために、スレーブ・コンピュータ・プール80における複数のスレーブ・サーバ・エンジン100に分散する。例えば、取引65についての想定場面の1群を1つのスレーブ・サーバ・エンジン100において処理し、別の1群を異なるスレーブ・サーバ・エンジン100において処理することができる。ステップ370において、全ての取引65の価格を組み合わせて、ポートフォリオ所有者のカウンターパーティ70に対する信用供与を決定する。
【0031】
図8は、取引65について基本的複雑度を判定する方法500のフロー図である。ステップ510において、特定の種類の取引の1つ以上の特性的特徴(characteristic feature)(例えば、「浮動行程」取引(floating leg trade))を具体化する検査取引を選択する。ステップ520において、好ましくは他にプログラムが走っていないコンピュータ・システムを用いることによって、複数の想定場面について検査取引の値踏みを行う。ステップ530において、複数の想定場面について検査取引を値踏みするのに必要な時間を用いて、この取引種別の基本的複雑度を判定する。
【0032】
個々の取引種別の複雑度を実際に推定する場合、取引65の実際の真相(actual fact)、およびそれを評価する時間範囲の数によって修正する。
【0033】
ここで用いる場合、「サーバ」は、例えばそして限定ではなく、単体または組み合わせでもよく、種々のワイヤレスまたはワイヤライン型を含む、パーソナル・コンピュータ(PC)、メイン・フレーム、マイクロコンピュータ、ミニコンピュータ、ラップトップ、パーソナル・データ、プロセッサ、および/またはスタンドアロン・アプリケーションのためにおよび/または1つまたは複数のネットワーク状媒体を通じてデータを処理する構成が可能なその他のいずれのコンピュータ化デバイスでもよい。ここに開示したサーバは、データを取り込み、処理し、格納し、および/または伝達する際に用いられるある種のソフトウェア・アプリケーションを格納するために、動作的に連動するメモリを含むことができる。尚、このようなメモリは、その動作的に連動するコンピュータまたはコンピュータ・システムに対して内部、外部、ローカル、またはリモートでもよいことは認めることができる。また、メモリは、例えばそして限定ではなく、ハード・ディスク、光ディスク、フロッピ・ディスク、ROM(リード・オンリメモリ)、RAM(ランダム・アクセス・メモリ)、PROM(プログラマブルROM)、 EEPROM(拡張消去可能PROM)、および/またはその他の同様のコンピュータ読み取り可能媒体を含む、ソフトウェアまたはその他の命令を格納するいずれの手段も含むことができる。
【0034】
ここに開示したサーバは、適したコンピュータ命令形式であればいずれの形式を用いた、サーバの1つまたは複数のプロセッサ、あるいはその他のいずれもコンピュータ・システムが実行するソフトウェア・コードにしたがって動作することもできる。ソフトウェア・コードは、コンピュータ読み取り可能媒体上に、一連の命令即ちコマンドとして格納することができる。「コンピュータ読み取り可能媒体」という用語は、ここで用いる場合、例えば、ディスケットのような磁気または光メモリ・デバイス、読み取り専用および書き込み可能型双方のコンパクト・ディスク、光ディスク・ドライブ、およびハード・ディスク・ドライブを含むことができる。また、コンピュータ読み取り可能媒体は、物理的、仮想的、永続的、一時的、半永続的、および/または半一時的であるメモリ・ストレージを含むこともできる。更に、コンピュータ読み取り可能媒体は、1つ以上の搬送波上で送信される1つ以上のデータ信号も含むことができる。
【0035】
以上、本発明の種々の実施形態について説明したが、これらの実施形態に対する種々の修正、変更、および改造は、開示した発明の利点の少なくとも一部を達成することにより、当業者には容易に想起できることは、明白なはずである。したがって、実施形態は、添付した特許請求の範囲に明記した、開示した発明の範囲および主旨から逸脱することなく、このような修正、変更、および改造を全て含むことを意図している。
【図面の簡単な説明】
【0036】
【図1】図1は、マルチスレッド・プロセス手法を実施する従来技術のコンピュータ・システムのブロック図である。
【図2】図2は、本発明の種々の実施形態によるコンピュータ・システムのブロック図である。
【図3】図3は、本発明の種々の実施形態にしたがって、複雑度が異なる問題モジュールから成る複合問題を解く方法のフロー図である。
【図4a】図4aは、本発明の種々の実施形態にしたがって、複雑度が異なる問題モジュールから成る複合問題を解く方法のフロー図である。
【図4b】図4bは、本発明の種々の実施形態にしたがって、複雑度が異なる問題モジュールから成る複合問題を解く方法のフロー図である。
【図5】図5は、本発明の種々の実施形態にしたがって、投資ポートフォリオにおける取引を値踏みする方法のフロー図である。
【図6】図6は、本発明の種々の実施形態にしたがって、ポートフォリオにおける取引の価格に基づいて、カウンターパーティに対するポートフォリオ所有者の信用供与を決定する方法のフロー図である。
【図7a】図7aは、本発明の種々の実施形態にしたがって、投資ポートフォリオにおける取引を値踏みする方法のフロー図である。
【図7b】図7bは、本発明の種々の実施形態にしたがって、投資ポートフォリオにおける取引を値踏みする方法のフロー図である。
【図8】図8は、本発明の種々の実施形態にしたがって、取引について基本的複雑度を判定する方法のフロー図である。

【特許請求の範囲】
【請求項1】
複数の問題モジュールに対する解を決定することを含む計算の実行方法であって、前記問題モジュールは異なる複雑度を有し、前記問題モジュールに対する前記解を組み合わせて、前記計算に対する解を決定し、前記方法は、
前記問題モジュールの各々を少なくとも1つのマスタ・サーバに送出するステップと、
前記問題モジュールの各々について複雑度を推定するステップと、
閾値複雑度レベルを決定するステップと、
複雑度が前記閾値複雑度レベルを超過する前記問題モジュールの各々について、当該問題モジュールを少なくとも1つのスレーブ・サーバに送り、前記少なくとも1つのスレーブ・サーバから前記問題モジュールに対する解を得るステップと、
複雑度が前記閾値複雑度レベルを超過していない各問題モジュールについて、前記少なくとも1つのマスタ・サーバにおいて前記問題モジュールに対する解を決定するステップと、
前記計算に対する前記解を決定するために、前記問題モジュールに対する前記解を組み合わせるステップと、
を備えている、方法。
【請求項2】
請求項1記載の方法において、前記計算に対する前記解を決定するために、前記問題モジュールに対する前記解を、加算によって組み合わせる、方法。
【請求項3】
請求項1記載の方法において、前記少なくとも1つのスレーブ・サーバの各々は、前記少なくとも1つのマスタ・サーバの1つと通信する、方法。
【請求項4】
請求項3記載の方法において、前記少なくとも1つのマスタ・サーバの各々は、複数のスレーブ・サーバと通信する、方法。
【請求項5】
請求項1記載の方法であって、更に、少なくとも1つの問題モジュールについて、該問題モジュールを複数のサブモジュールに分解し、複数のスレーブ・サーバ間で前記サブモジュールを分散するステップを備えている、方法。
【請求項6】
請求項1記載の方法において、前記閾値複雑度レベルは、1つの閾値複雑度レベルであり、前記少なくとも1つのマスタ・サーバの各々において、前記閾値複雑度さレベルを用いる、方法。
【請求項7】
請求項1記載の方法において、前記問題モジュールの各々を前記少なくとも1つのマスタ・サーバに送出する前記ステップを、制御サーバ上で実行するルート・スクリプトによって制御する、方法。
【請求項8】
請求項1記載の方法において、前記計算に対する前記解を決定するために、前記問題モジュールに対する前記解を組み合わせるステップを、制御サーバ上で実行するルート・スクリプトによって制御する、方法。
【請求項9】
請求項1記載の方法において、前記少なくとも1つのマスタ・サーバの各々は、複数のサーバ・エンジンを含み、複雑度が前記閾値複雑度レベルを超過していない格問題モジュールに対する解を、前記サーバ・エンジンの少なくとも1つにおいて決定する、方法。
【請求項10】
請求項1記載の方法において、前記問題モジュールの内複雑なもの程先に解決するように、複雑度が前記閾値複雑度レベルよりも高い前記問題モジュールを並び換える、方法。
【請求項11】
命令を格納したコンピュータ読み取り可能媒体であって、前記命令をプロセッサによって実行すると、前記プロセッサに、
複数の問題モジュールの各々について複雑度を推定させ、前記問題モジュールは複雑度が異なり、複合問題に対応し、
閾値複雑度レベルを決定させ、
複雑度が前記閾値複雑度レベルより高い前記問題モジュールの各々を少なくとも1つのスレーブ・サーバに送出させ、前記少なくとも1つのスレーブ・サーバから前記問題モジュールに対する解を得させ、
複雑度が前記閾値複雑度レベルを超過していない前記問題モジュールの各々に対する解を決定させ、
前記複合問題に対する前記解を決定するために、前記問題モジュールに対する前記解を組み合わさせる、
コンピュータ読み取り可能媒体。
【請求項12】
投資ポートフォリオの所有者のカウンターパーティに対する信用供与を前記投資ポートフォリオ内において定量化する方法であって、前記カウンターパーティは複数の取引に応じて前記ポートフォリオ所有者に義務を負い、前記方法は、
前記カウンターパーティおよび前記取引を示す信号を少なくとも1つのマスタ・サーバに送るステップと、
前記取引の各々について複雑度を推定するステップと、
閾値複雑度レベルを決定するステップと、
複雑度が前記閾値複雑度レベルを超過していない前記取引の各々について、前記少なくとも1つのマスタ・サーバにおいて前記取引に対する価格を決定するステップと、
複雑度が前記閾値複雑度レベルを超過する前記取引の各々について、当該取引を少なくとも1つのスレーブ・サーバに送り、前記少なくとも1つのスレーブ・サーバにおいて前記取引に対する価格を決定するステップと、
前記ポートフォリオ所有者の前記カウンターパーティに対する信用供与を決定するために、前記取引に対する前記価格を組み合わせるステップと、
を備えている、方法。
【請求項13】
請求項12記載の方法において、前記取引の各々について複雑度を推定する前記ステップは、前記取引の種別に対する所定の基本的複雑度を、前記取引の実際の属性に基づいた実際に対する基本的複雑度の調節によって修正して利用することを含む、方法。
【請求項14】
請求項12記載の方法において、前記ポートフォリオ所有者の前記カウンターパーティに対する信用供与を決定するために、前記カウンターパーティに対する前記取引の前記価格を、加算によって組み合わせる、方法。
【請求項15】
請求項14記載の方法において、前記カウンターパーティに対する前記信用供与は、前記カウンターパーティの前記取引全ての観念値を加算し、前記カウンターパーティに対する前記取引の前記価格をそれから減算することによって決定する、方法。
【請求項16】
請求項12記載の方法において、複雑度が前記閾値複雑度レベルを超過しない各取引について、マルチスレッド・プロセスの少なくとも1つのスレッドによって前記価格を決定する、方法。
【請求項17】
請求項16記載の方法において、前記マルチスレッド・プロセスを複数のサーバ・エンジンによって実行する、方法。
【請求項18】
請求項12記載の方法において、複雑度が前記閾値複雑度レベルよりも低い前記取引を、複雑度に基づいて並び換え、前記取引の各々に対する価格を決定する前記ステップを、取引の複雑度が高い順に実行する、方法。
【請求項19】
請求項12記載の方法において、複雑度が前記閾値複雑度レベルよりも高い前記取引を、複雑度に基づいて並び換え、前記取引の各々に対する価格を決定する前記ステップを、取引の複雑度が高い順に実行する、方法。
【請求項20】
請求項12記載の方法において、前記少なくとも1つのマスタ・サーバは複数のマスタ・サーバであり、各マスタ・サーバは複数のスレーブ・サーバと通信する、方法。
【請求項21】
請求項12記載の方法において、前記少なくとも1つのマスタ・サーバは複数のマスタ・サーバであり、各前記スレーブ・サーバは1つのマスタ・サーバと通信する、方法。
【請求項22】
請求項12記載の方法であって、更に、少なくとも1つの取引について、該取引の計算を複数の計算成分に分解し、複数のスレーブ・サーバ間で前記計算成分を分散するステップを備えている、方法。
【請求項23】
請求項12記載の方法において、前記取引に対して価格を決定するステップは、前記取引の前記価格に関係するパラメータの今後の値に対して複数の想定場面を表すことを含み、前記想定場面の各々は、複数の時間範囲における前記パラメータの今後の値を備えている、方法。
【請求項24】
請求項12記載の方法において、当該方法を、制御サーバ上で実行するルート・スクリプトによって指揮する、方法。
【請求項25】
命令を格納したコンピュータ読み取り可能媒体であって、前記命令をプロセッサによって実行すると、前記プロセッサに、
複数の取引の各々について複雑度を推定させ、前記取引は、投資ポートフォリオのカウンターパーティと関連があり、
閾値複雑度レベルを決定させ、
複雑度が前記閾値複雑度レベルよりも高い前記取引の各々を少なくとも1つのスレーブ・サーバに送らせ、前記少なくとも1つのスレーブ・サーバから前記取引に対する価格を得させ、
複雑度が前記閾値複雑度レベルを超過していない前記取引の各々について、価格を決定させ、
前記ポートフォリオの所有者の前記カウンターパーティに対する信用供与を決定するために、前記取引に対する前記価格を組み合わせさせる、
コンピュータ読み取り可能媒体。
【請求項26】
複数の時間範囲にわたる取引の価格に関係するパラメータの今後の値に対する複数の想定場面に基づいて前記取引を値踏みするために用いられるアルゴリズムの基本的複雑度を計算する方法であって、各前記基本的複雑度は特定の取引種別に関連があり、前記取引の各々について実際の取引の複雑度を推定するために、前記基本的複雑度を用い、前記方法は、
前記取引種別毎に、前記取引種別の少なくとも1つの特性的特徴を用いて検査取引を定義し、
複数の前記想定場面に基づいて前記検査取引を値踏みし、
前記複数の前記想定場面において前記検査取引を値踏みするのに必要な時間に基づいて、前記取引種別に対する前記基本的複雑度を決定する、
方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4a】
image rotate

【図4b】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7a】
image rotate

【図7b】
image rotate

【図8】
image rotate


【公表番号】特表2009−510615(P2009−510615A)
【公表日】平成21年3月12日(2009.3.12)
【国際特許分類】
【出願番号】特願2008−533506(P2008−533506)
【出願日】平成18年9月26日(2006.9.26)
【国際出願番号】PCT/US2006/037409
【国際公開番号】WO2007/038477
【国際公開日】平成19年4月5日(2007.4.5)
【出願人】(500206401)モルガン・スタンレー (16)