Results 1  10
of
31
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 51 (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 19 (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.
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 6 (1 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.
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...
Experiments with Program Parallelization Using Archetypes and Stepwise Refinement
 IN PARALLEL AND DISTRIBUTED PROCESSING: WORKSHOPS HELD IN CONJUNCTION WITH THE 12TH INTERNATIONAL PARALLEL PROGRAMMING SYMPOSIUM AND THE 9TH SYMPOSIUM ON PARALLEL AND DISTRIBUTED PROCESSING (IPPS/SPDP'98), VOLUME 1388 OF LECTURE NOTES IN COMPUTER SCIENCE
, 1998
"... Parallel programming continues to be difficult and errorprone, whether starting from specifications or from an existing sequential program. This paper presents (1) a methodology for parallelizing sequential applications and (2) experiments in applying the methodology. The methodology is based on th ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
Parallel programming continues to be difficult and errorprone, whether starting from specifications or from an existing sequential program. This paper presents (1) a methodology for parallelizing sequential applications and (2) experiments in applying the methodology. The methodology is based on the use of stepwise refinement together with what we call parallel programming archetypes (briefly, abstractions that capture common features of classes of programs), in which most of the work of parallelization is done using familiar sequential tools and techniques, and those parts of the process that cannot be addressed with sequential tools and techniques are addressed with formallyjustified transformations. The experiments consist of applying the methodology to sequential application programs, and they provide evidence that the methodology produces correct and reasonably efficient programs at reasonable humaneffort cost. Of particular interest is the fact that the aspect of the methodol...