JP5576798B2 - 決定論的マルチプロセッシング(deterministicmultiprocessing) - Google Patents
決定論的マルチプロセッシング(deterministicmultiprocessing) Download PDFInfo
- Publication number
- JP5576798B2 JP5576798B2 JP2010538213A JP2010538213A JP5576798B2 JP 5576798 B2 JP5576798 B2 JP 5576798B2 JP 2010538213 A JP2010538213 A JP 2010538213A JP 2010538213 A JP2010538213 A JP 2010538213A JP 5576798 B2 JP5576798 B2 JP 5576798B2
- Authority
- JP
- Japan
- Prior art keywords
- thread
- deterministic
- threads
- code
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
- G06F9/463—Program control block organisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/522—Barrier synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Debugging And Monitoring (AREA)
- Devices For Executing Special Programs (AREA)
Description
Claims (35)
- マルチプロセッシングシステムにおけるマルチスレッドアプリケーションの決定論的実行を提供するために、前記マルチスレッドアプリケーションを増補するコンピューティングシステムにおける方法であって、
2つ以上のスレッドの実行を指定するマルチスレッドアプリケーションコードにアクセスするステップと、
前記マルチスレッドアプリケーションコードに同期コードを自動的に挿入するステップであって、毎回、前記マルチスレッドアプリケーションコードが、特定の入力によって実行される度に、当該同期コードが、操作の組の中の決定論的順序を指定し、当該組の少なくとも1つが、前記マルチスレッドアプリケーションコードが実行されるとき、前記2つ以上のスレッドのうちの少なくとも1つの別のスレッドによってアクセス可能な状態に影響を与えることができる1つ又は複数の操作を含むものと、
を含む方法。 - 前記決定論的順序が、前記2つ以上のスレッドが作成された順序である請求項1に記載の方法。
- 前記決定論的順序がトークンの値に従って決定されており、
前記2つ以上のスレッドの各スレッドについて、前記2つ以上のスレッドのうちの少なくとも1つによってアクセス可能な状態に影響を与えることができる操作を実行する前に、
前記トークンの前記値を決定するために、前記同期コードを呼び出すステップと、
前記トークンの前記決定された値が前記スレッドのスレッド識別子に一致するとき、前記操作の実行を可能にするステップと、
前記トークンの前記決定された値が前記スレッドのスレッド識別子に一致しないとき、前記スレッドの実行を一時停止するステップと
をさらに含む請求項1に記載の方法。 - コンパイラによって実行される請求項1に記載の方法。
- トランザクショナルメモリシステムを増補するためのコンピューティングシステムにおける方法において、
トランザクショナルメモリシステムのためのコードにアクセスするステップであって、前記コードがマルチスレッドアプリケーションソースコードからコンパイルされたコードによって呼び出されるインターフェイスの1つまたは複数の実装を含み、前記マルチスレッドアプリケーションソースコードが1つまたは複数のコードブロックをアトミックブロックと宣言し、前記マルチスレッドアプリケーションソースコードが2つ以上のスレッドを指定する、ステップと、
同期コードを含むために前記アクセスされたコードを増補するステップであって、当該同期コードが、特定の入力により前記マルチスレッドアプリケーションソースコードがマルチプロセッシングシステムによって実行される度に毎回、トランザクションがコミットするような特定の順序を指定するものであるもの、と、
を含む方法。 - メモリ操作の順序を制御するためのマルチプロセッシングシステムで実行される方法であって、
マルチプロセッシングシステムにおいてマルチスレッドアプリケーションコードを実行するステップであって、前記マルチスレッドアプリケーションコードが複数のスレッドを指定する、ステップと、
前記マルチスレッドアプリケーションコードの前記実行を2つ以上の量子に分割するステップであって、各量子がメモリ操作を含む決定論的数の操作を指定する、ステップと、
前記複数のスレッドが前記2つ以上の量子を実行する決定論的順序を指定するステップと
を含み、前記マルチスレッドアプリケーションコードが実行されるとき、メモリ操作を指定するスレッド間通信が決定論的である。 - 前記複数のスレッドのうちの少なくとも1つのスレッドが前記複数のスレッドの別のスレッドによってプライベートに保持されるデータをロードするとき、前記スレッド間通信が行われる請求項6に記載の方法。
- スレッドが別のスレッドによってプライベートに保持されるデータをロードしようと試行するとき、前記複数のスレッドのそれぞれがその実行における決定論的ポイントに到達し、前記スレッドが実行を始めることを前記決定論的順序が指定するまで、前記スレッドの実行を一時停止するステップをさらに含む請求項7に記載の方法。
- 前記複数のスレッドのうちの1つのスレッドが前記1つのスレッドによってプライベートに保持されないデータを格納するとき、前記スレッド間通信が行われる請求項6に記載の方法。
- スレッドが前記スレッドによってプライベートに保持されないデータを格納しようと試行するとき、前記複数のスレッドのそれぞれがその実行における決定論的ポイントに到達し、前記スレッドが実行を始めることを前記決定論的順序が指定するまで、前記スレッドの実行を一時停止するステップをさらに含む請求項9に記載の方法。
- 決定論的順序を指定するステップが、
マルチスレッドアプリケーションコードの中に同期コードを挿入するステップを含み、
前記挿入された同期コードが、1つ又はそれより多いロック又は共有テーブルを実行して、スレッド間通信をモニタする、
請求項6に記載の方法。 - 前記マルチプロセッシングシステムが、トランザクショナルメモリシステムを含み、
決定論的順序を指定するステップが、マルチスレッドアプリケーションコードの中に同期コードを挿入するステップを含み、
同期コードを挿入するステップが、各量子をトランザクション内に封入する(encapsulating)ステップを含み、
前記トランザクショナルメモリシステムが、各トランザクションを、指定された決定論的順序でコミットする、
請求項6に記載の方法。 - 前記決定論的順序がトークンの値に従って指定されており、
前記複数のスレッドごとに、メモリ操作を実行する前に、
前記トークンの前記値を決定するステップと、
前記トークンの前記決定された値が前記スレッドのスレッド識別子に一致するとき、前記複数のスレッドの1つおきのスレッドがその実行における決定論的ポイントに到達すると、前記メモリ操作の実行を可能にするステップと、
前記トークンの前記決定された値が前記スレッドの識別されたスレッドに一致しないとき、前記スレッドの実行を一時停止するステップと
をさらに含む請求項6に記載の方法。 - マルチスレッドアプリケーションのスレッドのインターリービングを制御するためのマルチプロセッシングシステムであって、
複数のスレッドを指定するマルチスレッドアプリケーションコードと、
前記マルチスレッドアプリケーションコードを、決定論的数の操作をそれぞれ指定する2つ以上の量子に分割するための量子ビルダコンポーネントと、
前記マルチスレッドアプリケーションのスレッドが前記2つ以上の量子を実行する決定論的順序を指定するための決定論的コンポーネントと
を含み、前記マルチスレッドアプリケーションコードの複数の実行中に特定の入力が指定されたとき、各実行が前記特定の入力について同じ出力を生成する
マルチプロセッシングシステム。 - 前記指定された決定論的数の操作内に、制御された操作として指定された特定の操作のみを含めることによって、前記量子ビルダコンポーネントが前記マルチスレッドアプリケーションコードの実行を選択的にシリアル化する請求項14に記載のシステム。
- 請求項15に記載のシステムであって、制御された操作として指定された操作が、メモリ操作を含み、
前記複数のスレッドのうちの1つのスレッドが、前記複数のスレッドのうちの別のスレッドの状態に影響を与えることができるメモリ操作を実行するとき、前記メモリ操作が前記決定論的コンポーネントによって指定された前記決定論的順序を侵害するかどうかを前記量子化ビルダコンポーネントが決定し、
前記メモリ操作が前記決定論的順序を侵害するとき、前記複数のスレッドの各スレッドがその実行における決定論的ポイントに到達し、前記スレッドが続行することを前記決定論的コンポーネントが指定するまで、前記マルチプロセッシングシステムが前記メモリ操作の実行を一時停止し、
前記メモリ操作が前記決定論的順序を侵害しないとき、前記マルチプロセッシングシステムが前記メモリ操作の実行を許可する、
請求項15に記載のシステム。 - 前記スレッドが別のスレッドによってプライベートに保持されると見なされるデータをロードまたは格納することを前記メモリ操作が指定するとき、
前記スレッドが前記複数のスレッドによって共有されると見なされるデータを格納することを前記メモリ操作が指定するとき、又は、
前記スレッドが前記複数のスレッドのうちの任意のものによってこれまでアクセスされていないデータをロードまたは格納することを前記メモリ操作が指定するとき、
前記メモリ操作が前記決定論的順序を侵害する請求項16に記載のシステム。 - 前記マルチプロセッシングシステムが各スレッドの実行を一時停止したとき、又は、各スレッドが量子の実行を終了すると、
前記複数のスレッドの各スレッドがその実行における決定論的ポイントに到達する請求項16に記載のシステム。 - 同期コードを前記マルチスレッドアプリケーションコード内に挿入することによって、前記量子ビルダコンポーネントが前記マルチスレッドアプリケーションコードを2つ以上の量子に分割する請求項14に記載のシステム。
- 前記挿入された同期コードが1つまたは複数のロックを含む、又は、メモリ操作を追跡するための共有テーブルを含む、請求項19に記載のシステム。
- トランザクショナルメモリシステムをさらに含み、前記挿入された同期コードが各量子をトランザクション内に封入し、各トランザクションが前記決定論的コンポーネントによって指定された前記決定論的順序でコミットされる請求項19に記載のシステム。
- 前記トランザクションが並行して実行され、2つ以上の並行して実行されるトランザクション間に競合が存在するとき、前記トランザクションのうちの少なくとも1つが、前記決定論的順序に従って中止され、再開される、請求項21に記載のシステム。
- 前記含まれるトランザクショナルメモリシステムがハードウェアトランザクショナルメモリシステム、ソフトウェアトランザクショナルメモリシステム、ハイブリッドハードウェア−ソフトウェアトランザクショナルメモリシステム、およびトランザクショナルメモリシステムの組み合わせを含むグループから選択される請求項21に記載のシステム。
- 前記決定論的順序が、前記複数のスレッドのそれぞれが作成された順序に基づいて指定される請求項14に記載のシステム。
- 前記決定論的順序が、前記マルチスレッドアプリケーションコードのソフトウェア開発者によって前記決定論的コンポーネントに対して指定される請求項14に記載のシステム。
- マルチプロセッシングシステムに、マルチスレッドアプリケーションのスレッドによって実行されるメモリ操作の順序を制御させることができるコードを格納するコンピュータ可読記憶媒体において、前記コードが、
マルチスレッドアプリケーションコードを複数の量子に分割するためのコードであって、各量子が決定論的な有限数のメモリ操作を指定する、コードと、
各量子を、前記マルチスレッドアプリケーションによって指定された2つ以上のスレッドのうちの1つによって決定論的にコミットされるトランザクション内に封入するためのコードと
を含み、前記マルチプロセッシングシステムがトランザクショナルメモリシステムと共に動作する
コンピュータ可読記憶媒体。 - トランザクション内に封入される各量子が、前記2つ以上のスレッドが作成される順序に従って前記2つ以上のスレッドのうちの一方によって決定論的にコミットされる請求項26に記載のコンピュータ可読記憶媒体。
- 請求項26に記載のコンピュータ可読記憶媒体であって、
2つ以上の多いスレッドによってトランザクションがコミットされる前に、更に、1つのスレッドの実行を一時停止するために、
前記2つ以上の多いスレッドの各々が、その実行中に、決定論的ポイントに到達し、そして、トークンが、前記スレッドが、前記トランザクションをコミットすべきことを指定するまで、コードを格納する、コンピュータ可読記憶媒体。 - 各スレッドがトランザクションの実行を完了すると、各スレッドがその実行における決定論的ポイントに到達する請求項28に記載のコンピュータ可読記憶媒体。
- 前記マルチスレッドアプリケーションコードが、前記マルチスレッドアプリケーションコードのソフトウェア開発者によって指定された1つまたは複数のトランザクショナルメモリブロックを含み、前記コードが前記1つまたは複数のトランザクショナルメモリブロックを増補するためにさらに使用される請求項26に記載のコンピュータ可読記憶媒体。
- 操作の組の中の決定論的順序が、特定のレジスタに依存すること無しに決定される、請求項1に記載の方法。
- トランザクションがコミットされる特定の順序が、特定のレジスタに依存すること無しに決定される、請求項5に記載の方法。
- 複数のスレッドが実行される決定論的順序が、特定のレジスタに依存すること無しに決定される、請求項6に記載の方法。
- 特定のレジスタに依存すること無しに、前記決定論的コンポーネントが、マルチスレッドアプリケーションのスレッドが2つ以上の量子を実行する決定論的順序を指定する、請求項14に記載のシステム。
- 決定論的にコミットする各量子が、特定のレジスタに依存することが無い、請求項26に記載のコンピュータ可読記憶媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US1301907P | 2007-12-12 | 2007-12-12 | |
US61/013,019 | 2007-12-12 | ||
PCT/US2008/086711 WO2009076654A1 (en) | 2007-12-12 | 2008-12-12 | Deterministic multiprocessing |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2011507112A JP2011507112A (ja) | 2011-03-03 |
JP2011507112A5 JP2011507112A5 (ja) | 2013-02-21 |
JP5576798B2 true JP5576798B2 (ja) | 2014-08-20 |
Family
ID=40755909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010538213A Expired - Fee Related JP5576798B2 (ja) | 2007-12-12 | 2008-12-12 | 決定論的マルチプロセッシング(deterministicmultiprocessing) |
Country Status (4)
Country | Link |
---|---|
US (1) | US8694997B2 (ja) |
EP (1) | EP2232367A4 (ja) |
JP (1) | JP5576798B2 (ja) |
WO (1) | WO2009076654A1 (ja) |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9009020B1 (en) * | 2007-12-12 | 2015-04-14 | F5 Networks, Inc. | Automatic identification of interesting interleavings in a multithreaded program |
US8972794B2 (en) * | 2008-02-26 | 2015-03-03 | International Business Machines Corporation | Method and apparatus for diagnostic recording using transactional memory |
JP5624480B2 (ja) * | 2008-03-11 | 2014-11-12 | ユニバーシティ・オブ・ワシントン | 効率的な決定論的マルチプロセッシング(deterministicmultiprocessing) |
US8490181B2 (en) * | 2009-04-22 | 2013-07-16 | International Business Machines Corporation | Deterministic serialization of access to shared resource in a multi-processor system for code instructions accessing resources in a non-deterministic order |
KR101572879B1 (ko) * | 2009-04-29 | 2015-12-01 | 삼성전자주식회사 | 병렬 응용 프로그램을 동적으로 병렬처리 하는 시스템 및 방법 |
US8812796B2 (en) * | 2009-06-26 | 2014-08-19 | Microsoft Corporation | Private memory regions and coherence optimizations |
US8356166B2 (en) * | 2009-06-26 | 2013-01-15 | Microsoft Corporation | Minimizing code duplication in an unbounded transactional memory system by using mode agnostic transactional read and write barriers |
US8250331B2 (en) | 2009-06-26 | 2012-08-21 | Microsoft Corporation | Operating system virtual memory management for hardware transactional memory |
US8370577B2 (en) * | 2009-06-26 | 2013-02-05 | Microsoft Corporation | Metaphysically addressed cache metadata |
US8489864B2 (en) * | 2009-06-26 | 2013-07-16 | Microsoft Corporation | Performing escape actions in transactions |
JP5452125B2 (ja) * | 2009-08-11 | 2014-03-26 | クラリオン株式会社 | データ処理装置及びデータ処理方法 |
EP2467852B1 (en) | 2009-08-20 | 2019-05-22 | Rambus Inc. | Atomic memory device |
US8539465B2 (en) * | 2009-12-15 | 2013-09-17 | Microsoft Corporation | Accelerating unbounded memory transactions using nested cache resident transactions |
US8533440B2 (en) * | 2009-12-15 | 2013-09-10 | Microsoft Corporation | Accelerating parallel transactions using cache resident transactions |
US8402218B2 (en) * | 2009-12-15 | 2013-03-19 | Microsoft Corporation | Efficient garbage collection and exception handling in a hardware accelerated transactional memory system |
US9092253B2 (en) * | 2009-12-15 | 2015-07-28 | Microsoft Technology Licensing, Llc | Instrumentation of hardware assisted transactional memory system |
KR20110080073A (ko) * | 2010-01-04 | 2011-07-12 | 삼성전자주식회사 | 멀티쓰레드 환경을 테스트하는 커버리지 장치 및 방법 |
US20110173595A1 (en) * | 2010-01-08 | 2011-07-14 | Microsoft Corporation | Language-based model for asynchronous operations |
US8453120B2 (en) | 2010-05-11 | 2013-05-28 | F5 Networks, Inc. | Enhanced reliability using deterministic multiprocessing-based synchronized replication |
US9411634B2 (en) * | 2010-06-21 | 2016-08-09 | Microsoft Technology Licensing, Llc | Action framework in software transactional memory |
US8719515B2 (en) | 2010-06-21 | 2014-05-06 | Microsoft Corporation | Composition of locks in software transactional memory |
US9038048B2 (en) | 2010-07-22 | 2015-05-19 | The Trustees Of Columbia University In The City Of New York | Methods, systems, and media for protecting applications from races |
US9454460B2 (en) * | 2010-07-23 | 2016-09-27 | The Trustees Of Columbia University In The City Of New York | Methods, systems, and media for providing determinism in multithreaded programs |
US8910188B1 (en) | 2011-07-14 | 2014-12-09 | Google Inc. | Deterministic data processing |
US8990830B2 (en) * | 2011-07-19 | 2015-03-24 | International Business Machines Corporation | Thread management in parallel processes |
US20130205284A1 (en) * | 2012-02-02 | 2013-08-08 | Dhruva Chakrabarti | Ownership acquire policy selection |
US9606924B2 (en) * | 2012-06-22 | 2017-03-28 | Wind River Systems, Inc. | System and method for supporting fast and deterministic execution and simulation in multi-core environments |
US9558000B2 (en) * | 2014-02-06 | 2017-01-31 | Optimum Semiconductor Technologies, Inc. | Multithreading using an ordered list of hardware contexts |
US9417876B2 (en) | 2014-03-27 | 2016-08-16 | International Business Machines Corporation | Thread context restoration in a multithreading computer system |
US9594660B2 (en) * | 2014-03-27 | 2017-03-14 | International Business Machines Corporation | Multithreading computer system and program product for executing a query instruction for idle time accumulation among cores |
US9354883B2 (en) | 2014-03-27 | 2016-05-31 | International Business Machines Corporation | Dynamic enablement of multithreading |
US10102004B2 (en) | 2014-03-27 | 2018-10-16 | International Business Machines Corporation | Hardware counters to track utilization in a multithreading computer system |
US9921848B2 (en) | 2014-03-27 | 2018-03-20 | International Business Machines Corporation | Address expansion and contraction in a multithreading computer system |
US9804846B2 (en) | 2014-03-27 | 2017-10-31 | International Business Machines Corporation | Thread context preservation in a multithreading computer system |
US9513960B1 (en) | 2015-09-22 | 2016-12-06 | International Business Machines Corporation | Inducing transactional aborts in other processing threads |
US9851957B2 (en) * | 2015-12-03 | 2017-12-26 | International Business Machines Corporation | Improving application code execution performance by consolidating accesses to shared resources |
US10536441B2 (en) * | 2016-08-23 | 2020-01-14 | Texas Instruments Incorporated | Thread ownership of keys for hardware-accelerated cryptography |
CN109284193B (zh) * | 2018-09-06 | 2022-12-09 | 平安科技(深圳)有限公司 | 一种基于多线程的分布式数据处理方法及服务器 |
US11900156B2 (en) * | 2019-09-24 | 2024-02-13 | Speedata Ltd. | Inter-thread communication in multi-threaded reconfigurable coarse-grain arrays |
CN113919877A (zh) * | 2021-10-15 | 2022-01-11 | 深圳市酷开网络科技股份有限公司 | 基于dmp平台圈人任务进度处理方法、装置及可读存储介质 |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5909559A (en) | 1997-04-04 | 1999-06-01 | Texas Instruments Incorporated | Bus bridge device including data bus of first width for a first processor, memory controller, arbiter circuit and second processor having a different second data width |
US6298370B1 (en) * | 1997-04-04 | 2001-10-02 | Texas Instruments Incorporated | Computer operating process allocating tasks between first and second processors at run time based upon current processor load |
US6101524A (en) | 1997-10-23 | 2000-08-08 | International Business Machines Corporation | Deterministic replay of multithreaded applications |
US6625635B1 (en) | 1998-11-02 | 2003-09-23 | International Business Machines Corporation | Deterministic and preemptive thread scheduling and its use in debugging multithreaded applications |
WO2001027764A1 (en) | 1999-10-13 | 2001-04-19 | Board Of Regents The University Of Texas System | Software fault tolerance of concurrent programs using controlled re-execution |
US6832367B1 (en) * | 2000-03-06 | 2004-12-14 | International Business Machines Corporation | Method and system for recording and replaying the execution of distributed java programs |
WO2002021281A2 (en) | 2000-09-08 | 2002-03-14 | Network Appliance, Inc. | Panic message analyzer |
US7360217B2 (en) | 2001-09-28 | 2008-04-15 | Consentry Networks, Inc. | Multi-threaded packet processing engine for stateful packet processing |
US6842848B2 (en) * | 2002-10-11 | 2005-01-11 | Sandbridge Technologies, Inc. | Method and apparatus for token triggered multithreading |
CN100549966C (zh) | 2003-09-30 | 2009-10-14 | 明导公司 | 使用一个或多个自动机的系统验证 |
US20050081206A1 (en) | 2003-10-14 | 2005-04-14 | Armstrong Douglas R. | Methods and apparatus for profiling threaded programs |
US7730501B2 (en) * | 2003-11-19 | 2010-06-01 | Intel Corporation | Method for parallel processing of events within multiple event contexts maintaining ordered mutual exclusion |
US7490218B2 (en) | 2004-01-22 | 2009-02-10 | University Of Washington | Building a wavecache |
US7716031B2 (en) | 2005-02-25 | 2010-05-11 | Coware, Inc. | Interface converter for unified view of multiple computer system simulations |
US7555607B2 (en) * | 2005-11-10 | 2009-06-30 | Hewlett-Packard Development Company, L.P. | Program thread syncronization for instruction cachelines |
WO2007056597A1 (en) * | 2005-11-10 | 2007-05-18 | Hewlett-Packard Development Company L.P. | Program thread synchronization |
US7720073B2 (en) | 2005-12-06 | 2010-05-18 | Shabbir Khan | System and/or method for bidding |
US8799882B2 (en) * | 2005-12-07 | 2014-08-05 | Microsoft Corporation | Compiler support for optimizing decomposed software transactional memory operations |
US20070143755A1 (en) * | 2005-12-16 | 2007-06-21 | Intel Corporation | Speculative execution past a barrier |
US7792805B2 (en) * | 2006-05-30 | 2010-09-07 | Oracle America, Inc. | Fine-locked transactional memory |
US8316352B2 (en) * | 2006-06-09 | 2012-11-20 | Oracle America, Inc. | Watchpoints on transactional variables |
US20080209436A1 (en) * | 2006-10-25 | 2008-08-28 | Gul Agha | Automated testing of programs using race-detection and flipping |
US7711678B2 (en) * | 2006-11-17 | 2010-05-04 | Microsoft Corporation | Software transaction commit order and conflict management |
US7860847B2 (en) * | 2006-11-17 | 2010-12-28 | Microsoft Corporation | Exception ordering in contention management to support speculative sequential semantics |
US8719807B2 (en) * | 2006-12-28 | 2014-05-06 | Intel Corporation | Handling precompiled binaries in a hardware accelerated software transactional memory system |
US8060482B2 (en) * | 2006-12-28 | 2011-11-15 | Intel Corporation | Efficient and consistent software transactional memory |
WO2008101756A1 (en) * | 2007-02-20 | 2008-08-28 | International Business Machines Corporation | Method and system for concurrent message processing |
US8533681B2 (en) | 2007-03-07 | 2013-09-10 | The Board Of Trustees Of The University Of Illinois | Atomicity violation detection using access interleaving invariants |
US8458724B2 (en) * | 2007-06-15 | 2013-06-04 | Microsoft Corporation | Automatic mutual exclusion |
US7676636B2 (en) | 2007-07-10 | 2010-03-09 | Sun Microsystems, Inc. | Method and apparatus for implementing virtual transactional memory using cache line marking |
US8239633B2 (en) * | 2007-07-11 | 2012-08-07 | Wisconsin Alumni Research Foundation | Non-broadcast signature-based transactional memory |
US7966459B2 (en) | 2007-12-31 | 2011-06-21 | Oracle America, Inc. | System and method for supporting phased transactional memory modes |
JP5624480B2 (ja) | 2008-03-11 | 2014-11-12 | ユニバーシティ・オブ・ワシントン | 効率的な決定論的マルチプロセッシング(deterministicmultiprocessing) |
US8453120B2 (en) | 2010-05-11 | 2013-05-28 | F5 Networks, Inc. | Enhanced reliability using deterministic multiprocessing-based synchronized replication |
-
2008
- 2008-12-12 WO PCT/US2008/086711 patent/WO2009076654A1/en active Application Filing
- 2008-12-12 JP JP2010538213A patent/JP5576798B2/ja not_active Expired - Fee Related
- 2008-12-12 EP EP08858537A patent/EP2232367A4/en not_active Withdrawn
- 2008-12-12 US US12/334,336 patent/US8694997B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20090165006A1 (en) | 2009-06-25 |
EP2232367A4 (en) | 2011-03-09 |
WO2009076654A1 (en) | 2009-06-18 |
US8694997B2 (en) | 2014-04-08 |
EP2232367A1 (en) | 2010-09-29 |
JP2011507112A (ja) | 2011-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5576798B2 (ja) | 決定論的マルチプロセッシング(deterministicmultiprocessing) | |
JP5624480B2 (ja) | 効率的な決定論的マルチプロセッシング(deterministicmultiprocessing) | |
US8453120B2 (en) | Enhanced reliability using deterministic multiprocessing-based synchronized replication | |
Olszewski et al. | Kendo: efficient deterministic multithreading in software | |
US7506339B2 (en) | High performance synchronization of accesses by threads to shared resources | |
Pulte et al. | Promising-ARM/RISC-V: a simpler and faster operational concurrency model | |
Chen et al. | Deterministic replay: A survey | |
Gustavsson et al. | Towards WCET analysis of multicore architectures using UPPAAL | |
EP3296877B1 (en) | Debugging systems | |
Kokologiannakis et al. | Stateless model checking of the Linux kernel's hierarchical read-copy-update (tree RCU) | |
JP6205168B2 (ja) | 並列構造化重複検出を利用する並列モデル検査のためのシステムおよび方法 | |
US20220164507A1 (en) | Electronic system-level reproducible parallel simulation method implemented by way of a discrete event simulation multicore computing system | |
Pina et al. | Freeda: Deploying incompatible stock dynamic analyses in production via multi-version execution | |
Edwards et al. | Programming shared memory multiprocessors with deterministic message-passing concurrency: Compiling SHIM to Pthreads | |
Lackorzynski et al. | Decoupled: low-effort noise-free execution on commodity systems | |
US20150160967A1 (en) | Context preservation during thread level speculative execution | |
Olszewski et al. | Scaling deterministic multithreading | |
Bell et al. | Vroom: Faster Build Processes for Java | |
Štill et al. | Model checking of C++ programs under the x86-tso memory model | |
Štill | LLVM transformations for model checking | |
Blanton et al. | Non-blocking inter-partition communication with wait-free pair transactions | |
Chajed | Verifying an I/O-concurrent file system | |
Dijk | The Parallelization of Binary Decision Diagram operations for model checking | |
Ebrahimian Amiri | A foundation for development of programming languages for real-time systems | |
Liao | TAI: threaded asynchronous I/O library for performance and portability |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111212 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121206 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130426 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130522 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20130822 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20130829 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140411 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140514 |
|
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: 20140606 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140704 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5576798 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |