aPyCSP - Asynchronous PyCSP using python coroutines and asyncio

Publikation: Bidrag til bog/antologi/rapportKonferencebidrag i proceedingsForskningfagfællebedømt

Standard

aPyCSP - Asynchronous PyCSP using python coroutines and asyncio. / Bjørndalen, John Markus; Vinter, Brian; Anshus, Otto.

Communicating Process Architectures 2017 and 2018, WoTUG-39 and WoTUG-40 - Proceedings of CPA 2017 (WoTUG-39) and Proceedings of CPA 2018 (WoTUG-40). red. / Jan Baekgaard Pedersen; Kevin Chalmers; Jan F. Broenink; Brian Vinter; Kevin Vella; Peter H. Welch; Marc L. Smith; Kenneth Skovhede. IMIA and IOS Press, 2019. s. 281-297 (Concurrent Systems Engineering Series, Bind 70).

Publikation: Bidrag til bog/antologi/rapportKonferencebidrag i proceedingsForskningfagfællebedømt

Harvard

Bjørndalen, JM, Vinter, B & Anshus, O 2019, aPyCSP - Asynchronous PyCSP using python coroutines and asyncio. i JB Pedersen, K Chalmers, JF Broenink, B Vinter, K Vella, PH Welch, ML Smith & K Skovhede (red), Communicating Process Architectures 2017 and 2018, WoTUG-39 and WoTUG-40 - Proceedings of CPA 2017 (WoTUG-39) and Proceedings of CPA 2018 (WoTUG-40). IMIA and IOS Press, Concurrent Systems Engineering Series, bind 70, s. 281-297, 39th WoTUG Conference on Communicating Process Architectures, CPA 2017 and 40th WoTUG Conference on Communicating Process Architectures, CPA 2018, Dresden, Tyskland, 19/08/2018. https://doi.org/10.3233/978-1-61499-949-2-281

APA

Bjørndalen, J. M., Vinter, B., & Anshus, O. (2019). aPyCSP - Asynchronous PyCSP using python coroutines and asyncio. I J. B. Pedersen, K. Chalmers, J. F. Broenink, B. Vinter, K. Vella, P. H. Welch, M. L. Smith, & K. Skovhede (red.), Communicating Process Architectures 2017 and 2018, WoTUG-39 and WoTUG-40 - Proceedings of CPA 2017 (WoTUG-39) and Proceedings of CPA 2018 (WoTUG-40) (s. 281-297). IMIA and IOS Press. Concurrent Systems Engineering Series Bind 70 https://doi.org/10.3233/978-1-61499-949-2-281

Vancouver

Bjørndalen JM, Vinter B, Anshus O. aPyCSP - Asynchronous PyCSP using python coroutines and asyncio. I Pedersen JB, Chalmers K, Broenink JF, Vinter B, Vella K, Welch PH, Smith ML, Skovhede K, red., Communicating Process Architectures 2017 and 2018, WoTUG-39 and WoTUG-40 - Proceedings of CPA 2017 (WoTUG-39) and Proceedings of CPA 2018 (WoTUG-40). IMIA and IOS Press. 2019. s. 281-297. (Concurrent Systems Engineering Series, Bind 70). https://doi.org/10.3233/978-1-61499-949-2-281

Author

Bjørndalen, John Markus ; Vinter, Brian ; Anshus, Otto. / aPyCSP - Asynchronous PyCSP using python coroutines and asyncio. Communicating Process Architectures 2017 and 2018, WoTUG-39 and WoTUG-40 - Proceedings of CPA 2017 (WoTUG-39) and Proceedings of CPA 2018 (WoTUG-40). red. / Jan Baekgaard Pedersen ; Kevin Chalmers ; Jan F. Broenink ; Brian Vinter ; Kevin Vella ; Peter H. Welch ; Marc L. Smith ; Kenneth Skovhede. IMIA and IOS Press, 2019. s. 281-297 (Concurrent Systems Engineering Series, Bind 70).

Bibtex

@inproceedings{203095d92df949b6993d25e7bc20883e,
title = "aPyCSP - Asynchronous PyCSP using python coroutines and asyncio",
abstract = "PyCSP provides a CSP (Communicating Sequential Processes) based library for Python, where CSP processes can be executed as threads, operating system processes or greenlets. The main drawback of using threads and processes is that they limit the number of CSP processes that a program can use due to operating system restrictions and memory and synchronisation overheads. This overhead is reduced when using greenlets, but requires the use of an external library. aPyCSP is an experimental implementation of PyCSP that uses recent support for coroutines in Python and the asyncio library. This paper explores two implementation approaches for aPyCSP where the most recent version is shorter, simpler to read and understand and supports more functionality than the original version, including generic channel support and input and output guards. We believe some of the identified implementation techniques can be useful for other CSP libraries. The aPyCSP implementation is also faster and uses less memory per CSP process, allowing us to scale to 15 million processes on a computer with 64 GB memory.",
keywords = "APyCSP, Asynchronous, Coroutine, CSP, PyCSP, Python",
author = "Bj{\o}rndalen, {John Markus} and Brian Vinter and Otto Anshus",
year = "2019",
doi = "10.3233/978-1-61499-949-2-281",
language = "English",
series = "Concurrent Systems Engineering Series",
publisher = "IMIA and IOS Press",
pages = "281--297",
editor = "Pedersen, {Jan Baekgaard} and Kevin Chalmers and Broenink, {Jan F.} and Brian Vinter and Kevin Vella and Welch, {Peter H.} and Smith, {Marc L.} and Kenneth Skovhede",
booktitle = "Communicating Process Architectures 2017 and 2018, WoTUG-39 and WoTUG-40 - Proceedings of CPA 2017 (WoTUG-39) and Proceedings of CPA 2018 (WoTUG-40)",
note = "39th WoTUG Conference on Communicating Process Architectures, CPA 2017 and 40th WoTUG Conference on Communicating Process Architectures, CPA 2018 ; Conference date: 19-08-2018 Through 22-08-2018",

}

RIS

TY - GEN

T1 - aPyCSP - Asynchronous PyCSP using python coroutines and asyncio

AU - Bjørndalen, John Markus

AU - Vinter, Brian

AU - Anshus, Otto

PY - 2019

Y1 - 2019

N2 - PyCSP provides a CSP (Communicating Sequential Processes) based library for Python, where CSP processes can be executed as threads, operating system processes or greenlets. The main drawback of using threads and processes is that they limit the number of CSP processes that a program can use due to operating system restrictions and memory and synchronisation overheads. This overhead is reduced when using greenlets, but requires the use of an external library. aPyCSP is an experimental implementation of PyCSP that uses recent support for coroutines in Python and the asyncio library. This paper explores two implementation approaches for aPyCSP where the most recent version is shorter, simpler to read and understand and supports more functionality than the original version, including generic channel support and input and output guards. We believe some of the identified implementation techniques can be useful for other CSP libraries. The aPyCSP implementation is also faster and uses less memory per CSP process, allowing us to scale to 15 million processes on a computer with 64 GB memory.

AB - PyCSP provides a CSP (Communicating Sequential Processes) based library for Python, where CSP processes can be executed as threads, operating system processes or greenlets. The main drawback of using threads and processes is that they limit the number of CSP processes that a program can use due to operating system restrictions and memory and synchronisation overheads. This overhead is reduced when using greenlets, but requires the use of an external library. aPyCSP is an experimental implementation of PyCSP that uses recent support for coroutines in Python and the asyncio library. This paper explores two implementation approaches for aPyCSP where the most recent version is shorter, simpler to read and understand and supports more functionality than the original version, including generic channel support and input and output guards. We believe some of the identified implementation techniques can be useful for other CSP libraries. The aPyCSP implementation is also faster and uses less memory per CSP process, allowing us to scale to 15 million processes on a computer with 64 GB memory.

KW - APyCSP

KW - Asynchronous

KW - Coroutine

KW - CSP

KW - PyCSP

KW - Python

U2 - 10.3233/978-1-61499-949-2-281

DO - 10.3233/978-1-61499-949-2-281

M3 - Article in proceedings

AN - SCOPUS:85082388904

T3 - Concurrent Systems Engineering Series

SP - 281

EP - 297

BT - Communicating Process Architectures 2017 and 2018, WoTUG-39 and WoTUG-40 - Proceedings of CPA 2017 (WoTUG-39) and Proceedings of CPA 2018 (WoTUG-40)

A2 - Pedersen, Jan Baekgaard

A2 - Chalmers, Kevin

A2 - Broenink, Jan F.

A2 - Vinter, Brian

A2 - Vella, Kevin

A2 - Welch, Peter H.

A2 - Smith, Marc L.

A2 - Skovhede, Kenneth

PB - IMIA and IOS Press

T2 - 39th WoTUG Conference on Communicating Process Architectures, CPA 2017 and 40th WoTUG Conference on Communicating Process Architectures, CPA 2018

Y2 - 19 August 2018 through 22 August 2018

ER -

ID: 241090191