Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
305 commits
Select commit Hold shift + click to select a range
48decd1
[requires.io] dependency update
requires Aug 7, 2016
2616681
[requires.io] dependency update
requires Aug 8, 2016
c32b05c
[requires.io] dependency update
requires Aug 16, 2016
b162511
[requires.io] dependency update
requires Aug 17, 2016
c4b0df8
[requires.io] dependency update
requires Aug 19, 2016
3f9cc3f
[requires.io] dependency update
requires Aug 24, 2016
11ccbf9
[requires.io] dependency update
requires Aug 29, 2016
14e039a
[requires.io] dependency update
requires Aug 29, 2016
d0b6fc7
[requires.io] dependency update
requires Sep 2, 2016
8395423
[requires.io] dependency update
requires Sep 14, 2016
1d25ec1
[requires.io] dependency update
requires Sep 29, 2016
787d255
[requires.io] dependency update
requires Sep 30, 2016
fa525d4
[requires.io] dependency update
requires Oct 10, 2016
d836929
[requires.io] dependency update
requires Oct 10, 2016
fea8fa9
[requires.io] dependency update
requires Nov 11, 2016
fcf7618
[requires.io] dependency update
requires Nov 15, 2016
db72562
[requires.io] dependency update
requires Nov 16, 2016
cc6c740
[requires.io] dependency update
requires Nov 27, 2016
acf205f
[requires.io] dependency update
requires Nov 29, 2016
bd50178
[requires.io] dependency update
requires Nov 29, 2016
35d7021
[requires.io] dependency update
requires Nov 29, 2016
a09fba6
[requires.io] dependency update
requires Nov 30, 2016
8c9ca54
[requires.io] dependency update
requires Dec 1, 2016
5e08fbd
[requires.io] dependency update
requires Dec 1, 2016
8deff82
[requires.io] dependency update
requires Dec 1, 2016
63089db
[requires.io] dependency update
requires Dec 3, 2016
05909db
[requires.io] dependency update
requires Dec 5, 2016
b400f81
[requires.io] dependency update
requires Dec 8, 2016
fdce433
[requires.io] dependency update
requires Dec 14, 2016
e634a9d
[requires.io] dependency update
requires Dec 16, 2016
d3771c6
[requires.io] dependency update
requires Dec 16, 2016
814b732
[requires.io] dependency update
requires Dec 27, 2016
8d74455
[requires.io] dependency update
requires Dec 28, 2016
36dde54
[requires.io] dependency update
requires Jan 5, 2017
5ed825d
[requires.io] dependency update
requires Jan 15, 2017
7bd7773
[requires.io] dependency update
requires Jan 17, 2017
aa78581
[requires.io] dependency update
requires Jan 17, 2017
1db7871
[requires.io] dependency update
requires Jan 17, 2017
c71d248
[requires.io] dependency update
requires Jan 18, 2017
d622429
[requires.io] dependency update
requires Jan 22, 2017
f2c9006
[requires.io] dependency update
requires Jan 24, 2017
d913c21
[requires.io] dependency update
requires Jan 30, 2017
59e774d
[requires.io] dependency update
requires Mar 2, 2017
b3ec3d3
[requires.io] dependency update
requires Mar 14, 2017
09c0188
[requires.io] dependency update
requires Mar 14, 2017
b5dd3a8
[requires.io] dependency update
requires Mar 17, 2017
2ffcced
[requires.io] dependency update
requires Mar 30, 2017
a55956e
[requires.io] dependency update
requires Apr 12, 2017
132cbe0
[requires.io] dependency update
requires May 8, 2017
b046ce6
[requires.io] dependency update
requires May 9, 2017
f5dfc7f
[requires.io] dependency update
requires May 10, 2017
62edb39
[requires.io] dependency update
requires May 12, 2017
88eb298
[requires.io] dependency update
requires May 15, 2017
78f1d1b
[requires.io] dependency update
requires May 22, 2017
c54b70a
[requires.io] dependency update
requires May 27, 2017
fb41cc7
[requires.io] dependency update
requires May 27, 2017
7c8dd62
[requires.io] dependency update
requires May 27, 2017
20cf2a1
[requires.io] dependency update
requires May 28, 2017
2d993ac
[requires.io] dependency update
requires May 29, 2017
e72afd3
[requires.io] dependency update
requires May 31, 2017
7714109
[requires.io] dependency update
requires Jun 4, 2017
b990ca2
[requires.io] dependency update
requires Jun 7, 2017
204026c
[requires.io] dependency update
requires Jun 9, 2017
2143494
[requires.io] dependency update
requires Jun 15, 2017
ff01085
[requires.io] dependency update
requires Jul 4, 2017
f154030
[requires.io] dependency update
requires Jul 15, 2017
b70b019
[requires.io] dependency update
requires Jul 15, 2017
747a86a
[requires.io] dependency update
requires Jul 23, 2017
7c50207
[requires.io] dependency update
requires Jul 25, 2017
5d6da68
[requires.io] dependency update
requires Aug 1, 2017
0d8dd6b
[requires.io] dependency update
requires Aug 2, 2017
cf6094f
[requires.io] dependency update
requires Aug 9, 2017
2e12c81
[requires.io] dependency update
requires Aug 15, 2017
081998f
[requires.io] dependency update
requires Sep 7, 2017
fcf44f6
[requires.io] dependency update
requires Oct 4, 2017
808dfe5
[requires.io] dependency update
requires Nov 5, 2017
878c98f
[requires.io] dependency update
requires Nov 14, 2017
3419618
[requires.io] dependency update
requires Nov 15, 2017
6781e8c
[requires.io] dependency update
requires Nov 15, 2017
eb7e2b1
[requires.io] dependency update
requires Nov 15, 2017
b1edbb7
[requires.io] dependency update
requires Nov 15, 2017
1e58456
[requires.io] dependency update
requires Nov 21, 2017
ce8421c
[requires.io] dependency update
requires Nov 28, 2017
dd9e83f
[requires.io] dependency update
requires Dec 6, 2017
5b40880
[requires.io] dependency update
requires Jan 5, 2018
7e2c8aa
[requires.io] dependency update
requires Jan 14, 2018
6b93195
[requires.io] dependency update
requires Jan 14, 2018
3cd8ed6
[requires.io] dependency update
requires Jan 31, 2018
db6d505
[requires.io] dependency update
requires Feb 4, 2018
963e7f2
[requires.io] dependency update
requires Feb 11, 2018
3a82fe6
[requires.io] dependency update
requires Feb 21, 2018
17e2c07
[requires.io] dependency update
requires Mar 6, 2018
089d7e1
[requires.io] dependency update
requires Mar 22, 2018
4796e2d
[requires.io] dependency update
requires Mar 23, 2018
a94de00
[requires.io] dependency update
requires Apr 12, 2018
c0b5d97
[requires.io] dependency update
requires Apr 15, 2018
1c5ea8a
[requires.io] dependency update
requires Apr 25, 2018
7136920
[requires.io] dependency update
requires May 23, 2018
4f13181
[requires.io] dependency update
requires Jun 5, 2018
ccc0ff7
[requires.io] dependency update
requires Jun 12, 2018
7d43a1a
[requires.io] dependency update
requires Jun 14, 2018
572fd70
[requires.io] dependency update
requires Jun 20, 2018
cf5a0e4
[requires.io] dependency update
requires Jun 27, 2018
d8281a9
[requires.io] dependency update
requires Jun 27, 2018
98e1076
[requires.io] dependency update
requires Jul 4, 2018
18e8dfe
[requires.io] dependency update
requires Jul 14, 2018
eb6502c
[requires.io] dependency update
requires Jul 28, 2018
d8b6978
[requires.io] dependency update
requires Jul 31, 2018
988f43b
[requires.io] dependency update
requires Aug 3, 2018
aa0de94
[requires.io] dependency update
requires Aug 18, 2018
3c75926
[requires.io] dependency update
requires Aug 26, 2018
1b7bd41
[requires.io] dependency update
requires Aug 27, 2018
6c04665
[requires.io] dependency update
requires Aug 29, 2018
cf70d08
[requires.io] dependency update
requires Sep 4, 2018
7efdb86
[requires.io] dependency update
requires Sep 6, 2018
f0f1289
[requires.io] dependency update
requires Sep 22, 2018
62e4bfc
[requires.io] dependency update
requires Oct 2, 2018
7f1e77c
[requires.io] dependency update
requires Oct 12, 2018
81589ca
[requires.io] dependency update
requires Oct 16, 2018
d655d9d
[requires.io] dependency update
requires Oct 18, 2018
38117e4
[requires.io] dependency update
requires Oct 23, 2018
e32669a
[requires.io] dependency update
requires Oct 27, 2018
f578cd8
[requires.io] dependency update
requires Nov 4, 2018
d4ae0a4
[requires.io] dependency update
requires Nov 8, 2018
97881f4
[requires.io] dependency update
requires Nov 11, 2018
0d593f3
[requires.io] dependency update
requires Nov 12, 2018
cdc42e7
[requires.io] dependency update
requires Nov 14, 2018
b13602a
[requires.io] dependency update
requires Nov 24, 2018
ce4fc25
[requires.io] dependency update
requires Dec 10, 2018
8e1aa36
[requires.io] dependency update
requires Dec 14, 2018
d938659
[requires.io] dependency update
requires Jan 6, 2019
42137d0
[requires.io] dependency update
requires Jan 7, 2019
1f96ae8
[requires.io] dependency update
requires Jan 12, 2019
c6324e6
[requires.io] dependency update
requires Jan 24, 2019
30fcb68
[requires.io] dependency update
requires Jan 31, 2019
edecaf7
[requires.io] dependency update
requires Feb 13, 2019
6efbe29
[requires.io] dependency update
requires Feb 19, 2019
1eeb63c
[requires.io] dependency update
requires Feb 22, 2019
b79097c
[requires.io] dependency update
requires Mar 11, 2019
6af1cb1
[requires.io] dependency update
requires Mar 13, 2019
7e37c2f
[requires.io] dependency update
requires Mar 15, 2019
09b3eb4
[requires.io] dependency update
requires Mar 18, 2019
8678f54
[requires.io] dependency update
requires Apr 1, 2019
eb856f2
[requires.io] dependency update
requires Apr 15, 2019
f5d6d4b
[requires.io] dependency update
requires Apr 23, 2019
c15a037
[requires.io] dependency update
requires May 3, 2019
eced0eb
[requires.io] dependency update
requires May 9, 2019
0681555
[requires.io] dependency update
requires May 11, 2019
e66cbd9
[requires.io] dependency update
requires May 16, 2019
368aafa
[requires.io] dependency update
requires Jun 1, 2019
35d0603
[requires.io] dependency update
requires Jun 2, 2019
180dd50
[requires.io] dependency update
requires Jun 3, 2019
c03b6fc
[requires.io] dependency update
requires Jun 6, 2019
498110e
[requires.io] dependency update
requires Jun 7, 2019
2d5743f
[requires.io] dependency update
requires Jun 11, 2019
e032ba3
[requires.io] dependency update
requires Jun 13, 2019
b8d283a
[requires.io] dependency update
requires Jun 29, 2019
9ca0702
[requires.io] dependency update
requires Jul 5, 2019
f2ad05f
[requires.io] dependency update
requires Jul 29, 2019
14f31a2
[requires.io] dependency update
requires Jul 31, 2019
0d9a5b0
[requires.io] dependency update
requires Aug 1, 2019
88a7a0c
[requires.io] dependency update
requires Aug 16, 2019
b8cf32e
[requires.io] dependency update
requires Aug 21, 2019
674588c
[requires.io] dependency update
requires Sep 7, 2019
b89604a
[requires.io] dependency update
requires Sep 21, 2019
cbf5552
[requires.io] dependency update
requires Sep 29, 2019
56584fe
[requires.io] dependency update
requires Oct 4, 2019
ced265d
[requires.io] dependency update
requires Oct 5, 2019
ea46d01
[requires.io] dependency update
requires Oct 6, 2019
020ecb3
[requires.io] dependency update
requires Oct 15, 2019
b87e7b1
[requires.io] dependency update
requires Oct 25, 2019
a86e8bd
[requires.io] dependency update
requires Oct 27, 2019
05b7c0a
[requires.io] dependency update
requires Nov 14, 2019
f7e27e2
[requires.io] dependency update
requires Nov 15, 2019
4ea7404
[requires.io] dependency update
requires Nov 19, 2019
8ae267e
[requires.io] dependency update
requires Nov 26, 2019
ffbcd8c
[requires.io] dependency update
requires Dec 2, 2019
13079de
[requires.io] dependency update
requires Dec 14, 2019
3a4c931
[requires.io] dependency update
requires Dec 14, 2019
8023e9f
[requires.io] dependency update
requires Dec 22, 2019
859afe4
[requires.io] dependency update
requires Dec 27, 2019
7b1a0d8
[requires.io] dependency update
requires Jan 6, 2020
150f0cd
[requires.io] dependency update
requires Jan 6, 2020
31b4246
[requires.io] dependency update
requires Jan 12, 2020
c8e50e8
[requires.io] dependency update
requires Jan 17, 2020
3b4006a
[requires.io] dependency update
requires Jan 20, 2020
95b92eb
[requires.io] dependency update
requires Jan 29, 2020
548008d
[requires.io] dependency update
requires Feb 19, 2020
86b1696
[requires.io] dependency update
requires Feb 25, 2020
e8d8cf1
[requires.io] dependency update
requires Feb 29, 2020
a65f894
[requires.io] dependency update
requires Mar 12, 2020
f6b9adf
[requires.io] dependency update
requires Mar 13, 2020
45bf256
[requires.io] dependency update
requires Mar 17, 2020
980dfe9
[requires.io] dependency update
requires Mar 18, 2020
d747600
[requires.io] dependency update
requires Apr 12, 2020
8351cfc
[requires.io] dependency update
requires Apr 27, 2020
ad987b3
[requires.io] dependency update
requires Apr 28, 2020
5ed9d93
[requires.io] dependency update
requires May 3, 2020
c988463
[requires.io] dependency update
requires May 8, 2020
54950eb
[requires.io] dependency update
requires May 22, 2020
1ac0131
[requires.io] dependency update
requires Jun 2, 2020
4d3d4a0
[requires.io] dependency update
requires Jun 12, 2020
290571a
[requires.io] dependency update
requires Jun 15, 2020
d049428
[requires.io] dependency update
requires Jun 17, 2020
cf3115c
[requires.io] dependency update
requires Jun 25, 2020
4bab99a
[requires.io] dependency update
requires Jul 6, 2020
fdc69da
[requires.io] dependency update
requires Jul 24, 2020
e32e75b
[requires.io] dependency update
requires Jul 29, 2020
395fac8
[requires.io] dependency update
requires Jul 30, 2020
8d97414
[requires.io] dependency update
requires Aug 14, 2020
17dbbea
[requires.io] dependency update
requires Aug 29, 2020
3ee2acb
[requires.io] dependency update
requires Sep 11, 2020
9f81ad0
[requires.io] dependency update
requires Sep 13, 2020
907c65e
[requires.io] dependency update
requires Sep 21, 2020
ad7186b
[requires.io] dependency update
requires Sep 26, 2020
29d51b3
[requires.io] dependency update
requires Oct 3, 2020
41e01aa
[requires.io] dependency update
requires Oct 3, 2020
f3842e3
[requires.io] dependency update
requires Oct 26, 2020
b4852f1
[requires.io] dependency update
requires Oct 28, 2020
bd03201
[requires.io] dependency update
requires Nov 1, 2020
d5369ae
[requires.io] dependency update
requires Nov 13, 2020
afc6f48
[requires.io] dependency update
requires Dec 12, 2020
f3ff2f5
[requires.io] dependency update
requires Dec 12, 2020
3e8eb79
[requires.io] dependency update
requires Dec 15, 2020
2e2da18
[requires.io] dependency update
requires Dec 16, 2020
e09944b
[requires.io] dependency update
requires Dec 19, 2020
5863e4a
[requires.io] dependency update
requires Jan 4, 2021
8c22e80
[requires.io] dependency update
requires Jan 18, 2021
aa2c1b1
[requires.io] dependency update
requires Jan 20, 2021
8225cd8
[requires.io] dependency update
requires Jan 20, 2021
2b532c7
[requires.io] dependency update
requires Jan 20, 2021
0cf474d
[requires.io] dependency update
requires Jan 25, 2021
8c0dca1
[requires.io] dependency update
requires Jan 26, 2021
44da189
[requires.io] dependency update
requires Feb 28, 2021
b33d9e3
[requires.io] dependency update
requires Apr 2, 2021
edd6070
[requires.io] dependency update
requires Apr 2, 2021
704a64b
[requires.io] dependency update
requires Apr 2, 2021
0f41eb4
[requires.io] dependency update
requires Apr 2, 2021
f3dd23c
[requires.io] dependency update
requires Apr 3, 2021
17d31c7
[requires.io] dependency update
requires Apr 3, 2021
ede0386
[requires.io] dependency update
requires Apr 4, 2021
422ad17
[requires.io] dependency update
requires Apr 8, 2021
27a6298
[requires.io] dependency update
requires Apr 14, 2021
d91751c
[requires.io] dependency update
requires May 4, 2021
0e9c519
[requires.io] dependency update
requires May 14, 2021
20bfbe5
[requires.io] dependency update
requires May 15, 2021
aea434a
[requires.io] dependency update
requires May 15, 2021
84b51b8
[requires.io] dependency update
requires May 16, 2021
9d8b901
[requires.io] dependency update
requires Jun 1, 2021
b18f66f
[requires.io] dependency update
requires Jul 13, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

# Virtual env
venv
venv3

# Directories
build
Expand Down
15 changes: 15 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
language: python

python:
- "2.7"
- "3.3"
# does not have headers provided, please ask https://launchpad.net/~pypy/+archive/ppa
# maintainers to fix their pypy-dev package.
- "pypy"

install:
- pip install .
- pip install -r requirements.txt --use-mirrors

script:
- py.test csp/test
Binary file removed IRClogs/Europython2010Sprint.log
Binary file not shown.
41 changes: 37 additions & 4 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,6 +1,39 @@
include README ChangeLog LICENSE
include README.md ChangeLog LICENSE
include scripts/python-csp
include scripts/cspdb

recursive-include csp/ *.py
recursive-include exstatic/ *.py
# added by check_manifest.py
include *.bat
include *.bib
include *.in
include *.txt
include .travis.yml
include Makefile
recursive-include benchmark *.mcsp
recursive-include benchmark *.py
recursive-include benchmark3 *.mcsp
recursive-include benchmark3 *.py
recursive-include csp *.c
recursive-include csp *.h
recursive-include csp *.i
recursive-include csp *.py
recursive-include csp3 *.c
recursive-include csp3 *.h
recursive-include csp3 *.i
recursive-include csp3 *.py
recursive-include examples *.dia
recursive-include examples *.occ
recursive-include examples *.png
recursive-include examples *.py
recursive-include examples3 *.dia
recursive-include examples3 *.occ
recursive-include examples3 *.png
recursive-include examples3 *.py
recursive-include rst *.conf
recursive-include rst *.css
recursive-include rst *.css_t
recursive-include rst *.dia
recursive-include rst *.html
recursive-include rst *.png
recursive-include rst *.py
recursive-include rst *.rst
recursive-include rst *.xcf
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ help:

clean:
-rm -rf $(BUILD)/*
-rmdir $(BUILD)

html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILD)/html
Expand Down
25 changes: 20 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,25 @@ python-csp: Communicating Sequential Processes for Python
Copyright (C) Sarah Mount, 2009 under the GNU GPL v2. See the file LICENSE for
more details.

[![Build Status](https://travis-ci.org/snim2/python-csp.png?branch=master)](https://travis-ci.org/snim2/python-csp)
[![Requirements Status](https://requires.io/github/snim2/python-csp/requirements.png?branch=master)](https://requires.io/github/snim2/python-csp/requirements/?branch=master)
[![PyPi version](https://pypip.in/v/python-csp/badge.png)](https://crate.io/packages/python-csp/)
[![PyPi downloads](https://pypip.in/d/python-csp/badge.png)](https://crate.io/packages/python-csp/)

Installation
------------

python-csp can be installed using PIP (PIP Installs Python):

```bash
$ sudo pip install python-csp
```

or from a source distribution using setup.py:

$ sudo python setup.py install

```bash
$ python setup.py install
```

Introduction
------------
Expand Down Expand Up @@ -50,17 +58,24 @@ Documentation.

There are several sources of documentation for python-csp:

* Online documentation, including a tutorial, is hosted on [Read the Docs](http://python-csp.readthedocs.org/en/latest/)

* If you are running the python-csp shell, type "info csp" to list available in-shell help.

* A user guide exists in the `tutorial/` directory of the source.
* Some community documentation, such as sprint reports and PDFs of peer-reviewed publications can be found at [extradocs](http://github.com/python-concurrency/extradocs)


Support and contributing.
------------------------

* `examples/` contains some larger example programs.
We have a [mailing list](https://groups.google.com/forum/#!forum/python-csp) where you can ask questions.

If you wish to contribute to this project, please fork the repo on GitHub and issue a pull request.

Publications.
------------

S. Mount, M. Hammoudeh, S. Wilson, R. Newman (2009) CSP as a Domain-Specific
Language Embedded in Python and Jython. In Proceedings of Communicating Process
Architectures 2009. Eindoven, Netherlands. 1st -- 4th November 2009. Published
IOS Press.
IOS Press. [[PDF] (http://github.com/python-concurrency/extradocs)]
10 changes: 0 additions & 10 deletions applications/python-csp.desktop

This file was deleted.

22 changes: 9 additions & 13 deletions benchmark/tokenring/plot_results.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
along with this program; if not, write to the Free Software
"""

from scipy import *
from scipy import *
from pylab import *

__author__ = 'Sarah Mount <[email protected]>'
Expand All @@ -33,14 +33,10 @@
t = array([2, 4, 8, 16, 32, 64, 128, 256, 512, 1024])


yvals = {1:{'procs':array([350.057995,
314.430736, 157.215372, 78.607687, 39.303844,
19.651922, 9.825962, 4.912981, 2.456491, None, None]),
'threads':array([314.430851, 157.215429, 78.607716, 39.303859,
19.651930, 9.825965, 4.912983, 2.456492, None, None]),
'jython':array([314.431448, 157.215729, 78.607867, 39.303935,
19.651969, 9.825985, 4.912993, 2.456502, 1.228249, 0.614125])}
}
yvals = {1: {'procs':array([350.057995, 314.430736, 157.215372, 78.607687, 39.303844,19.651922, 9.825962, 4.912981, 2.456491, None]),
'threads':array([314.430851, 157.215429, 78.607716, 39.303859, 19.651930, 9.825965, 4.912983, 2.456492, None, None]),
'jython':array([314.431448, 157.215729, 78.607867, 39.303935,.651969, 9.825985, 4.912993, 2.456502, 1.228249, 0.614125])}
}


subplot(111)
Expand All @@ -50,7 +46,7 @@
plot(t, yvals[1]['jython'], 'rx-.')

legend(['Processes reified as OS processes',
'Processes reified as OS threads',
'Processes reified as OS threads',
'Processes reified as Java threads'],
loc='upper left')

Expand All @@ -66,7 +62,7 @@
#plot(t, yvals[1]['jython'], 'rx-.')

#legend(['Processes reified as OS processes',
# 'Processes reified as OS threads',
# 'Processes reified as OS threads',
# 'Processes reified as Java threads'],
# loc='upper left')

Expand All @@ -82,7 +78,7 @@
#plot(t, yvals[1]['jython'], 'rx-.')

#legend(['Processes reified as OS processes',
# 'Processes reified as OS threads',
# 'Processes reified as OS threads',
# 'Processes reified as Java threads'],
# loc='upper left')

Expand All @@ -98,7 +94,7 @@
#plot(t, yvals[1]['jython'], 'rx-.')

#legend(['Processes reified as OS processes',
# 'Processes reified as OS threads',
# 'Processes reified as OS threads',
# 'Processes reified as Java threads'],
# loc='upper left')

Expand Down
7 changes: 7 additions & 0 deletions benchmark3/commstime/commstime.mcsp
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
PREFIX (in,out) ::= out -> @x.(in -> out -> x)
SUCC (in,out) ::= @x.(in -> out -> x)
DELTA (in,out1,out2) ::= @x.(in -> out1 -> out2 -> x)
CONSUME (in,report) ::= @x.((;[i=1,1000000] in); report -> x)
SYSTEM (report) ::= ((PREFIX (a, b) || DELTA (b, c, d)) ||
(SUCC (c, a) || CONSUME (d, report))) \ {a,b,c,d}

63 changes: 63 additions & 0 deletions benchmark3/commstime/commstime.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
#!/usr/bin/env python
"""CSP Commstime benchmark.

See F.R.M. Barnes (2006) Compiling CSP. In Proceedings of
Communicating Process Architectures 2006.

Code adapted from PyCSP by John Markus Bjorndalen, available:
http://www.cs.uit.no/~johnm/code/PyCSP/

PyCSP - Communicating Sequential Processes for Python. John Markus
Bjorndalen, Brian Vinter, Otto Anshus. CPA 2007, Surrey, UK, July
8-11, 2007. IOS Press 2007, ISBN 978-1-58603-767-3, Concurrent
Systems Engineering Series (ISSN 1383-7575).
"""

from csp.csp import *
from csp.builtins import Prefix, Delta2, Succ

import os
import time

@process
def Consumer(cin):
"""Commstime consumer process

readset = cin
writeset =
"""
N = 5000
ts = time.time
t1 = ts()
cin.read()
t1 = ts()
for i in range(N):
cin.read()
t2 = ts()
dt = t2-t1
tchan = dt / (4 * N)
print(("DT = {0}.\nTime per ch : {1}/(4*{2}) = {3} s = {4} us".format(dt, dt, N, tchan, tchan * 1000000)))
print("consumer done, posioning channel")
cin.poison()

def CommsTimeBM():
print('Creating channels now...')
# Create channels
a = Channel()
b = Channel()
c = Channel()
d = Channel()
print("Running commstime test")
Par(Prefix(c, a, prefix_item = 0), # Initiator
Delta2(a, b, d), # Forwarding to two
Succ(b, c), # Feeding back to prefix
Consumer(d)).start() # Timing process
print('Finished run...')


if __name__ == '__main__':
N_BM = 10
for i in range(N_BM):
print(("----------- run {0}/{1} -------------".format(i+1, N_BM)))
CommsTimeBM()
print("------- Commstime finished ---------")
108 changes: 108 additions & 0 deletions benchmark3/tokenring/plot_results.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
#!/usr/bin/env python

"""
Plotting results of variable ring buffer experiment.

Copyright (C) Sarah Mount, 2009.

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have rceeived a copy of the GNU General Public License
along with this program; if not, write to the Free Software
"""

from scipy import *
from pylab import *

__author__ = 'Sarah Mount <[email protected]>'
__date__ = 'November 2009'

FILENAME = 'token_ring.png'

subplots_adjust(hspace=0.4, wspace=0.6)

# Num of nodes in token ring
t = array([2, 4, 8, 16, 32, 64, 128, 256, 512, 1024])


yvals = {1:{'procs':array([350.057995, 314.430736, 157.215372, 78.607687, 39.303844, 19.651922, 9.825962, 4.912981, 2.456491, None]),
'threads':array([314.430851, 157.215429, 78.607716, 39.303859, 19.651930, 9.825965, 4.912983, 2.456492, None, None]),
'jython':array([314.431448, 157.215729, 78.607867, 39.303935, 19.651969, 9.825985, 4.912993, 2.456502, 1.228249, 0.614125])}
}


subplot(111)
title('Variable sized ring buffer \nwith one token')
plot(t, yvals[1]['procs'], 'g^-')
plot(t, yvals[1]['threads'], 'k*--')
plot(t, yvals[1]['jython'], 'rx-.')

legend(['Processes reified as OS processes',
'Processes reified as OS threads',
'Processes reified as Java threads'],
loc='upper left')

xlabel('Number of nodes in token ring')
ylabel(r'Time $(\mu{}s)$')

###

#subplot(222)
#title('16 node ring buffer \nwith three tokens')
#plot(t, yvals[1]['procs'], 'g^-')
#plot(t, yvals[1]['threads'], 'k*--')
#plot(t, yvals[1]['jython'], 'rx-.')

#legend(['Processes reified as OS processes',
# 'Processes reified as OS threads',
# 'Processes reified as Java threads'],
# loc='upper left')

#xlabel('Number of nodes in token ring')
#ylabel(r'Time $(\mu{}s)$')

###

#subplot(223)
#title('32 node ring buffer \nwith three tokens')
#plot(t, yvals[1]['procs'], 'g^-')
#plot(t, yvals[1]['threads'], 'k*--')
#plot(t, yvals[1]['jython'], 'rx-.')

#legend(['Processes reified as OS processes',
# 'Processes reified as OS threads',
# 'Processes reified as Java threads'],
# loc='upper left')

#xlabel('Number of nodes in token ring')
#ylabel(r'Time $(\mu{}s)$')

###

#subplot(224)
#title('64 node ring buffer \nwith three tokens')
#plot(t, yvals[1]['procs'], 'g^-')
#plot(t, yvals[1]['threads'], 'k*--')
#plot(t, yvals[1]['jython'], 'rx-.')

#legend(['Processes reified as OS processes',
# 'Processes reified as OS threads',
# 'Processes reified as Java threads'],
# loc='upper left')

#xlabel('Number of nodes in token ring')
#ylabel(r'Time $(\mu{}s)$')

###

grid(True)
savefig(FILENAME, format='png')
show()
Loading