Network


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

Hotspot


Dive into the research topics where Peter H. Welch is active.

Publication


Featured researches published by Peter H. Welch.


parallel and distributed processing techniques and applications | 2004

Communicating mobile processes

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.


international conference on computational science | 2002

Process Oriented Design for Java: Concurrency for All

Peter H. Welch

Concurrency is thought to be an advanced topic - much harder than serial computing which, therefore, needs to be mastered first. This seminar contends that this tradition is wrong, which has radical implications for the way we educate people in Computer Science - and on how we apply what we have learnt.A process-oriented design pattern for concurrency is presented with a specific binding for Java. It is based on the algebra of Communicating Sequential Processes (CSP) as captured by the JCSP library of Java classes. No mathematical sophistication is needed to master it. The user gets the benefit of the sophistication underlying CSP simply by using it.Those benefits include the simplification wins we always thought concurrency should generate. Although the Java binding is new, fifteen years of working with students at Kent have shown that the ideas within process-oriented design can be quickly absorbed and applied. Getting the ideas across as soon as possible pays dividends - the later its left, the more difficult it becomes to wean people off serial ways of thought that often fit applications so badly. Concurrency for all (and for everyday use) in the design and implementation of complex, maintainable and scalable computer systems is both achievable and necessary.


International Journal of Parallel, Emergent and Distributed Systems | 2005

Journeys in non-classical computation I: A grand challenge for computing research

Susan Stepney; Samuel L. Braunstein; John A. Clark; Andy M. Tyrrell; Andrew Adamatzky; Robert E. Smith; Tom Addis; Colin G. Johnson; Jonathan Timmis; Peter H. Welch; Robin Milner; Derek Partridge

1. The challengeA gateway event [35] is a change to a system that leads to the possibility of huge increases inkinds and levels of complexity. It opens up a whole new kind of phase space to the system’sdynamics.Gatewayeventsduringevolutionoflifeonearthincludetheappearanceofeukaryotes(organisms with a cell nucleus), an oxygen atmosphere, multi-cellular organisms and grass.Gatewayeventsduringthedevelopmentofmathematicsincludeeachinventionofanewclassofnumbers (negative, irrational, imaginary, ...), and dropping Euclid’s parallel postulate.A gateway event produces a profound and fundamental change to the system: Oncethrough the gateway, life is never the same again. We are currently poised on the threshold ofa significant gateway event in computation: That of breaking free from many of our current“classical computational” assumptions. Our Grand Challenge for computer science isto journey through the gateway event obtained by breaking our current classicalcomputational assumptions, and thereby develop a mature science of Non-ClassicalComputation2. Journeys versus goals


international conference on computational science | 2002

CSP Networking for Java (JCSP.net)

Peter H. Welch; Jo R. Aldous; Jon Foster

JCSP is a library of Java packages providing an extended version of the CSP/occam model for Communicating Processes. The current (1.0) release supports concurrency within a single Java Virtual Machine (which may be multi-processor). This paper presents recent work on extended facilities for the dynamic construction of CSP networks across distributed environments (such as the Internet). Details of the underlying network fabric and control (such as machine addresses, socket connections, local multiplexing and demultiplexing of application channels, acknowledgement packets to preserve synchronisation semantics) are hidden from the JCSP programmer, who works entirely at the application level and CSP primitives. A simple brokerage service - based on channel names - is provided to let distributed JCSP components find and connect to each other. Distributed JCSP networks may securely evolve, as components join and leave at run-time with no centralised or preplanned control. Higher level brokers, providing user-defined matching services, are easy to bootstrap on top of the basic Channel Name Server (CNS) - using standard JCSP processes and networking. These may impose user-defined control over the structure of network being built. JCSP network channels may be configured for the automatic loading of class files for received objects whose classes are not available locally (this uses the network channel from which they were received - the sender must have them). Also provided are connection channels (for extended bi-directional transactions between clients and servers) and anonymous channels (to set up communications without using any central registry - such as the given CNS). The aims of JCSP.net are to simplify the construction and programming of dynamically distributed and parallel systems. It provides high-level support for CSP architectures, unifying concurrency logic within and between processors. Applications cover all areas of concurrent computing - including e-commerce, agent technology, home networks, embedded systems, high-performance clusters and The Grid.


International Journal of Parallel, Emergent and Distributed Systems | 2006

Journeys in non-classical computation II: initial journeys and waypoints

Susan Stepney; Samuel L. Braunstein; John A. Clark; Andy M. Tyrrell; Andrew Adamatzky; Robert E. Smith; Thomas R. Addis; Colin G. Johnson; Jonathan Timmis; Peter H. Welch; Robin Milner; Derek Partridge

†University of York, Heslington, York YO1 5DD, UK‡University of the West of England, Frenchay Campus, Coldharbourlane, Bristol BS16 1QY, UK{University of Portsmouth, Buckingham Building, Lion Terrace, Portsmouth PO1 3WE, UK§University of Kent, Canterbury, Kent CT2 7NZ, UKkUniversity of Cambridge, Madingley Road, Cambridge CB3 OHE, UK#University of Exeter, North Cote House, The Queen’s Drive, Exeter E4 4QJ, UK


IEE Proceedings - Software | 2003

Prioritised dynamic communicating and mobile processes

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.


european conference on artificial life | 2005

An architecture for modelling emergence in CA-Like systems

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.


international conference on parallel architectures and languages europe | 1987

Emulating Digital Logic using Transputer Networks (very High Parallelism = Simplicity = Performance)

Peter H. Welch

Modern VLSI technology has changed the economic rules by which the balance between processing power, memory and communications is decided in computing systems. This will have a profound impact on the design rules for the controlling software. In particular, the criteria for judging efficiency of the algorithms will be somewhat different. This paper explores some of these implications through the development of highly parallel and highly distributable algorithms based on occam and Transputer networks. The major results reported are a new simplicity for software designs, a corresponding ability to reason (formally and informally) about their properties, the reusability of their components and some real performance figures which demonstrate their practicality. Some guidelines to assist in these designs are also given. As a vehicle for discussion, an interactive simulator is developed for checking the functional and timing characteristics of digital logic circuits of arbitrary complexity.


hypercube concurrent computers and applications | 1988

An OCCAM approach to transputer engineering

Peter H. Welch

Harnessing the potential processing power of MIMD networks requires the development of a fluency in parallel systems design equal to our traditional skills for sequential logic. Occam (TM) is a simple, small but powerful language which enables such fluency. The model of parallelism provided by occam is a central (not “added on”) feature and is directly supported by the INMOS transputer (TM). This model reflects major software engineering features such as abstraction, structuring, and information hiding and has important benefits for the life-cycle development costs of large systems (not least through the establishment of libraries of reusable software/hardware components). This paper introduces such engineering with the emphasis upon finely-grained highly-parallel designs. Some examples will be taken from the area of high-performance fault-tolerant real-time embedded systems. Occam is one of those rare languages that obeys (and was designed to obey) a rich set of mathematical laws (concerning sequential, parallel, and non-deterministic logic). This allows clear (and formal) reasoning. The combination of the security and simplicity of occam with the performance and simplicity of the transputer is worthy of proper investigation.


ACM Transactions on Programming Languages and Systems | 2010

Santa Claus: Formal analysis of a process-oriented solution

Peter H. Welch; Jan Bækgaard Pedersen

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 Hoares 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.

Collaboration


Dive into the Peter H. Welch'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

Kevin Chalmers

Edinburgh Napier University

View shared research outputs
Researchain Logo
Decentralizing Knowledge