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

Peter H. Welch

dblp:w/PeterHWelch · DBLP profile ↗
← Back
16ranked-venue papers
9as first author
0since 2021 · last 2018
0000-0003-1641-4876ORCID · verified

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

Systems, architecture and hardware · 6 · 2 first-authorArtificial intelligence and machine learning · 5 · 3 first-authorSoftware engineering, systems software and programming languages · 3 · 3 first-authorGraphics, computer vision, multimedia, augmented reality and games · 2 · 2 first-authorTheory 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.

Software engineering, system software, and programming languages
1 paper
Concurrent programming · 56% Program verification · 44%

Topics — the 2 heaviest of 3, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Concurrent programming › concurrency theory › process calculi
communicating sequential processes
0.112010
Santa Claus: Formal analysis of a process-oriented solution · ACM Trans. Program. Lang. Syst. 2010
Program verification
model checking
0.112010
Santa Claus: Formal analysis of a process-oriented solution · ACM Trans. Program. Lang. Syst. 2010

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

formal reasoning · 0.1FDR model checker · 0.1CSP · 0.1
YearPublicationVenuePosition
2018 The symbiosis of concurrency and verification: teaching and case studies
abstract
Abstract Concurrency is beginning to be accepted as a core knowledge area in the undergraduate CS curriculum—no longer isolated, for example, as a support mechanism in a module on operating systems or reserved as anadvanceddiscipline for later study. Formal verification of system properties is often considered adifficultsubject area, requiring significant mathematical knowledge and generally restricted to smaller systems employing sequential logic only. This paper presents materials, methods and experiences of teaching concurrency and verification as a unified subject, as early as possible in the curriculum, so that they becomefundamentalelements of our software engineering tool kit—to be used together every day as a matter of course. Concurrency and verification should live in symbiosis. Verification is essential for concurrent systems as testing becomes especially inadequate in the face of complex non-deterministic (and, therefore, hard to repeat) behaviours. Concurrency shouldsimplifythe expression of most scales and forms of computer system by reflecting the concurrency of the worlds in which they operate (and, therefore, have to model); simplified expression leads to simplified reasoning and, hence, verification. Our approach lets these skills be developed without requiring students to be trained in the underlying formal mathematics. Instead, we build on the work of those who have engineered that necessary mathematics into the concurrency models we use (CSP, π -calculus), the model checker (FDR) that lets us explore and verify those systems, and the programming languages/libraries (occam- π , Go, JCSP, ProcessJ) that let us design and build efficient executable systems within these models. This paper introduces a workflow methodology for the development and verification of concurrent systems; it also presents and reflects on two open-ended case studies, using this workflow, developed at the authors’ two universities. Concerns analysed include safety(don’t do bad things), liveness(do good things)and low probability deadlock(that testing fails to discover). The necessary technical background is given to make this paper self-contained and its work simple to reproduce and extend.
Jan Pedersen 0001, Peter H. Welch
Formal Aspects Comput.2
2012 To boldly go: an occam-π mission to engineer emergence
Peter H. Welch, Kurt C. Wallnau, Adam T. Sampson, Mark Klein 0003
Nat. Comput.1
2010 A process-oriented architecture for complex system modelling
abstract
Abstract A fine‐grained massively parallel and process‐oriented architecture for the modelling of complex systems is presented. We propose that the concurrency in the model simplifies its design and construction by directly reflecting the processes in the natural world. The architecture is based on CSP, extended with mechanisms for process mobility from the pi‐calculus; implementations are presented using the occam‐pi language. A case study, modelling platelets (possibly artificial) within a blood vessel, is described. The aim for this model is to engineer emergent behaviour: the clotting of platelets in response to a wound in the blood vessel wall and the staunching of blood loss. A three‐dimensional model is constructed, along with mechanisms for visualization and interaction. Its expressiveness and efficiency relies strongly on the dynamic and mobile capabilities of occam‐pi. General principles for the design of large and complex system models are drawn. The described case study runs to millions of processes engaged in ever‐changing communication topologies. It is free from deadlock, livelock, race hazards and starvation by design, employing a small set of synchronization patterns for which we have proven safety theorems. Compiled occam‐π codes automatically and efficiently exploit all cores in a shared‐memory multiprocessor system. They are also straightforward to distribute over standard cluster architectures. Copyright © 2007 CG Ritson & PH Welch.
Carl G. Ritson, Peter H. Welch
Concurr. Comput. Pract. Exp.2
2010 Alting barriers: synchronisation with choice in Java using JCSP
abstract
Abstract Communicating Sequential Processes for Java (JCSP) is a mature library that implements CSP‐derived concurrency primitives in Java. A JCSP system is a hierarchical network of autonomous processes communicating over synchronous (optionally buffered) channels, and multiway synchronising through barriers. This paper presents a significant extension to the barrier mechanism: the fast resolution of choice between any number of barrier events, channel communications (in either direction) and timeouts. Previously, and in line with all currently released libraries and languages offering the CSP concurrency model, choice was restricted to channel inputs and timeouts. The paper demonstrates an application of alting barriers and explains the mechanisms used in their implementation that enables their use as guards in a choice. It also shows how choice over channel outputs becomes possible, as a simple consequence of having choice over barriers. Finally, an efficient implementation of CSP's broadcasting channels is presented (using a phased barrier synchronisation pattern) and a mechanism for allowing choice over these is discussed. With this extended JCSP, almost all CSP‐specified systems can now be directly implemented. The new library is available under LGPL open source. Copyright © 2010 PH Welch, NCC Brown, J Moores, KV Chalmers & B Sputh.
Peter H. Welch, Neil Brown 0001, James Moores, Kevin Chalmers, Bernhard H. C. Sputh
Concurr. Comput. Pract. Exp.1
2010 Santa Claus: Formal analysis of a process-oriented solution
abstract
With the commercial development of multicore processors, the challenges of writing multithreaded programs to take advantage of these new hardware architectures are becoming more and more pertinent. Concurrent programming is necessary to achieve the performance that the hardware offers. Traditional approaches present concurrency as an advanced topic: they have proven difficult to use, reason about with confidence, and scale up to high levels of concurrency. This article reviews process-oriented design , based on Hoare's algebra of Communicating Sequential Processes (CSP), and proposes that this approach to concurrency leads to solutions that are manageable by novice programmers; that is, they are easy to design and maintain, that they are scalable for complexity, obviously correct , and relatively easy to verify using formal reasoning and/or model checkers. These solutions can be developed in conventional programming languages (through CSP libraries) or specialized ones (such as occam-π) in a manner that directly reflects their formal expression. Systems can be developed without needing specialist knowledge of the CSP formalism, since the supporting mathematics is burnt into the tools and languages supporting it. We illustrate these concepts with the Santa Claus problem , which has been used as a challenge for concurrency mechanisms since 1994. We consider this problem as an example control system, producing external signals reporting changes of internal state (that model the external world). We claim our occam-π solution is correct-by-design , but follow this up with formal verification (using the FDR model checker for CSP) that the system is free from deadlock and livelock, that the produced control signals obey crucial ordering constraints, and that the system has key liveness properties.
Peter H. Welch, Jan Pedersen 0001
ACM Trans. Program. Lang. Syst.1
2009 Mobile processes, mobile channels and complex dynamic systems
abstract
This paper explores a process-oriented approach to complex systems design, using massive fine-grained concurrency, mobile channels and mobile processes. The complex systems studied are self-organising, with emergent and evolving behaviours (apparent at the global level) arising from massive interactions between relatively simple components (that have only local knowledge). Classical ant foraging is used as a case study. Processes are used to represent space, environmental factors and the ants themselves. Ant processes (like all processes) only have knowledge of their internal state (looking for food, looking for their nest) and what they can glean from their local neighbourhood (by interacting with the processes making up that neighbourhood). The networks constructed are dynamic, changing as the ants move around and environmental factors are introduced and modified. The paper reports on two mechanisms for achieving this: channel mobility and process mobility. The language for implementation is occam-pi, which has the necessary concurrency mechanisms built in as fundamental primitives and whose semantics is rooted in the process algebras of CSP and the pi-calculus. Performance figures are given, including speedup curves for multicores, and some conclusions drawn.
Eric Bonnici, Peter H. Welch
IEEE Congress on Evolutionary Computation2
2008 Investigating Patterns for the Process-Oriented Modelling and Simulation of Space in Complex Systems
Paul S. Andrews, Adam T. Sampson, John Markus Bjørndalen, Susan Stepney, Jonathan Timmis, Douglas N. Warren, Peter H. Welch
ALIFE7
2006 Topic 9: Parallel Programming: Models, Methods and Languages
José C. Cunha, Sergei Gorlatch, Daniel J. Quinlan, Peter H. Welch
Euro-Par4
2006 Communicating Complex Systems
Peter H. Welch, Fred R. M. Barnes, Fiona A. C. Polack
ICECCS1
2004 Through the Concurrency Gateway: a Challenge from the Near Future of Graphics Hardware
Peter H. Welch
EGPGV1
2003 Topic Introduction
José C. Cunha, Marco Danelutto, Peter H. Welch
Euro-Par4
1996 Transputer data-flow solution for systems of linear equations
abstract
The authors present data-flow solutions on a pipeline of transputers for banded and dense systems of linear equations using Gauss elimination and the Gauss-Jordan method, respectively. These implementations, written in occam, are especially effective when there is a continuous supply of right-hand sides to be solved with the same coefficient matrix. Attention is paid to both load balancing and resource handling within the processor elements of the pipeline. When solving multiple right-hand sides, floating-point efficiency levels on 32-processor implementations range from 110% (for dense systems) down to 90% (for banded systems), where 100% represents the peak performance attainable from a single transputer applied to the same problem (effectively back-to-back floating-point operations on data in external memory). Some conclusions are drawn on efficiency issues arising from state-of-the-art massively parallel supercomputers.
Tim R. Hopkins, Peter H. Welch
Concurr. Pract. Exp.2
1993 Image tracking in real-time: a transputer emulation of some early mammalian vision processes
Peter H. Welch, David C. Wood
Image Vis. Comput.1
1992 Image Tracking in Real-time: A Transputer Emulation of Some Early Mammalian Vision Processes
Peter H. Welch, David C. Wood
BMVC1
1989 Emulating digital logic using transputer networks (very high parallelism=simplicity=performance)
Peter H. Welch
Parallel Comput.1
1983 Parallel Assignment Revisited
abstract
Abstract The concept of truly parallel assignment is retrieved from obscurity. It is shown to be a natural technique for the expression of iterative algorithms that saves the programmer from being concerned with some ‘low‐level’ details imposed by the von Neumann machine. With their use, algorithms should be simpler to write, clearer to understand and contain fewer errors. The concept of history as a means for achieving the same purpose is criticized on the grounds of the new side‐effects that it introduces. An implementation method for truly parallel assignment on a conventional computer is described.
Peter H. Welch
Softw. Pract. Exp.1