Session types in scientific computing and machine learning
Supervisors
Suitable for
Abstract
Prerequisites:
Scientific Computing or Machine Learning, and Concurrent Programming. Familiarity with Rust would be beneficial.
Background
Include:
- A brief motivation for why the project is interesting.
- A summary of the area.
Computationally expensive scientific computing and machine learning workflows often require distributed systems [1]. Such workflows can suffer from concurrency bugs such as deadlock, which can be statically detected with session types [2, 3].
Focus
Include:
- Research topic/question and expected contribution.
You will apply session types to scientific computing and machine learning workflows, and discuss the role session types do and could have in this space.
Method
Include:
- References to any papers, libraries or projects which might be used as a starting point.
- List of goals including which goals are essential to the project and which are stretch-goals.
You will find scientific computing and/or ML workflows that make non-trivial use of concurrency, and reproduce these in Rust. These can be binary (or two-party protocols) at first. Crucially, you will use existing tooling [4] to ensure soundness in the concurrent communication. Extensions include multiparty workflows and distributed setups.
[1] Bekkerman, Ron, Mikhail Bilenko, and John Langford, eds. Scaling up Machine Learning: Parallel and Distributed Approaches. Cambridge ; New York: Cambridge University Press, 2012.
[2] Yoshida, Nobuko, and Lorenzo Gheri. ‘A Very Gentle Introduction to Multiparty Session Types’. In Distributed Computing and Internet Technology, edited by Dang Van Hung and Meenakshi D´Souza, 11969:73–93. Lecture Notes in Computer Science. Cham: Springer International Publishing, 2020. https://doi.org/10.1007/978-3-030-36987-3_5.
[3] Coppo, Mario, Mariangiola Dezani-Ciancaglini, Luca Padovani, and Nobuko Yoshida. ‘A Gentle Introduction to Multiparty Asynchronous Session Types’. In Formal Methods for Multicore Programming, edited by Marco Bernardo and Einar Broch Johnsen, 9104:146–78. Lecture Notes in Computer Science. Cham: Springer International Publishing, 2015. https://doi.org/10.1007/978-3-319-18941-3_4.
[4] Cutner, Zak. ‘Rumpsteak’, n.d. https://github.com/zakcutner/rumpsteak.