<< Chapter < Page Chapter >> Page >

En marzo de 1992, el Foro de Fortran de Alto Rendimiento (HPFF por sus siglas en inglés) comenzó a reunirse para discutir y definir un conjunto de agregados a FORTRAN 90 para hacer más práctico su uso en ambientes de cómputo escalable. El plan era desarrollar una especificación durante ese año, de forma que los vendedores rápidamente comenzaran a implementar el estándar. El alcance de este esfuerzo incluía lo siguiente:

  • Identificar escalares y arreglos que puedan distribuirse a lo largo de la máquina paralela.
  • Indicar cómo se distribuirán. ¿Serán tiras, bloques o de alguna otra forma?
  • Especificar cómo se alinearán dichas variables las unas con respecto a las otras.
  • Redistribuir y realinear estructuras de datos a tiempo de ejecución.
  • Añadir una estructura de control FORALL para las asignaciones paralelas que sean difíciles o imposibles de construirse usando la sintaxis de arreglos de FORTRAN.
  • Hacerle mejoras a la estructura de control WHERE de FORTRAN 90.
  • Añadir funciones intrínsecas para las operaciones en paralelo más comunes.

Existían varias fuentes de inspiración para el esfuerzo HPF. Las directivas de disposición ya eran parte del ambiente de programación de FORTRAN 90 en algunas computadoras SIMD (i.e., la CM-2). También se había liberado el año anterior PVM, el primer ambiente de paso de mensajes transportable, y los usuarios tenían un año de experiencia tratando de descomponer programas a mano. Habían desarrollado algunas técnicas básicas utilizables para la descomposición de datos que funcionaban muy bien, pero requerían de mucha más contabilidad. Como pronto veremos.

El esfuerzo HPF agrupó un conjunto diverso de intereses de todos los principales vendedores de cómputo de alto rendimiento. Estaban representadas las principales compañías. Como resultado, HPF se diseñó para implementarse en casi todo tipo de arquitecturas.

Hay un esfuerzo en marcha para producir el siguiente estándar de FORTRAN, FORTRAN 95, que se espera adopte algunas pero no todas las modificaciones de HPF.

Programando en hpf

HPF usa FORTRAN 90 como su núcleo. Si un programa en FORTRAN 90 se pasa por un compilador HPF, debe producir los mismos resultados que si se hubiera compilado con FORTRAN 90. Asumiendo que un programa HPF sólo use los constructos de FORTRAN 90 y las directivas HPF, un compilador FORTRAN 90 puede ignorar las directivas y debe producir los mismos resultados que un compilador HPF.

Conforme el usuario agrega directivas al programa, la semántica de éste no cambia. Si el usuario no entiende en absoluto la aplicación e inserta directivas extremadamente mal pensadas, el programa produce resultados correctos aunque muy lentamente. Un compilador HPF no trata de "mejorar" las directivas del usuario. Asume que el programador es omniscente. Lo cual siempre es bueno de asumirse.

Una vez que el usuario ha determinado cómo distribuir los datos entre los procesadores, el compilador de HPF trata de usar el mínimo de comunicaciones necesario y traslapa la comunicación con los cálculos siempre que sea posible. HPF generalmente usa la regla de "el propietario calcula" para la ubicación de los cálculos. Un elemento particular en un arreglo se calcula mediante el procesador que almacena dicho elemento del arreglo.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Cómputo de alto rendimiento. OpenStax CNX. Sep 02, 2011 Download for free at http://cnx.org/content/col11356/1.2
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Cómputo de alto rendimiento' conversation and receive update notifications?

Ask