"分散計算方法であって、入力されたタスクフローに対して分散計算を行い;前記分散計算の計算結果に対してリダクションを行い;及び前記リダクション後の計算結果をリダクションバッファに記憶することを含む、分散計算方法。請求項1に記載の分散計算方法であって、前記リダクションは、前記計算結果を複数のリダクションユニットに割り当て;リダクションユニットに割り当てられた計算結果に対してリダクション処理を行い;及びリダクション処理後の計算結果をリダクションバッファに出力することを含む、分散計算方法。請求項2に記載の分散計算方法であって、リダクション関数により計算されたリダクション値に基づいて、前記割り当てを行う、分散計算方法。請求項3に記載の分散計算方法であって、前記リダクション値及び所属するタスクの標識に基づいて、前記割り当てを行う、分散計算方法。請求項2に記載の分散計算方法であって、前記リダクション処理は、計算結果に対して後処理を行うことを更に含む、分散計算方法。請求項2に記載の分散計算方法であって、同じリダクション値を有するリダクションユニットの計算結果を、同一リダクションバッファに出力する、分散計算方法。請求項1に記載の分散計算方法であって、前記リダクションを行う前に、前記分散計算の計算結果に対してローカルバックアップを行う、分散計算方法。請求項2に記載の分散計算方法であって、リダクションユニットに対応するリダクションバッファが書き込み不可の場合、前記計算結果を他のリダクションバッファにフォーワードする、分散計算方法。請求項8に記載の分散計算方法であって、リダクションバッファがリセット又はクリアされている時に、前記リダクションバッファが書き込み不可である、分散計算方法。請求項2に記載の分散計算方法であって、全てのリダクションバッファが書き込み不可のときに、前記リダクション処理後の計算結果に対してローカルバックアップを行う、分散計算方法。請求項2に記載の分散計算方法であって、リダクション処理後の計算結果をリダクションバッファに出力した後に、前記計算結果に対してローカルバックアップを行う、分散計算方法。請求項3又は4に記載の分散計算方法であって、前記リダクション関数は、ハッシュ関数を含む、分散計算方法。分散計算システムであって、分散計算を行うための分散計算装置;前記分散計算の計算結果に対してリダクション処理を行うための複数のリダクションユニット;前記リダクション後の計算結果を記憶するための一つの又は複数のリダクションバッファ;及び前記計算結果の前記リダクションバッファへのリダクション、及び、リダクションバッファへのアクセスを制御するためのリダクション制御装置を含む、分散計算システム。請求項13に記載の分散計算システムであって、リダクション関数により計算されたリダクション値に基づいて、前記計算結果を複数のリダクションユニットに割り当てる、分散計算システム。請求項14に記載の分散計算システムであって、同じリダクション値を有するリダクションユニットは、リダクション処理後の計算結果を同一リダクションバッファに出力する、分散計算システム。請求項13~15のうちのいずれか1項に記載の分散計算システムであって、前記リダクションバッファは、リダクションバッファ内制御ユニット及びリダクションバッファ内記憶ユニットを含み、前記リダクションバッファ内制御ユニットは、リダクションバッファへの入力を受け、入力されたデータを、所定のデータ構造で、リダクションバッファ内記憶ユニットに記憶させる、分散計算システム。請求項16に記載の分散計算システムであって、前記リダクションバッファ内記憶ユニットは、少なくとも一部がメモリである、分散計算システム。請求項13~15のうちのいずれか1項に記載の分散計算システムであって、前記リダクションユニットは、リダクションバッファに異常が発生した時にリダクションバッファを回復するために、リダクションユニット処理後のデータをバックアップするためのリダクション用ローカルバックアップユニットを含む、分散計算システム。次に、本発明の幾つかの側面に関する基本理解を提供するために、本発明に関する簡単な概説を述べる。理解すべきは、この概説は、本発明に関する網羅的なものではない。それは、意図的に本発明のキー又は重要な部分を確定するものではなく、意図的に本発明の範囲を限定するものでもない。その目的は、簡略化した形で幾つかの概念コンセプトを提供することのみにあり、また、それは、後述の更なる詳しい説明の前書きとされる。本発明の目的は、従来技術の上述の問題に鑑み、分散計算において計算が完了した結果にリアルタイムでアクセスし、高ロバスト性でそれを記憶することができる分散計算方法及び分散計算システムを提供することにある。本発明の一側面によれば、分散計算方法が提供される。この方法は、入力されたタスクフローに対して分散計算を行い;前記分散計算の計算結果に対してリダクションを行い;及び、リダクションが行われた計算結果をリダクションバッファに記憶することを含む。本発明の一つの具体的な実施例によれば、リダクションは、前記計算結果を複数のリダクションユニットに割り当て;リダクションユニットに割り当てられた計算結果に対してリダクション処理を行い;及び、リダクション処理後の計算結果をリダクションバッファに出力することを含む。本発明の一つの具体的な実施例によれば、リダクション関数により計算されたリダクション値に基づいて前記割り当てを行う。本発明の一つの具体的な実施例によれは、前記リダクション値及び所属するタスクの標識に基づいて前記割り当てを行う。本発明の一つの具体的な実施例によれば、前記リダクション処理は、計算結果に対して後処理を行うことを更に含む。本発明の一つの具体的な実施例によれば、同じリダクション値を有するリダクションユニットの計算結果を同一リダクションバッファに出力する。本発明の一つの具体的な実施例によれば、前記リダクションを行う前に、前記分散計算の計算結果に対してローカルバックアップを行う。本発明の一つの具体的な実施例によれば、リダクションユニットに対応するリダクションバッファが書き込み不可の場合、前記計算結果を他のリダクションバッファにフォーワードする。本発明の一つの具体的な実施例によれば、リダクションバッファがリセット又はクリアされている時に、前記リダクションバッファは書き込み不可である。本発明の一つの具体的な実施例によれば、全てのリダクションバッファが書き込み不可の時に、前記リダクション処理後の計算結果に対してローカルバックアップを行う。本発明の一つの具体的な実施例によれば、リダクション処理後の計算結果をリダクションバッファに出力した後に、前記計算結果に対してローカルバックアップを行う。本発明の一つの具体的な実施例によれば、前記リダクション関数は、ハッシュ関数を含む。本発明の他の側面によれば、分散計算システムが提供される。このシステムは、分散計算を行うための分散計算装置;前記分散計算の計算結果に対してリダクション処理を行うための複数のリダクションユニット;リダクションが行われた計算結果を記憶するための一つ又は複数のリダクションバッファ;及び、前記計算結果の前記リダクションバッファへのリダクション、及び、リダクションバッファへのアクセスを制御するためのリダクション制御装置を含む。本発明の一つの具体的な実施例によれば、リダクション関数により計算されたリダクション値に基づいて、前記計算結果を複数のリダクションユニットに割り当てる。本発明の一つの具体的な実施例によれば、同じリダクション値を有するリダクションユニットは、リダクション処理後の計算結果を同一リダクションバッファに出力する。本発明の一つの具体的な実施例によれば、前記分散計算装置は、計算スケジューリングユニット及び複数の計算ユニットを含み、前記計算スケジューリングユニットは、入力されたタスクフローを複数のサブタスクに分け、前記複数のサブタスクを前記複数の計算ユニットに割り当てるために用いられ;及び、前記計算ユニットは、計算エンジン及び計算用ローカルバックアップユニットを含み、前記計算エンジンは、計算を行うために用いられ、前記計算用ローカルバックアップユニットは、前記計算エンジンの計算結果に対してローカルバックアップを行うために用いられる。本発明の一つの具体的な実施例によれば、前記リダクションバッファは、リダクションバッファ内制御ユニット及びリダクションバッファ内記憶ユニットを含み、前記リダクションバッファ内制御ユニットは、リダクションバッファへの入力を受け、入力されたデータを所定のデータ構造でリダクションバッファ内記憶ユニットに記憶させる。本発明の一つの具体的な実施例によれば、前記リダクションバッファ内記憶ユニットは、少なくとも一部がメモリである。本発明の一つの具体的な実施例によれば、前記リダクションユニットは、リダクション用ローカルバックアップユニットを含み、リダクション用ローカルバックアップユニットは、リダクションバッファが異常の時にリダクションバッファを回復するように、リダクションユニットの処理後のデータをバックアップするために用いられる。また、本発明の実施例は、上述の分散計算方法を実現するためのコンピュータプログラムをも提供する。また、本発明の実施例は、さらに、少なくともコンピュータ可読媒体形式のコンピュータプログラムプロダクトをも提供し、その中には、上述の分散計算方法を実現するためのコンピュータプログラムコードが記録されている。以下、図面を参照しながら本発明の実施例を説明する。本発明の一つの図面又は一つの実施形態に説明する要素及び特徴は、一つ又は複数の他の図面又は実施形態に示す要素及び特徴と組み合わせてもよい。なお、明確にするために、図面及び説明には、本発明と関係がなく、且つ、当業者に既知の部品及び処理の例示及び説明が省略される。図2は、本発明による分散計算システムの構造図である。図2に示すように、本発明の一つの実施例による分散計算システムは、分散計算グループ21、リダクション制御装置22、及び一つ又は複数のリダクションノード23、24などを含む。分散計算グループ21は、計算スケジューリングユニット211及び一つ又は複数の計算ノードを含み、各計算ノードは、一つ又は複数の計算ユニットを含む。計算スケジューリングユニット211は、入力されたタスクフロー中のタスクを複数のサブタスクに分け、また、複数のサブタスクを各計算ユニットに割り当てて計算を行わせるために用いられる。計算ノードは、一つの物理コンピュータであってもよく、仮想マシンであってもよい。計算ノードは仮想マシンである時に、計算ノードの各計算ユニットは、複数の物理コンピュータに分散する可能性がある。分散計算グループ21は、複数のタスクを同時に処理することができる。一つのリダクションノードは、一つのリダクションバッファ及び一つ又は複数のリダクションユニットを含む。リダクションノードは、一つの物理コンピュータであってもよく、仮想マシンであってもよい。リダクションノードは仮想マシンである時に、リダクションノードのリダクションバッファ及び各リダクションユニットは、複数の物理コンピュータに分散する可能性がある。物理又は論理上で同一リダクションノードに属するリダクションユニット及びリダクションバッファについて言えば、前記リダクションバッファは、前記リダクションユニットのローカルリダクションバッファである。なお、一つのリダクションノード内には、複数のリダクションバッファを設置してもよい。しかし、一つのリダクションノード内には、一つのリダクションバッファを設置すれば、リダクション処理を簡略化することに有利である同時に、リダクションバッファにおいてデータを構造化してデータ構造を生成することにも便利である。リダクション制御装置22の制御の下で、リダクションユニットは、計算ユニットの計算結果複数のタスクの複数のサブタスクを受け、それに対してリダクション処理を行い、また、リダクション処理後の計算結果をリダクションバッファに出力する。リダクションユニットは、リダクションエンジン、リダクションユニット内バッファ、及びリダクション用ローカルバックアップユニットを有する。リダクションエンジンは、該リダクションユニットに入力された計算結果に対してリダクション処理を行うために用いられ、リダクション処理の最も簡単な場合は、計算結果をリダクションユニット内バッファに一時的に記憶させる。リダクション処理は、後処理を更に含む。後処理は、ユーザにより定義されてもよい。例えば、計算結果に対してキーによるソーティングなどの後続の処理を行ってもよい。リダクションユニットのリダクション用ローカルバックアップユニットは、リダクションユニットのデータに対してバックアップを行うために用いられ、これにより、リダクションバッファが異常の時に、リダクションバッファを回復するために用いられ得る。リダクションバッファの回復については、次に詳細に説明する。なお、一つのリダクションユニットは、入力されたタスクフロー中の一つのタスクの一部の計算結果。なお、リダクションユニットが処理する複数のサブタスクは、逐一にステップS302~S306を通過してリダクションユニットに入力されるのであるが、逐一にリダクションバッファに出力されるのではなく、ステップS307の後に、一緒にリダクションバッファに出力されるのである。一方では、ステップS307において、リダクションユニットのリダクションエンジンは、計算結果に対して後処理を行う可能性があり、単独で出力するなら、計算結果間の関係を保つことができない。他方では、リダクションユニットは、そのリダクションによる複数の計算結果を一緒にリダクションバッファに出力する時に、計算結果をも一緒にリダクションユニットのリダクション用ローカルバックアップユニットにバックアップし、このように、リダクションバッファが異常の時に、リダクション用ローカルバックアップユニットを正確に使用してリダクションバッファを回復することができる。ステップS308又は他の状況においてリダクションバッファに異常が発生すれば、リダクション制御装置の異常制御ユニットの制御の下で、リダクションバッファをリセットさせステップS315、また、リダクションバッファリストに基づいて、リダクションバッファに対応する計算結果のバックアップリダクションユニットのリダクション用ローカルバックアップユニットに記憶されているを取得しステップS316、これにより、異常が発生する前のリダクションバッファを回復する。現在のリダクションユニットのデータについてリダクションを再び行い、即ち、ステップS302に戻す。ステップS308において異常が発生しなければ、リダクションユニット内のデータが既にローカルバックアップされているかどうかを判断しステップS309、また、いいえと判断した場合に、ローカルバックアップを行うステップS310。ステップS309では、はいと判断すれば、又は、ステップS310を実行した後に、即ち、リダクションユニットのローカルバックアップが完了した後に、リダクション制御装置のタスクフロー同期ユニットは、現在のリダクションユニットの所属するタスクの全てのサブタスクが全て既にリダクションされているかどうかを判断するステップS311。ステップS311での判断結果がいいえであれば、現在のリダクションユニットの処理を終了させる。なお、一つのタスクの複数のサブタスクは、ユーザにより設定されているリダクション関数により、異なるリダクションユニットにリダクションされる。該タスクに属する他のリダクションユニットは、同時又はその後に、ステップS307~S31Lをも実行する。ステップS311での判断結果がはいであれば、該タスクに属する全てのリダクションユニットをリリースしステップS312、また、ステップS313に進む。ステップS303においてリダクションユニットの数量が閾値に達していることにより、リダクションユニットに出力されず、リダクションキューに置かれる計算結果のある可能性がある。ステップS312においてリダクションユニットをリリースした後に、リダクションキューが空であるかそうかを判断しステップS313、いいえと判断すれば、リダクションキュー中のリダクションタスクを取り出しステップS314、ステップS302に進み、取り出したリダクションタスクに対してリダクションを行う。ステップS313においてはいと判断すれば、処理を終了させる。次に、図4を参照しながら図3におけるステップS301について具体的に説明する。分散計算グループは、入力されたタスクフローにおける複数のタスクを取得するステップS41。計算スケジューリングユニットは、少なくとも一つのリダクションバッファが書き込み可能な状態にあるかどうかを判断しステップS42、全てのリダクションバッファが書き込み不可であれば、少なくとも一つのリダクションバッファが書き込み可能な状態になるまで繰り返しを続け;少なくとも一つのリダクションバッファが書き込み可能な状態にあれば、一つのタスクを複数のサブタスクに分けステップS43、また、複数のサブタスクをサブタスクキューに置くステップS44。分散計算は、複数のタスクを同時に処理することができるので、サブタスクキューには、複数のタスクの複数のサブタスクが存在する。計算スケジューリングユニットは、稼動している計算ユニットの数量が閾値に達していないかどうかを判断しステップS45、閾値に達している場合、判断結果がはいになるまで待ち続け;計算ユニットの数量が閾値に達していないと判断した時に、計算ユニットを生成し、また、該計算ユニットにより、サブタスクキュー中の一つのサブタスクに対して計算を行うステップS46。計算ユニットは、計算エンジン及び計算用ローカルバックアップユニットを含み、計算エンジンは、計算を行うために用いられ、計算用ローカルバックアップユニットは、計算ユニットの計算が完了した後に、計算結果を出力する前に、前記計算結果をバックアップするために用いられ、これにより、図3のステップS305に用いる計算結果のバックアップを提供する。次に、図5を参照しながら図3におけるステップS303について具体的に説明する。タスクフロー同期ユニットは、計算スケジューリングユニットが所定のリダクション関数を用いて計算したリダクション値を取得しステップS501、また、リダクション値に対応するリダクションユニットが存在するかどうかを判断しステップS502、判断結果がはいである時に、該リダクションユニットの所属するタスクの標識と、現在の計算結果の所属するタスクの標識とが一致するかどうかを判断しステップS503、判断結果がはいである時に、該リダクションユニットのアドレスを取得するステップS504。即ち、そのリダクション値及びその所属するタスクの標識が全て現在の計算結果と同じであるリダクションユニットを見つけた時のみに、該リダクションユニットのアドレスを取得する。さもなければ即ち、S502、S503において判断結果がいいえである時に、稼動しているリダクションユニットの数量が閾値に達していないかどうかを判断しステップS505、はいと判断した時に、リダクションユニットを生成し、また、該リダクションユニットのリダクション値及び所属するタスクの標識を、現在の計算結果のリダクション値及び所属するタスクの標識と設定するステップS506。ステップS505において判断結果がいいえである時に、現在のリダクションタスクをリダクションキューに置くステップS507。タスク標識は、タスクの標識を行うために用いられ、一つのリダクションユニットは、一つのみのタスクの計算結果のリダクションを担当し、唯一のタスク標識を有する。リダクション値の役割は、同一タスクの複数のサブタスクの計算結果を複数のリダクションユニットにリダクションし、さらに、異なるリダクションバッファにリダクションすることにある。ユーザは、事前にリダクション関数を設定することにより具体的な設置を行ってもよく、例えば、索引作成の応用では、agで始まる単語の索引データを第一のリダクションバッファに置き、hnで始まる単語の索引データを第二のリダクションバッファに置くように、リダクション関数を設置してもよい。同一タスクの複数のリダクションユニットは、異なるリダクション値を有し、また、異なるリダクションバッファに対応してもよい。同じリダクション値を有するリダクションユニットは、互いに、所属するタスクの標識により区分される。同じリダクション値を有するリダクションユニットは、リダクション処理の結果を同一リダクションバッファに出力する。リダクション値を用いて分散計算の計算結果を複数のリダクションユニットに割り当てることにより、さらに、計算負荷を分散させる役割を果たすこともできる。次に、図6を参照しながら図3におけるステップS308について具体的に説明する。まず、ローカルリダクションバッファのアドレスを取得し、また、それを目的リダクションバッファと設置するステップS601。上述のように、一つのリダクションユニットについて言えば、同一リダクションノードに属するリダクションバッファは、このリダクションユニットのローカルリダクションバッファであり、また、その第一選択firstchoiceの目的リダクションバッファとされる。もちろん、リダクションノードが仮想マシンである時に、このリダクションユニットのローカルリダクションバッファは、もう一つの物理コンピュータに位置する可能性がある。その後、目的リダクションバッファが書き込み可能かどうかを判断しステップS602、上述のように、リダクションバッファは、異常の発生によりリセットされている時に、書き込み不可の状態にある。なお、後述では、リダクションバッファは、クリアされている時にも書き込み不可の状態にあることをさらに説明する。この二つの場合、リダクションバッファは全て書き込み不可である。ステップS602において目的リダクションバッファシステムが書き込み不可と判断した場合、目的バッファの所属するリダクションノードが隣接するノードを有するかどうかを判断しステップS603、隣接するノードを有すると判断すれば、この隣接するノードのリダクションバッファを目的リダクションバッファと設置しステップS604、また、ステップS602に戻して処理を行う。即ち、目的リダクションバッファが書き込み不可の時に、リダクションユニットのデータを、再指向後のリダクションバッファに書き込んでもよい。いわゆる隣接するとは、物理上の隣接することであってもよく、論理上の隣接することであってもよく、ユーザにより設定され得る。例えば、ユーザは、各リダクションノードのアドレスを一つのリンクリストに記憶させてもよく、リンクリストにおける最後の一つのデータの後は、該リンクリストの第一個のデータであり、そのうち、一つのリダクションノードの隣接するノードは、該リダクションノードがリンクリスト中のその後の一つのノードである。該リダクションノードの隣接するノードがその自身である時に、該リダクションノードは隣接するノードを有しないと判断する。リダクションユニットのデータが再指向により他のリダクションバッファに書き込まれる可能性があるので、リダクションバッファ内制御ユニットには、このような状況を記録する再指向リストがあり、リダクションバッファがダクションバッファへのアクセスを制御する時の使用に供する。ステップS603において目的バッファが隣接するノードを有しないと判断すれば、現在のリダクションバッファシステムには書き込み可能なリダクションバッファが存在しないことを示し、よって、リダクションユニットのデータをリダクション用ローカルバックアップユニットにバックアップしステップS605、また、リダクションバッファシステムが書き込み不可であるようにマークアップmarkupしステップS606、リダクションユニットの標識を書き込み阻塞キューに置くステップS607。後述では、リダクションバッファシステムが書き込み可能になる時に、書き込み阻塞キューからリダクションユニットの標識を取り出し、図3中のステップS308を再び実行することを更に説明する。ステップS602において目的バッファが書き込み可能と判断すれば、リダクションユニット中のデータを目的リダクションバッファに書き込む。書き込んだ後に、目的リダクションバッファが所定のサイズを超えているかどうかを判断し、判断結果がいいえであれば、リダクションバッファに正確に出力していることを示し、図3中のステップS308が正常に終了する。判断結果がはいであれば、ステップS610に進み、リダクションバッファをクリアする。なお、リダクションバッファをクリアしている時に、該リダクションバッファが書き込み不可であるが、この時に、リダクションバッファシステム全体は、必ずしも書き込み不可ではない。リダクションバッファのサイズは、予めユーザにより設定されてもよく、所定のサイズを越えた時に、リダクションバッファ中の現在のデータを全て磁気ディスクに書き込んだ上で、リダクションバッファをクリアする。なお、データを磁気ディスクに書き込んだが、リダクションバッファリストに、これらのデータのデータ構造が依然として保留され、これにより、外部から、リダクションバッファ制御ユニットにより、データ構造に従って、これらのデータにアクセスすることができる。これらのデータは、ハードディスクに記憶されているので、リダクションバッファが異常になることにより影響されないため、リダクションバッファに対応するリダクションユニットのローカルバックアップ及び計算ユニットのローカルバックアップを削除するステップS611。クリアされたリダクションバッファが存在するため、リダクションバッファシステムに、書き込み可能なリダクションバッファが少なくとも一つあるので、リダクションバッファシステムが書き込み可能であるようにマックアップしステップS612、また、書き込み阻塞キューからリダクションユニットの標識を取り出しステップS613、他のリダクションユニットのリダクションバッファシステムへの書き込み操作を実行する。次に、図7を参照しながらリダクションバッファの読み出し操作について具体的に説明する。リダクションバッファ制御ユニットは、ユーザの入力を取得し、リダクションバッファリストを取得しステップS72、このリストを参照して入力に基づいて、リダクションバッファから対応する結果を取り出しステップS73、また、各リダクションバッファから取り出した結果を併合するステップS74。リダクションバッファに異常が発生すれば、リダクションユニットのローカルバックアップから、リダクションバッファを回復し。そのうち、ステップS73は、各リダクションバッファから並列に結果を取り出してもよく、各リダクションバッファから直列に結果を取り出してもよい。そのうち、再指向の場合が存在するため、ステップS73では、リダクションバッファは、再指向リストアクセスに基づいて、他のリダクションバッファにアクセスすることによりデータを取得する可能性がある。図8は、本発明による分散計算方法及び分散計算システムがリアルタイム検索分野における応用例を示している。まず、転置索引の生成について簡単に紹介する。一つのサブタスクの入力が、例えば、次のようなフォーマット、即ち、<単語,該単語の所在するドキュメントのドキュメント標識>を有する。仮にドキュメントlが次の単語、即ち、tl、t2、t3を含み、ドキュメント2が次の単語、即ち、tl、t3、t4を含むとする。この2つのドキュメントについて計算後の転置索引のフォーマットは、tldltld2t2dlt3dlt3d2t4d2のようになる。リダクションが行われた後に、上述の索引は、次のようなフォーマット、即ち、tldld2t2dlt3dld2t4d2のようなフォーマットになる。索引をさらに構造化するために、tl及びt2の索引は、一つのリダクションバッファに置かれ、t3及びt4の索引は、もう一つのリダクションバッファに置かれる。同時に、大規模データを処理するために、二つのリダクションバッファ中のデータは、検索を便利に行うために、ツリー構造として構成される。次に、具体的な実施を説明しながら上述の処理の例示的なフローチャートを示す。リアルタイム検索の分散処理構造において、タスクは、2種類、即ち、索引タスク及び検索タスクに分けられる。一つの索引タスクは、一つのドキュメントセットであり、例えば、一万個の索引作成待ちのドキュメントである。リアルタイム環境では、新しいドキュメントセットを索引タスクキューに絶えずに追加する可能性がある。索引タスクスケジューリングユニット811が有する計算リソースメモリ、CPU時間などに基づいて、各索引タスク即ち、一つのドキュメントセットを若干のサブタスクサブドキュメントセットに分割し、その後、若干の計算ユニットを初期化して計算を行わせ、各計算ユニットは、一つのサブ索引タスクの計算タスクドキュメント解析、単語分け、転置などを担当する。計算処理の後に、初歩的な転置索引が生成されており、同じ単語の転置索引がまとめて置かれている。リダクションユニット801及び802は、リダクションバッファ1を共有shareし、リダクションユニット803及び804は、リダクションバッファ2を共有する。ユーザは、リダクション関数を設定することにより、aで始まる単語及びbで始まる単語のリダクション値がリダクションバッファ1に対応するようにさせ、hで始まる単語及びiで始まる単語のリダクション値がリダクションバッファ2に対応するようにさせることができる。このように、リダクションユニット801は、aで始まる単語の索引を処理し、リダクションユニット802は、bで始まる単語の索引を処理し、リダクションユニット803は、hで始まる単語の索引を処理し、リダクションユニット804は、iで始まる単語の索引を処理する。同時に、リダクションバッファ1は、a~gで始まる単語の索引を記憶し、リダクションバッファ2は、h~nで始まる単語の索引を記憶し、リダクションバッファは、自分のツリー索引構造及びその読み取り/書き込みアクセスを維持する。そのうち、リダクションユニットは、同一タスクの複数の計算結果を受け、複数の計算結果は、異なる計算ユニットからのものであるので、リダクションユニットのリダクション処理では、少なくとも、複数の計算結果に対して記憶を行う必要がある。同時に、ユーザのニーズ及び設置に応じて、リダクション処理では、受けた計算結果に対して後処理を行い、例えば、計算結果のキーによるソーティング例えば、tl、t2、t3、...の順でソーティングなどを行う。一つのリダクションユニットは、一つのみのタスクの計算結果に対してリダクションを行い、これは、所属するタスクの標識により実現され得る。計算結果をリダクションユニットに割り当てる時に、さらに、計算結果とリダクションユニットの所属するタスクの標識が一致するかどうかを比較する。一つのタスクの全てのサブタスクが全てリダクション処理された後に、該タスクに対してリダクションを行うリダクションユニットをリリースする。入力が一つだけのタスクではなく、且つ、新しいタスクが絶えずに追加されるので、計算ユニット及びリダクションユニットには、同時に、一つ以上のタスクが計算及びリダクションされている可能性がある。異なるタスクには、同じキーの入力を有し、例えば、aで始まる単語の索引は、リダクション関数による計算後のリダクション値が、同一リダクションバッファに対応する異なるリダクションユニットに割り当てられる。これにより、最終的に、各タスクの計算結果は、ユーザにより設置されているニーズに従って、リダクションバッファ中のデータ構造に融和し得る。各タスクは、リダクションバッファにリダクションされた後に、直ぐに、検索のためにアクセスされ得る。検索タスクを受ければ、リダクション制御装置82は、リダクションバッファリストに基づいて、リダクションバッファにアクセスし、アクセスによる結果を検索タスクのリクエスト元に戻す。上述の装置中の各構成モジュール及びユニットは、ソフトウェア、ファームウェア、ハードウェア又はそれらの組み合せの方式で構成されてもよい。構成に用いる具体的な手段は、当業者に既知であるので、ここでは、詳しい説明を省略する。ソフトウェア又はファームウェアにより実現する場合、記憶媒体又はネットワークから、専用ハードウェア構造を有するコンピュータ例えば、図9に示す汎用コンピュータ900に該ソフトウェアを構成するプログラムをインストールし、該コンピュータは、各種のプログラムがインストールされている時に、上述の各種の機能などを実行することができる。図9に示すように、中央処理ユニットCPU901が、リードオンリーメモリROM902に記憶されているプログラム、又は、記憶部908からランダムアクセスメモリRAM903にロードされているプログラムに基づいて各種の処理を行う。RAM903は、ニーズに応じて、CPU901が各種の処理などを実行するときに必要なデータを記憶してもよい。CPU901、ROM902及びRAM903は、バス904を経由して互いに接続される。また、入力/出力インターフェース905もバス904に接続される。入力/出力インターフェース905には、入力部906キーボードやマウスなどを含む、出力部分907表示器例えばCRT、LCD、スピーカーなどを含む、記憶部908ハードディスクなどを含む、及び通信部909ネットワーク接続カード例えばLANカード、モデムなどを含むが接続される。通信部909は、ネットワーク例えばインターネットを経由して通信処理を行う。ドライブ910がニーズに応じて入力/出力インターフェース905に接続されてもよい。また、ニーズに応じて、取り外し可能な媒体911例えば磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどをドライブ910にセットすることにより、その中から読み出したコンピュータプログラムを記憶部908にインストールしてもよい。ソフトウェアにより上述の一連の処理を実現する場合は、ネットワーク例えばインターネット、又は記憶媒体例えば取り外し可能な媒体911から、このソフトウェアを構成するプログラムをインストールしてもよい。当業者が理解すべきは、このような記憶媒体は、中にプログラムが記憶されており、ユーザにプログラムを提供するよう装置と独立して配られる図9に示すような取り外し可能な媒体911に限定されない。取り外し可能な媒体911の例としては、磁気ディスクフロッピー登録商標ディスクを含む、光ディスクCD-ROM及びDVDを含む、光磁気ディスクMD登録商標を含む、及び半導体メモリを含む。或いは、記憶媒体はROM902、記憶部908に含まれるハードディスクなどであってもよく、それらにはプログラムが記憶されており、且つそれらを含む装置とともにユーザに配られてもよい。また、本発明は、マシン読取可能な命令コードを記憶しているプログラムプロダクトにも関する。この命令コードは、マシンに読み取られて実行される時に、上述の実施例による方法を実行させることができる。それ相応に、上述のマシン読取可能な命令コードを記憶しているプログラムプロダクトをキャリーするための記憶媒体も本開示に含まれている。このような記憶媒体は、磁気ディスクフロッピーディスク、光ディスク、光磁気ディスク、メモリカード、メモリメモリスティックなどを含むが、これらに限定されない。本発明の具体的な実施例について行った上述の説明では、一つの実施形態について説明した及び又は示した特徴は、同じ又は類似する形で一つ又は複数の他の実施形態に用い、他の実施形態中の特徴と組み合わせ、又は、他の実施形態中の特徴を置換することができる。強調すべきは、包括有する含むというような語は、本文に用いる時に、特徴、部品全体、ステップ又は組み立て部品の存在を指すが、一つ又は複数の他の特徴、部品全体、ステップ又は組み立て部品の存在又は付加を排除しないことである。また、本発明の上述の方法は、明細書に記載の又は図面に図示の時間順序に従って実行することに限定されず、他の時間順序に従って、並列に又は独立して実行してもよい。よって、本明細書又は図面に記載の方法の実行順序は、本発明の技術的範囲を限定しない。以上、本発明の具体的な実施例を基に、本発明について説明したが、当業者が理解すべきは、上述の全ての実施例及び具体例は全て例示的なものだけであり、本発明の保護範囲を制限するものではない。当業者は、添付の特許請求の範囲の思想及び範囲内において、本発明に対してあらゆる変形及び変更などを行ってもよく、これらの変形及び変更なども、本発明の技術的範囲に属する。"