JP6205168B2 - 並列構造化重複検出を利用する並列モデル検査のためのシステムおよび方法 - Google Patents
並列構造化重複検出を利用する並列モデル検査のためのシステムおよび方法 Download PDFInfo
- Publication number
- JP6205168B2 JP6205168B2 JP2013093599A JP2013093599A JP6205168B2 JP 6205168 B2 JP6205168 B2 JP 6205168B2 JP 2013093599 A JP2013093599 A JP 2013093599A JP 2013093599 A JP2013093599 A JP 2013093599A JP 6205168 B2 JP6205168 B2 JP 6205168B2
- Authority
- JP
- Japan
- Prior art keywords
- search
- parallel
- abstract
- duplicate detection
- nodes
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/442—Shutdown
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
最も広く知られるグラフ探索アルゴリズムのうちの2つは、深さ優先探索と幅優先探索である。深さ優先探索は、グラフ内の後続ノードを最深優先順序で発生させる(後続ノードの発生を「ノード拡張」と呼ぶ)。これは、最も新しく発生されたノードが次の拡張されるノードとなることを意味する。一方で、幅優先探索は最浅優先順序でノードを拡張する。例えば、Spinは、安全性(典型的には、望ましくない何かは発生しないことを検証するために使用される)および活性(典型的には、望ましい何かはいつか必ず起こることの検証に使用される)の双方を検査できることからデフォルトで深さ優先探索を使用するが、Spinの幅優先探索アルゴリズムは安全特性しか検証することができない。
この研究における私達の関心は、安全性をより迅速に検証するためにモデル検査の幅優先探索の性能を向上させることにある。グラフの並列探索を成功させるためには、グラフは、探索を実行する各スレッドがグラフの独立した一部分に作用できるようにして分割されなければならない。これを達成する単純な方法は、グラフのノードをハッシュ関数で静的に分割することである。このフレームワークは、ハッシュ分散方式の探索と呼ばれる。
ハッシュ分散方式の探索がモデル検査に適用される場合の主たる欠点は、2つ存在する。第1に、ハッシュ分散方式の探索は、重複ノードがスレッド間で通信される際に重複ノードの検出を遅延させる。ノードは、別のスレッドへ送られると、そのスレッドの受入側のキューに配置され、最終的に受け入れられて受入側のスレッドのハッシュテーブルに照らして検査されるまでそこに留まる。重複ノードのこの遅延される検出は、重複ノードがそのメモリを再使用のために即座に解放する代わりに受け入れキュー内に存在することに起因して、探索にさらなるメモリを必要とさせる。やがて分かるように、遅延する重複ノード検出によって生み出される余分なメモリオーバーヘッドはかなりのものになる可能性がある。
ハッシュ分散方式の探索に関わる先に述べた問題点は共に、スレッドへノードを割り当てるために使用されるハッシュ関数はノードを均一に分散するように設計されるという事実に由来する。これは、後続ノードが拡張するスレッドへ割り当てられることをまれにする。Burns et al.(2010年)は、この問題点を軽減するために使用できるハッシュ分散方式の探索の修正を提示している。ノードを均一に分散するハッシュ関数を用いる代わりに、準同形の抽象化関数を用いてノードをより構造化された方法で分散することができる。慎重に作成される抽象化を用いる場合のこの手法の優位点は、探索ノードの後続者にその親と同じ抽象ノードへマップする傾向があり、よって、これらは拡張するスレッドへ割り当てられることにある。欠点は、探索負荷がスレッド間で均等に平衡され得ないことである。Burns et al.は、均一に分散されるハッシュ関数の代わりに抽象化を用いることで、パズル解法および企画問題に対するHDA*の性能を大幅に向上させ得ることを示している。
本明細書に記述している実施形態によれば、ハッシュ関数を用いて先験的にノードをスレッドへ割り当てる代わりに、スレッドが探索努力を動的に分割できるようにする並列構造化重複検出(PSDD)と呼ばれるフレームワーク等の構造化重複検出技法を用いる並列到達可能性分析が使用される。PSDDは、準同形の抽象化を用いて探索グラフ内のノードを探索グラフの抽象的表現におけるノードへマップする。抽象化は、典型的には各探索ノードの状態情報の幾つかを投影することによって作成される多対1マッピングである。探索ノードがマッピングされる抽象ノードは、抽象化されている探索ノードの画像と呼ばれる。抽象グラフは次に、探索グラフにおける一辺により接続される2つの探索ノードの画像であるあらゆる抽象ノードペア間の辺を加えることによって接続される。
PSDDは、空間の局所構造を活用するために状態空間グラフの抽象的表現に依存する。Spinの場合、探索空間内の各状態は、その実行がモデリングされつつあるプロセスの集合より成る。各プロセスは、カレント状態および遷移集合を有する有限オートマトンによって表現される。私達がPSDDの実装において用いた抽象化は、任意の状態を所与として、プロセスIDの部分集合のプロセスタイプおよびオートマトン状態のみを考察する。例えば、0〜6を付番された7つのプロセスを有する状態について考察されたい。可能な抽象化の1つは、プロセスの1つの部分集合のみ、例えば最初の2つのプロセスIDのオートマトン状態のみを考察することである。これは、プロセスID2〜6を効果的に「投影」し、抽象ノードの遙かに小さい集合をもたらす。次には、有限オートマトンの遷移を用いて、抽象グラフにおける先行者/後続者関係を決定する。ノードとその後続者との間では単一コンポーネントのオートマトンの状態のみが遷移することから、抽象グラフにおける後続者は、プロセスIDの、抽象化において除去されていない考え得る全ての単一遷移である。抽象グラフを計算する場合、起きてはならない性質の記述は抽象化によって考察されず、よって、単一コンポーネントのオートマトンのみが遷移を通じて変わることが保証される。効率化のために、私達は探索の間、抽象グラフを必要に応じて緩やかに発生させている。これは、実際に使用されるグラフ部分のみをインスタンス化するという利点を提供する。この緩やかな構成には、グラフの構成を、前処理ステップとして連続して行う代わりに、(例えば、処理デバイスの複数のコアプロセッサ、またはコンピュータの複数のプロセッサまたはネットワークまたはクラスタ内の複数のコンピュータを用いて)探索の実行と並行して行うという追加的な利点もある。
本項では、2つの並列幅優先探索方法を評価するために実行した実験セットの結果について述べる。さらに、適用可能であれば、Spinの内蔵式マルチコア深さ優先探索との比較を行う。私達の実験に用いたマシンは、各々が6個のコアを有する2つの3.33GHz Xeon 5680プロセッサと、96GBのRAMとを有する。
Spinは、最新技術のマルチコア深さ優先探索アルゴリズムを含む。このアルゴリズムは、探索を実行する各スレッドをリングに接続する。ノードは、リングを回って1つのスレッドから別のスレッドへ一方向に通されてもよい。よって各スレッドは、ある特定の深さ間隔内に含まれる全てのノードを拡張する働きを担っている。あるノードの後続者が現行スレッドに割り当てられる間隔に含まれない場合、新しく発生される後続者は、共有されるメモリキューを用いてリング沿いの近傍スレッドへ通されなければならない。この近傍スレッドは、次に、キューからノードを受け入れかつこれらの拡張を開始してもよい。この技法を用いて、HolzmannおよびBosnackiは、設定されたベンチマークモデル上の2つのスレッドにおいて1.6倍を超える速力増加、および参照モデル上の2つのスレッドで、調整可能パラメータセットを提供するほぼ完璧な線形速力増加を達成することができた。しかしながら、その結果において、彼らは、この技法が、半順序簡約の実行に際して保存的でなければならないことを示している。よって、半順序簡約が使用される場合、マルチコア深さ優先探索の性能は、HD−BFSの場合と同様に、事実上直列探索より悪くなる可能性がある。
‐DFULL_TRAIL−DSAFETY−DMEMLIM=64000
ハッシュ分散方式の探索およびSpinのマルチコア深さ優先探索が保存的な半順序簡約に起因して被る性能劣化を評価するために、オペレーティングシステム「Plan 9 from Bel Labs」からのセマフォ実装モデルを用いて実験を実行した。このモデルのための状態空間サイズは、半順序簡約を実行できるかどうかに依存して約3までの係数で変更が可能である。このモデルが特に興味深い理由は、先の実験に使用された哲学者モデルとは異なり、セマフォモデルが実世界のモデル検査問題から採用されたことにもある。
次に、4つのモデルに対する異なるアルゴリズムの並列速力増加および壁時計時間に関わる全体性能を示す。共に抽象化を必要とするPSDDおよびAHD−BFSについては、投影において実験的に使用されるプロセッサIDの一定のサブセットを選ぶ。各モデルに対して、小値のn(7まで)による手動選択のプロセスIDシーケンスの小集合0−nおよび1−nを用いてこれらのアルゴリズムを実行した。各モデルで最良の性能をもたらしたシーケンスが、次の比較で使用された。私達は、このような単純な抽象化を用いた場合の次の結果におけるPSDDにより示された優れた性能は、PSDDに対する優れた抽象化の発見が困難なタスクではないことの強力な証拠であると考える。
結果は、PSDDがモデル検査問題に対して必要とするメモリはハッシュ分散方式の探索より少なく、かつPSDDは、ハッシュ分散方式の探索およびSpinのマルチコア深さ優先探索の双方より優れた並列速力増加および速い探索時間をもたらすことを実証している。またPSDDは、ハードディスク等の外部記憶装置がコアメモリを補助するために使用される外部メモリ探索アルゴリズムとしても作用することができる。外部メモリPSDD(または略して単に外部PSDD)はPSDDとほぼ同じ働きをするが、抽象ノードが探索スレッドのうちの1つによって使用中でなければ、外部記憶装置へと押しやられることが可能である。これは、探索アルゴリズムのメモリ使用量を、探索グラフ全体のメモリ使用量から、ちょうど各探索スレッドにより獲得される重複検出スコープのサイズにまで減らす。
予備実験では、外部メモリPSDDが探索のメモリ要件を大幅に低減できることを目にした。しかしながら、外部メモリPSDDに関する不利益は、ハードディスク記憶装置にアクセスしなければならないことから直列探索より遙かに長い時間がかかり得ることにある。私達は、外部PSDDの性能が、I/O並列化を活用すべく複数のRAIDアレイを用いることによって大幅に高められ得るものと推測している。
Claims (9)
- システムを検証するための方法であって、
カレント状態および遷移セットを有する有限オートマトンによって表現される同時プロセスのサブセットを用いて、前記システムの状態空間の抽象的表現を作り出すことと、
前記抽象的表現を基礎とする構造化重複検出技法を用いて並列到達可能性分析を実行することと、
構造化重複検出技法を用いる前記並列到達可能性分析の前記実行を基礎として前記システムの無効な挙動または状態を決定することと、
無効な挙動または状態が発見されなければ、前記システムの正当性を証明することと、を含む方法。 - 前記無効な挙動または状態を導いたシステム遷移のシーケンスをユーザへ通知することをさらに含む、請求項1に記載の方法。
- 共有または分散されたメモリおよび並列処理環境においてモデルチェッカを開始することをさらに含む、請求項1に記載の方法。
- 半順序簡約が保全される、請求項1に記載の方法。
- 前記遷移セットは先行者と後続者との関係性を決定するために使用され、かつ前記抽象的表現の計算に際してはサブセットのプロセスのオートマトンのみが使用される、請求項1に記載の方法。
- 前記抽象的表現を作り出すことは、必要に応じて抽象グラフを発生することを含む、請求項1に記載の方法。
- 前記抽象グラフは、処理デバイスの複数のコアプロセッサにより、または1つのコンピュータの複数のプロセッサまたはクラスタ内の複数のコンピュータにより並行して発生される、請求項6に記載の方法。
- 前記抽象グラフを発生することは、遷移を通じて単一のオートマトンのみが変わることの保証を含む、請求項6に記載の方法。
- 計算システムであって、
カレント状態および遷移セットを有する有限オートマトンによって表現される同時プロセスのサブセットを用いて、検証されるべきシステムの状態空間の抽象的表現を作り出し、前記抽象的表現を基礎とする構造化重複検出技法を用いて並列到達可能性分析を実行し、かつ並列構造化重複検出技法の実行を基礎として前記検証されるべきシステムの無効な挙動または状態を決定するように動作可能な少なくとも1つのプロセッサと、
構造化重複検出技法を用いる前記並列到達可能性分析を実行するために前記プロセッサと相互作用するように動作可能な記憶デバイスと、を備える計算システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/470,280 US9098620B2 (en) | 2012-05-12 | 2012-05-12 | System and method for parallel model checking utilizing parallel structured duplicate detection |
US13/470,280 | 2012-05-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013239163A JP2013239163A (ja) | 2013-11-28 |
JP6205168B2 true JP6205168B2 (ja) | 2017-09-27 |
Family
ID=49549480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013093599A Expired - Fee Related JP6205168B2 (ja) | 2012-05-12 | 2013-04-26 | 並列構造化重複検出を利用する並列モデル検査のためのシステムおよび方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9098620B2 (ja) |
JP (1) | JP6205168B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015107711A1 (ja) * | 2014-01-17 | 2015-07-23 | 日本電気株式会社 | 分散環境モデル用モデル検査装置、分散環境モデル用モデル検査方法及びプログラム |
EP3106980A1 (en) * | 2015-06-19 | 2016-12-21 | Ecole Nationale de l'Aviation Civile | A processing unit, software and method for controlling interactive components |
EP3106990A1 (en) * | 2015-06-19 | 2016-12-21 | Ecole Nationale de l'Aviation Civile | A method, software and processing unit for verifying properties of interactive components |
CN105912536A (zh) * | 2015-10-23 | 2016-08-31 | 乐视致新电子科技(天津)有限公司 | 一种违章信息查询方法和装置 |
CN107844415B (zh) * | 2017-09-28 | 2021-02-05 | 西安电子科技大学 | 一种基于插值的模型检测路径缩减方法、计算机 |
US11258585B2 (en) * | 2019-03-25 | 2022-02-22 | Woven Planet North America, Inc. | Systems and methods for implementing robotics frameworks |
US11556370B2 (en) | 2020-01-30 | 2023-01-17 | Walmart Apollo, Llc | Traversing a large connected component on a distributed file-based data structure |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7539681B2 (en) * | 2004-07-26 | 2009-05-26 | Sourcefire, Inc. | Methods and systems for multi-pattern searching |
US8266600B2 (en) * | 2005-03-28 | 2012-09-11 | Nec Laboratories America, Inc. | Model checking of multi threaded software |
US7805454B2 (en) * | 2007-07-18 | 2010-09-28 | Palo Alto Research Center Incorporated | System and method for parallel graph search utilizing parallel structured duplicate detection |
-
2012
- 2012-05-12 US US13/470,280 patent/US9098620B2/en active Active
-
2013
- 2013-04-26 JP JP2013093599A patent/JP6205168B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2013239163A (ja) | 2013-11-28 |
US20130304755A1 (en) | 2013-11-14 |
US9098620B2 (en) | 2015-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6205168B2 (ja) | 並列構造化重複検出を利用する並列モデル検査のためのシステムおよび方法 | |
JP5576798B2 (ja) | 決定論的マルチプロセッシング(deterministicmultiprocessing) | |
US8954986B2 (en) | Systems and methods for data-parallel processing | |
Van Dijk et al. | Sylvan: Multi-core decision diagrams | |
US8453120B2 (en) | Enhanced reliability using deterministic multiprocessing-based synchronized replication | |
Van Dijk et al. | Multi-core BDD operations for symbolic reachability | |
Busato et al. | BFS-4K: an efficient implementation of BFS for kepler GPU architectures | |
US9734033B2 (en) | Implementing processor functional verification by generating and running constrained random irritator tests for multiple processor system and processor core with multiple threads | |
Bartocci et al. | Towards a GPGPU-parallel SPIN model checker | |
CN106445631B (zh) | 一种布署虚拟机的方法、系统以及物理服务器 | |
US7594195B2 (en) | Multithreaded reachability | |
US20160147516A1 (en) | Execution of complex recursive algorithms | |
Sharma et al. | A competitive analysis for balanced transactional memory workloads | |
Hukerikar et al. | An evaluation of lazy fault detection based on adaptive redundant multithreading | |
US9891655B2 (en) | Parallel operation system, apparatus and medium | |
WO2018144030A1 (en) | System and method for identifying maximal independent sets in parallel | |
Manthey | Parallel SAT solving-using more cores | |
Sharma et al. | Window-based greedy contention management for transactional memory: theory and practice | |
CN116610366A (zh) | 基于优先级的gpgpu分支处理架构及方法 | |
Cassee et al. | On the scalability of the GPUexplore explicit-state model checker | |
US20140040907A1 (en) | Resource assignment in a hybrid system | |
Soroushnia et al. | High performance pattern matching on heterogeneous platform | |
Soroushnia et al. | Heterogeneous parallelization of Aho-Corasick algorithm | |
US9280330B2 (en) | Apparatus and method for executing code | |
Becker et al. | Patterns for overlapping communication and computation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160425 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170217 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170314 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170530 |
|
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: 20170822 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170904 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6205168 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |