SHARED HASH TABLES IN PARALLEL MODEL CHECKING



Similar documents
The Model Checker SPIN

Physical Data Organization

A Comparison Of Shared Memory Parallel Programming Models. Jace A Mogill David Haglin

FPGA-based Multithreading for In-Memory Hash Joins

The Course.

tutorial: hardware and software model checking

Distributed Model Checking Using Hadoop

Parallelism and Cloud Computing

Timing of a Disk I/O Transfer

Disks and RAID. Profs. Bracy and Van Renesse. based on slides by Prof. Sirer

Rethinking SIMD Vectorization for In-Memory Databases

22S:295 Seminar in Applied Statistics High Performance Computing in Statistics

Operating Systems CSE 410, Spring File Management. Stephen Wagner Michigan State University

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe. Slide 13-1

Performance Evaluations of Graph Database using CUDA and OpenMP Compatible Libraries

Scalable Prefix Matching for Internet Packet Forwarding

Chapter 11 I/O Management and Disk Scheduling

Software Quality Exercise 1

Chapter 13 Disk Storage, Basic File Structures, and Hashing.

System modeling. Budapest University of Technology and Economics Department of Measurement and Information Systems

Chapter 13. Disk Storage, Basic File Structures, and Hashing

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

Formal Verification by Model Checking

ProTrack: A Simple Provenance-tracking Filesystem

Performance of Software Switching

Parallel Ray Tracing using MPI: A Dynamic Load-balancing Approach

VirtualCenter Database Performance for Microsoft SQL Server 2005 VirtualCenter 2.5

Abstract Data Type. EECS 281: Data Structures and Algorithms. The Foundation: Data Structures and Abstract Data Types

Practical Survey on Hash Tables. Aurelian Țuțuianu

Chapter 11 I/O Management and Disk Scheduling

AMD Opteron Quad-Core

Streaming Similarity Search over one Billion Tweets using Parallel Locality-Sensitive Hashing

Why Computers Are Getting Slower (and what we can do about it) Rik van Riel Sr. Software Engineer, Red Hat

SYSTEM ecos Embedded Configurable Operating System

Parallel Computing for Data Science

Scalability and Classifications

Agenda. Distributed System Structures. Why Distributed Systems? Motivation

Big Data With Hadoop

Load Balancing Techniques

CHAPTER 1 INTRODUCTION

Lecture 17: Virtual Memory II. Goals of virtual memory

Performance with the Oracle Database Cloud

Intel DPDK Boosts Server Appliance Performance White Paper

Big Data Technology Map-Reduce Motivation: Indexing in Search Engines

The Piranha computer algebra system. introduction and implementation details

LOAD BALANCING DISTRIBUTED OPERATING SYSTEMS, SCALABILITY, SS Hermann Härtig

The Oracle Universal Server Buffer Manager

TPCalc : a throughput calculator for computer architecture studies

Record Storage and Primary File Organization

AirWave 7.7. Server Sizing Guide

Implementing AUTOSAR Scheduling and Resource Management on an Embedded SMT Processor

Today s Agenda. Automata and Logic. Quiz 4 Temporal Logic. Introduction Buchi Automata Linear Time Logic Summary

Model Checking of Software

How To Test A Web Server

Achieving Nanosecond Latency Between Applications with IPC Shared Memory Messaging

Overview. CISC Developments. RISC Designs. CISC Designs. VAX: Addressing Modes. Digital VAX

In-Memory Databases MemSQL

INTRODUCTION The collection of data that makes up a computerized database must be stored physically on some computer storage medium.

Multiprocessor Scheduling and Scheduling in Linux Kernel 2.6

A1 and FARM scalable graph database on top of a transactional memory layer

Hadoop Parallel Data Processing

Cloud Operating Systems for Servers

PERFORMANCE TUNING ORACLE RAC ON LINUX

A COOL AND PRACTICAL ALTERNATIVE TO TRADITIONAL HASH TABLES

Model checking test models. Author: Kevin de Berk Supervisors: Prof. dr. Wan Fokkink, dr. ir. Machiel van der Bijl

Static Program Transformations for Efficient Software Model Checking

Automated Virtual Cloud Management: The need of future

Finding Liveness Errors with ACO

PHAST: Hardware-Accelerated Shortest Path Trees

Chapter 13. Chapter Outline. Disk Storage, Basic File Structures, and Hashing

High Performance Computing. Course Notes HPC Fundamentals

Fundamental Algorithms

Big Data Systems CS 5965/6965 FALL 2015

Topics in Computer System Performance and Reliability: Storage Systems!

A Classification of Model Checking-based Verification Approaches for Software Models

COS 318: Operating Systems. Virtual Memory and Address Translation

SOC architecture and design

Computer Architecture

A Deduplication File System & Course Review

SWISSBOX REVISITING THE DATA PROCESSING SOFTWARE STACK

The Classical Architecture. Storage 1 / 36

Angelika Langer The Art of Garbage Collection Tuning

Chapter 13: Query Processing. Basic Steps in Query Processing

Transcription:

SHARED HASH TABLES IN PARALLEL MODEL CHECKING IPA LENTEDAGEN 2010 ALFONS LAARMAN JOINT WORK WITH MICHAEL WEBER AND JACO VAN DE POL 23/4/2010

AGENDA Introduction Goal and motivation What is model checking? Hash tables Related work Lockless hash table Experiments 23/4/2010 1

GOAL AND MOTIVATION Goal: Realize efficient multi-core reachability Motivation: Multi-core is a necessity Reachability is a the basis of many verification problems Current model checkers do not scale as good as possible If you cannot parallelize reachability efficiently, then how do you parallelize more complicated algorithms: full LTL model checking, symbolic reachability, POR, etc 23/4/2010 2

WHAT IS MODEL CHECKING? www.toshiba.co.jp 23/4/2010 3

WHAT IS MODEL CHECKING? P rocess 1 P rocess 2 1 2 3 4 x x +1; if y ==1 then x 10; end 1 2 3 4 State space explosion y y +1; if x ==1 then y 10; end PROMELA (SPIN) DVE (DiVinE).NET (MoonWalker) C/C++ (terminator) Process algebraic (mcrl 1/2) Timed (UPPAAL) Hardware model checkers 23/4/2010 4

WHAT IS MODEL CHECKING? 1 2 3 4 5 6 7 8 9 10 11 12 Data: Buffer T = {s 0 }, Set V = while state T.get() do count 0; for succ in next-state(state) do count count +1; if V.find-or-put(succ) then T.put(succ); end end if 0==count then //DEADLOCK, print trace.. end end States are arrays with variables Search in state space graph V stores all seen states DFS or BFS depending on T Deadlocks and invariants Parallelization: High throughput Synchronization points 23/4/2010 5

HASH TABLES A key is associated with data by using its hash as an index in a table (wikipedia) Hash collisions: Create overflow list (chaining) large memory working set Continue probing (open addressing) asymptotic behavior when full Linear probing, double hashing 23/4/2010 6

RELATED WORK Fast model checkers: SPIN DiVinE 2.2 DiVinE with Shared storage 23/4/2010 7

RELATED WORK store store Worker 1 Worker 2 Queue Queue Stack Stack Worker 1 Worker 2 store Queue Queue Worker 3 Worker 4 Worker 4 Worker 3 Stack store store Stack DiVinE 2.2: static partitioning BFS only, high comm. Costs, static load balancing SPIN 5.2.4: shared storage + stack slicing DFS only, multiple sync. points, specific case of load balancing 23/4/2010 8

RELATED WORK Worker 1 Worker 2 Barnat, Ro kai (2007) Shared hash tables in parallel model checking store Worker 3 Worker 4 Shared hash tables do not scale beyond 8 cores Could not investigate lockless hash table solution Flexible reachability algorithm Flexible load-balancing 23/4/2010 9

LOCKLESS HASH TABLE Design Lockless hash table Load balancing 23/4/2010 10

LOCKLESS HASH TABLE Investigate requirements on shared storage Investigate hardware (cache behavior) Requirements Find-or-put operation only Scale by keeping a low memory working set No pointers, no allocation No resize! Statically sized state vectors 23/4/2010 11

LOCKLESS HASH TABLE state Open addressing Hash memoization Separate data Walking the line Lockless (CAS + write bit) cache line See also Cliff Click JavaOne talk (2007) bucket data 23/4/2010 12

LOCKLESS HASH TABLE Walk-the-line Linear probing Wait for write in data array to complete Double hashing 23/4/2010 13

LOAD BALANCING Static load-balancing Workers can run out of work Work stealing/handoff Synchronized random polling [Sanders97] 23/4/2010 14

SUMMARY As a summary, we implemented: The lockless hash table (in C) Reachability DFS + BFS Static load-balancing Synchronized random polling Reused DiVinE next-state function 23/4/2010 15

EXPERIMENTS SETUP Using CMS 16-way AMD Opteron cluster linux 2.6.18, 2.6.32+patch 30+ models from BEEM database Translated models for SPIN (same state count!) Statically sized hash tables Fair Results 23/4/2010 16

EXPERIMENTS Example, all model checkers, 3 models: 23/4/2010 17

EXPERIMENTS DiVinE 2.2: 23/4/2010 18

EXPERIMENTS SPIN 5.2.4: 23/4/2010 19

EXPERIMENTS LTSmin (lockless hash table): 23/4/2010 20

EXPERIMENTS 23/4/2010 21

EXPERIMENTS 23/4/2010 22

DISCUSSION / LIMITATIONS Statically sized states Reachability as a basis Slower sequentially Not 100% lock-free, but also not necessary 23/4/2010 23

CONCLUSIONS Adapt applications to hardware (memory hierarchy) Centralized state storage scales better and is more flexible Scalable explicit exploration is a good starting point for future work on multi-core X. X {(weak) LTL model checking, symbolic exploration, space-efficient explicit exploration} Holzmann s conjectures: works only for unoptimized sequential code works only for small state vectors/long transition delays SPIN has many features though, but backwards compatibility seems wrong starting point for scalable multi-core algorithms HTTP://FMT.CS.UTWENTE.NL/TOOLS/LTSMIN/ 23/4/2010 24

LTSMIN BFS SPEEDUPS BASE CASE: LTSMIN BFS Shared Hashtables in Parallel Model Checking 23/4/2010 25

LTSMIN DFS SPEEDUPS BASE CASE: LTSMIN DFS Shared Hashtables in Parallel Model Checking 23/4/2010 26

LTSMIN SPEEDUPS BASE CASE: LTSMIN STATIC LOAD BALANCING Shared Hashtables in Parallel Model Checking 23/4/2010 27