Lenguajes de programación en las super computadoras
Enviado por sado15 • 4 de Junio de 2017 • Ensayo • 371 Palabras (2 Páginas) • 158 Visitas
Lenguajes de programación en las supercomputadoras
Las aplicaciones de las supercomputadoras tienden a tener requisitos de rendimiento poco habituales, ya que normalmente se les asigna una cantidad limitada de tiempo para ejecutarlos, y esas horas pueden ser más que las horas de desarrollo.
En consecuencia, los programas suelen estar divididos en etapas de procesamiento previo de datos, ejecutando un programa de resolución de recursos extremadamente intensivo en él y luego procesando el resultado, para analizar lo que salió del ejercicio.
Las etapas de pre y post-procesamiento rara vez requieren muchos recursos, por lo que básicamente se pueden escribir en cualquier idioma que sea más fácil manipular los datos con los que se está trabajando. En este contexto, se han utilizado lenguajes como Python, R, Matlab, Erlang, Perl y Tcl. Básicamente, si el punto de una subtarea es reorganizar los datos sin calcular mucho, no hace una gran diferencia en qué idioma se escribe.
En los grandes cálculos que son la razón para querer una supercomputadora, no hay tiempo ni memoria para gastar en la administración automática de la memoria o en las elaboradas bibliotecas de tiempo de ejecución, por lo que estos pasos están escritos en idiomas que permiten al programador cuidar de la memoria y el procesamiento en gran detalle. Normalmente, estos lenguajes son C ++, Fortran o C.
También las supercomputadoras son máquinas muy paralelas, pero ni C ++, Fortran, ni C soportan extensamente la ejecución paralela dentro de las definiciones de los propios lenguajes, por lo que además, se necesitan algunas bibliotecas o extensiones de lenguaje que injertan soporte para el tipo de arquitectura que utilizará el programa. Los estándares de facto que son ampliamente soportados para los tres idiomas son MPI para arquitecturas de memoria distribuida y OpenMP para multiprocesadores de memoria compartida. Es bastante común hacer uso de ambos en conjunto, ya que muchos supercomputadores actuales se distribuyen.
Finalmente, existe actualmente un cambio hacia el aumento de los sistemas de memoria compartida con unidades de acelerador de propósito especial, como GPUs o Xeon Phis. Los modelos de programación para este tipo de circuitos siguen siendo objetivos móviles; Xeon Phis soporta MPI y/o OpenMP, pero cuando se necesita GPUs, se utiliza algo como OpenCL, o opcionalmente, CUDA si la computadora soporta chips NVidia.
Fuentes:
https://www.extremetech.com/computing/160367-new-programming-language-makes-turning-gpus-into-supercomputers-a-snap
http://148.204.211.134/polilibros/Portal/Polilibros/P_proceso/Nuevas_tecnologias_Areli_Araos_Pe%C3%B1aloza/super/origin.htm
...