Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Parallel numerical algorithms based on tensor notation and co-array Fortran syntax
Numrich R. Parallel Computing31 (6):588-607,2005.Type:Article
Date Reviewed: Oct 6 2006

This is one of a series of papers by Numrich on the use of Fortran co-array syntax and tensor notation for numerical linear algebra. It includes computational examples in tensor notation, and Fortran programs for them using co-array syntax, and presents run data showing near-linear speedup on a parallel processor.

Co-array Fortran is an extension of Fortran in which both code and data space are replicated (each is called an image). Contravariant vectors are represented by conventional Fortran arrays in local memory (indices in curly brackets); covariant vectors are represented by co-arrays in remote memory (indices in square brackets). For an orthonormal basis, they are related by a transpose. The author also defines linear operators to decompose vectors and matrices into blocks to aid in domain decomposition.

The overall technology, consisting of tensor algebra, Fortran arrays and co-arrays, and vector/matrix blocking with block indices, amounts to a powerful new way of efficiently representing concurrent algorithms and mapping them onto parallel processors. As examples of the overall technology, the author presents seven algorithms for matrix multiplication in tensor notation, and gives co-array Fortran code for two of them. Run results show nearly linear speedup as a function of the number of processors. For a more sophisticated example, the author presents the logical unit (LU) decomposition in tensor notation, its co-array program, and runtime data. While the LU example shows less-than-linear speedup, it is faster than ScaLAPACK, even when run on a single processor. The paper is an elegant model of clarity, brevity, and utility.

Reviewer:  P. C. Patton Review #: CR133403 (0708-0806)
Bookmark and Share
  Reviewer Selected
Featured Reviewer
 
 
Parallel Algorithms (G.1.0 ... )
 
 
Concurrent Programming Structures (D.3.3 ... )
 
 
Fortran (D.3.2 ... )
 
 
Parallel Programming (D.1.3 ... )
 
 
Concurrent Programming (D.1.3 )
 
 
Language Classifications (D.3.2 )
 
  more  
Would you recommend this review?
yes
no
Other reviews under "Parallel Algorithms": Date
Parallel algorithms in computational science
Heermann D., Burkitt A., Springer-Verlag New York, Inc., New York, NY, 1991. Type: Book (9780387534183)
Apr 1 1992
A parallel shortest augmenting path algorithm for the assignment problem
Balas E., Miller D., Pekny J., Toth P. (ed) Journal of the ACM 38(4): 985-1004, 1991. Type: Article
Sep 1 1992
An o(n log n) minimal spanning tree algorithmn for n points in the plane
Changm R., Lee R. BIT 26(1): 7-16, 1986. Type: Article
Nov 1 1987
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy