Frederick R.M. Barnes
University of Kent
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Frederick R.M. Barnes.
parallel and distributed processing techniques and applications | 2004
Peter H. Welch; Frederick R.M. Barnes
This paper introduces occam-it, an efficient and safe binding of key elements from Hoares CSP and Milners π-calculus into a programming language of industrial strength. A brief overview of classical occam is presented, before focussing on the extensions providing data, channel and process mobility. Some implementation details are given, along with current benchmark results. Application techniques exploiting mobile processes for the direct modelling of large-scale natural systems are outlined, including the modelling of locality (so that free-ranging processes can locate each other). Run-time overheads are sufficiently low so that systems comprising millions of dynamically assembling and communicating processes are practical on modest processor resources. The ideas and technology will scale further to address larger systems of arbitrary complexity, distributed over multiple processors with no semantic discontinuity. Semantic design, comprehension and analysis are made possible through a natural structuring of systems into multiple levels of network and the compositionality of the underlying algebra.
Science of Computer Programming | 2012
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.
IEE Proceedings - Software | 2003
Frederick R.M. Barnes; Peter H. Welch
Continuing research on language design, compilation and kernel support for highly dynamic concurrent reactive systems is reported. The work extends the occam multiprocessing language, which is both sufficiently small to allow for easy experimentation and sufficiently powerful to yield results that are directly applicable to a wide range of industrial and commercial practice. Classical occam was designed for embedded systems and enforced a number of constraints, such as statically predetermined memory allocation and concurrency limits, that were relevant to that generation of application and hardware technology. This work removes most of these constraints and introduces a number of new facilities: explicit channel ends, channel bundles, mobile ends of channels and bundles, dynamic process creation, the extended rendezvous and process priorities. These significantly broaden occams field of application and raise the level of concurrent system design directly supported. Concurrency overheads have been driven ever downwards, for example synchronising channel communication is now around 100 nanoseconds on an 800 MHz P3, and most operations have unit time cost. Finally, a proposal for secure mobile processes is made.
international conference on coordination models and languages | 2009
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.
european conference on artificial life | 2005
Fiona Polack; Susan Stepney; Heather Turner; Peter H. Welch; Frederick R.M. Barnes
We consider models of emergence, adding downward causation to conventional models where causation permeates from low-level elements to high-level behaviour. We describe an architecture and prototype simulation medium for tagging and modelling emergent features in CA-like systems. This is part of ongoing work on engineering emergence.
Journal of Biomedical Optics | 2015
Adrian Bradu; Konstantin Kapinchev; Frederick R.M. Barnes; Adrian Gh. Podoleanu
Abstract. In a previous report, we demonstrated master-slave optical coherence tomography (MS-OCT), an OCT method that does not need resampling of data and can be used to deliver en face images from several depths simultaneously. In a separate report, we have also demonstrated MS-OCT’s capability of producing cross-sectional images of a quality similar to those provided by the traditional Fourier domain (FD) OCT technique, but at a much slower rate. Here, we demonstrate that by taking advantage of the parallel processing capabilities offered by the MS-OCT method, cross-sectional OCT images of the human retina can be produced in real time. We analyze the conditions that ensure a true real-time B-scan imaging operation and demonstrate in vivo real-time images from human fovea and the optic nerve, with resolution and sensitivity comparable to those produced using the traditional FD-based method, however, without the need of data resampling.
Biomedical Optics Express | 2015
Adrian Bradu; Konstantin Kapinchev; Frederick R.M. Barnes; Adrian Gh. Podoleanu
Master Slave optical coherence tomography (MS-OCT) is an OCT method that does not require resampling of data and can be used to deliver en-face images from several depths simultaneously. As the MS-OCT method requires important computational resources, the number of multiple depth en-face images that can be produced in real-time is limited. Here, we demonstrate progress in taking advantage of the parallel processing feature of the MS-OCT technology. Harnessing the capabilities of graphics processing units (GPU)s, information from 384 depth positions is acquired in one raster with real time display of up to 40 en-face OCT images. These exhibit comparable resolution and sensitivity to the images produced using the conventional Fourier domain based method. The GPU facilitates versatile real time selection of parameters, such as the depth positions of the 40 images out of the set of 384 depth locations, as well as their axial resolution. In each updated displayed frame, in parallel with the 40 en-face OCT images, a scanning laser ophthalmoscopy (SLO) lookalike image is presented together with two B-scan OCT images oriented along rectangular directions. The thickness of the SLO lookalike image is dynamically determined by the choice of number of en-face OCT images displayed in the frame and the choice of differential axial distance between them.
IEEE Transactions on Nuclear Science | 2002
Frederick R.M. Barnes; Razvan Beuran; R.W. Dobinson; M.J. LeVine; B. Martin; J. Lokier; C. Meirosu
This paper reports recent work on ethernet traffic generation and analysis. We use gigabit ethernet network interface cards (NICs) running customized embedded software and custom-built 32-port fast ethernet boards based on field programmable gate arrays (FPGAs) to study the behavior of large ethernet networks. The traffic generation software is able to accommodate many traffic distributions with the ultimate goal of generating traffic that resembles the data collection system of the ATLAS experiment at CERN, Geneva, Switzerland. Each packet is time stamped with a global clock value and, therefore, we are able to compute an accurate measure of the network latency. Various other information collected from the boards is displayed in real time on a graphical interface. This work provides the tools to study a test bed representing a fraction of the 1600 ATLAS detector readout buffers and 600 Level 2 trigger central processing units (CPUs) using a combination of the fast ethernet boards and the gigabit ethernet NICs.
international conference on signal processing and communication systems | 2015
Konstantin Kapinchev; Adrian Bradu; Frederick R.M. Barnes; Adrian Gh. Podoleanu
This paper presents an approach for parallel implementation of cross-correlation using the graphics processing unit (GPU). Cross-correlation is a central digital signal processing (DSP) algorithm with applications in many areas. In many cases in real time systems, a sequential implementation of the cross-correlation creates a performance bottleneck and prevents the systems from reaching the real time criterion. On the other hand, a GPU-based parallel implementation of the cross-correlation offers a solution to this problem. The proposed parallel implementation is integrated in an optical coherence tomography (OCT) system. As a result, the OCT system is able to generate up to 40 en-face images from different depths from semitransparent objects in real time. This number of images provides the necessary information when OCT is used in areas such as ophthalmology, where detailed imagery of the retina, the optic nerve, and other parts of the eye is essential for accurate diagnosis.
programming languages and operating systems | 2009
Frederick R.M. Barnes; Carl G. Ritson
Process orientation is an approach to concurrency that uses concepts of processes and message-passing communication, with whole systems constructed from layered and dynamically evolving networks of communicating processes. The work described in this paper relates to the automatic model generation and verification of systems developed in process-oriented languages. We discuss some early applications of this technique to our experimental operating system, RMoX, as a means to giving a guarantee of correct system behaviour at a range of levels.