Skip to content

Learning-based controlled concurrency testing in P#.

License

Notifications You must be signed in to change notification settings

suvamM/psharp-ql

 
 

Repository files navigation

Learning-based controlled concurrency testing in P#

This repository is a fork of the P# programming framework that implements a learning-based exploration strategy using Q-learning.

Benchmarks for evaluating the Q-Learning strategy

You can find benchmarks for evaluating our Q-Learning strategy in this directory, as well as scripts for easily running these benchmarks.

Prerequisites

Install Visual Studio 2019 and if necessary a version of .NET Core that matches the version specified in the global.json file. See version matching rules. Also install all the SDK versions of the .NET Framework that P# currently supports (4.5 and 4.6) from here.

Building

First build the P# runtime and testing tool. From this root directory, run in powershell:

.\Scripts\build.ps1

Next, build the benchmarks and evaluation driver, by running in powershell:

.\Benchmarks\build-benchmarks.ps1

How to run

To execute an experiment, simply run the EvaluationDriver using the corresponding test configuration file, as in the following example:

.\bin\net46\EvaluationDriver.exe .\Benchmarks\Protocols\FailureDetector.test.json

About

Learning-based controlled concurrency testing in P#.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 99.0%
  • Other 1.0%