Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Kenneth MacKenzie

dblp:51/3906 · DBLP profile ↗
← Back
8ranked-venue papers
0as first author
1since 2021 · last 2025
0009-0009-3521-941XORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 4 · 1 since 2021Systems, architecture and hardware · 1Theory of computation · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Computer architecture, parallel and distributed computing, and storage systems
2 papers
Distributed systems · 94% Hardware reliability and fault tolerance · 6%
Software engineering, system software, and programming languages
1 paper
Runtime systems and virtual machines · 100%

Topics — the 5 heaviest of 8, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Distributed systems › distributed programming
actor model
0.312017
Scaling Reliably: Improving the Scalability of the Erlang Distributed Actor Platform · ACM Trans. Program. Lang. Syst. 2017
Distributed systems › distributed programming
distributed programming languages
0.312017
Evaluating Scalable Distributed Erlang for Scalability and Reliability · IEEE Trans. Parallel Distributed Syst. 2017
Distributed systems › distributed system dependability
reliable distributed systems
0.312017
Scaling Reliably: Improving the Scalability of the Erlang Distributed Actor Platform · ACM Trans. Program. Lang. Syst. 2017
Distributed systems
fault tolerance
0.112017
Evaluating Scalable Distributed Erlang for Scalability and Reliability · IEEE Trans. Parallel Distributed Syst. 2017
Hardware reliability and fault tolerance
reliability modeling
0.112017
Evaluating Scalable Distributed Erlang for Scalability and Reliability · IEEE Trans. Parallel Distributed Syst. 2017

Methods — techniques the papers use, named apart from their topics

partitioning · 0.6chaos monkey testing · 0.6
YearPublicationVenuePosition
2025 Plinth: A Plugin-Powered Language Built on Haskell (Experience Report)
abstract
The Cardano blockchain is the first to use proof of stake, offers native support for multiple currencies and is evolving toward a distributed governance model. It supports smart contracts through Plutus, a language based on System Fω with recursion. About half a dozen languages compile into Plutus, the first of which is Plinth (formerly Plutus Tx) — a language that reuses a subset of the Haskell syntax, and has been in commercial use since 2021.
Kenneth MacKenzie, Roman Kireev, Michael Peyton Jones, Philip Wadler, Manuel M. T. Chakravarty
Haskell2
2020 Native Custom Tokens in the Extended UTXO Model
Manuel M. T. Chakravarty, James Chapman 0001, Kenneth MacKenzie, Orestis Melkonian, Jann Müller, Michael Peyton Jones, Polina Vinogradova, Philip Wadler
ISoLA (3)3
2020 UTXOsf ma: UTXO with Multi-asset Support
Manuel M. T. Chakravarty, James Chapman 0001, Kenneth MacKenzie, Orestis Melkonian, Jann Müller, Michael Peyton Jones, Polina Vinogradova, Philip Wadler, Joachim Zahnentferner
ISoLA (3)3
2020 A Hybrid Approach to Parallel Pattern Discovery in C++
abstract
Parallel pattern libraries offer a strong combination of abstraction and performance. However, discovering places in sequential code where parallel patterns should be introduced is still highly non-trivial, often requiring expert manual analysis and profiling. We present a hybrid discovery technique to detect instances of parallel patterns in sequential code. This employs both static and dynamic trace-based analysis, together with hotspot detection. We evaluate our pattern discovery mechanism on a number of representative benchmarks. We evaluate the performance of the resulting parallelised benchmarks on a 24-core parallel machine.
Christopher Brown 0002, Vladimir Janjic, Adam D. Barwell, John Donald Thomson, Roberto Castañeda Lozano, Murray Cole, Björn Franke, José Daniel García, David del Rio Astorga, Kenneth MacKenzie
PDP10
2019 Unraveling Recursion: Compiling an IR with Recursion to System F
Michael Peyton Jones, Vasilis Gkoumas, Roman Kireev, Kenneth MacKenzie, Chad Nester, Philip Wadler
MPC4
2017 Scaling Reliably: Improving the Scalability of the Erlang Distributed Actor Platform
abstract
Distributed actor languages are an effective means of constructing scalable reliable systems, and the Erlang programming language has a well-established and influential model. While the Erlang model conceptually provides reliable scalability, it has some inherent scalability limits and these force developers to depart from the model at scale. This article establishes the scalability limits of Erlang systems and reports the work of the EU RELEASE project to improve the scalability and understandability of the Erlang reliable distributed actor model. We systematically study the scalability limits of Erlang and then address the issues at the virtual machine, language, and tool levels. More specifically: (1) We have evolved the Erlang virtual machine so that it can work effectively in large-scale single-host multicore and NUMA architectures. We have made important changes and architectural improvements to the widely used Erlang/OTP release. (2) We have designed and implemented Scalable Distributed (SD) Erlang libraries to address language-level scalability issues and provided and validated a set of semantics for the new language constructs. (3) To make large Erlang systems easier to deploy, monitor, and debug, we have developed and made open source releases of five complementary tools, some specific to SD Erlang. Throughout the article we use two case studies to investigate the capabilities of our new technologies and tools: a distributed hash table based Orbit calculation and Ant Colony Optimisation (ACO). Chaos Monkey experiments show that two versions of ACO survive random process failure and hence that SD Erlang preserves the Erlang reliability model. While we report measurements on a range of NUMA and cluster architectures, the key scalability experiments are conducted on the Athos cluster with 256 hosts (6,144 cores). Even for programs with no global recovery data to maintain, SD Erlang partitions the network to reduce network traffic and hence improves performance of the Orbit and ACO benchmarks above 80 hosts. ACO measurements show that maintaining global recovery data dramatically limits scalability; however, scalability is recovered by partitioning the recovery data. We exceed the established scalability limits of distributed Erlang, and do not reach the limits of SD Erlang for these benchmarks at this scale (256 hosts, 6,144 cores).
Philip W. Trinder, Natalia Chechina, Nikolaos S. Papaspyrou, Konstantinos Sagonas, Simon J. Thompson, Stephen Adams 0002, Stavros Aronis, Robert Baker 0001, Eva Bihari, Olivier Boudeville, Francesco Cesarini, Maurizio Di Stefano, Sverker Eriksson, Viktória Fördós, Amir Ghaffari, Aggelos Giantsios, Rickard Green, Csaba Hoch, David Klaftenegger, Huiqing Li, Kenneth Lundin, Kenneth MacKenzie, Katerina Roukounaki, Yiannis Tsiouris, Kjell Winblad
ACM Trans. Program. Lang. Syst.22
2017 Evaluating Scalable Distributed Erlang for Scalability and Reliability
abstract
Large scale servers with hundreds of hosts and tens of thousands of cores are becoming common. To exploit these platforms software must be both scalable and reliable, and distributed actor languages like Erlang are a proven technology in this area. While distributed Erlang conceptually supports the engineering of large scale reliable systems, in practice it has some scalability limits that force developers to depart from the standard language mechanisms at scale. In earlier work we have explored these scalability limitations, and addressed them by providing a Scalable Distributed (SD) Erlang library that partitions the network of Erlang Virtual Machines (VMs) into scalable groups (s_groups). This paper presents the first systematic evaluation of SD Erlang s_groups and associated tools, and how they can be used. We present a comprehensive evaluation of the scalability and reliability of SD Erlang using three typical benchmarks and a case study. We demonstrate that s_groups improve the scalability of reliable and unreliable Erlang applications on up to 256 hosts (6,144 cores). We show that SD Erlang preserves the class-leading distributed Erlang reliability model, but scales far better than the standard model. We present a novel, systematic, and tool-supported approach for refactoring distributed Erlang applications into SD Erlang. We outline the new and improved monitoring, debugging and deployment tools for large scale SD Erlang applications. We demonstrate the scaling characteristics of key tools on systems comprising up to 10 K Erlang VMs.
Natalia Chechina, Kenneth MacKenzie, Simon J. Thompson, Philip W. Trinder, Olivier Boudeville, Viktória Fördós, Csaba Hoch, Amir Ghaffari, Mario Moro Hernandez
IEEE Trans. Parallel Distributed Syst.2
2016 RPL: A Domain-Specific Language for Designing and Implementing Parallel C++ Applications
abstract
Parallelising sequential applications is usually a very hard job, due to many different ways in which an application can be parallelised and a large number of programming models (each with its own advantages and disadvantages) that can be used. In this paper, we describe a method to semi-automatically generate and evaluate different parallelisations of the same application, allowing programmers to find the best parallelisation without significant manual reengineering of the code. We describe a novel, high-level domain-specific language, Refactoring Pattern Language (RPL), that is used to represent the parallel structure of an application and to capture its extra-functional properties (such as service time). We then describe a set of RPL rewrite rules that can be used to generate alternative, but semantically equivalent, parallel structures (parallelisations) of the same application. We also describe the RPL Shell that can be used to evaluate these parallelisations, in terms of the desired extra-functional properties. Finally, we describe a set of C++ refactorings, targeting OpenMP, Intel TBB and FastFlow parallel programming models, that semi-automatically apply the desired parallelisation to the application's source code, therefore giving a parallel version of the code. We demonstrate how the RPL and the refactoring rules can be used to derive efficient parallelisations of two realistic C++ use cases (Image Convolution and Ant Colony Optimisation).
Vladimir Janjic, Christopher Brown 0002, Kenneth MacKenzie, Kevin Hammond, Marco Danelutto, Marco Aldinucci, José Daniel García
PDP3