Christopher Brown 0002

dblp:83/5007-2 · also Christopher Mark Brown · DBLP profile ↗
← Back
12ranked-venue papers
4as first author
4since 2021 · last 2024
0000-0001-6030-2885ORCID · verified

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

Systems, architecture and hardware · 4 · 3 since 2021Software engineering, systems software and programming languages · 4 · 2 first-author · 2 since 2021Theory of computation · 3 · 1 first-author · 1 since 2021Artificial intelligence and machine learning · 1
YearPublicationVenuePosition
2024 Towards Specification-Guarded Refactoring
Adam D. Barwell, Christopher Brown 0002, Susmit Sarkar
LOPSTR2
2023 The TeamPlay Project: Analysing and Optimising Time, Energy, and Security for Cyber-Physical Systems
abstract
Non-functional properties, such as energy, time, and security (ETS) are becoming increasingly important in Cyber-Physical Systems (CPS) programming. This article describes TeamPlay, a research project funded under the EU Horizon 2020 programme between January 2018 and June 2021. TeamPlay aimed to provide the system designer with a toolchain for developing embedded applications where ETS properties are first-class citizens, allowing the developer to reflect directly on energy, time and security properties at the source code level. In this paper we give an overview of the TeamPlay methodology, introduce the challenges and solutions of our approach and summarise the results achieved. Overall, applying our TeamPlay methodology led to an improvement of up to 18% performance and 52% energy usage over traditional approaches.
Benjamin Rouxel, Christopher Brown 0002, Emad Samuel Malki Ebeid, Kerstin Eder, Heiko Falk, Clemens Grelck, Jesper Holst, Shashank Jadhav, Yoann Marquer, Marcos Martinez de Alejandro, Kris Nikov, Ali Sahafi, Ulrik Pagh Schultz Lundquist, Adam Seewald, Vangelis Vassalos, Simon Wegener, Olivier Zendra
DATE2
2022 COMPROF and COMPLACE: Shared-Memory Communication Profiling and Automated Thread Placement via Dynamic Binary Instrumentation
abstract
This paper presents COMPROF and COMPLACE, a novel profiling tool and thread placement technique for shared-memory architectures that requires no recompilation or user intervention. We use dynamic binary instrumentation to intercept memory operations and estimate inter-thread communication overhead, deriving (and possibly visualising) a communication graph of data-sharing between threads. We then use this graph to map threads to cores in order to optimise memory traffic through the memory system. Different paths through a system’s memory hierarchy have different latency, throughput and energy properties, COMPLACE exploits this heterogeneity to provide automatic performance and energy improvements for multithreaded programs. We demonstrate COMPLACE on the NAS Parallel Benchmark (NPB) suite where, using our technique, we are able to achieve improvements of up to 12% in the execution time and up to 10% in the energy consumption (compared to default Linux scheduling) while not requiring any modification or recompilation of the application code.
Ryan Kirkpatrick, Christopher Brown 0002, Vladimir Janjic
HIPC2
2021 Refactoring for introducing and tuning parallelism for heterogeneous multicore machines in Erlang
abstract
Summary This paper presents semi‐automatic software refactorings to introduce and tune structured parallelism in sequential Erlang code, as well as to generate code for running computations on GPUs and possibly other accelerators. Our refactorings are based on the lapedo framework for programming heterogeneous multi‐core systems in Erlang. lapedo is based on the PaRTE refactoring tool and also contains (1) a set of hybrid skeletons that target both CPU and GPU processors, (2) novel refactorings for introducing and tuning parallelism, and (3) a tool to generate the GPU offloading and scheduling code in Erlang, which is used as a component of hybrid skeletons. We demonstrate, on four realistic use‐case applications, that we are able to refactor sequential code and produce heterogeneous parallel versions that can achieve significant and scalable speedups of up to 220 over the original sequential Erlang program on a 24‐core machine with a GPU.
Vladimir Janjic, Christopher Brown 0002, Adam D. Barwell, Kevin Hammond
Concurr. Comput. Pract. Exp.2
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
PDP1
2019 Type-Driven Verification of Non-functional Properties
abstract
Energy, Time and Security (ETS) properties of programs are becoming increasingly prioritised by developers, especially where applications are running on ETS sensitive systems, such as embedded devices or the Internet of Things. Moreover, developers currently lack tools and language properties to allow them to reason about ETS. In this paper, we introduce a new contract specification framework, called Drive, which allows a developer to reason about ETS or other non-functional properties of their programs as first-class properties of the language. Furthermore, we introduce a contract specification language, allowing developers to reason about these first-class ETS properties by expressing contracts that are proved correct by an underlying formal type system. Finally, we show our contract framework over a number of representable examples, demonstrating provable worst-case ETS properties.
Christopher Brown 0002, Adam D. Barwell, Yoann Marquer, Céline Minh, Olivier Zendra
PPDP1
2018 Finding parallel functional pearls: Automatic parallel recursion scheme detection in Haskell functions via anti-unification
Adam D. Barwell, Christopher Brown 0002, Kevin Hammond
Future Gener. Comput. 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
PDP2
2014 Agricultural Reform: More Efficient Farming Using Advanced Parallel Refactoring Tools
abstract
Modern multicore systems offer huge computing potential. Exploiting large parallel systems is still a very challenging task, however, especially as many software developers still use overly-sequential programming models. refactoring tool support that allows the programmer to introduce and tune parallelism in an easy and effective way, exploiting high-level parallel patterns such as farms and pipelines. Using our approach, we achieve speedups of up to 21 on a 24-core shared-memory system for a number of realistic use-cases.
Christopher Brown 0002, Vladimir Janjic, Kevin Hammond, Holger Schöner, Kamran Idrees, Colin W. Glass
PDP1
2013 Mapping parallel programs to heterogeneous CPU/GPU architectures using a Monte Carlo Tree Search
abstract
The single core processor, which has dominated for over 30 years, is now obsolete with recent trends increasing towards parallel systems, demanding a huge shift in programming techniques and practices. Moreover, we are rapidly moving towards an age where almost all programming will be targeting parallel systems. Parallel hardware is rapidly evolving, with large heterogeneous systems, typically comprising a mixture of CPUs and GPUs, becoming the mainstream. Additionally, with this increasing heterogeneity comes increasing complexity: not only does the programmer have to worry about where and how to express the parallelism, they must also express an efficient mapping of resources to the available system. This generally requires in-depth expert knowledge that most application programmers do not have. In this paper we describe a new technique that derives, automatically, optimal mappings for an application onto a heterogeneous architecture, using a Monte Carlo Tree Search algorithm. Our technique exploits high-level design patterns, targeting a set of well-specified parallel skeletons. We demonstrate that our MCTS on a convolution example obtained speedups that are within 5% of the speedups achieved by a hand-tuned version of the same application.
Mehdi Goli 0001, John A. W. McCall, Christopher Brown 0002, Vladimir Janjic, Kevin Hammond
IEEE Congress on Evolutionary Computation3
2013 Easy composition of symbolic computation software using SCSCP: A new Lingua Franca for symbolic computation
Steve Linton, Kevin Hammond, Olexandr Konovalov, Christopher Brown 0002, Philip W. Trinder, Hans-Wolfgang Loidl, Peter Horn, Dan Roozemond
J. Symb. Comput.4
2010 Clone detection and elimination for Haskell
abstract
Duplicated code is a well known problem in software maintenance and refactoring. Code clones tend to increase program size and several studies have shown that duplicated code makes maintenance and code understanding more complex and time consuming.
Christopher Brown 0002, Simon J. Thompson
PEPM1