JP2004145885A - 遠隔コンピュータへのオペレーションの分散方法、装置、及び記憶媒体 - Google Patents

遠隔コンピュータへのオペレーションの分散方法、装置、及び記憶媒体 Download PDF

Info

Publication number
JP2004145885A
JP2004145885A JP2003359316A JP2003359316A JP2004145885A JP 2004145885 A JP2004145885 A JP 2004145885A JP 2003359316 A JP2003359316 A JP 2003359316A JP 2003359316 A JP2003359316 A JP 2003359316A JP 2004145885 A JP2004145885 A JP 2004145885A
Authority
JP
Japan
Prior art keywords
computer
independent operation
operations
independent
execution
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.)
Pending
Application number
JP2003359316A
Other languages
English (en)
Inventor
Robert A Todd
ロバート エイ トッド
Laurence W Grodd
ローレンス ダヴリュー グロッド
Nicolas B Cobb
ニコラス ビー コッブ
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.)
Mentor Graphics Corp
Original Assignee
Mentor Graphics 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 Mentor Graphics Corp filed Critical Mentor Graphics Corp
Publication of JP2004145885A publication Critical patent/JP2004145885A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】ソフトウエアアプリケーション中のオペレーションをマスタコンピュータから実行のための1つ以上のスレーブコンピュータへ効率的に分散する方法及びツールを提供することを目的とする。
【解決手段】他の入力データとは独立の入力データを用いるソフトウエアアプリケーション内のオペレーションが識別され、1つ以上のグループへと編成され、実行のためのスレーブコンピュータへ分散されうる。オペレーションのグループは、それ自身がいつスレーブコンピュータ上で実行されるべきかを判定する1つ以上のヒューリスティックを含みうる。分散された場合、マスタコンピュータは続いて、スレーブコンピュータがこれらのオペレーションの実行に成功したかどうかを判定する。スレーブコンピュータは、成功であれば、結果をマスタコンピュータへ戻し、マスタコンピュータは戻された結果をソフトウエアアプリケーションを実行し続けるために使用する。
【選択図】図4B

Description

 本発明は、ホストコンピュータから1つ又はそれ以上の遠隔コンピュータへのオペレーションの分散に関する。本発明の種々の面は、マルチプロセッサ、マルチスレッドのホストコンピュータから1つ又はそれ以上のシングルプロセッサ又はマルチプロセッサ遠隔コンピュータへソフトウエアオペレーションを分散させることに特に適用される。
 多くのソフトウエアアプリケーションは、シングルプロセッサコンピュータ上で効率的に実行されうる。しかしながら、幾つかのソフトウエアアプリケーションは、あまりにも多くのオペレーションを有するため、経済的に合理的な時間内でシングルプロセッサコンピュータ上で順次に実行されることができない。例えば、幾つかのソフトウエアアプリケーションは、数十万又は数百万の入力データ値に対して1つ又はそれ以上のオペレーションの実行を必要とする。これらの種類のソフトウエアアプリケーションをより効率的に実行するために、多数のプロセッサ及び多数の処理スレッドを用いるコンピュータが開発されている。これらのコンピュータは、シングルプロセッサのコンピュータよりも高速に複雑なソフトウエアアプリケーションを実行しうるが、これらのマルチプロセッサコンピュータは購入時及び維持管理に非常に費用がかかる。マルチプロセッサコンピュータでは、プロセッサは多数のオペレーションを同時に実行するため、関連のあるオペレーションの同時実行を調整するために特別なオペレーティングシステムを使用せねばならない。更に、その多数のプロセッサは例えばメモリといった資源に同時にアクセスしようとしうるため、マルチプロセッサコンピュータのバス構造及び物理的なレイアウトは、シングルプロセッサコンピュータよりも本質的により複雑である。
 大きいマルチプロセッサコンピュータに関する問題点及び費用に鑑みて、単一のマルチプロセッサコンピュータを用いる代わりに、リンクされたシングルプロセッサコンピュータのネットワークのほうが一般的となってきた。例えばパーソナルコンピュータといった従来のシングルプロセッサコンピュータの費用は、過去数年間で大きく低下している。更に、多数のシングルプロセッサコンピュータのオペレーションをネットワークへリンクする技術は、より高性能となり信頼性が高くなっている。従って、現在では、数百万ドル程度のマルチプロセッサコンピュータは、比較的単純で低費用のシングルプロセッサコンピュータのネットワーク又は「ファーム(farm)」で置き換えられることが多くなっている。
 しかしながら、単一のマルチプロセッサコンピュータから多数のシングルプロセッサコンピュータへの移行には、問題がなかったわけではない。シングルプロセッサコンピュータのネットワークでは、コンピュータのうちの少なくとも一台(ホストコンピュータ又はマスタコンピュータとも称される)は、ネットワーク上の残るコンピュータ(遠隔コンピュータ又はスレーブコンピュータとも称される)に対してオペレーションを割り当てるタスクを実行する。マスタコンピュータは、また、どのスレーブコンピュータにどのオペレーションが割り当てられているかを把握し、スレーブコンピュータによって戻されるオペレーション結果を調整せねばならない。更に、割り当てられたオペレーションの結果を戻す前にスレーブコンピュータが故障した場合、マスタコンピュータは欠落している結果について補償せねばならない。これらの各タスクを効果的に実行するようマスタコンピュータを構成することにより、シングルプロセッサコンピュータのネットワークを用いることに関する問題点及び費用が増加する。
 更に、マルチプロセッサコンピュータ上で実行されるよう構成された幾つかの種類のソフトウエアアプリケーションは、シングルプロセッサコンピュータのネットワーク上で実行されるよう再構成されるのは容易ではない。例えば、階層型セルベースのソフトウエアアプリケーションは、シングルプロセッサコンピュータのアレイ上で実行されるようには容易には変換されえない。階層型セルベースのソフトウエアアプリケーションでは、オペレーションは、関連する値のグループ又は「セル」へと編成された入力データを使用する。更に、セル間の関係は階層的である。従って、階層内の一つのレベルの第1のセルの値は、階層内のより下位のレベルの第2のセルの値の幾つかに対してオペレーションを実行することにより生成される出力データに依存しうる。この第2のセルの値のうちの幾つかは、階層内の更に低いレベルの第3のセルの値の幾つかから生成される出力データに依存する。
 従って、その関連するセルの全てに対して他のオペレーションの実行が完了するまでセルに対するオペレーションを実行することは不可能であることがあり、多数のシングルプロセッサコンピュータ間の調整を難しくしている。更に、セルは相互に関連付けられるため、一般的には任意のセルを使用しうる各オペレーションにアクセス可能な大きいデータベース中に一緒に維持される。しかしながら、従来のシングルプロセッサコンピュータのネットワークでは、各コンピュータは、一般的には、このようなデータベースを格納することのできない非常に小さいメモリのみを有する。また、かかるデータベースをネットワーク上の各シングルプロセッサコンピュータに転送することは、ネットワークに対して許容できない水準のオーバヘッドを与えうる。
 従って、ネットワーク上のホスト(又は「マスタ」)コンピュータから多数のシングルプロセッサへ又はマルチプロセッサ式の遠隔(又は「スレーブ」)コンピュータへ複雑なソフトウエアアプリケーションの種々のオペレーションを効率的に分散することを可能とすることが望ましい。更に、1つ又はそれ以上の遠隔コンピュータの故障がソフトウエアアプリケーション全体の実行を脅かさないよう、オペレーションを分散させることを可能とすることが望ましい。
 有利には、本発明の種々の面は、複数のコンピュータ間でソフトウエアアプリケーション中のオペレーションを効率的に分散するツール及び方法を提供する。ツール及び方法のいずれの実施例も、階層型セルベースのソフトウエアアプリケーションの種々のオペレーションをマルチプロセッサコンピュータからネットワーク上の1つ又はそれ以上のシングルプロセッサコンピュータへ分散することに対して特定の用途を有する。
 本発明の種々の実施例によれば、ソフトウエアアプリケーション内で独立のオペレーションが識別される。独立のオペレーションとは、他の入力データとは独立な入力データのみを用いるオペレーションである。例えば、データベース中に格納された階層型セルベースの入力データを用いるソフトウエアアプリケーションによって実施される本発明の実施例は、ソフトウエアアプリケーション内の1つ又はそれ以上の「フラット」オペレーションを識別しうる。即ち、ソフトウエアアプリケーションは、他のセルのデータ値に対してオペレーションを実行して取得する必要のない、セルからの入力データ値を用いたオペレーションを識別しうる。幾つかのこれらの実施例では、これらの「フラット」オペレーション(又は他の種類の独立のオペレーション)は、関連付けられたオペレーションのグループへと集められ、以下、これらをフレキシブルオペレーショングループと称する場合がある。
 本発明の幾つかの実施例では、フレキシブルオペレーショングループは、1つ又はそれ以上のヒューリスティックを含みうる。フレキシブルオペレーショングループのヒューリスティックは、フレキシブルオペレーショングループが遠隔スレーブコンピュータ上でいつ効率的に実行されうるかを判定する。ヒューリスティックは、例えば、フレキシブルオペレーショングループのための入力データの量又は種類、及び、マスタコンピュータと、フレキシブルオペレーショングループが実行されうるスレーブコンピュータとの間の通信インタフェースの状態といった、多数の規準を考慮に入れうる。
 ソフトウエアアプリケーションがマスタコンピュータ上で実行されるとき、各フレキシブルオペレーショングループが識別される。フレキシブルオペレーショングループが実行のためにスケジューリングされると、マスタコンピュータは、フレキシブルオペレーショングループがスレーブコンピュータ上で実行されうるかどうかを判定するため、まずマスタコンピュータに関連する1つ又は複数のヒューリスティックを実行する。ヒューリスティックがオペレーションはスレーブコンピュータ上で実行されえ、スレーブコンピュータはマスタコンピュータがオペレーションを実行する前に利用可能な資源を有する場合、フレキシブルオペレーショングループは関連付けられる入力データと共にスレーブコンピュータへ与えられる。スレーブコンピュータは、フレキシブルオペレーショングループを実行する。スレーブコンピュータはフレキシブルオペレーショングループをうまく実行すれば、マスタコンピュータへ結果を返し、マスタコンピュータはソフトウエアアプリケーションを実行し続けるために戻された結果を使用する。しかしながら、スレーブコンピュータがフレキシブルオペレーショングループをうまく実行できなければ、マスタコンピュータは、中断なしにソフトウエアアプリケーションを実行し続けるために、資源が利用可能となったときにフレキシブルオペレーショングループ自身を単に実行しうる。
 本発明の上述及び他の特徴及び面は、以下の詳細な説明により明らかとなり考慮されるであろう。
 [はじめに]
 本発明の種々の実施例は、マスタコンピュータから1つ又はそれ以上の実行のために遠隔スレーブコンピュータへオペレーションを分散するツール及び方法に関する。上述のように、本発明の幾つかの実施例の面は、マルチプロセッサマスタコンピュータから1つ又はそれ以上のシングルプロセッサスレーブコンピュータへ階層型セルベースソフトウエアアプリケーションのオペレーションを分散することに特定の用途を有する。従って、本発明の理解をより容易とするため、複数のシングルプロセッサスレーブコンピュータに連結されたマルチプロセッサマスタコンピュータを有する典型的なネットワークを、本発明の実施例を実施する典型的な階層型セルベースソフトウエアアプリケーションとともに説明する。本発明の実施例によるフレキシブルオペレーショングループの配置については、オペレーションを分散するツール及びオペレーションを分散する方法と共に以下説明する。
 [典型的なオペレーション環境]
 当業者によって認められるように、本発明の種々の実施例によるソフトウエアアプリケーション分散技術は、プログラム可能な計算装置によって実行される、例えばソフトウエアプログラムモジュールといったコンピュータ実行可能な命令を用いて実施されうる。本発明は、ソフトウエアを用いて実施されうるため、本発明の種々の実施例が用いられ得る典型的なプログラム可能なソフトウエアシステムの構成要素及びオペレーションについてまず説明する。より特定的に、ホスト又はマスタコンピュータと、1つ又はそれ以上の遠隔又はスレーブコンピュータとを有するコンピュータネットワークの構成要素及びオペレーションについて、図1を参照して説明する。この動作環境は、適切な動作環境の一例にすぎないが、本発明の使用又は機能の範囲を制限することを示唆するものが意図されるわけではない。
 図1中、マスタコンピュータ101は、複数の入力及び出力装置103と、メモリ105とを含むマルチプロセッサコンピュータである。入力及び出力装置103は、ユーザから入力データを受け取るため及びユーザへ出力データを与えるための任意の装置を含みうる。入力装置は、例えば、ユーザから入力を受け取るための、キーボード、マイクロホン、スキャナ、又はポインティングデバイスを含む。出力装置は、ディスプレイモニタ、スピーカ、プリンタ、又は触覚フィードバック装置を含みうる。これらの装置とその接続は、周知であるため、ここでは詳述しない。
 メモリ105は、マスタコンピュータ101によってアクセスされうるコンピュータ読み取り可能な媒体の任意の組合せを用いて実施されうる。コンピュータ読み取り可能な媒体は、例えば、読み取り書き込みメモリ(RAM)、読み出し専用メモリ(ROM)、電気的消去可能及びプログラム可能な読み出し専用メモリ(EEPROM)或いはフラッシュメモリ超小型回路デバイスといった超小型回路メモリデバイス、CD−ROMディスク、ディジタルビデオディスク(DVD)又は他の光学記憶装置を含みうる。コンピュータ読み取り可能な媒体はまた、磁気カセット、磁気テープ、磁気ディスク、又は他の磁気記憶装置、穿孔媒体、ホログラフィー記憶装置、又は所望の情報を格納するために使用されうる任意の他の媒体を含みうる。
 以下詳述するように、マスタコンピュータ101は、本発明の実施例を実施するソフトウエアアプリケーションを実行する。従って、メモリ105は、ソフトウエアアプリケーションと共に使用されるべきデータを含むデータベース107を格納する。図示の実施例では、データベース107は、ソフトウエアアプリケーションのオペレーションを実行するための入力データを含む階層型セルベースのデータベースである。
 より特定的には、本発明の種々の実施例では、データベース107は、従属入力データと独立入力データの両方を含む。従属入力データは、ここでは、データベース107内の他の内容に対して従属した値を有するデータを指すものとする。すなわち、従属入力データの値は、データベース107中の他のデータの値に従属する。例えば、1つのオペレーションによって使用されるべき入力データは、他のオペレーションの実行により生ずる出力データに依存しうる。一方、独立データの値は、データベース中の他のデータの値に依存しない。しかしながら、データがデータベースに対して従属であるか独立であるかは、入力データの選択によって決定される。例えば、上述のように、第1のオペレーションを実行するための第1の入力データは、第2の入力データで第2のオペレーションを実行することによって生ずる出力データに依存しうる。第1のオペレーションを実行するために単独でとられた場合は、第1の入力データは第2の入力データに従属する。しかしながら、第1及び第2のオペレーションを両方とも実行するために第1の入力データと第2の入力データが一緒にとられた場合は、第1の入力データ及び第2の入力データは一緒にデータベース107から独立でありうる。
 再び図1を参照するに、マスタコンピュータ101は更に、複数のプロセッサ109とインタフェース装置111とを含む。プロセッサ109は、命令を実行するようプログラムされうる任意の種類の処理装置でありうる。プロセッサ109は、例えば、Intel(登録商標)Pentium(登録商標)又はXeon(登録商標)マイクロプロセッサ、Advanced Micro Devices Athlon(登録商標)マイクロプロセッサ、又はMotorola 68K/Coldfire(登録商標)マイクロプロセッサといった商業的に総称的なプログラム可能なマイクロプロセッサでありうる。或いは、プロセッサ109は、例えば、特別な種類の数学的なオペレーションを最適に実行するよう設計されたマイクロプロセッサといった、特注のプロセッサでありうる。インタフェース装置111、プロセッサ109、メモリ105、及び入力/出力装置103は、バス113によって相互に接続される。
 インタフェース装置111は、マスタコンピュータ101が通信インタフェースを通じて遠隔のスレーブコンピュータ115A,115B,115C...115xと通信することを可能とする。通信インタフェースは、例えば従来の有線ネットワーク接続又は光学的に伝達可能な有線ネットワーク等を含む任意の適当な種類のインタフェースでありうる。通信インタフェースは、ワイヤレス光学接続、無線周波数接続、赤外線接続、又は音響接続といったワイヤレス接続でありうる。様々な種類の通信インタフェースのプロトコル及び実施は、従来技術で周知であるため、ここでは詳述しない。
 各スレーブコンピュータ115は、システムバス125によって互いに接続されたメモリ117、プロセッサ119、インタフェース装置121、及び1つ又はそれ以上の入力/出力装置123を含む。マスタコンピュータ101の場合と同様、スレーブコンピュータ115用の入力/出力装置123は、キーボード、ポインティングデバイス、マイクロホン、ディスプレイモニタ、及びプリンタ等の従来の入力又は出力装置を含みうる。同様に、プロセッサ119は、任意の種類の従来の又は特注のプログラム可能なプロセッサ装置であり得、一方でメモリ117は任意の従来のメモリ記憶装置を用いて実施されうる。インタフェース装置111と同様、インタフェース装置121は、スレーブコンピュータ115が通信インタフェースを通じてマスタコンピュータ101と通信することを可能とする。
 図示の実施例では、マスタコンピュータ101はマルチプロセッサコンピュータであり、一方、スレーブコンピュータ115はシングルプロセッサコンピュータである。しかしながら、本発明の他の実施例は、シングルプロセッサマスタコンピュータを使用しうる。更に、1つ又はそれ以上の遠隔コンピュータ115は、それらの用途に応じて、多数のプロセッサを有しうる。また、ホストコンピュータ101としてシングルインタフェース装置111が図示されているが、本発明の他の実施例では、コンピュータ101は、多数の通信インタフェースを通じて遠隔コンピュータ115と通信するために2つ又はそれ以上の異なるインタフェース装置111を使用しうる。
 [典型的なソフトウエアアプリケーション及び階層型データベース]
 上述のように、本発明の実施例による1つ又はそれ以上の遠隔コンピュータ間でオペレーションを分散する方法及びツールは、種々のソフトウエアアプリケーションと共に使用されうる。しかしながら、本発明のいくつかの実施例は、マルチプロセッサコンピュータ上で実行されるよう構成され比較的大きいデータベースを用いる、例えば集積回路の構造をシミュレートし検査(verify)するために用いられるソフトウエアアプリケーションといった種類の、ソフトウエアアプリケーションのために特に有用でありうる。かかるシミュレーション及び検査ツールの例は、ここに参照として組み入れられる、2001年5月8日発行のマクシェリー(McSherry)外による米国特許第6,230,299号、2001年6月19日発行のマクシェリー(McSherry)外による米国特許第6,249,903号、2002年1月15日発行のアイゼンホファー(Eisenhofer)外による米国特許第6,339,836号、2002年5月28日発行のボズカス(Bozkus)外による米国特許第6,397,372号、2002年7月2日発行のアンダーソン(Anderson)外による米国特許第6,415,421号、及び、2002年7月23日発行のアンダーソン(Anderson)外による米国特許第6,425,113号に記載されている。
 従って、本発明のこれらの実施例の理解を容易とするため、集積回路のフォトリソグラフィーレイアウトのシミュレーション及び検査のための、1つのかかる種類のソフトウエアアプリケーションについて概説する。図2に示すように、ソフトウエアアプリケーション、即ち、シミュレーション及び検査ツール201は、データインポートモジュール203及び階層型データベース205を含む。ツール201はまた、レイアウト−回路図(LVS:layout−versus−schematic)検査モジュール207、設計規則確認(DRC:design rule checking)モジュール209、位相シフトマスク(PSM:phase shift mask)モジュール211、光学的及びプロセス補正(OPC:optical and process correction)モジュール213、及び光学的及びプロセス規則(OPR:optical and process rule)確認モジュール215を含む。ツール201は更に、必要であれば更なる機能を実行するための他のモジュール217を含みうる。ツール201はまたデータエクスポートモジュール219を有する。
 最初に、ツール201は、元の集積回路レイアウトデータ221を受け取る。このレイアウトデータ221は、集積回路装置の異なる構造的な層を製造するためのフォトリソグラフィーレイアウトを表わす。例えば、元の集積回路レイアウトデータ221は、トランジスタの絶縁領域を作成するためのフォトリソグラフィーマスクを画成する第1の組のポリゴン、トランジスタの接触電極を作成するためのフォトリソグラフィーマスクを画成する第2の組のポリゴン、及び、接触電極の相互接続配線を作成するためのフォトリソグラフィーマスクを画成する第3の組のポリゴンを含みうる。以下詳述するように、元の集積回路レイアウトデータ221は、データインポートモジュール203によって、ツール201の残る構成要素によってより効率的に処理されうる形式へと変換される。
 一旦、データインポートモジュール203が元の集積回路レイアウトデータ221を適切な形式に変換すると、レイアウトデータ221は、モジュール205−217によって実行される種々のオペレーションによる使用のために階層型データベース205中に格納される。次にレイアウト−回路図モジュール207は、変換されたレイアウトデータ221が所望の集積回路のための元の設計仕様と一致するかどうかを確かめるため、変換されたレイアウトデータ221を調べる。次に、設計規則検査モジュール209は、レイアウトデータ221が所定の幾何学の設計規則を守ることを確認する。次に、変換されたレイアウトデータは、適切であれば位相シフトを与えるためにレイアウトデータ221を変更する位相シフトモジュール211によって処理される。
 処理されたレイアウトデータ221は、次に光学的及びプロセス補正モジュール213へ渡され、光学的及びプロセス補正モジュール213は、光学的及びプロセス補正モジュール213がなければリソグラフィーパターニング中に生じたであろう製造歪みを補正する。例えば、光学的及びプロセス補正モジュール213は、画像歪み、光学的な近接効果、フォトレジスト運動効果、及びエッチ負荷歪みについて補正しうる。光学的及びプロセス規則確認モジュール215は、光学的及びプロセス補正モジュール213によって生じた補正データが所望の補正効果を有することを確認するため、位相シフトされ補正されたレイアウトデータ221の使用をシミュレートする。上述のように、他のモジュール217は、所望であれば、処理され補正されたレイアウトデータ221の更なる操作を行うために使用されうる。所望の全てのオペレーションが元のレイアウトデータ221に対して行われた後、データエクスポートモジュール219は処理されたレイアウトデータ221をレチクル及び集積回路製造レイアウトデータ223へ変換する(即ち、データエクスポートモジュール219は処理されたレイアウトデータ221を、フォトリソグラフィー製造処理において使用されうる形式へ変換する)。
 シミュレーション及び検査ツール201を実行することは、しばしば、大量の入力レイアウトデータ221に対してオペレーションを実行することを必要としうる。例えば、単純にポリゴンの面積を計算する処理は、1つのタスクを完了するために50000個以上のポリゴンに対して操作を行いうる。従って、これらの種類のソフトウエアアプリケーションは、アプリケーションによって実行される種々のタスクが分割され同時に実行されうるよう、一般的にはマルチプロセッサコンピュータ上で実行される。しかしながら、当業者によって認められるように、集積回路の種々の層を形成するための製造処理段階は、相互に関連する。例えば、集積回路の1つの層を製造するのに必要な処理段階は、集積回路の下の層を製造するために使用される処理ステップに依存しうる。従って、元の集積回路レイアウトデータ221をシミュレートし検査するために、データは、対応する製造処理の相互関係に基づいて階層型に編成される。
 より特定的には、元の集積回路レイアウトデータ221は、階層型データベース205中の階層型セルへと配置される。セルの階層構造は、種々の異なる規準に基づくものでありうる。例えば、セルの階層構造は、所望の集積回路中の個々の層の積層順序に基づいて配置されうる。このように、集積回路の1つの層に生ずる構造のためのレイアウトデータ221の一部は、第1の階層レベルのセルに対して割り当てられ得る。集積回路のより高位の層に生ずる構造に対応するレイアウトデータ221の他の部分は、第1の階層レベルとは異なる第2の階層レベルのセルに対して割り当てられ得る。
 或いは、レイアウトデータ221の階層構造は、より大きい構造を形成するために個々の構造の組み合わせに基づくものでありうる。例えば、電極接点に対応するレイアウトデータ221の一部は、第1の階層レベルのセルに割り当てられ得る。電極接点を含むNANDゲートに対応するレイアウトデータ221の他の部分は、第1の階層レベルよりも高位の第2の階層レベルのセルに割り当てられ得る。複数のNANDゲートを用いるより大きい回路構造に対応するレイアウトデータ221の更なる他の部分は、第2の階層レベルよりも高位の第3の階層レベルのセルに割り当てられ得る。
 図3は、種々のセルが、階層型データベース205等のセルベースの階層型データベース中で配置されうるかを示す図である。本例では、各セルは階層型データベースの一部を含み、「A」から「I」までの文字で示されている。データベース中のデータ301は、4つの階層レベル303−309へ分けられる。最も高い階層レベル303は1つのセル311のみを含み、一方、2番目に高い階層レベル305は2つのセル313及び315を含む。この配置によれば、(シミュレーション又は検査処理といった)処理は、先行するセル313及び315が同様に処理されるまでは最も高い階層レベルのセル311中の入力データを用いて正確に実行することはできない。同様に、第2の階層レベルのセル313中の入力データは、その先行する第3の階層レベルのセル317及び319が処理されるまで処理されることができない。この図に示すように、多数の階層レベルにおいて同一のセルが生じうる。例えば、セル321は第3の階層レベル307中にあり、セル323は第4の階層レベル309中にあるが、いずれのセル321及び323も(図中、文字「D」で示す)同じ入力データを含む。このように、電気接点等の特別な構造に関連するレイアウトデータといったレイアウトデータは、データベース205の異なる階層レベルで繰り返し使用されうる。
 レイアウトデータ221の階層型の編成は、マルチプロセッサコンピュータ201といったマルチプロセッサコンピュータ上でさえもシミュレーション及び検査ソフトウエアアプリケーションが実行されるのを困難としうる。例えば、図3に示す階層型データ301では、セル313はセル315と同時には処理されえない。しかしながら、一定の状況下では、セル同士が異なる階層レベルにあっても、セル325はセル315と同時に処理されうる。従って、データインポートモジュール203は、上述のようにその処理を容易とするために元の集積回路レイアウトデータ221を変更する。更に特定的には、データインポートモジュール203は、多数のプロセッサを用いたレイアウトデータ221の処理を最適化するため、集積回路レイアウトデータ221の階層型の編成を再編成する。
 このように、データインポートモジュール203によって強いられるレイアウトデータ221の再構成は、マルチプロセッサコンピュータ101といったマルチプロセッサコンピュータ上でのレイアウトデータ221の処理を改善しうる。しかしながら、この変更があっても、個々のセルの相互従属性は、やはり、例えば遠隔コンピュータ215といった多数のシングルプロセッサコンピュータを用いてレイアウトデータ221を処理することを困難としうる。1つのセルでタスクを行うことは、プロセッサが階層型データベース中で得られた多数のセルからのレイアウトデータ221にアクセスすることを必要とすることがあり、或る時点では、レイアウトデータ221の必要な値はまだ発生されていないかもしれない。コンピュータ101といったマルチプロセッサコンピュータは各オペレーションによるアクセスのための階層型データベース205全体を含むことができる大容量メモリを含みうるが、スレーブコンピュータ115といったシングルプロセッサコンピュータは一般的には比較的小さいメモリ117のみを用いる。セルを処理するために関連するセルから必要とされるデータのサイズは、このように、従来のシングルプロセッサコンピュータのメモリ中に格納するには大きすぎることがある。
 [典型的なフレキシブル処理グループ]
 有利には、本発明の種々の実施例は、独立入力データを使用するソフトウエアアプリケーション中で独立のオペレーションを識別する。例えば、上述のツール201を用いた場合、ツール201は階層型データベース205とは独立の入力データを用いるそのオペレーションを識別する。更に特定的には、ツール201は階層型データベース205中の他のレイアウトデータの値に依存しない値を有する入力データを用いるオペレーションを識別する。この種類の独立のオペレーションは、その入力データが他の階層のセルからのレイアウトデータに依存しないため、本願では「フラット」オペレーションと称することがある。しかしながら、本発明の種々の実施例によって識別されうる他の又は更なる種類の独立のオペレーションが存在しうることが認識されるべきである。本発明のいくつかの実施例によれば、1つ又はそれ以上の関連する独立のオペレーションは、本願ではフレキシブルオペレーショングループと称されることもあるグループへまとめられる。
 ここで図4Aを参照するに、図中、階層型データベース中のセルに対してタスクを実行するためのソフトウエアアプリケーションの典型的な部分が示される。部分401は、入力データを取り出すため又はその関連するセルへ出力データを与えるための入力/出力コマンド(HDB I/O)403を含む。部分401はまた、図示の例ではフラットオペレーション(Flat Operation)である複数のオペレーション405を含む。従来のマルチプロセッサコンピュータでは、入力/出力コマンド403及びフラットオペレーション405の夫々は、関連するセルを用いて単一のスレッド407によって実行される。
 図4Bは、本発明の実施例によるソフトウエアアプリケーションの一部を示す図である。ソフトウエア部分401’は、図4Aに示す部分401と同じタスクを実行し、同じ入力/出力コマンド403及びフラットオペレーション405を含む。しかしながら、本発明の図示の実施例では、フラットオペレーション405はフレキシブルオペレーショングループ(Flexible Operation Group)409及び411へと編成される。フレキシブルオペレーショングループ409は、フレキシブルオペレーショングループ409を関連するフラットオペレーション405の集合として識別する識別子413を含む。フレキシブルオペレーショングループ409はまた、ヒューリスティック(Heuristic)415を含む。以下詳述するように、ヒューリスティック415は、フレキシブルオペレーショングループ409中のフラットオペレーション405が実行のためにスレーブコンピュータへ転送されうる(又はされる)のかを判定する。同様に、フレキシブルオペレーショングループ411は、識別子417と、フレキシブルオペレーショングループ411中のフラットオペレーション405がマスタコンピュータ上で実行されうる(又はされる)かスレーブコンピュータへ転送されるかを判定するヒューリスティック(Heuristic)419とを含む。
 図4Aに示されるソフトウエア部分401と同様に、ソフトウエア部分401’は第1のスレッド407を用いて実行される。スレッド407は、最初に、フレキシブルオペレーショングループ409のための識別子413を認識する。フレキシブルオペレーショングループ409中のオペレーションが実行されるべきであるとき、第1のスレッド407は、フレキシブルオペレーショングループがスレーブコンピュータ上で実行されうるかどうかを判定するため、ヒューリスティック415を実行する。殆どのフレキシブルオペレーショングループでは、マスタコンピュータ上の資源が直ぐに利用可能であれば、マスタコンピュータ上でオペレーションを実行するほうが効率的である。マスタコンピュータ上の資源が直ぐに利用可能でなければ、スレーブコンピュータ上でフレキシブルオペレーショングループを実行するほうが効率的である。従って、ヒューリスティック415は、フレキシブルオペレーショングループ409のフラットオペレーションが、マスタコンピュータ上で資源が利用可能となるのを待つよりも、スレーブコンピュータ上で実行した方が効率的となるかどうかを判定する。
 従って、ヒューリスティック415が、フレキシブルオペレーショングループ409がスレーブコンピュータ上で効率的に実行されうることを示し、フレキシブルオペレーショングループ409を実行するための資源がマスタコンピュータ上では利用可能でないが、スレーブコンピュータ上では利用可能であるとき、第1のスレッド407は、そのスレーブコンピュータ上で動作する第2のスレッド421へフラットオペレーション405を渡す。同様に、スレッド407は、フレキシブルオペレーショングループ411のための識別子417を認識し、ヒューリスティック419を実行する。ヒューリスティック419の結果が、フレキシブルオペレーショングループ411のフラットオペレーション405がスレーブコンピュータ上で効率的に実行されえ、フレキシブルオペレーショングループ411を実行するための資源がマスタコンピュータ上では利用可能でないがスレーブコンピュータ上では利用可能であるとき、第1のスレッドは、第3のスレッド423による実行のためにフレキシブルオペレーショングループ411中のフラットオペレーション405をスレーブコンピュータへ渡す。
 尚、図4に示すようにオペレーションをフレキシブルオペレーショングループへと編成することは、上述のシミュレーション及び検査ツール201のような階層型のセルベースのアプリケーションソフトウエアと、階層型データベースを使用しないソフトウエアアプリケーションの両方を含む種々の異なる種類のソフトウエアアプリケーション中で実施されうる。更に、コード部分401’によって示される本発明の特徴を組み込んだソフトウエアアプリケーションの実行は、図1に示す種類のネットワークを含む、様々なマスタ・スレーブ型コンピュータネットワーク上で実施されうる。
 本発明の異なる実施例は、フレキシブルオペレーショングループのフラットオペレーションがスレーブコンピュータ上で実行されうるかどうかを判定する種々のヒューリスティックなアルゴリズムを使用しうる。例えば、本発明の幾つかの実施例は、フラットオペレーションによって処理されるべき入力データの量に基づいて、フラットオペレーションがスレーブコンピュータ上で実行されうるかどうかを判定するヒューリスティックを使用しうる。この種類のヒューリスティックは、入力データが予め設定された値よりも大きければ、フラットオペレーションがスレーブコンピュータ上で実行されうると判定しうる。更に、これらの実施例は、異なるフレキシブルオペレーショングループのための異なる予め設定された値を有するヒューリスティックを使用しうる。ポリゴンの面積を加算するオペレーションは、入力データが50000個以上のポリゴンを含む場合でもシングルプロセッサスレーブコンピュータ上で効率的に実行されうる。一方で、ポリゴンを避けさせるオペレーションは、入力データが2000個のポリゴンだけのとき、シングルプロセッサスレーブコンピュータ上で効率的に実行されるには大きすぎることがある。
 本発明の他の実施例は、マスタコンピュータとスレーブコンピュータとの間の通信インタフェースの状態に基づいて、フラットオペレーションがスレーブコンピュータ上で実行されうるかどうかを判定するヒューリスティックを使用しうる。例えば、通信インタフェースが予め設定されたデータ転送速度以上で動作しているとき、又は予め設定された設定と一致するとき、ヒューリスティックは、その関連するフラットオペレーションはスレーブコンピュータ上で実行されうると判定しうる。本発明のこれらの実施例のうちの幾つかでは、ヒューリスティックは、通信インタフェースの状態が、ヒューリスティックを実行するプロセッサに手動で与えられることを必要としうる。本発明の更なる他の実施例では、ヒューリスティックは、通信インタフェースの状態を自動的に判定しうる。ヒューリスティックは、例えば、遠隔コンピュータへ問合せテストメッセージを送信し、戻りメッセージが受け取られるまでの遅延を測定しうる。
 本発明の更なる他の実施例は、入力データを分割し、多数の遠隔コンピュータ上での実行のためにフレキシブルオペレーショングループの独立したオペレーションを複製することを判定しうるヒューリスティックを使用しうる。例えば、ヒューリスティックは、入力データが100000個以上のポリゴンであるとき、ポリゴンの面積を加算するフラットオペレーションのグループがシングルプロセッサコンピュータでは効率的に実行されえないことを判定しうる。ヒューリスティックは更に、入力データの量が30000個以下のポリゴンの多数のグループへ分割されるべきであること、及び、フラットオペレーションの複製には実行のために異なるスレーブコンピュータへの入力データの各部分が与えられるべきであることを判定しうる。
 更に、本発明の幾つかの実施例によって用いられるヒューリスティックは、マスタコンピュータ及び/又はスレーブコンピュータ上で資源が直ぐに利用可能であるか否かに関わらず、フレキシブルオペレーショングループがマスタコンピュータ又は遠隔コンピュータ上で実行されることを明確に判定しうる。例えば、フレキシブルオペレーショングループは、特定の組の状況の下では、マスタコンピュータ上ではなくスレーブコンピュータ上で常に実行されるべきオペレーションを含みうる。これらの種類のヒューリスティックアルゴリズムは、上述の規準の任意の組み合わせを使用しうるものでありうるが、これに限られるものではない。この種類のヒューリスティックでは、ヒューリスティックはマスタコンピュータ又はスレーブコンピュータ上で利用可能な資源とは無関係に実行されうる。
 もちろん、本発明の更なる他の実施例によるソフトウエアアプリケーションは、所望であれば各フレキシブルオペレーショングループに対する異なる種類のヒューリスティックの組み合わせを使用しうる。例えば、本発明の幾つかの実施例によるソフトウエアアプリケーションは、その関連する1つ又は複数のフレキシブルオペレーショングループに対する入力データの量のみを考慮に入れるヒューリスティックを使用しうる。ソフトウエアアプリケーション中の他のフレキシブルオペレーショングループは、組み合わされた2つのヒューリスティックを含みうるものであり、1つのヒューリスティックはフレキシブルオペレーショングループのための入力データの量に基づき、他のヒューリスティックはスレーブコンピュータとの通信インタフェースの状態に基づく。アプリケーション中の更なる他のフレキシブルオペレーショングループは、入力データの量と遠隔コンピュータとの通信インタフェースの状態に基づいて、フレキシブルオペレーショングループに対する入力データが分割され、フレキシブルオペレーショングループが多数のスレーブコンピュータ間で複製されるヒューリスティックを含みうる。
 種々のヒューリスティックを使用することに加えて、本発明の種々の実施例による幾つかのソフトウエアアプリケーションは、独立のオペレーションをフレキシブルオペレーショングループへと異なるグループ化を行うことを含みうる。例えは、ソフトウエアアプリケーションは、一組の独立のオペレーションが1つのフレキシブルオペレーショングループへと編成される第1のモードと、同じ独立のオペレーションの組が2つの別々のフレキシブルオペレーショングループへ編成される第2のモードとを有しうる。ソフトウエアアプリケーションが実行のために機械命令へコンパイルされると、ユーザは、例えばホストコンピュータと遠隔コンピュータとの間の通信インタフェースの構成に基づいて、独立のオペレーションのどの編成が使用されるべきかを指定する。
 同様に、本発明の種々の実施例による幾つかのソフトウエアアプリケーションは、ユーザが利用可能な動作環境に依存して、ユーザが異なるモードを使用することを可能としうる。例えば、本発明の1つ実施例によるソフトウエアアプリケーションは、幾つかのオペレーションが独立のオペレーションとして指定される第1のモードと、更なるより少ない、又は異なるオペレーションが独立のオペレーションとして指定される第2のモードとを有しうる。上述したように、オペレーションのための入力データの依存性は、入力データのグループ分けによって決定されえ、どのオペレーションが独立のオペレーションであるかの判定はソフトウエアアプリケーションが生成されたときに都合良く行われうる。更に、スレーブコンピュータの利用可能なメモリのサイズは、入力データのグループ分けに対する上限を決定する。
 従って、ソフトウエアアプリケーションが、例えば大容量メモリ及び/又は多数のプロセッサを有するスレーブコンピュータを有するコンピュータネットワーク上で実行される場合、幅広い組合せの入力データが独立であるようグループ分けされえ、従って多数のオペレーションが独立のオペレーションであると指定されうる。或いは、ソフトウエアアプリケーションが比較的小さいメモリを有するシングルプロセッサコンピュータを用いたコンピュータネットワーク上で実行される場合、あまり多様でない入力データが独立であるとグループされえ、従ってより少ないオペレーションがフラットオペレーションであると指定されうる。独立のオペレーションの異なる指定を有する多数のモードを有することにより、ユーザは利用可能なマスタ・スレーブネットワーク上で最も効率的に実行されるモードを選択しうる。
 [オペレーション分散ツール]
 図5は、フレキシブルオペレーショングループを分散するための本発明の一実施例によるオペレーション分散ツール503を示す図である。図示するように、ツール503は、図1に示すネットワーク中でマスタコンピュータ101からスレーブコンピュータ115へフレキシブルオペレーショングループを分散するよう実施される。しかしながら、分散ツール503の他の実施例は種々のマスタ・スレーブコンピュータネットワーク上で実施されうることが認識されるべきである。
 図5からわかるように、オペレーション分散ツール503は、フレキシブルオペレーショングループ識別モジュール505と、遠隔実行判定モジュール507と、遠隔コンピュータインタフェースモジュール509とを含む。図示の実施例では、これらの各モジュールは、ソフトウエア命令を実行するプロセッサ109を用いて実施される。しかしながら本発明の他の実施例では、これらのモジュールのうちの1つ又はそれ以上は、ハードウエア、ファームウエア、又は、ソフトウエア、ファームウエア及びハードウエアの任意の組み合わせで実施されうる。
 以下説明するように、ソフトウエアアプリケーションの種々のオペレーションは、最初は一般オペレーション実行モジュール501上で実行される。フレキシブルオペレーショングループ識別モジュール505は、同様に一般オペレーション実行モジュール501によって実行されうるオペレーションを受け取り、構文解析し、遠隔コンピュータ115上で実行されうる各フレキシブルオペレーショングループを識別する。フレキシブルオペレーショングループ識別モジュール505がフレキシブルオペレーショングループを識別した後、遠隔実行判定モジュール507は、フレキシブルオペレーショングループがマスタコンピュータ101上で実行されるべきか1つ又はそれ以上のスレーブコンピュータ115上で実行されるべきかを判定する。フレキシブルオペレーショングループがマスタコンピュータ101上で実行されるべきかを判定するために、遠隔実行判定モジュール507は、上述したように、フレキシブルオペレーショングループに関連付けられる1つ又はそれ以上のヒューリスティックを使用しうる。遠隔実行判定モジュール507は、マスタコンピュータ101上の資源の利用可能性及び/又はスレーブコンピュータ115上の資源の利用可能性を考慮に入れうる。
 遠隔実行判定モジュール507がフレキシブルオペレーショングループがマスタコンピュータ101上で実行されるべきであると判定すると、遠隔実行判定モジュール507はフレキシブルオペレーショングループに対する制御を実行のために一般オペレーション実行モジュール501へ戻す。他方で、遠隔実行判定モジュール507がフレキシブルオペレーショングループが1つ又はそれ以上のスレーブコンピュータ115上で実行されるべきであると判定すると、遠隔実行判定モジュール507は遠隔コンピュータインタフェースモジュール509へ制御を移す。これに応じて、遠隔コンピュータインタフェースモジュール509はインタフェース装置111を通じて1つ又はそれ以上のスレーブコンピュータ115と通信し、スレーブコンピュータ115に対して適当な入力データを用いてフレキシブルオペレーショングループを実行するよう命令する。
 スレーブコンピュータ115に対してフレキシブルオペレーショングループを実行するよう命令した後、遠隔コンピュータインタフェースモジュール509はスレーブコンピュータ115からフレキシブルオペレーショングループを実行することによって生する結果を待つ。スレーブコンピュータ115が成功した結果を戻す場合、遠隔コンピュータインタフェースモジュール509は成功した結果を一般オペレーション実行モジュール501へ伝え、一般オペレーション実行モジュール501はソフトウエアアプリケーションの実行を再開する。しかしながら、スレーブコンピュータ115から得られた結果が、フレキシブルオペレーショングループの実行が失敗したことを示す場合、遠隔コンピュータインタフェースモジュール509は一般オペレーション実行モジュール501に対してフレキシブルオペレーショングループがうまく実行されなかったことを知らせる。本発明の幾つかの実施例では、一般オペレーション実行モジュール501はフレキシブルオペレーショングループに対する制御を再開することができ、フレキシブルオペレーショングループ自体を実行する。しかしながら、本発明の他の実施例は、フレキシブルオペレーショングループを実行のために他のスレーブコンピュータ115へ与えうる。このようにして、スレーブコンピュータ115のうちの1つの故障は、マスタコンピュータ101上のソフトウエアアプリケーションの実行を妨げない。
 [オペレーションの分散の方法]
 図6A乃至図6Cは、本発明による種々の実施例によるマスタコンピュータから1つ又はそれ以上のスレーブコンピュータへのオペレーションの分散の方法を示す図である。図示の方法は、例えば、図5に示すオペレーション分散ツール503によって使用されうる。もちろん、図示の方法は、本発明の他の実施例による分散ツールと共に使用されうる。
 ここで図6Aを参照するに、スレッドT1はソフトウエアアプリケーションを構成する複数のオペレーションを受け取り、ステップ601で、与えられた入力データを用いてこれらのオペレーションの実行を開始する。ステップ603において、スレッドT1はフレキシブルオペレーショングループを構成するオペレーションのグループに出会う。上述したように、フレキシブルオペレーショングループは独立の入力データを用いるオペレーションを有するフレキシブルオペレーショングループ内に含まれるオペレーションを識別する識別子を含む。図示の実施例では、フレキシブルオペレーショングループはまた、やはり上述したように1つ又はそれ以上のヒューリスティックを含む。
 従って、ステップ605において、第1のスレッドT1は、フレキシブルオペレーショングループに関連付けられる1つ又は複数のヒューリスティックを実行する。1つ又は複数のヒューリスティックを実行した結果が否定的であれば(即ち、1つ又は複数のヒューリスティックがフレキシブルオペレーショングループがスレーブコンピュータ上で実行されてはならないことを示す場合)、ステップ623において、フレキシブルオペレーショングループは、スレッドT1によって、或いはマスタコンピュータ101上で動作する他のスレッドによって、マスタコンピュータ101上で実行される。しかしながら、1つ又は複数のヒューリスティックを実行した結果が肯定的であれば(即ち、1つ又は複数のヒューリスティックがフレキシブルオペレーショングループがスレーブコンピュータ上で実行されねばならないことを示す場合)、ステップ609において、スレッドT1は、フレキシブルオペレーショングループを実行するのに利用可能な他のスレッドがマスタコンピュータ101上にあるかどうかを判定する。マスタコンピュータ101上の他のスレッドがフレキシブルオペレーショングループを実行するために利用可能であれば、フレキシブルオペレーショングループはステップ623において利用可能なスレッドによってマスタコンピュータ101上で実行される。
 マスタコンピュータ101上に利用可能なスレッドがない場合、ステップ611においてスレッドT1は、スレーブコンピュータ115上でスレッドが利用可能であるかどうかを判定する。再び、どのスレーブコンピュータ115上にも利用可能なスレッドがなければ、フレキシブルオペレーショングループは、マスタコンピュータ上で利用可能となったときにステップ623においてマスタコンピュータ101上で実行される。しかしながら、スレッドがスレーブコンピュータ115上で利用可能であれば、ステップ613においてスレッドT1はフレキシブルオペレーショングループを実行のためにスレーブコンピュータ115へフレキシブルオペレーショングループを渡す。ステップ615においてスレッドT1はスリープ状態となり、ステップ617においてスレーブコンピュータ115からフレキシブルオペレーショングループを実行した結果が戻されるまでスリープ状態のままである。これに応答して、ステップ619においてスレッドT1はスリープ解除され、ステップ621においてスレーブコンピュータ115上でのフレキシブルオペレーショングループの実行が成功したかどうかを判定する。例えば、マスタコンピュータ101がスレーブコンピュータ115と通信するためにソケットプロトコルを用いる場合、ソケットはスレーブコンピュータ115へエラーメッセージを戻す。従って、スレッドT1がフレキシブルオペレーショングループを実行したことによる出力データではなくエラーメッセージを受け取った場合、スレーブコンピュータ115上でのフレキシブルオペレーショングループの実行は失敗したということができる。
 スレーブコンピュータ115上でのフレキシブルオペレーショングループの実行が失敗であれば、ステップ623において、フレキシブルオペレーショングループは、スレッドT1又は他のスレッドによってマスタコンピュータ101上で実行される。一旦マスタコンピュータ101上がフレキシブルオペレーショングループをうまく実行すると、ステップ625において、スレッドT1はソフトウエアアプリケーションの残るオペレーションの実行を続ける。他方で、スレーブコンピュータ115がフレキシブルオペレーショングループの実行をうまく実行すると、実行の結果はスレッドT1へ与えられ、スレッドT1はステップ625においてソフトウエアアプリケーションの残るオペレーションの実行を続ける。
 [結び]
 このように、上述のオペレーションを分散する方法及びツールは、マスタコンピュータから1つ又はそれ以上のスレーブコンピュータへオペレーションを分散するための信頼性の高い効率的な技術を与える。しかしながら、本発明の種々の実施例は、上述の方法の1つ又はそれ以上の段階を省きうることが認められるべきである。例えば、本発明の幾つかの実施例では、フレキシブルオペレーショングループはヒューリスティックを含まないことがある。或いは、本発明の幾つかの実施例は、マスタコンピュータ上、スレーブコンピュータ上、又はその両方の上に利用可能な資源があるかどうかを考慮する段階を省きうる。更に、本発明の幾つかの実施例は、マスタコンピュータ又はスレーブコンピュータのいずれかの上で利用可能な資源とは無関係に、フレキシブルオペレーショングループがマスタコンピュータ又はスレーブコンピュータ上で実行されるかどうかを明確に判定するヒューリスティックを使用しうる。更に、本発明の他の実施例は、上述の方法の段階を並べ替えたものでありうる。例えば、第1のスレッドはヒューリスティックを実行する前にマスタコンピュータ及び/又はスレーブコンピュータ上で利用可能な資源を判定しうる。
 本発明の更なる変形例は当業者によって明らかとなろう。例えば、図1に示す動作環境は、1対N型の通信インタフェースを用いて単一のマスタコンピュータ101をスレーブコンピュータ115に接続する。しかしながら、本発明の他の実施例は、スレーブコンピュータ115へオペレーションを分散するために多数のマスタコンピュータ101を使用しうる。更に、通信インタフェースは、1つのスレーブコンピュータ115が他のスレーブコンピュータ115へオペレーションを再分散することを可能とするバス型のインタフェースでありうる。更に特定的には、1つ又はそれ以上のスレーブコンピュータ115はオペレーションを1つ又はそれ以上のスレーブコンピュータへ再分散するために本発明の実施例を実行するための制御機能を含みうる。従って、マスタコンピュータ101がより小さいフレキシブルオペレーショングループへ分割されうる多数のオペレーションをスレーブコンピュータ115へ分散した場合、スレーブコンピュータ115はオペレーションのうちの一部を実行のために他のスレーブコンピュータ115へ割り当てうる。更に、本発明の種々の実施例は、1つの層のコンピュータが第2の層の1つ又はそれ以上のコンピュータへオペレーションを分散し、夫々が第3の層のコンピュータ間にオペレーションを分散しうる、多層のマスタ/スレーブコンピュータを使用しうる。上述の及び他の変形は、当業者に明らかであろう。
 このように、本発明についてその望ましい及び典型的な実施例に関して説明した。当業者が本願の開示を読むことにより、添付の請求項の範囲及び主題を逸脱することなく、多数の他の実施例、変更、及び変形が得られるであろう。
本発明の様々な実施例によって使用されうるシングルプロセッサコンピュータのネットワークとリンクされたマルチプロセッサコンピュータを示す図である。 本発明の幾つかの実施例によるフォトリソグラフィーレイアウトの精度をシミュレートし確認するための階層型セルベース・ソフトウエアアプリケーションのコンポーネントを示す図である。 図2に示す階層型セルベース・ソフトウエアアプリケーションによって用いられる種々のセルの階層的な配置を示す図である。 単一のスレッドを用いたソフトウエアアプリケーションのオペレーションの配置及び実行を示す図である。 本発明の様々な実施例による多数のスレッドを用いたソフトウエアアプリケーションのオペレーションの配置及び実行を示す図である。 本発明の実施例によるオペレーション分散ツールを示す図である。 本発明の様々な実施例によるマルチプロセッサコンピュータから遠隔コンピュータへの1つ又はそれ以上のオペレーションのグループを分散する方法を示す図である。 本発明の様々な実施例によるマルチプロセッサコンピュータから遠隔コンピュータへの1つ又はそれ以上のオペレーションのグループを分散する方法を示す図である。 本発明の様々な実施例によるマルチプロセッサコンピュータから遠隔コンピュータへの1つ又はそれ以上のオペレーションのグループを分散する方法を示す図である。
符号の説明
 401’ ソフトウエア部分
 403 入力/出力コマンド
 405 フラットオペレーション
 407 第1のスレッド
 409 フレキシブルオペレーショングループ
 411 フレキシブルオペレーショングループ
 413 識別子
 415 ヒューリスティック
 417 識別子
 419 ヒューリスティック
 421 第2のスレッド
 423 第3のスレッド

Claims (42)

  1.  複数の処理スレッド間でオペレーションを分散する方法であって、
     データベースから得られる入力データを用いる第1のスレッド上での実行のために複数のオペレーションを受け取る段階と、
     前記複数の受け取ったオペレーションのうち1つ又はそれ以上の独立のオペレーションを、前記1つ又はそれ以上の独立のオペレーションが前記データベースとは独立の入力データを用いた実行のためであるよう、識別する段階と、
     前記1つ又はそれ以上の独立のオペレーションのうちの少なくとも1つを実行のために第2のスレッドへ与える段階と、
     前記少なくとも1つの独立のオペレーションの実行の結果を前記第2のスレッドから受け取る段階とを含む方法。
  2.  前記1つ又はそれ以上の独立のオペレーションのうちの少なくとも他の1つを実行のために第3のスレッドへ与える段階と、
     前記他の1つの独立のオペレーションの実行の結果を前記第3のスレッドから受け取る段階とを更に含む、請求項1記載のオペレーションを分散する方法。
  3.  前記少なくとも1つの独立のオペレーションの受け取られた実行の結果が前記少なくとも1つの独立のオペレーションの実行が成功したことを示す場合、前記受け取られた結果を保存し、
     前記少なくとも1つの独立のオペレーションの受け取られた実行の結果が前記少なくとも1つの独立のオペレーションの実行が失敗したことを示す場合、
     前記少なくとも1つの独立のオペレーションを前記第1のスレッド又は第3のスレッド上で再実行し、
     前記少なくとも1つの独立のオペレーションの再実行の結果を前記第1のスレッド又は前記第3のスレッドから受け取る、請求項1記載のオペレーションを分散する方法。
  4.  前記第1のスレッドは第1のコンピュータ上で実行され、第2のスレッドは前記第1のコンピュータから遠隔の第2のコンピュータ上で実行される、請求項1記載のオペレーションを分散する方法。
  5.  前記第1のコンピュータはマルチプロセッサコンピュータであり、前記第2のコンピュータはシングルプロセッサコンピュータ又はマルチプロセッサコンピュータである、請求項1記載のオペレーションを分散する方法。
  6.  データベースからの入力データは階層的なセルへと編成され、第1の階層レベルのセルの入力データを用いたオペレーションの実行によって得られる結果がデータベースへ与えられ、第1の階層レベルよりも上位の第2の階層レベルのセルの入力データとして使用されるようにされる、請求項1記載のオペレーションを分散する方法。
  7.  複数のコンピュータ間でオペレーションを分散する方法であって、
     データベースから得られる入力データを用いて第1のコンピュータ上で実行すべき複数のオペレーションを受け取る段階と、
     前記複数の受け取られたオペレーションのうち、データベースとは独立の入力データを用いた実行のために1つ又はそれ以上の独立のオペレーションを識別する段階と、
     前記1つ又はそれ以上の独立のオペレーションのうちの少なくとも1つが第1のコンピュータから遠隔の第2のコンピュータ上で実行されるべきかどうかを判定する段階と、
     前記少なくとも1つの独立のオペレーションが第2のコンピュータ上で実行されるべきであると判定されると、
     前記少なくとも1つの独立のオペレーションを実行のために第2のコンピュータに与え、
     前記第2のコンピュータから少なくとも1つの独立のオペレーションの実行の結果を受け取り、
     前記少なくとも1つの独立のオペレーションが第2のコンピュータ上で実行されるべきではないと判定されると、前記少なくとも1つの独立のオペレーションを第1のコンピュータ上で実行する、方法。
  8.  前記1つ又はそれ以上の独立のオペレーションのうちの少なくとも1つが第2のコンピュータ上で実行されるべきであるかを判定する段階において、前記少なくとも1つの独立のオペレーションに関連するヒューリスティックを実行する、請求項7記載の方法。
  9.  前記ヒューリスティックは、前記少なくとも1つの独立のオペレーションが前記第2のコンピュータ上で実行されうるかどうかを、前記少なくとも1つの独立のオペレーションを実行するときに使用されるべき独立の入力データの量に基づいて判定する、請求項8記載のオペレーションを分散する方法。
  10.  前記ヒューリスティックは、前記少なくとも1つの独立のオペレーションが前記第2のコンピュータ上で実行されうるかどうかを、前記第1のコンピュータと前記第2のコンピュータとの間の通信インタフェースの状態に基づいて判定する、請求項9記載のオペレーションを分散する方法。
  11.  前記ヒューリスティックは、前記第1のコンピュータと前記第2のコンピュータとの間の通信インタフェースの状態を更に判定する、請求項10記載のオペレーションを分散する方法。
  12.  前記ヒューリスティックは、前記少なくとも1つの独立のオペレーションが前記第2のコンピュータ上で実行されうるかどうかを、前記第1のコンピュータと前記第2のコンピュータとの間の通信インタフェースの状態に基づいて判定する、請求項8記載のオペレーションを分散する方法。
  13.  前記ヒューリスティックは、前記第1のコンピュータと前記第2のコンピュータとの間の通信インタフェースの状態を更に判定する、請求項12記載のオペレーションを分散する方法。
  14.  前記ヒューリスティックは、前記少なくとも1つの独立のオペレーションが、前記少なくとも1つの独立のオペレーションを実行するのに使用されるべき独立の入力データの第1の部分のみを用いて前記第2のコンピュータ上で実行されるかどうかを判定し、
     前記ヒューリスティックが前記少なくとも1つの独立のオペレーションが、前記少なくとも1つの独立のオペレーションを実行するのに使用されるべき独立の入力データの第1の部分のみを用いて前記第2のコンピュータ上で実行されると判定すると、
     前記少なくとも1つの独立のオペレーションを前記少なくとも1つの独立のオペレーションを実行するのに使用されるべき前記独立の入力データの前記第1の部分と共に前記第2のコンピュータへ与え、
     前記少なくとも1つの独立のオペレーションを前記少なくとも1つの独立のオペレーションを実行するのに使用されるべき前記独立の入力データの第2の部分と共に第3のコンピュータへ与える、請求項8記載のオペレーションを分散する方法。
  15.  前記第1のコンピュータは多数の処理スレッドと多数のプロセッサとを使用し、
     前記1つ又はそれ以上の独立のオペレーションのうちの少なくとも1つが第2のコンピュータ上で実行されるべきであるかどうかを判定する段階において、
     前記少なくとも1つの独立のオペレーションを実行するために前記第1のコンピュータ上で処理スレッドが利用可能であるかどうかを判定し、
     前記少なくとも1つの独立のオペレーションを実行するために前記第1のコンピュータ上で処理スレッドが利用可能であれば、前記少なくとも1つの独立のオペレーションは前記第1のコンピュータ上の前記利用可能な処理スレッドによって実行されるべきであると判定する、請求項7記載のオペレーションを分散する方法。
  16.  前記1つ又はそれ以上の独立のオペレーションのうちの少なくとも1つが第2のコンピュータ上で実行されるべきであるかどうかを判定する段階は、
     前記少なくとも1つの独立のオペレーションを実行するために前記第2のコンピュータ上で処理スレッドが利用可能であるかどうかを判定し、
     前記少なくとも1つの独立のオペレーションを実行するために前記第2のコンピュータ上で処理スレッドが利用可能であれば、前記少なくとも1つの独立のオペレーションは前記第2のコンピュータ上で前記利用可能な処理スレッドによって実行されるべきであると判定する段階を含む、請求項7記載のオペレーションを分散する方法。
  17.  前記1つ又はそれ以上の独立のオペレーションのうちの少なくとも他の1つが第3のコンピュータ上で実行されるべきであるかどうかを判定する段階を更に含み、
     前記少なくとも他の1つの独立のオペレーションが第3のコンピュータ上で実行されるべきであると判定されると、
     前記少なくとも他の1つの独立のオペレーションを実行のために前記第3のコンピュータへ与え、
     前記第3のコンピュータから少なくとも1つの他の独立のオペレーションの実行の結果を受け取り、
     前記少なくとも他の1つの独立のオペレーションが前記第3のコンピュータ上で実行されるべきでないと判定されると、前記少なくとも他の1つの独立のオペレーションを前記第1のコンピュータ上で実行する、請求項7記載のオペレーションを分散する方法。
  18.  前記少なくとも他の1つの独立のオペレーションの実行の受け取られた結果が前記少なくとも他の1つの独立のオペレーションの実行が成功したことを示す場合、前記受け取られた結果を保存し、
     前記少なくとも他の1つの独立のオペレーションの実行の受け取られた結果が前記少なくとも他の1つの独立のオペレーションの実行が失敗したことを示す場合、前記少なくとも1つの独立のオペレーションを再実行する、請求項7記載のオペレーションを分散する方法。
  19.  前記少なくとも1つの独立のオペレーションを前記第1のコンピュータ上で再実行する、請求項18記載のオペレーションを分散する方法。
  20.  前記少なくとも1つの独立のオペレーションを第3のコンピュータ上で再実行する、請求項18記載のオペレーションを分散する方法。
  21.  前記データベースからの入力データは階層的なセルへと編成され、第1の階層のセルの入力データを用いたオペレーションの実行によって得られる結果がデータベースへ与えられ、第1の階層よりも上位の第2の階層のセルの入力データとして使用されるようにされる、請求項7記載のオペレーションを分散する方法。
  22.  複数のコンピュータ間でオペレーションを分散するツールであって、
     データベースから得られる入力データを用いたマスタコンピュータ上での実行のために複数のオペレーションを構文解析し、前記複数の受け取られたオペレーションから前記データベースとは独立の入力データを使用する1つ又はそれ以上の独立のオペレーションを識別する、識別モジュールと、
     各識別された独立のオペレーションがスレーブコンピュータ上で実行されるべきかマスタコンピュータ上で実行されるべきかを判定する遠隔実行判定モジュールと、
     前記マスタコンピュータから実行のために1つ又はそれ以上のスレーブコンピュータへ独立のオペレーションを送信し、前記1つ又はそれ以上のスレーブコンピュータから前記送信された独立のオペレーションの実行の結果を受信する、遠隔コンピュータインタフェースモジュールとを含む、ツール。
  23.  前記遠隔実行判定モジュールは、前記独立のオペレーションがスレーブコンピュータ上で実行されるべきであるかどうかを判定するために各独立のオペレーションに関連付けられるヒューリスティックを使用するよう構成される、請求項22記載のツール。
  24.  前記遠隔実行判定モジュールは、独立のオペレーションを実行するときに使用されるべき独立の入力データの量に基づいて前記独立のオペレーションがスレーブコンピュータ上で実行されるべきであるかどうかを判定するヒューリスティックを使用するよう構成される、請求項23記載のツール。
  25.  前記遠隔実行判定モジュールは、前記マスタコンピュータと前記スレーブコンピュータの間の通信インタフェースの状態に基づいて前記独立のオペレーションがスレーブコンピュータ上で実行されるべきであるかどうかを判定するヒューリスティックを使用するよう構成される、請求項24記載のツール。
  26.  前記遠隔実行判定モジュールは、前記マスタコンピュータと前記スレーブコンピュータの間の通信インタフェースの状態を更に判定するよう構成される、請求項25記載のツール。
  27.  前記遠隔実行判定モジュールは、前記マスタコンピュータと前記スレーブコンピュータの間の通信インタフェースの状態に基づいて前記独立のオペレーションがスレーブコンピュータ上で実行されるべきであるかどうかを判定するヒューリスティックを使用するよう構成される、請求項23記載のツール。
  28.  前記遠隔実行判定モジュールは、前記マスタコンピュータと前記スレーブコンピュータの間の通信インタフェースの状態を更に判定するよう構成される、請求項27記載のツール。
  29.  前記遠隔実行判定モジュールは、独立のオペレーションが、前記独立のオペレーションの実行に用いられるべき独立の入力データの一部のみを用いてスレーブコンピュータ上でより効率的に実行されるかどうかを判定するヒューリスティックを使用するよう構成され、
     前記遠隔実行判定モジュールが、独立のオペレーションは前記独立のオペレーションの実行に用いられるべき独立の入力データの一部のみを用いてスレーブコンピュータ上でより効率的に実行されると判定すると、
     前記遠隔コンピュータインタフェースモジュールは、
     前記独立のオペレーションを、前記独立のオペレーションを実行するのに使用されるべき独立の入力データの第1の部分と共に第1のスレーブコンピュータへ与え、
     前記独立のオペレーションを、前記少なくとも1つの独立のオペレーションを実行するのに使用されるべき独立の入力データの第2の部分と共に第2のスレーブコンピュータへ与える、請求項22記載のツール。
  30.  前記マスタコンピュータは多数のプロセッサで多数の処理スレッドを使用し、
     前記遠隔実行判定モジュールは、
     処理スレッドが前記独立のオペレーションを実行するために前記マスタコンピュータ上で利用可能であるかどうかを判定し、
     前記独立のオペレーションを実行するために前記マスタコンピュータ上で利用可能であれば、前記独立のオペレーションが前記マスタコンピュータ上の前記利用可能なスレッドによって実行されるべきであると判定するよう構成される、請求項22記載のツール。
  31.  前記遠隔実行判定モジュールは、
     前記少なくとも1つの独立のオペレーションを実行するためにスレーブコンピュータ上で処理スレッドが利用可能であるかどうかを判定し、
     スレーブコンピュータ上で前記独立のオペレーションを実行するためにスレッドが利用可能であれば、前記独立のオペレーションが前記スレーブコンピュータ上の前記利用可能なスレッドによって実行されるべきであると判定する、請求項22記載のツール。
  32.  前記遠隔コンピュータインタフェースモジュールは、
     前記独立のオペレーションの実行が成功したことを示す独立のオペレーションの実行の受信された結果を保存し、
     独立のオペレーションの実行の前記受信された結果が前記独立のオペレーションの実行が失敗したことを示すときは前記独立のオペレーションを再実行させるよう構成される、請求項22記載のツール。
  33.  前記遠隔コンピュータインタフェースモジュールは、前記独立のオペレーションを前記マスタコンピュータ上で再実行させるよう構成される、請求項32記載のツール。
  34.  前記遠隔コンピュータインタフェースモジュールは、前記独立のオペレーションを第2のスレーブコンピュータ上で再実行させるよう構成される、請求項32記載のツール。
  35.  データ構造を格納したコンピュータ読み取り可能な媒体であって、
     ホストコンピュータ上での実行のための複数のオペレーションと、
     オペレーションのグループを、スレーブコンピュータ上で交互に実行されうるオペレーションとして識別する識別子とを含む、コンピュータ読み取り可能な媒体。
  36.  前記データ構造は、前記関連付けられたオペレーションのグループがスレーブコンピュータ上で実行されうるかどうかを実行されたときに判定するオペレーションのグループのためのヒューリスティックを更に含む、請求項35記載のコンピュータ読み取り可能な媒体。
  37.  前記ヒューリスティックは、前記オペレーションのグループを実行するときに使用されるべき独立の入力データの量に基づいて前記オペレーションのグループがスレーブコンピュータ上で実行されうるかどうかを判定する、請求項36記載のコンピュータ読み取り可能な媒体。
  38.  前記ヒューリスティックは、前記マスタコンピュータと前記スレーブコンピュータの間の通信インタフェースの状態に基づいて前記オペレーションのグループがスレーブコンピュータ上で実行されるべきであるかどうかを更に判定する、請求項37記載のコンピュータ読み取り可能な媒体。
  39.  前記ヒューリスティックは、前記マスタコンピュータと前記スレーブコンピュータの間の通信インタフェースの状態を更に判定する、請求項38記載のコンピュータ読み取り可能な媒体。
  40.  前記ヒューリスティックは、前記マスタコンピュータと前記スレーブコンピュータの間の通信インタフェースの状態に基づいて前記オペレーションのグループがスレーブコンピュータ上で実行されるべきであるかどうかを判定する、請求項36記載のコンピュータ読み取り可能な媒体。
  41.  前記ヒューリスティックは、前記マスタコンピュータと前記スレーブコンピュータの間の通信インタフェースの状態を更に判定する、請求項40記載のコンピュータ読み取り可能な媒体。
  42.  前記データ構造は、第2のオペレーションのグループを、スレーブコンピュータ上で交互に実行されうるオペレーションとして識別する第2の識別子とを含み、
     前記第1の識別子は、前記マスタコンピュータと1つ又はそれ以上のスレーブコンピュータとの間の通信の状態が第1の状態にあるときに使用され、
     前記第2の識別子は、前記マスタコンピュータと1つ又はそれ以上のスレーブコンピュータとの間の通信の状態が第2の状態にあるときに使用されるようにされる、請求項39記載のコンピュータ読み取り可能な媒体。
JP2003359316A 2002-10-25 2003-10-20 遠隔コンピュータへのオペレーションの分散方法、装置、及び記憶媒体 Pending JP2004145885A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/280,710 US20040083475A1 (en) 2002-10-25 2002-10-25 Distribution of operations to remote computers

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2007162536A Division JP2007287171A (ja) 2002-10-25 2007-06-20 遠隔コンピュータへのオペレーションの分散方法、装置及び記憶媒体

Publications (1)

Publication Number Publication Date
JP2004145885A true JP2004145885A (ja) 2004-05-20

Family

ID=32107004

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2003359316A Pending JP2004145885A (ja) 2002-10-25 2003-10-20 遠隔コンピュータへのオペレーションの分散方法、装置、及び記憶媒体
JP2007162536A Pending JP2007287171A (ja) 2002-10-25 2007-06-20 遠隔コンピュータへのオペレーションの分散方法、装置及び記憶媒体

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2007162536A Pending JP2007287171A (ja) 2002-10-25 2007-06-20 遠隔コンピュータへのオペレーションの分散方法、装置及び記憶媒体

Country Status (5)

Country Link
US (1) US20040083475A1 (ja)
EP (1) EP1437654A3 (ja)
JP (2) JP2004145885A (ja)
AU (1) AU2003268160A1 (ja)
WO (1) WO2004040463A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007280383A (ja) * 2006-04-02 2007-10-25 Mentor Graphics Corp 並列演算の分散
JP2010500692A (ja) * 2006-08-13 2010-01-07 メンター・グラフィクス・コーポレーション 階層的プロセッサ構成によるマルチプロセッサアーキテクチャ
KR101026759B1 (ko) 2008-08-26 2011-04-08 최백준 터미널 환경의 서버 기반 컴퓨팅 시스템에서 영상 밀림, 영상 손실 및 지연 없이 동영상 재생을 그 파일 형태 및 크기와 무관하게 분산 처리하기 위한 동영상 재생 분산 처리 시스템 및 동영상 재생 분산 처리 방법
KR20180124419A (ko) * 2017-05-11 2018-11-21 에스케이텔레콤 주식회사 분산형 클라우드 기반 어플리케이션 실행 시스템, 이에 적용되는 장치 및 장치의 동작 방법

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7596139B2 (en) 2000-11-17 2009-09-29 Foundry Networks, Inc. Backplane interface adapter with error control and redundant fabric
US7187687B1 (en) 2002-05-06 2007-03-06 Foundry Networks, Inc. Pipeline method and system for switching packets
US20040145605A1 (en) * 2003-01-28 2004-07-29 Sujoy Basu Access method and system for remote desktops
US6901072B1 (en) 2003-05-15 2005-05-31 Foundry Networks, Inc. System and method for high speed packet transmission implementing dual transmit and receive pipelines
US7003758B2 (en) * 2003-10-07 2006-02-21 Brion Technologies, Inc. System and method for lithography simulation
US7817659B2 (en) 2004-03-26 2010-10-19 Foundry Networks, Llc Method and apparatus for aggregating input data streams
US7401319B2 (en) * 2004-12-23 2008-07-15 Invarium, Inc. Method and system for reticle-wide hierarchy management for representational and computational reuse in integrated circuit layout design
JP4879017B2 (ja) * 2005-01-24 2012-02-15 独立行政法人海洋研究開発機構 シミュレータシステム
US8140371B2 (en) * 2005-02-18 2012-03-20 International Business Machines Corporation Providing computing service to users in a heterogeneous distributed computing environment
US7765536B2 (en) * 2005-12-21 2010-07-27 Management Services Group, Inc. System and method for the distribution of a program among cooperating processors
US8387034B2 (en) * 2005-12-21 2013-02-26 Management Services Group, Inc. System and method for the distribution of a program among cooperating processing elements
US8387033B2 (en) * 2005-12-21 2013-02-26 Management Services Group, Inc. System and method for the distribution of a program among cooperating processing elements
US8448162B2 (en) * 2005-12-28 2013-05-21 Foundry Networks, Llc Hitless software upgrades
US8238255B2 (en) 2006-11-22 2012-08-07 Foundry Networks, Llc Recovering from failures without impact on data traffic in a shared bus architecture
US8395996B2 (en) 2007-01-11 2013-03-12 Foundry Networks, Llc Techniques for processing incoming failure detection protocol packets
JP2010539588A (ja) * 2007-09-11 2010-12-16 メンター・グラフィクス・コーポレーション メモリ共有およびデータ分散
US8599850B2 (en) 2009-09-21 2013-12-03 Brocade Communications Systems, Inc. Provisioning single or multistage networks using ethernet service instances (ESIs)
EP2651101B1 (en) * 2012-04-13 2014-11-12 Alcatel Lucent Method for mapping media components based on link and/or processing cost
JP5779537B2 (ja) * 2012-04-20 2015-09-16 株式会社日立製作所 生産シミュレーション装置、生産シミュレーション方法及び、生産シミュレーションプログラム
US20140047452A1 (en) * 2012-08-08 2014-02-13 Battelle Memorial Institute Methods and Systems for Scalable Computing on Commodity Hardware for Irregular Applications
US20140214886A1 (en) 2013-01-29 2014-07-31 ParElastic Corporation Adaptive multi-client saas database
US9529957B1 (en) * 2015-01-27 2016-12-27 Xilinx, Inc. Multithreaded scheduling for placement of circuit designs using connectivity and utilization dependencies
US10956357B2 (en) * 2019-04-01 2021-03-23 International Business Machines Corporation Method for flexible, fast all-reduce on arbitrary tree topology

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04362784A (ja) * 1991-06-10 1992-12-15 Ricoh Co Ltd パターン検証方法
US5349682A (en) * 1992-01-31 1994-09-20 Parallel Pcs, Inc. Dynamic fault-tolerant parallel processing system for performing an application function with increased efficiency using heterogeneous processors
JP3185342B2 (ja) * 1992-04-14 2001-07-09 株式会社日立製作所 図形パターンデータ処理方法
JPH07175766A (ja) * 1993-12-20 1995-07-14 Nec Corp 疎結合多重システムのジョブ再実行制御方式
JPH09282288A (ja) * 1996-04-09 1997-10-31 Fujitsu Ltd 複数計算機運用システム
US6012083A (en) * 1996-09-24 2000-01-04 Ricoh Company Ltd. Method and apparatus for document processing using agents to process transactions created based on document content
US5996076A (en) * 1997-02-19 1999-11-30 Verifone, Inc. System, method and article of manufacture for secure digital certification of electronic commerce
US6230299B1 (en) * 1998-03-31 2001-05-08 Mentor Graphics Corporation Method and apparatus for extracting and storing connectivity and geometrical data for a deep sub-micron integrated circuit design
US6249903B1 (en) * 1998-03-31 2001-06-19 Mcsherry Michael C. Method and apparatus for generating and maintaining electrical modeling data for a deep sub-micron integrated circuit design
US6339836B1 (en) * 1998-08-24 2002-01-15 Mentor Graphics Corporation Automated design partitioning
US6397372B1 (en) * 1999-01-19 2002-05-28 Zeki Bozkus Cell based parallel verification of an integrated circuit design
JP4212717B2 (ja) * 1999-04-30 2009-01-21 富士通株式会社 ファイル処理ユニットの処理方法
US6675382B1 (en) * 1999-06-14 2004-01-06 Sun Microsystems, Inc. Software packaging and distribution system
US6397373B1 (en) * 1999-07-12 2002-05-28 Taiwan Semiconductor Manufacturing Company Efficient design rule check (DRC) review system
US7404175B2 (en) * 2000-10-10 2008-07-22 Bea Systems, Inc. Smart generator
US20030191816A1 (en) * 2000-01-11 2003-10-09 Spoovy, Llc System and method for creating and delivering customized multimedia communications
JP2001357010A (ja) * 2000-04-10 2001-12-26 Mitsubishi Corp インターネット上のWebサーバにおいてファイルを受託管理する方法およびこの方法に用いるファイル受託管理装置
US7089286B1 (en) * 2000-05-04 2006-08-08 Bellsouth Intellectual Property Corporation Method and apparatus for compressing attachments to electronic mail communications for transmission
TW527833B (en) * 2000-05-19 2003-04-11 Sony Corp Network conferencing system, participation authorization method and presenting method
WO2001097096A1 (en) * 2000-06-13 2001-12-20 Mentor Graphics Corporation Integrated verification and manufacturability tool
US6425113B1 (en) * 2000-06-13 2002-07-23 Leigh C. Anderson Integrated verification and manufacturability tool
EP1305756A1 (en) * 2000-07-24 2003-05-02 Matsushita Electric Industrial Co., Ltd. A system for transmission/ reception of e-mail with attached files
WO2002027470A2 (en) * 2000-09-26 2002-04-04 Z Force Corporation Reusable parts for assembled software systems
JP3810631B2 (ja) * 2000-11-28 2006-08-16 富士通株式会社 情報処理プログラムを記録した記録媒体
US20020161860A1 (en) * 2001-02-28 2002-10-31 Benjamin Godlin Method and system for differential distributed data file storage, management and access
JP2002259307A (ja) * 2001-03-02 2002-09-13 Fujitsu Ltd 情報処理装置、情報送信方法、コンピュータ読み取り可能な記録媒体、およびそのためのプログラム
US7739327B2 (en) * 2001-04-05 2010-06-15 Playstream Inc. Distributed link processing system for delivering application and multi-media content on the internet
JP2003316629A (ja) * 2002-02-25 2003-11-07 Ricoh Co Ltd 文書管理プログラム及び文書管理システム
US7389242B2 (en) * 2002-05-07 2008-06-17 Re3W Worldwide Limited Interactive processing of real estate transactions

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007280383A (ja) * 2006-04-02 2007-10-25 Mentor Graphics Corp 並列演算の分散
JP2012027954A (ja) * 2006-04-02 2012-02-09 Mentor Graphics Corp 並列演算の分散
JP2010500692A (ja) * 2006-08-13 2010-01-07 メンター・グラフィクス・コーポレーション 階層的プロセッサ構成によるマルチプロセッサアーキテクチャ
KR101026759B1 (ko) 2008-08-26 2011-04-08 최백준 터미널 환경의 서버 기반 컴퓨팅 시스템에서 영상 밀림, 영상 손실 및 지연 없이 동영상 재생을 그 파일 형태 및 크기와 무관하게 분산 처리하기 위한 동영상 재생 분산 처리 시스템 및 동영상 재생 분산 처리 방법
KR20180124419A (ko) * 2017-05-11 2018-11-21 에스케이텔레콤 주식회사 분산형 클라우드 기반 어플리케이션 실행 시스템, 이에 적용되는 장치 및 장치의 동작 방법
KR102172169B1 (ko) * 2017-05-11 2020-10-30 에스케이텔레콤 주식회사 분산형 클라우드 기반 어플리케이션 실행 시스템, 이에 적용되는 장치 및 장치의 동작 방법

Also Published As

Publication number Publication date
AU2003268160A1 (en) 2004-05-25
US20040083475A1 (en) 2004-04-29
EP1437654A3 (en) 2005-08-10
JP2007287171A (ja) 2007-11-01
EP1437654A2 (en) 2004-07-14
WO2004040463A1 (en) 2004-05-13

Similar Documents

Publication Publication Date Title
JP2007287171A (ja) 遠隔コンピュータへのオペレーションの分散方法、装置及び記憶媒体
Kanellakis et al. Fault-tolerant parallel computation
US8826064B2 (en) Biologically inspired hardware cell architecture
US8095512B2 (en) Managing database resources used for optimizing query execution on a parallel computer system
US8732282B1 (en) Model framework to facilitate robust programming of distributed workflows
US7844620B2 (en) Real time data replication for query execution in a massively parallel computer
US20090067334A1 (en) Mechanism for process migration on a massively parallel computer
US20180004777A1 (en) Data distribution across nodes of a distributed database base system
CN109471770A (zh) 一种系统管理方法和装置
CN101542488A (zh) 电子设计自动化中的属性
US8612973B2 (en) Method and system for handling interrupts within computer system during hardware resource migration
JP5496986B2 (ja) 並列演算の分散方法及び装置
CN102597963B (zh) 集群中的动态副本卷交换
CN103649923B (zh) 一种numa系统内存镜像配置方法、解除方法、系统和主节点
US20200110676A1 (en) Programming model and framework for providing resilient parallel tasks
CN102024011A (zh) 自主子系统体系结构
CN101300545A (zh) 进行异类处理联合体中的外部辅助调用的装置与方法
US8031637B2 (en) Ineligible group member status
Derin et al. A system-level approach to adaptivity and fault-tolerance in NoC-based MPSoCs: The MADNESS project
Hori et al. Sliding substitution of failed nodes
US20100180024A1 (en) Reducing occurrences of two-phase commits in a multi-node computing system
Cornhill A survivable distributed computing system for embedded application programs written in Ada
JPH10510082A (ja) 個々の抽象状態を基礎とする機械を各々が表す複数の相互接続された機能モジュールを具えるシステムを特定する方法およびそのようにして特定されたシステム
Haubelt et al. ReCoNets—design methodology for embedded systems consisting of small networks of reconfigurable nodes and connections
JP2018165908A (ja) 情報処理装置、情報処理方法及びプログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060307

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060606

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060609

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060907

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070220

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090114

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090121

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090213

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090220

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090313

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090318