Abstract

There is a widespread and rapidly growing interest to the parallel programming nowadays. This interest is based on availability of supercomputers, computer clusters and powerful graphic processors for computational mathematics and simulation. MPI, OpenMP, CUDA and other technologies provide opportunity to write C and FORTRAN code for parallel speed-up of execution without races for resources. Nevertheless concurrency issues (like races) are still very important for parallel systems in general and distributed systems in particular. Due to this reason, there is a need of research, study and teaching of formal models of concurrency and methods of distributed system verification. The paper presents an individual experience with teaching Formal Models of Concurrency as a graduate elective course for students specializing in high-performance computing. First it sketches course background, objectives, lecture plan and topics. Then the paper presents how to formalize (i.e. specify) a reachability puzzle in semantic, syntactic and logic formal models, namely: in Petri nets, in a dialect of Calculus of Communicating Systems (CCS) and in Computation Tree Logic (CTL). This puzzle is a good educational example to present specifics of different formal notations. The article is published in the author’s wording.

Highlights

  • One of English-to-Russian technical translation problem is about Russian equivalent for English term concurrency

  • Let us quote a talk by Dan Grossman at Workshop on Curricula for Concurrency and Parallelism (Nevada, Oct. 17, 2010) [6]: By parallelism, I mean using extra computational resources to solve a problem faster

  • The course should help Software Engineers and Applied Mathematicians to overview the spectrum of formal models for concurrency and parallelism, get idea of different reasoning techniques that are available for formal verification of concurrent and parallel systems

Read more

Summary

Introduction

Semantic, algebraic and logic formal models (by study of naive set theory, propositional formulas, Boolean algebras, propositional logic). Why do we need formal models for concurrency?. Problem solving with aid of Petri nets. Calculus of Communicating Systems (CCS) by R. Examples of LTS by Petri nets and calculi. Using CTL to specify properties of LTS. CTL Model Checking: algorithmic verification of LTS

One Puzzle for Many Formalisms
Puzzle in Petri nets
Puzzle in CCS
Puzzle in CTL
Parallel Programming Paradigm
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call