Universidad Politécnica Territorial del Estado Aragua  “Federico Brito Figueroa” ¿Qué es la computación de alto desempeño (HPC)? Prof. Dr.

 Jorge Domínguez Chávez Departamento de Postgrado Departamento de Informática La   tecnología   de   computación   de   alto   desempeño   tiene  mucho   potencial   para   ampliar   las   oportunidades   en   ingeniería,  investigación   médica,   exploración   y   otras   importantes   empresas  para la humanidad, pero hasta ahora ha sido demasiado costoso y  difícil que las personas lo aprovechen de forma efectiva.

Índice de contenido
Presentación..................................................1 Objetivos de  HPC.............................................3 Requerimientos................................................4 Elementos comunes para el éxito del desarrollo de software HPC4 Resultado ....................................................6 Acerca del autor..............................................6

Presentación
La industria del software requiere de software diseñado  para ejecutar aplicaciones de computación de alto desempeño (HPC,  High Performance Computing en inglés). Es decir, herramientas de  desarrollo   de   software   que   facilitan   la   creación   de   las  aplicaciones distribuidas que se utilicen en clusters complejos  de cómputo de alto desempeño. Este software debe constituirse en  una   plataforma   confiable   de   HPC   que   cuente   con   una   sencilla  implementación, operación e integración con las herramientas y la  infraestructura existentes. “La tecnología de computación de alto  desempeño tiene mucho potencial para ampliar las oportunidades en  ingeniería, investigación médica, exploración y otras importantes  empresas  para  la  humanidad,  pero  hasta  ahora  ha  sido  demasiado  costoso   y   difícil   que   las   personas   lo   aprovechen   de   forma  efectiva”.   Esta   tecnología   HPC   proporciona   al   mercado   global  ventajas de costos, facilidad de uso y un ecosistema de socios  confiable. Se requiere que la tecnología HPC se convierta en el 

  almacenamiento   y   software   en   un   sistema   integrado   que  . ha  incrementado de forma importante la demanda de especialistas.) HPC   provee   lineamientos   específicos   sobre   cómo   los  especialistas   en   desarrollo  de   software.   provee   los   lineamientos   específicos  para   que   trabajen   efectivamente   como   miembros   de   un   equipo   de  alto desempeño. Este entorno abierto de computación  combina computación de alto desempeño ultra­densa. Las aplicaciones de computación de alto desempeño (HPC)  han sido utilizadas para simulación de reservas de gas y petróleo  y procesamiento sísmico.   depurar   y   optimizar   aplicaciones   de   alto   desempeño   para  clusters   en   menos   tiempo. Octave.  mejoran  su desempeño.   renovación.  Pruebas   de   Alto   Desempeño   con   Maple.  Con HPC. que  respondan a estos nuevos retos en los diversos tipos de proyectos  de   software   (desarrollo.   Adicionalmente. SciLab.   adaptación. Esta compleja situación. los especialistas en desarrollo de software:  • • • • Son los creadores y usuarios de sus propios procesos Estiman y planifican su trabajo como parte de su día a día  Obtienen los datos para supervisar y mejorar su trabajo  Gestionan la calidad en cada paso de sus procesos  Esta aplicaciones apoyan y ayudan a que los especialistas  en   desarrollo   de   software   de   manera   individual   o   en   equipos   a  crear. así como obtener mejores resultados  en sus proyectos de software. Este tipo de  problemas   genera   la   experiencia   en  la   utilización   de   técnicas  matemáticas   y   de   computación   para   la   resolución   de   diversos  problemas   científicos.  LabVIEW.   científicos   e  investigadores resuelvan problemas computacionales financieros y  científicos complejos.   continuamente. conexiones en  red. y en la  industria   de   manufactura   para   el   diseño   de   vehículos   y  mejoramiento en la seguridad automotriz y bancaria.recurso dominante: algo que sea fácil de adaptar y utilizar tan  fácilmente   como   las   impresoras   hoy   en   día   y   proporcione   una  manera   fácil   para   que   los   ingenieros. donde usuarios y clientes de los  sistemas de información exigen mayor calidad en menor tiempo. basados en una práctica estándar para desarrollar  software. en ciencias naturales para simulaciones  de catálisis de enzimas y desdoblamiento de proteínas.   al   tiempo   de   reducir   los   costos  asociados con el desarrollo.  etc.   integración.

Asegurar el completo éxito del proyecto.  plataformas distribuidas de computación grid y cloud). debe impulsar entornos virtuales de 3D  en   pantallas   múltiples   y  que  los   usuarios  interactúen  de  forma  simultánea con datos centralizados y con aplicaciones de 3D por  la red. Ser una alternativa para mejorar la calidad del software en  un tiempo y costo razonables.  Objetivos de HPC • • Promover   la   investigación   interdisciplinaria   para   la  resolución eficiente de problemas científicos complejos. desarrollo e  implementación de la infraestructura de la TIC. beneficios de costos y complejidad  reducida. simulación y  computación de alto desempeño. Impulsar   el   desarrollo   de   actividades   de   formación   en   las  áreas   de   matemática   aplicada. de  modo que los usuarios se concentren en las aplicaciones. Estos sistemas deben simplificar el diseño. Estas soluciones  reducen los costos de los proyectos y sus escalas temporales. Gestionar: ◦ Valor del Negocio. • • • • • • • . y computación de alto desempeño.  que   basan   su   trabajo   en   las   metodologías   ágiles   con   las  técnicas   más   avanzadas   para   crear   sistemas   de   software  basados en componentes (robustos y adaptables a los cambios  tecnológicos y del negocio).   modelación   numérica.  simulación. Fomentar   la   integración   entre   investigadores   de   diversas  disciplinas para crear una visión integrada del uso de las  técnicas de computación científica y de alto desempeño. ya que sustenta a las organizaciones a  codificar su conocimiento único del negocio y obtener una  ventaja competitiva. Por otra parte. Especializar   al   personal   de   desarrollo   de   software   en   los  roles de: Arquitecto de software y Diseñador de componentes. Formar y capacitar recursos humanos para colaborar con las  actividades   de   orientación   de   los   investigadores   que  utilizan las técnicas de modelado matemático. Difundir   la   utilización   de   las   técnicas   de   computación   de  alto   desempeño   y   la   utilización   de   las   infraestructuras  computacionales de alto desempeño (clusters de computadores.entrega escalabilidad masiva.

4. los desarrolladores pueden  analizar   visualmente   dependencias   arquitecturales   complejas   con  el potencial del modelado visual e identificar escapes de memoria  difíciles de encontrar y procedimientos de lento desempeño. Orientación a la solución de problemas: buscar soluciones no  .   los   especialistas   en   desarrollo   de  software de HPC deben poseer sólidos conocimientos en funciones  matemáticas altamente optimizadas y seguras para subprocesos para  aplicaciones   de   ingeniería.  Además. Acostumbrado  al logro y a trabajar en equipo.   Aplicar   transformaciones   rápidas   de   Fourier   de  memoria  distribuidas. participativo. extender. proactivo  y comprometido.   ciencias   y   finanzas   que   requieren  alto   desempeño. Tener   un   propósito   claro:   conocer   los   objetivos   y   como  interactúan individualmente con ellos.   matemáticas   vectoriales   y  generadores de números aleatorios.  extendiendo la potencia del lenguaje C/C++ o Java con soluciones  comprobadas. Debe ser social. Participación   en   el   grupo:   participación   activa. responsable. Con valores éticos y profesionales. Tener   una   comunicación   efectiva   hacia   adentro   y   afuera:  comunicación ágil => toma de decisiones apropiadas. Adicionalmente. de alto desempeño.   no   sólo  hacer lo que se les pide (pasivos) sino participar también  en la discusión de problemas y en la toma de decisiones. Voluntad de aprender de los demás: aprendizaje constante =>  recibir y generar conocimiento.  5. modernizar e  implantar software y sistemas basados en software Requerimientos Un especialista en desarrollo de software de HPC debe ser  un profesional comprometido con altas metas y altos estándares de  desempeño.◦ Valor   de   la   tecnología.   este   personal   debe   acelerar   el   desarrollo   en   C/C++.   álgebra   lineal. Así. Elementos comunes para el éxito del desarrollo de software HPC Estas son las características que debe tener un grupo de  trabajo de alto desempeño para estar alineados con el éxito de un  proyecto HPC: 1.   sustenta   a   los   equipos   de  desarrollo a construir. 2.  3. Estas funciones maximizan la  flexibilidad de las implementaciones para que las aplicaciones se  ejecuten   en   múltiples   arquitecturas   de   red   sin   cambiar   código. integrar.

Celebración de los logros: premiar a quien se lo merece =>  motivación. el gerente como coordinador está en la capacidad  de potenciar enormemente las capacidades del grupo o de malgastar  los recursos del grupo y obtener un verdadero desastre.  12. Equipos   multidisciplinarios   para   problemas  multidisciplinarios:   en   lenguaje   informal.   no   hay   mas  opciones.   Entender   que   el   éxito   es   el   fin. Así como  el   gerente  es  importante.  los  integrantes  del  grupo  también  lo  . Resalta la combinación entre los puntos  4. el éxito de la empresa es responsabilidad  de todos los grupos. a fin  de cuentas es un grupo de trabajo.   Esto   también   debe   aplicar   a   nivel   intergrupal. La empresa debe funcionar como una maquinaria  y   los   grupos   como   engranajes.culpables => confianza y solidaridad.  9.  Estos   puntos   hacen   volar   la   imaginación   para   encontrar  otros puntos adicionales que se pudieran leer entre líneas junto  con experiencias propias.   la   capacidad   y   el   liderazgo   del  gerente.   Para   esto   es   necesario   contar   con   otro  ingrediente.   el   compromiso.   Si   bien   la  responsabilidad es compartida y el grupo es la reunión de todos  sus integrantes. Considero importante resaltar el lado contrario.  10.   Así  como   el   éxito   de   un   proyecto   es   responsabilidad   de   todos   los  integrantes del grupo.  6.  11.   alineados   y   aceitados  correctamente.  8.   no   espere  manzanas  del   olmo.   líder   o   como   se   llame.   reúna   manzanos  y  olmos  para  obtener   lo  que realmente espera. Involucrar a todas las personas relevantes: entender que los  problemas son de todos. los problemas son  del   grupo. Búsqueda   de   la   innovación:   aprovechar   las   múltiples  perspectivas que trae consigo la multidisciplinaridad. Búsqueda de la excelencia: superación personal => superación  grupal. No es posible llegar al éxito perdiendo la  cohesión. Búsqueda  de la mejor estrategia => innovación. Compromiso: responsabilidad con el proyecto y con los  compañeros. 9 y 12: ningún problema es de alguien. 8.   coordinador. aún con  buenos insumos.   dejando   a   las   personas   por   su   cuenta   propia   o   a   los  grupos a la deriva. Descontento con el status quo: guiarse por las normas y  las metodologías pero no dejarse llevar por ellas.  7. no del que lo obtuvo de turno.

  Si   el   grupo   es   mediocre.   con   un   Doctorado   en   Ciencias   de   la  Computación   por   La   Universidad   Nacional   Autónoma   de   México. Resultado Se   tendrá   una   infraestructura   de   alto   desempeño. Actualmente es profesor de departamento de  informática   y   del   departamento   de   Postgrado   de   la   UPTAragua.   individual   e   impredecible   como   el   desarrollo   de  software? Las respuestas van entre un si. y publicarlo o difundirlo en cualquier otro sitio de Internet o medio de  comunicación.   posible   de   extender   por   una   comunidad   abundante   de  desarrolladores y asociados. mágica y/o  secreta.   manipular   ciertos   factores   o   elementos   de   un   proyecto  para tener éxito en su desarrollo? ¿Existe una receta. El elemento 6 así lo muestra.  Autor de varios libros sobre la materia.   Un   grupo   mediocre   realizará   proyectos   mediocres   aunque   su  resultado   haya   sido   satisfactorio. proporcionando un conjunto  robusto de servicios comunes.   aunque   haya   tenido   un  relativo éxito siempre estará el k+1 a donde habríamos llegado sí  realmente   nos   hubiéramos   esforzado. gestión de proyectos. orienta su trabajo a la  creación y desarrollo de equipos de software de alto desempeño. Atención:  Salvo que se indique lo contrario. extensibles. El éxito está basado en cuatro ideas clave: personal de  desarrollo   de   software   capacitado. mediante la cual usted tiene permitido  copiar.  planear. de manera total  o parcial.  Expositor frecuente en mejora de procesos.  desarrollo   de   software   corporativo   para   los   sectores   de  servicios.   industria   y   gobierno   liderando   proyectos   de  desarrollo y mantenimiento.   Ha  sido   profesor   en   Computación   e   Informática   en   la   Facultad   de  Ingeniería de la UNAM. pero  el panorama es promisorio. la licencia del texto de este  documento es  Creative Commons Reconocimiento 2. siempre y cuando incluya o cite (1) el nombre de este artículo.  variable. comunicar y distribuir el contenido de este texto.   provisión   de   herramientas  integradas para cada miembro del equipo de software. no y un tal vez. (2) el  .5.   que   haya   que   seguir   paso   a   paso   para   garantizar   el  éxito?   ¿La   administración   de   proyectos   es   algo   tan   esotérico. Actualmente.   banca.  flexible. Sigo   con   mi   duda   personal:   ¿es   posible   determinar.   La   mediocridad   es   algo  imposible de permitir. Acerca del autor Graduado   en   Física. un conjunto  robusto de capacidades de unificación del equipo y un compromiso  con tecnologías abiertas. el fin es el  éxito: lo mejor que se  pueda   obtener. modificar.     ¿Por   qué?   Porque   la  mediocridad no es el fin.son.

.nombre del autor y (4) la misma licencia de distribución.