Network


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

Hotspot


Dive into the research topics where S. P. Johnson is active.

Publication


Featured researches published by S. P. Johnson.


parallel computing | 1996

Computer aided parallelisation tools (CAPTools)—conceptual overview and performance on the parallelisation of structured mesh codes

Cos S. Ierotheou; S. P. Johnson; M. Cross; P. F. Leggett

Computer Aided Parallelisation Tools (CAPTools) is a toolkit designed to automate as much as possible of the process of parallelising scalar FORTRAN 77 codes. The toolkit combines a very powerful dependence analysis together with user supplied knowledge to build an extremely comprehensive and accurate dependence graph. The initial version has been targeted at structured mesh computational mechanics codes (eg. heat transfer, Computational Fluid Dynamics (CFD)) and the associated simple mesh decomposition paradigm is utilised in the automatic code partition, execution control mask generation and communication call insertion. In this, the first of a series of papers [1–3] the authors discuss the parallelisations of a number of case study codes showing how the various component tools may be used to develop a highly efficient parallel implementation in a few hours or days. The details of the parallelisation of the TEAMKE1 CFD code are described together with the results of three other numerical codes. The resulting parallel implementations are then tested on workstation clusters using PVM and an i860-based parallel system showing efficiencies well over 80%.


parallel computing | 1996

Exploitation of symbolic information in interprocedural dependence analysis

S. P. Johnson; M. Cross; Martin G. Everett

The requirement for a very accurate dependence analysis to underpin software tools to aid the generation of efficient parallel implementations of scalar code is argued. The current status of dependence analysis is shown to be inadequate for the generation of efficient parallel code, causing too many conservative assumptions to be made. This paper summarises the limitations of conventional dependence analysis techniques, and then describes a series of extensions which enable the production of a much more accurate dependence graph. The extensions include analysis of symbolic variables, the development of a symbolic inequality disproof algorithm and its exploitation in a symbolic Banerjee inequality test; the use of inference engine proofs; the exploitation of exact dependence and dependence pre-domination attributes; interprocedural array analysis; conditional variable definition tracing; integer array tracing and division calculations. Analysis case studies on typical numerical code is shown to reduce the total dependencies estimated from conventional analysis by up to 50%. The techniques described in this paper have been embedded within a suite of tools, CAPTools, which combines analysis with user knowledge to produce efficient parallel implementations of numerical mesh based codes.


international workshop on parallel algorithms for irregularly structured problems | 1995

Partitioning & Mapping of Unstructured Meshes to Parallel Machine Topologies

Chris Walshaw; M. Cross; Martin G. Everett; S. P. Johnson; K. McManus

We give an overview of some strategies for mapping unstructured meshes onto processor grids. Sample results show that the mapping can make a considerable difference to the communication overhead in the parallel solution time, particularly as the number of processors increase.


parallel computing | 1996

Integrating user knowledge with information from parallelisation tools to facilitate the automatic generation of efficient parallel FORTRAN code

P. F. Leggett; A. T. J. Marsh; S. P. Johnson; M. Cross

User supplied knowledge and interaction is a vital component of a toolkit for producing high quality parallel implementations of scalar FORTRAN numerical code. In this paper we consider the necessary components that such a parallelisation toolkit should possess to provide an effective environment to identify, extract and embed user relevant user knowledge. We also examine to what extent these facilities are available in leading parallelisation tools; in particular we discuss how these issues have been addressed in the development of the user interface of the Computer Aided Parallelisation Tools (CAPTools). The CAPTools environment has been designed to enable user exploration, interaction and insertion of user knowledge to facilitate the automatic generation of very efficient parallel code. A key issue in the users interaction is control of the volume of information so that the user is focused on only that which is needed. User control over the level and extent of information revealed at any phase is supplied using a wide variety of filters. Another issue is the way in which information is communicated. Dependence analysis and its resulting graphs involve a lot of sophisticated rather abstract concepts unlikely to be familiar to most users of parallelising tools. As such, considerable effort has been made to communicate with the user in terms that they will understand. These features, amongst others, and their use in the parallelisation process are described and their effectiveness discussed.


parallel computing | 1996

Automatic parallel code generation for message passing on distributed memory systems

S. P. Johnson; Cos S. Ierotheou; M. Cross

The availability of a very accurate dependence graph for a scalar code is the basis for the automatic generation of an efficient parallel implementation. The strategy for this task which is encapsulated in a comprehensive data partitioning code generation algorithm is described. This algorithm involves the data partition, calculation of assignment ranges for partitioned arrays, addition of a comprehensive set of execution control masks, altering loop limits, addition and optimisation of communications for all data. In this context, the development and implementation of strategies to merge communications wherever possible has proved an important feature in producing efficient parallel implementations for numerical mesh based codes. The code generation strategies described here are embedded within the Computer Aided Parallelisation tools (CAPTools) software as a key part of a toolkit for automating as much as possible of the parallelisation process for mesh based numerical codes. The algorithms used enables parallelisation of real computational mechanics codes with only minor user interaction and without any prior manual customisation of the serial code to suit the parallelisation tool.


international workshop on openmp | 2004

The parawise expert assistant – widening accessibility to efficient and scalable tool generated OpenMP code

S. P. Johnson; Emyr Evans; Haoqiang Jin; Constantinos Ierotheou

Despite the apparent simplicity of the OpenMP directive shared memory programming model and the sophisticated dependence analysis and code generation capabilities of the ParaWise/CAPO tools, experience shows that a level of expertise is required to produce efficient parallel code. In a real world application the investigation of a single loop in a generated parallel code can soon become an in-depth inspection of numerous dependencies in many routines. The additional understanding of dependencies is also needed to effectively interpret the information provided and supply the required feedback. The ParaWise Expert Assistant has been developed to automate this investigation and present questions to the user about, and in the context of, their application code. In this paper, we demonstrate that knowledge of dependence information and OpenMP are no longer essential to produce efficient parallel code with the Expert Assistant. It is hoped that this will enable a far wider audience to use the tools and subsequently, exploit the benefits of large parallel systems.


parallel computing | 2000

Automatic and effective multi-dimensional parallelisation of structured mesh based codes

Emyr Evans; S. P. Johnson; P. F. Leggett; M. Cross

The most common parallelisation strategy for many Computational Mechanics (CM) (typified by Computational Fluid Dynamics (CFD) applications) which use structured meshes, involves a 1D partition based upon slabs of cells. However, many CFD codes employ pipeline operations in their solution procedure. For parallelised versions of such codes to scale well they must employ two (or more) dimensional partitions. This paper describes an algorithmic approach to the multi-dimensional mesh partitioning in code parallelisation, its implementation in a toolkit for almost automatically transforming scalar codes to parallel form, and its testing on a range of ‘real-world’ FORTRAN codes. The concept of multi-dimensional partitioning is straightforward, but non-trivial to represent as a sufficiently generic algorithm so that it can be embedded in a code transformation tool. The results of the tests on fine real-world codes demonstrate clear improvements in parallel performance and scalability (over a 1D partition). This is matched by a huge reduction in the time required to develop the parallel versions when hand coded – from weeks/months down to hours/days.


high performance distributed computing | 2002

Backtracking and re-execution in the automatic debugging of parallelized programs

Gregory Matthews; Robert Hood; S. P. Johnson; P. F. Leggett

In this work we describe a new approach using relative debugging to find differences in computation between a serial program and a parallel version of that program. We use a combination of re-execution and backtracking in order to find the first difference in computation that may ultimately lead to an incorrect value that the user has indicated. In our prototype implementation we use static analysis information from a parallelization tool in order to perform the backtracking as well as the mapping required between serial and parallel computations.


Parallel Computational Fluid Dynamics 1995#R##N#Implementations and Results Using Parallel Computers | 1996

Evaluation of the JOSTLE mesh partitioning code for practical multiphysics applications

K. McManus; Chris Walshaw; M. Cross; P. F. Leggett; S. P. Johnson

The use of unstructured mesh codes on parallel machines is one of the most effective ways to solve large computational mechanics problems. Completely general geometries and complex behaviour can be modelled and, in principle, the inherent sparsity of many such problems can be exploited to obtain excellent parallel efficiencies. However, unlike their structured counterparts, the problem of distributing the mesh across the memory of the machine, whilst minimising the amount of interprocessor communication, must be carefully addressed. This process is an overhead that is not incurred by a serial code, but is shown to rapidly computable at turn time and tailored for the machine being used.


Parallel Computational Fluid Dynamics 1997#R##N#Recent Developments and Advances Using Parallel Computers | 1998

Automatic generation of multi-dimensionally partitioned parallel CFD code in a parallelisation tool

Emyr Evans; S. P. Johnson; P. F. Leggett; M. Cross

The Computer Aided Parallelization Tools (CAPTools) are targeted at transforming scalar FORTRAN 77 code to a form suitable for parallel implementation with message passing calls. The nucleus of CAPTools is its powerful, symbolic, interprocedural, and value based dependence analysis. The need for user interaction is imperative to ensure that the dependence analysis obtained is as accurate as possible. The user interaction is extensive so that the user may examine the information provided by the system at any stage of the parallelization and provide additional information. The use of CAPTools to parallelize a computational fluid dynamics (CFD) code for multi-dimensional arrays of processors provides a good initial parallel code which can provide significant speed ups. As with one dimensional partitions, improved results are obtained by further minor optimization of the key sections of the parallel code. Techniques for automatically generating parallel code using a multi-dimensional data partition have been developed and implemented within the current parallelization framework of CAPTools. The vast majority of a typical CFD code parallelize and achieve efficient speed up without user optimization, thus allowing the users to focus their attention on the more interesting aspects of fine tuning the key (often implicit) algorithms of the code to maximize speed up.

Collaboration


Dive into the S. P. Johnson's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

K. McManus

University of Greenwich

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Emyr Evans

University of Greenwich

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge