Atlas home || Conferences | Abstracts | about Atlas

Fourth Mississippi State Conference on Differential Equations and Computational Simulations
May 21-22, 1999
Mississippi State University and Electronic Journal of Differential Equations
Starkville, MS, USA

Organizers
Ratnasingham Shivaji, Bharat Soni, Jianping Zhu (Program Chair)

View Abstracts
Conference Homepage

Loci: Logic Programming for Parallel Computational Field Simulations
by
Edward A. Luke
Mississippi State University Engineering Research Center

Modern computational fluid dynamics (CFD) software is complex. Often these CFD applications require complex geometries, flexible boundary conditions, multiple integrated computational models (for example, heat conduction, structural deformations, gas dynamics, etc.), as well as grid adaptation. As a result of this complexity, the correct implementation of particular numerical models is actually less challenging than guaranteeing the correct coordination of the complex interactions between these models. This coordination is made all the more difficult when massively parallel distributed memory architectures are considered. If we are to consider the development of CFD applications that reliably incorporate a broad selection of numerical models (which we should expect of next generation CFD applications), then we must consider technologies that simplify, automate, and validate the numerical model coordination mechanisms themselves.

Interestingly, most of the recent technologies that address the problem of simplifying the coordination of numerical models within scientific applications have specifically targeted parallel architectures. This is an indication that parallel implementations have increased coordination difficulties. Thus, many of these parallel programming solutions are actually addressing a more fundamental problem of simplifying the description of program component coordination. Some of the more interesting strategies that have been developed are those represented by the STRAND [] and PCN [] languages. These languages, through the use of declarative task-parallel semantics and single assignment variables, provide a means of application description that separates algorithm and partitioning specifications. In addition, they can be used as coordination languages, that is they can be used to build parallel programs out of Fortran or C numerical kernels or models. Unfortunately STRAND and PCN have limited applicability as coordination languages for CFD applications due to their lack of constructs for data-parallel execution (as those provided in a language like HPF []). For example, neither STRAND nor PCN provide support for the global to local renumbering necessary to partition CFD meshes on distributed memory architectures. As a result, these responsibilities end up in the numerical kernels, exposing many coordination details to the numerical methods.

The Loci system [] is proposed as a coordination framework for CFD applications. It supports declarative and single assignment semantics similar to STRAND and PCN for describing the coordination of numerical kernels, while also including specifications of unstructured mesh topology (connectivity lists) facilitating data-parallel descriptions of unstructured calculations somewhat analogous to the domain and map constructs of FIDIL []. Loci is not a language nor does it consist of language extensions, but rather it is a framework implemented entirely within the recently standardized ISO C++.

In the Loci system, the mesh, boundary conditions, initial conditions, and other user input is stored in a database of facts. In addition, the application itself contains a database of rules. Each rule in the database represents a computation, or numerical model. Rules are applied (or "fired") when sufficient information is present in the database for the calculation to proceed, and when the user has made a request that implicates that particular rule (these implications chain, e.g. volumes may be implied by volume weighted averages, which may be implied by an integration of the energy equation, etc.) This is similar to a "Prolog" for CFD. In this way, many different numerical models can be contained in the rule database, but the specific rules that will be invoked will depend on the information present in the fact database. For example, it becomes possible to have a both a compressible and incompressible solver within the same CFD code, where some regions of the mesh may have contain the compressible numerical models, while other regions may contain the incompressible. An errant database that specified simultaneous application of both models will be reported as a consistency error (for example by multiple rules being able to simultaneously provide pressures at a given computational cell).

Bibliography

[]
I. Foster and S. Taylor. Strand: New Concepts in Parallel Programming, 1990, Prentice-Hall.

[]
I. Foster, R. Olson, and S. Tuecke. Productive parallel programming: The PCN approach. in Scientific Programming, Vol 1, 1992, pp. 51-66.

[]
High Performance Fortran Forum. HPF Language Specification, Version 2.0 January 31, 1997.

[]
E. Luke. Loci: A Logic Programming Based Solution to Parallel Computational Field Simulations, Mississippi State University, Technical Report #MSSU-EIRS-ERC-97-13.

[]
P. Hilfinger and P. Colella. FIDIL: A Language for Scientific Programming. in Symbolic Computation: Applications to Scientific Computing, Editor R. Grossman, SIAM, 1989, pp. 97-138.

http://www.erc.msstate.edu/~lush/loci

Date received: April 1, 1999


Copyright © 1999 by the author(s). The author(s) of this document and the organizers of the conference have granted their consent to include this abstract in Atlas Conferences Inc. Document # cacr-50.