top of page

Evolución tecnológica de la Programación Paralela y Distribuida (PPD).

fotonoticia_20191226121118_1200_edited.p

1837 

En 1837 el profesor británico Charles Babbage hace la primera descripción de la máquina analítica. Con la idea de la máquina analítica posteriormente se daría origen a teorías de paralelismo.

OIP_edited.jpg

1842 

En 1842 el profesor Babbage y el matemático italiano Luigi Menabrea, se encontraron durante un viaje por el este de Italia, que daría como resultado la primera publicación en francés de la máquina analítica.

OIP.jpg

1843

Al año siguiente en 1843, la publicación del matemático Menabrea es traducida del francés al inglés por Ada Lovelace. Lovelace daría su aporte a esta publicación con el primer algoritmo para ser procesado por una máquina. Por este aporte es conocida como la primera programadora de ordenadores.

OIP.jpg

1954

1954 IBM introduce al mercado el IBM 704.

1958

En 1958 S. Gill Ferranti habló sobre programación paralela y la necesidad de “branching” y “waiting”.

OIP.jpg

También en 1958, Investigadores de IBM, Cocke y Slotnick, discutieron el uso de paralelismo en cálculos numéricos por primera vez. Este último propone SOLOMON, el cual fue un proyecto para hacer un super computador que nunca se llevo a cabo, pero su diseño sirvió como base para el desarrollo de proyectos futuros.

OIP.jpg

1962

En 1962 Burroughs Corporation creó un computador de 4 procesadores que accedía a 16 módulos de memoria.

Ese mismo año se computador ATLAS entra en operación, es la primera máquina en implementar los conceptos de memoria virtual y paginación.

1964 

Luego en 1964 La fuerza aérea estadounidense, USAF, financió el diseño del primer computador paralelo masivo ILLIAC IV. (256 procesadores). Slotnick es contratado para empezar el proyecto (usando como contratatistas, por ejemplo, a Texas Instruments)

OIP.jpg

1965

En 1965 Dijkstra describe y da nombre el problema de las secciones críticas.

Ese mismo año, Cooley y Tukey, desarrollan el algoritmo de la transformada rápida de Fourier, el cual sería una de los algoritmos que más ciclos de operaciones de punto flotante demandan

OIP.jpg

1967

Amdahl y Slotnick debatieron sobre la viabilidad del procesamiento en paralelo en 1967. De estos debates surgió la ley de Amdahl.

cvsa.png

1968

En 1968 Dijkstra describe los semáforos como posible solución al problema de las secciones críticas.

1968 - 1976 

Desde 1968 hasta 1976 se desarrollan diferentes proyectos en EEUU, Rusia, Japón y algunos paises europeos. La industria tecnológica y las universidades son los sectores que más invierten en investigación sobre paralelismo.

OIP.jpg

1976

Primera aplicación corriendo en ILLIAC IV (1976). Por esta razón este computador fue llamado “the most infamous of the supercomputers”, ya que solo fue completado en un 25%, tomó 11 años y 4 veces más al costo estimado.

1981

Finalmente, en 1981 es desmantelado el proyecto ILLIAC IV por la NASA. Aunque se afirma que fue un fracaso en términos económicos, llego a ser el computador más rápido de la época y varios conceptos importantes usados en la construcción del ILLIAC IV se terminan implementando de futuros proyectos de manera exitosa.

OIP.jpg

Incios y Finalies de los 80

A mediados de los 80, un nuevo tipo de computador paralelo fue creado cuando el proyecto “Concurrent Computation” de Caltech construyó un supercomputador para aplicaciones científicas. El sistema mostró que se podría lograr un rendimiento extremo usando microprocesadores regulares, disponibles en el mercado.

 

Empezando a los finales de los 80, los clusters surgieron para competir y con los MPP. Un cluster es un tipo de computador paralelo, construido usando múltiples computadores “off-the-shelf”, conectados usando una red “off-the-shelf”. Hoy en día, los clusters son la arquitectura dominante en los datacenters.

Decada 1990

Para los MPP (Massively Parallel Processor) y clusters surgió el estándar MPI (Interfaz de Paso de Mensajes) a mediados de los 90, que convergió de otras API. Para los multiprocesadores con memoria compartida, un proceso de convergencia similar se observó a finales de los 90, con el surgimiento de pthreads y OpenMP.

Actualidad

En la actualidad, la computación paralela se encuentra en la cotidianidad, con la llegada de los procesadores de varios núcleos físicos casi por defecto en la mayoría de dispositivos computacionales.

 

El software ha sido una parte activa en la evolución de la programación paralela. Los programas paralelos son más difíciles de escribir que los programas secuenciales, ya que se requiere que haya una comunicación y sincronización entre las tareas que se han paralelizado.

Las arquitecturas de hardware evolucionan continuamente para optimizar el rendimiento en entornos paralelos y distribuidos. Esto incluye procesadores multinúcleo, aceleradores como GPUs y TPUs (Tensor Processing Units), y nuevas tecnologías emergentes como los sistemas de memoria distribuida y la computación cuántica.

bottom of page