Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Adam T. Sampson is active.

Publication


Featured researches published by Adam T. Sampson.


Science of Computer Programming | 2012

Multicore scheduling for lightweight communicating processes

Carl G. Ritson; Adam T. Sampson; Frederick R.M. Barnes

Process-oriented programming is a design methodology in which software applications are constructed from communicating concurrent processes. A typical process-oriented design involves the composition of a large number of small isolated component processes. These concurrent components allow for the scalable parallel execution of the resulting application on both shared-memory and distributed-memory architectures. In this paper we present a runtime designed to support process-oriented programming by providing lightweight processes and communication primitives. The runtimes scheduler, implemented using lock-free algorithms, automatically executes concurrent components in parallel on multicore systems. Heuristics dynamically group processes into cache-affine work units based on communication patterns. Work units are then distributed via wait-free work-stealing. Initial performance analysis shows that, using the algorithms presented in this paper, process-oriented software can execute with an efficiency approaching that of optimised sequential and coarse-grain threaded designs.


international conference on coordination models and languages | 2009

Multicore Scheduling for Lightweight Communicating Processes

Carl G. Ritson; Adam T. Sampson; Frederick R.M. Barnes

Process-oriented programming is a design methodology in which software applications are constructed from communicating concurrent processes. A process-oriented design is typically composed of a large number of small isolated concurrent components. These components allow for the scalable parallel execution of the resulting application on both shared-memory and distributed-memory architectures. In this paper we present a runtime designed to support process-oriented programming by providing lightweight processes and communication primitives. Our runtime scheduler, implemented using lock-free algorithms, automatically executes concurrent components in parallel on multicore systems. Run-time heuristics dynamically group processes into cache-affine work units based on communication patterns. Work units are then distributed via wait-free work-stealing. Initial performance analysis shows that, using the algorithms presented in this paper, process-oriented software can execute with an efficiency approaching that of optimised sequential and coarse-grain threaded designs.


congress on evolutionary computation | 2009

The engineering of concurrent simulations of complex systems

Fiona Polack; Paul S. Andrews; Adam T. Sampson

Concurrent process-oriented programming is a natural medium for simulating complex systems, particularly systems where many simple components interact in an environment (which may itself be complex). There is little guidance for engineering complex systems simulation. In the context of simulation work to support immunological research, we explore relevant approaches to modelling, and draw on concepts from dependable and high-integrity systems engineering, including the emphasis on the need to validate all aspects of the simulation.


Current Drug Targets | 2012

Engineering simulations for cancer systems biology

James L. Bown; Paul S. Andrews; Yusuf Y. Deeni; Alexey Goltsov; Michael A. Idowu; Fiona Polack; Adam T. Sampson; Mark Shovman; Susan Stepney

Computer simulation can be used to inform in vivo and in vitro experimentation, enabling rapid, low-cost hypothesis generation and directing experimental design in order to test those hypotheses. In this way, in silico models become a scientific instrument for investigation, and so should be developed to high standards, be carefully calibrated and their findings presented in such that they may be reproduced. Here, we outline a framework that supports developing simulations as scientific instruments, and we select cancer systems biology as an exemplar domain, with a particular focus on cellular signalling models. We consider the challenges of lack of data, incomplete knowledge and modelling in the context of a rapidly changing knowledge base. Our framework comprises a process to clearly separate scientific and engineering concerns in model and simulation development, and an argumentation approach to documenting models for rigorous way of recording assumptions and knowledge gaps. We propose interactive, dynamic visualisation tools to enable the biological community to interact with cellular signalling models directly for experimental design. There is a mismatch in scale between these cellular models and tissue structures that are affected by tumours, and bridging this gap requires substantial computational resource. We present concurrent programming as a technology to link scales without losing important details through model simplification. We discuss the value of combining this technology, interactive visualisation, argumentation and model separation to support development of multi-scale models that represent biologically plausible cells arranged in biologically plausible structures that model cell behaviour, interactions and response to therapeutic interventions.


congress on evolutionary computation | 2009

Birds on the wall: Distributing a process-oriented simulation

Adam T. Sampson; John Markus Bjørndalen; Paul S. Andrews

The CoSMoS project aims to develop reusable tools and techniques for complex systems modelling and simulation. Using process-oriented software design techniques, we have built a concurrent model of continuous space, usable in a variety of complex systems simulations. In this paper, we describe how we refactored our space model to allow our simulations to run in an efficient and highly-scalable manner across clusters of commodity machines-and, in particular, to support distributed simulation and visualisation on the Tromsø Display Wall.


symposium/workshop on haskell | 2009

Alloy: fast generic transformations for Haskell

Neil C.C. Brown; Adam T. Sampson

Data-type generic programming can be used to traverse and manipulate specific parts of large heterogeneously-typed tree structures, without the need for tedious boilerplate. Generic programming is often approached from a theoretical perspective, where the emphasis lies on the power of the representation rather than on efficiency. We describe use cases for a generic system derived from our work on a nanopass compiler, where efficiency is a real concern, and detail a new generics approach (Alloy) that we have developed in Haskell to allow our compiler passes to traverse the abstract syntax tree quickly. We benchmark our approach against several other Haskell generics approaches and statistically analyse the results, finding that Alloy is fastest on heterogeneously-typed trees.


Natural Computing | 2012

To boldly go: an occam-π mission to engineer emergence

Peter H. Welch; Kurt C. Wallnau; Adam T. Sampson; Mark H. Klein

Future systems will be too complex to design and implement explicitly. Instead, we will have to learn to engineer complex behaviours indirectly: through the discovery and application of local rules of behaviour, applied to simple process components, from which desired behaviours predictably emerge through dynamic interactions between massive numbers of instances. This paper describes a process-oriented architecture for fine-grained concurrent systems that enables experiments with such indirect engineering. Examples are presented showing the differing complex behaviours that can arise from minor (non-linear) adjustments to low-level parameters, the difficulties in suppressing the emergence of unwanted (bad) behaviour, the unexpected relationships between apparently unrelated physical phenomena (shown up by their separate emergence from the same primordial process swamp) and the ability to explore and engineer completely new physics (such as force fields) by their emergence from low-level process interactions whose mechanisms can only be imagined, but not built, at the current time.


Proceedings of the First International Conference on Intelligent Interactive Technologies and Multimedia | 2010

Information visualization and the arts-science-social science interface

James L. Bown; Kenneth Fee; Adam T. Sampson; Mark Shovman; Ruth E. Falconer; Alexey Goltsov; John P. Issacs; Paul Robertson; Kenneth C. Scott-Brown; Andrea Szymkowiak

In a world of ever-increasing and newly discovered complexities, and rapidly expanding data sets describing man-made and natural phenomena, information visualization offers a means of structuring and enabling interpretation of these data in the context of that complexity. Advances in graphics hardware, art asset pipelines and parallelized computational platforms offer unprecedented potential. However, harnessing this potential to good effect is challenging and requires the integration of skills from the arts and social sciences to support scientific endeavor in the physical and life sciences. Here, we consider those skills and describe four case studies that highlight interoperation among disciplines at this arts-science-social science interface.


Digital Investigation | 2018

OpenForensics: a digital forensics GPU pattern matching approach for the 21st century

Ethan Bayne; Robert Ian Ferguson; Adam T. Sampson

Abstract Pattern matching is a crucial component employed in many digital forensic (DF) analysis techniques, such as file-carving. The capacity of storage available on modern consumer devices has increased substantially in the past century, making pattern matching approaches of current generation DF tools increasingly ineffective in performing timely analyses on data seized in a DF investigation. As pattern matching is a trivally parallelisable problem, general purpose programming on graphic processing units (GPGPU) is a natural fit for this problem. This paper presents a pattern matching framework – OpenForensics – that demonstrates substantial performance improvements from the use of modern parallelisable algorithms and graphic processing units (GPUs) to search for patterns within forensic images and local storage devices.


Proceedings of the 9th Workshop on Parallel/High-Performance Object-Oriented Scientific Computing | 2010

The best of most worlds: shared objects for multilingual simulation

Adam T. Sampson; Paul S. Andrews

Computing techniques are increasingly being used in scientific research to tackle a diverse set of problems. An example is complex systems research, which focuses on the use of computer simulations to explore, understand and describe the real-world system under study. These simulations are often sophisticated pieces of software with numerous design trade-offs between performance and ease of development and use. We propose a simulation framework for complex systems simulation that allows each component of a simulation---for example visualisation, or data analysis---to be developed in the most appropriate language. The framework uses the concept of shared objects to communicate data between simulation components. We present here a detailed motivation for multilingual simulations, an outline design and prototype for the simulation framework, and discuss future plans for the framework.

Collaboration


Dive into the Adam T. Sampson's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge