Download Lenguajes de programación

Document related concepts

Lisp wikipedia , lookup

Programación funcional wikipedia , lookup

Clojure wikipedia , lookup

Julia (lenguaje de programación) wikipedia , lookup

APL wikipedia , lookup

Transcript
Lenguajes de programación
• Los procesos concurrentes pueden
darse en un sistema de cómputo en los
niveles de procesamiento siguientes:
• De trabajos
• De tareas
• Inter-instrucciones
• Intra-instrucciones
Lenguajes de programación
• El nivel de programación determina el
tamaño del grano.
• El grano es el número de instrucciones
o de operaciones consideradas como
unidad para particionar un algoritmo.
• Los niveles inter-instrucciones e intrainstrucciones son para granos finos,
mientras que los otros niveles son para
granos gruesos o medianos
Lenguajes de programación
• Los lenguajes de programación para los
sistemas en paralelo consideran:
• Mecanismos de control (modelo Von
Neuman)
• Mecanismos de comunicación de datos
(Simple Program Multiple Data SPMD)
Lenguajes de programación
Mecanismos de control
• Se diseñaron para tener un nivel alto de
abstracción y para generar programas
modulares
• Lo cual hace posible adaptar programas
paralelos a computadoras paralelas
• Paralelización de tareas
• Paralelización implícita o explícita
Lenguajes de programación
Mecanismos de comunicación de datos
• Se utiliza para especificar la manera en que
los datos se van a accesar y distribuir en las
computadoras SIMD o MIMD
• Especificación de la asignación
• Acceso directo a datos compartidos
Lenguajes de programación
Algunos de ellos
• Mecanismo de control
• Memoria compartida
– FORTRAN, ALGOL, COBOL, LISP, APL, PL/1,
BASIC, Pascal, C, Ada, HPF, Modula, Pascal
concurrente, Multilisp
• Memoria distribuida
– Ada, Occam, C, C++, FORTRAN, HPF, SR
Lenguajes de programación
• Por patrón
– Memoria compartida: Prolog
– Memoria distribuida: Actors
• Por datos
– Memoria distribuida: VAL, Id, LAU, SISA
• Por demanda
– Memoria distribuida: FP
Lenguajes de programación
• LISP: List Processing Language,
• FP: Functional Programming Languagesng
Sequential Processes,
• HPF: High Performance Fortran,
• VAL: Value-oriented Algorithmic lenguaje,
• Id: Irvine dataflow,
• SISAL: Streams and Iteration a Single
Assignment Lenguaje,
• SR: Synchronizing Resources.
1.2 Carrera hacia los teraflops
Computadoras vectoriales vs paralelas
• Computadora vectorial
– Mal llamadas “supercomputadoras”
– Operaciones vectoriales
– Operaciones “pipeline”
– Require de sistemas de enfriamento interno
– No es escalable
– El costo de adquisición y mantenimiento es muy
elevado