Results 1  10
of
22
Efficient Algorithms for Solving Static HamiltonJacobi Equations
, 2003
"... Consider the eikonal equation, = 1. If the initial condition is u = 0 on a manifold, then the solution u is the distance to the manifold. We present a new algorithm for solving this problem. More precisely, we present an algorithm for computing the closest point transform to an explicitly described ..."
Abstract

Cited by 48 (6 self)
 Add to MetaCart
Consider the eikonal equation, = 1. If the initial condition is u = 0 on a manifold, then the solution u is the distance to the manifold. We present a new algorithm for solving this problem. More precisely, we present an algorithm for computing the closest point transform to an explicitly described manifold on a rectilinear grid in low dimensional spaces. The closest point transform finds the closest point on a manifold and the Euclidean distance to a manifold for all the points in a grid (or the grid points within a specified distance of the manifold). We consider manifolds composed of simple geometric shapes, such as, a set of points, piecewise linear curves or triangle meshes. The algorithm computes the closest point on and distance to the manifold by solving the eikonal equation = 1 by the method of characteristics. The method of characteristics is implemented efficiently with the aid of computational geometry and polygon/polyhedron scan conversion. Thus the method is named the characteristic/scan conversion algorithm. The computed distance is accurate to within machine precision. The computational complexity of the algorithm is linear in both the number of grid points and the complexity of the manifold. Thus it has optimal computational complexity. The algorithm is easily adapted to sharedmemory and distributedmemory concurrent algorithms. Many query problems...
Parallel Program Archetypes
 In Proceedings of the Scalable Parallel Library Conference
, 1997
"... A parallel program archetype is an abstraction that captures the common features of a class of problems with similar computational structure and combines them with a parallelization strategy to produce a pattern of dataflow and communication. Such abstractions are useful in application developme ..."
Abstract

Cited by 18 (0 self)
 Add to MetaCart
A parallel program archetype is an abstraction that captures the common features of a class of problems with similar computational structure and combines them with a parallelization strategy to produce a pattern of dataflow and communication. Such abstractions are useful in application development, both as a conceptual framework and as a basis for tools and techniques. This paper describes an approach to parallel application development based on archetypes and presents two example archetypes with applications. 1 Introduction This paper proposes a specific method of exploiting computational and dataflow patterns to help in developing reliable parallel programs. A great deal of work has been done on methods of exploiting design patterns in program development. This paper restricts attention to one kind of pattern that is relevant in parallel programming: the pattern of the parallel computation and communication structure. Methods of exploiting design patterns in program develop...
Computational and numerical methods for bioelectric field problems
 Critical Reviews in BioMedical Engineering
, 1997
"... Fundamental problems in electrophysiology can be studied by computationally modeling and simulating the associated microscopic and macroscopic bioelectric fields. To study such fields computationally, researchers have developed a number of numerical and computational techniques. Advances in computer ..."
Abstract

Cited by 17 (6 self)
 Add to MetaCart
Fundamental problems in electrophysiology can be studied by computationally modeling and simulating the associated microscopic and macroscopic bioelectric fields. To study such fields computationally, researchers have developed a number of numerical and computational techniques. Advances in computer architectures have allowed researchers to model increasingly complex biophysical system. Modeling such systems requires a researcher to apply a wide variety of computational and numerical methods to describe the underlying physics and physiology of the associated threedimensional geometries. Issues naturally arise as to the accuracy and efficiency of such methods. In this paper we review computational and numerical methods for solving bioelectric field problems. The motivating applications represent a class of bioelectric field problems that arise in electrocardiography and
Iterative GridBased Computing Using Mobile Agents
 In Proceedings of the 2002 International Conference on Parallel Processing, T. Abdelrahman (Ed.), 2002
, 2002
"... We describe an environment for the distributed solution of iterative gridbased applications. The environment is built using the MESSENGERS mobile agent system. The main advantage of paradigmoriented distributed computing is that the user only needs to specify applicationspecific sequential code, w ..."
Abstract

Cited by 12 (0 self)
 Add to MetaCart
We describe an environment for the distributed solution of iterative gridbased applications. The environment is built using the MESSENGERS mobile agent system. The main advantage of paradigmoriented distributed computing is that the user only needs to specify applicationspecific sequential code, while the underlying infrastructure takes care of the parallelization and distribution. The two paradigms discussed in this papers are the finite difference method, and individualbased simulation. These paradigms present some interesting challenges, both in terms of performance (because they require frequent synchronized communication between nodes) and in terms of repeatability (because the mapping of the user space onto the network may change due to load balancing or due to changes in the underlying logical network). We describe their use, implementation, and performance within a mobile agentbased environment.
Integrating Task and Data Parallelism with the Collective Communication Archetype
, 1994
"... A parallel program archetype aids in the development of reliable, efficient parallel applications with common computation/communication structures by providing stepwise refinement methods and code libraries specific to the structure. The methods and libraries help in transforming a sequential progra ..."
Abstract

Cited by 7 (3 self)
 Add to MetaCart
A parallel program archetype aids in the development of reliable, efficient parallel applications with common computation/communication structures by providing stepwise refinement methods and code libraries specific to the structure. The methods and libraries help in transforming a sequential program into a parallel program via a sequence of refinement steps that help maintain correctness while refining the program to obtain the appropriate level of granularity for a target machine. The specific archetype discussed here deals with the integration of task and data parallelism by using collective (or group) communication. This archetype has been used to develop several applications. 1 Introduction Archetypes. Many parallel applications share common features in design, testing, debugging, performance tuning, and program structuring. A parallel program archetype is an abstraction that embodies common features shared by parallel applications within a domain. An archetype aids the develop...
Integrating Task and Data Parallelism with the Group Communication Archetype
, 1995
"... A parallel program archetype aids in the development of reliable, efficient parallel applications with common computation/communication structures by providing stepwise refinement methods and code libraries specific to the structure. The methods and libraries help in transforming a sequential progra ..."
Abstract

Cited by 6 (2 self)
 Add to MetaCart
A parallel program archetype aids in the development of reliable, efficient parallel applications with common computation/communication structures by providing stepwise refinement methods and code libraries specific to the structure. The methods and libraries help in transforming a sequential program into a parallel program via a sequence of refinement steps that help maintain correctness while refining the program to obtain the appropriate level of granularity for a target machine. The specific archetype discussed here deals with the integration of task and data parallelism using group communication. This archetype has been used to develop several applications.
The Mesh Archetype
, 1995
"... A parallel program archetype aids in the development of reliable, efficient parallel applications with common computation/communication structures by providing development methods and code libraries specific to the structure. This document presents an archetype for mesh computations. It describes th ..."
Abstract

Cited by 6 (4 self)
 Add to MetaCart
A parallel program archetype aids in the development of reliable, efficient parallel applications with common computation/communication structures by providing development methods and code libraries specific to the structure. This document presents an archetype for mesh computations. It describes the common structure captured by the archetype abstraction, discusses a parallelization strategy for such computations, documents our code library to support this parallelization strategy, and presents a collection of example application programs. 1 Introduction: mesh computations 1.1 Overview In a mesh computation: ffl Data is based on an Ndimensional grid (N = 1, 2, or 3), with one or more variables per cell (grid point). ffl Computation consists of some sequence of the following operations:  computing, for each cell, new values for one or more variables, based on old values of variables in that cell and nearby cells (neighbors, nexttoneighbors, etc.)  (optionally) reading in va...
The Compiler TwoL for the Design of Parallel Implementations
 In Proc. 4th Int. Conf. on Parallel Architectures and Compilation Techniques, IEEE
, 1996
"... A large number of numerical algorithms exhibit a twolevel structure with both method parallelism and system parallelism. This structure can be exploited to produce alternative parallel implementations on distributed memory machines. The compiler system TwoL (Two Level) provides interactive and semia ..."
Abstract

Cited by 5 (3 self)
 Add to MetaCart
A large number of numerical algorithms exhibit a twolevel structure with both method parallelism and system parallelism. This structure can be exploited to produce alternative parallel implementations on distributed memory machines. The compiler system TwoL (Two Level) provides interactive and semiautomatic support for the design and realization of efficient parallel algorithms in this twolevel parallel programming model. The design is structured into welldefined decision steps which are formalized in a TwoL specification language, and transformations on this language. We show how the design steps lead to a parallel algorithm, how the design is formalized in the TwoL system, how this compiler system is realized, and which algorithms are amenable to automated decision steps. Design or derivation steps are based on parameterized cost functions arising from runtime predictions for the specific parallel target machine. The design process is illustrated by the parallelization of several me...
Some Algorithm Structure and Support Patterns for Parallel Application Programs
, 2002
"... We are developing a pattern language to guide the programmer through the entire process of developing a parallel application program. The pattern language includes patterns that help find the concurrency in the problem, patterns that help find the appropriate algorithm structure to exploit the co ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
We are developing a pattern language to guide the programmer through the entire process of developing a parallel application program. The pattern language includes patterns that help find the concurrency in the problem, patterns that help find the appropriate algorithm structure to exploit the concurrency in parallel execution, and patterns describing lowerlevel implementation issues. The current version of the pattern language can be seen at http://www.cise.ufl.edu/ research/ParallelPatterns.
A Framework for Generating Task Parallel Programs
 In 7th Symposium on the Frontiers of Massively Parallel Computation  Frontiers '99
, 1999
"... We consider the generation of mixed task and data parallel programs and discuss how a clear separation into a task and data parallel level can support the development of efficient programs. The program development starts with a specification of the maximum degree of task and data parallelism and pro ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
We consider the generation of mixed task and data parallel programs and discuss how a clear separation into a task and data parallel level can support the development of efficient programs. The program development starts with a specification of the maximum degree of task and data parallelism and proceeds by performing several derivation steps in which the degree of parallelism is adapted to a specific parallel machine. The separation between the task and data parallel level is preserved during the design and translation phases by clearly defined interfaces. We show how the final messagepassing programs are generated from the data parallel and the task parallel specification and how the interaction between the two levels can be established. We demonstrate the usefulness of the approach by examples from numerical analysis which offer the potential of a mixed task and data parallel execution but for which it is not a priori clear, how this potential should be used for an implementation o...