DAP FORTRAN era una extensión de las partes no IO de FORTRAN con estructuras que admitían computación paralela para el procesador de matriz distribuida (DAP) de ICL. El DAP tenía una arquitectura de instrucción única, múltiples datos (SIMD) con procesadores de un solo bit de 64x64.
DAP FORTRAN tenía las siguientes características principales:
- Tenía operaciones matriciales y vectoriales.
- Las asignaciones se pueden realizar bajo una máscara lógica, de modo que solo se modifican algunos elementos en el objetivo de una asignación.
- En el lado negativo, las operaciones se realizaron utilizando el tamaño del hardware subyacente, es decir, en una matriz de 64x64 o un vector de 64 elementos.
En una declaración se podrían omitir uno o dos alcances como en:
C Multiplica el vector por la matriz
REAL M (,), V (), R () R = SUMA ( M * MATR ( A ))
C Converge a un potencial de Laplace en un área
REAL P (,), OLD_P (,) LÓGICO INTERNO (,) HACER 1 K = 1 , ITERACIONES OLD_P = P P ( INTERNO ) = 0.25 * ( P (, + ) + P (, - ) + P ( + ,) + P ( - ,)) SI ( MÁXIMO ( ABS ( P - OLD_P )) . LT . EPS ) RETORNA 1 CONTINUAR
La dimensión omitida se tomó como 64, el tamaño de un lado del DAP. La velocidad de las operaciones aritméticas dependía en gran medida de la cantidad de bits en el valor. INTEGER*n reservó 8n bits donde n es de 1 a 8, y REAL*n reservó 8n bits donde n es de 3 a 8. LOGICAL reservó un solo bit.
Sin embargo, DAP FORTRAN se encontraba entre dos objetivos contrapuestos. Necesitaba explotar eficazmente las facilidades de DAP, pero también tenía que ser accesible a la comunidad de computación científica cuyo lenguaje principal, con un diseño estrechamente vinculado a las arquitecturas seriales, era FORTRAN. El dialecto utilizado era el FORTRAN de la serie 2900 de ICL, que se basaba en una versión temprana del estándar FORTRAN 77 y presentaba desajustes tanto con FORTRAN 77 como con el estándar más antiguo FORTRAN 66 .
El FORTRAN de DAP era significativamente diferente del FORTRAN estándar y la máquina no era capaz de aceptar u optimizar programas FORTRAN estándar. Por otro lado, comparado con otros lenguajes contemporáneos que eran extensibles por diseño (notablemente ALGOL-68 ), FORTRAN no era muy adecuado para esta tarea. El resultado era notablemente poco elegante y requería una gran cantidad de aprendizaje nuevo. Operativamente, había una sobrecarga para transferir datos computacionales dentro y fuera de la matriz, y los problemas que no encajaban en la matriz de 64x64 imponían una complejidad adicional para manejar los límites (¡65x65 era quizás el peor caso!) – pero para los problemas que se adaptaban a la arquitectura, podía superar a las arquitecturas de canalización Cray actuales por dos órdenes de magnitud.
Una versión posterior del DAP utilizó Fortran-Plus, que se basaba en FORTRAN 77 y tenía una indexación más flexible. En particular, asignaba automáticamente matrices del tamaño del usuario al hardware subyacente.
Enlaces externos
- DAP Fortran de ICL
- Dennis Parkinson; John Litt (1990). Computación paralela masiva con DAP . Monografías de investigación sobre computación paralela y distribuida. Pitman. ISBN 978-0-273-08809-7.