Parallel Formal Computing Environment


Work Area: Parallel Computing and Architectures

Keywords parallel programming, parallelisation, abstract interpretation, program transformation, logic programming

Start Date: 24 July 92 / Duration: 36 months / Status: running

[ participants / contact ]

Abstract PARFORCE is aimed at constructing (and evaluating the use of) formal tools for the development of parallel programs and their efficient execution. To this end the emerging techniques for formal program analysis and manipulation are applied to central issues relating to parallel execution such as dependency and granularity analysis, partitioning, or memory management. Tools based on these techniques are built to aid in the formal development of parallel logic programs. These tools are then integrated with parallel execution platforms and their effectiveness assessed.


The aim of PARFORCE is to provide and evaluate formal tools for the development of parallel programs and their efficient execution. The first objective is to apply the emerging techniques for formal program analysis and manipulation to solve important problems relating to parallel execution such as dependency and granularity analysis, partitioning, or memory management. This is done by building tools for the formal development of parallel logic programs. The second objective is to integrate such tools with practical parallel execution platforms. The third objective is to provide an assessment of the effectiveness of the tools in such platforms.

Approach and Methods

The thesis of the project is that the complexity of developing parallel programs can be mastered with the aid of formal tools to support the process. The role of these tools must be to relieve the programmer from concerns relating to the low-level tactical issues, (such as dependency and granularity analysis, scheduling, and load balancing) and to provide support for the decisions relating to high-level strategic issues, eg algorithm development. To this end the project exploits the semantic foundations of logic programming (more generally declarative programming) that facilitate tractable formal program analysis, eg abstract interpretation, and manipulation, eg program transformation. Analysis and transformation tools are built using these ideas for several tasks, such as automatic parallelisation of sequential languages (ie automatic construction of dependency graphs and transformation into parallel programs), granularity analysis (where a parallelised program or an originally concurrent program is sequentialised in part to avoid overhead due to the scheduling of too fine grained tasks), and storage management optimisation. These tools are integrated into parallel platforms and their effectiveness assessed on such platforms. Finally, the project also includes a working group on parallel program development.

Progress and Results

Results so far in automatic parallelisation include progress in partitioning programs into independent processes and aggregating these processes to achieve appropiate grain size. New, more lax notions of dependency have been defined. The related analysis and transformation frameworks have been developed and implemented, resulting in a first set of integrated tools for dependency analysis, producer/consumer determination, granularity control, process graph shape modification, etc. which are expected to result in improved parallel program behavior.

In the context of analysis of concurrent programs current results include an analysis deriving definite and possible ordering information and a compilation technique which translates a program into threads. Also, a method for analyzing concurrent programs with deep guards has been implemented in such a language (AKL). The notion of "confluence" has been introduced showing that for the large class of confluent programs suspension analysis is efficient and accurate. A denotational semantics useful for compositional analysis has been proposed, and shown to be a correct approximation of the standard operational model.

In the context of parallel program development a declarative debugger for the G"odel programming language and a visualiser for a number or parallelism paradigms have been developed. Finally, common syntax and interfaces have been designed in order to allow interoperability and assessment of the tools.


The approach and aims of the project are of great strategic importance because the potential performance of parallel hardware cannot currently be realised because of the complexity of edeveloping parallel software. Thus the PARFORCE project is not just of scientific interest, it is also of major commercial importance. The presence of two industrial research centers, ECRC and SICS, illustrates the commercial importance attributed to the work and provides the route for the exploitation of the results.

Latest Publications

Information Dissemination Activies

ParForce results are being published at mainstream technical meetings (such as the International Conferences and Symposia on Logic Programming and the ACM Symposium on Partial Evaluation and Semantics-Based Program transformation), journals, and workshops. Furthermore, PARFORCE is closely linked (through ECRC's participation) to the industrial ESPRIT project APPLAUSE, where PARFORCE tools are being tested in real-life applications, providing further dissemination and important feedback.

Further information about PARFORCE is available from the PARFORCE home page <URL:>.


Universidad Politécnica de Madrid (UPM) - E
Facultad de Informatica


Università di Pisa - I
University of Southampton - UK
University of Bristol - UK


Prof. M. Hermenegildo
tel +34/1 336-7435
fax +fax +34/1 352-4819

LTR synopses home page LTR work area index LTR acronym index LTR number index LTR Projects index
All synopses home page all acronyms index all numbers index

PARFORCE - 6707, August 1994

please address enquiries to the ESPRIT Information Desk

html version of synopsis by Nick Cook