Abstract
Co-array Fortran (Numrich and Reid 1998), abbreviated to CAF, is an extension of Fortran 90/95 for parallel programming that has been designed to be easy both for the compiler writer to implement and for the programmer to write and understand. It offers the prospect of clear and efficient parallel programming on homogeneous parallel systems.
Each processor has an identical copy of the program and has its own data objects.
Each co-array is evenly spread over all the processors with each processor having a part of exactly the same shape. The language is carefully designed so that implementations will usually use the same address on each processor for the processor’s part of the co-array. Subscripts in round brackets are used in the usual way to address the local part and subscripts in square brackets are used to address parts on other processors.
References without square brackets are to local data, so code that can run independently is uncluttered. Only where there is are square brackets, or a procedure call to code that involves square brackets, is there communication between processors.
There are intrinsic procedures to synchronize processors, return the number of processors, and return the index of the current processor.
A subset of Co-Array Fortran is available on the T3E and the aim of this talk is to explain how it can be used effectively for computations on both full and sparse matrices. In particular, we show how the LINPACK benchmark can be written in this language and compare its performance with that of ScaLAPACK (Blackford et al. 1997), paying particular attention to the solution of a single set of equations. For sparse systems, we consider the use of CAF for frontal and multifrontal methods.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Blackford, L. S., Choi, J., Cleary, A., D’Azevedo, E., Demmel, J., Dhillon, I., Dongarra, J., Hammarling, S., Henry, G., Petitet, A., Stanley, K., Walker, D. and Whaley, R. (1997). ScaLAPACK users’ guide. SIAM, Philadelphia.
Numrich, R. W. and Reid, J. K. (1998), Co-Array Fortran for parallel programming, ACM Fortran Forum 17,2, 1–31.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Reid, J. (2002). Co-array Fortran for Full and Sparse Matrices. In: Fagerholm, J., Haataja, J., Järvinen, J., Lyly, M., Råback, P., Savolainen, V. (eds) Applied Parallel Computing. PARA 2002. Lecture Notes in Computer Science, vol 2367. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48051-X_7
Download citation
DOI: https://doi.org/10.1007/3-540-48051-X_7
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43786-4
Online ISBN: 978-3-540-48051-8
eBook Packages: Springer Book Archive