DAP Fortran(ID:753/dap006)

Parallel fortran 


Fortran-Plus FOR ICL 2900


Structures:
Related languages
FORTRAN-PLUS enhanced => DAP Fortran   Implementation
DAP Fortran => APAL   Target language for

References:
  • [ICL] DAP: FORTRAN Language Manual, International Computers Limited Technical Publication 6918 ICL, Putney, London view details
  • Flanders, P.M. et al, Efficient High Speed Computing with the Distributed Array Processor, pp.113-127 (1977). view details
  • Parkinson, Dennis "Using the ICL DAP" Computer Physics Communications 26(3-4) June 1982 pp227-232 view details Abstract: The 4096 Processor DAP has been installed at Queen Mary College for over one year. A wide range of problems have been programmed for the DAP and the performance of the system exceeds the original estimates. The DAP is programmed using DAP-FORTRAN a FORTRAN dialect with many parallel programming extensions. Experiments have shown that few problems benefit from using the low level assembler language (APAL) and so assembly level programming is now strongly discouraged. After initial resistance to change, sceptics rapidly fall in love with the increased power of a parallel FORTRAN and find beneficial the disciplines involved in a re-evaluation, at high level, of their problems. Comparison with results of calculations on serial machines shows that the DAP produces the maximum benefit in problems dominated by conditional operations (i.e. FORTRAN IF type statements). This result suggests that the concepts of ?speed-up? and ?efficiency? often used in parallel algorithm theories are dangerous when applied to the DAP class of architectures. There is no single measure of the absolute performance of total computer systems and one can only measure the performance of one system in relation to another. Relative to familiar serial computers the performance of the DAP depends strongly on the problem type and the size of the problem. The MEGAFLOP unit proves to be totally meaningless when applied to the DAP (the theoretical maximum performance is 0.0 MEGAFLOPS!) but when properly programmed the DAP can, for a large range of scientific problems out-perform any other computer system.
  • Parkinson, D. "The Distributed Array Processor (DAP)"Computer Physics Communications 28(4) February 1983, pp325-336 view details Abstract: The Distributed Array Processor is a computer system consisting of 4096 processors working in unison under the control of a single master processor. This paper describes the DAP, the extended version of the FORTRAN language used to program it and some of the new types of algorithm that are used to exploit highly parallel computer architectures.
    Resources
    • Slides on DAP Fortran at UCS Indiana

      Constrained arrays in DAP FORTRAN



      • First one or two extents could be omitted:



              DIMENSION A(), BB(,)


              INTEGER II(,)

              REAL AA(,3), BBB(,,5)

      • A is a vector.



      • BB and II are matrices.



      • AA an array of vectors.  BBB an array of matrices.



      • Extents of constrained dimensions 64 again (vectors of 4096 also possible).




      external link
    • Slides on DAP Fortran at UCS Indiana

      Array assignments in DAP Fortran



      • Leave subscripts empty for array expression.  + or ? subscript used for nearest neighbour access:



              U(,) = 0.25 * (U(,-) + U(,+) + U(-,) + U(+,))


      • Masked assignment by using logical matrix as subscript:



              LOGICAL L(,)


              ...

              L(,) = BB(,) .LT. 0

              B(L) = -B(,)

      external link