Historia del desarrollo de las hebras

De Departamento de Informatica
Saltar a: navegación, buscar

La mayoría de los intentos en la historia de los procesadores multihilo comienzan con las PPUs en el CDC 6600.Sin embargo, las ideas de compartir una única ruta de ejecución entre varios hilos ejecución, comienza por lo menos una década antes.

Contenido

Contenido

Acercamientos

En un principio los computadores ejecutaban un porgrama y este al terminar podía seguir con procesos siguientes. Luego surgió la idea de la multi-tarea donde un procecso podía dejarse "en pausa" y la CPU pasaba a otro. Y más adelante nace el concepto de programación multihebra. Como el multitasking precede al tema específico de este artículo, consideramos importante dar breves reseñas de ellas. No hay que olvidar que al referirnos a multihebras nos referimos a que se ejecutan en un mismo procesador, comparten espacio en mempria y se comunican a través de la memoria compartida.


Antes que surgiera el concepto de multihebra, estaba latente la inquietud de acortar los tiempos de CPU. De la mano con la introucción de transistores de silicio, se cambió el esquema de un computador que tuviera una CPU que manejara un "amplio" conjunto de instrucciones a uno que tuviera una CPU destinada a resolver cálculos simples y otras que cumplieran con las restantes.


Predecesores

DYSEAC: 1954 Fue desarrollado por el National Bureau of Standards para United States Army Signal Corps. De la mano con a incrporación e los trasistores de silicio se siguió la estrategia de "divide y vencerás": en vez de tner una CPU que realizara un cnojunto amplio y complejo de instrucciones, se optó por dejar una CPU deedicada a cálculos aritméticos simples y otras aparte que completaran el resto del conjunto. A esto se le denominaría má adelante RISC. Esto permitió un prmer grado de multitareaa, ya que un proceso podía dejarse esperando apra atender I/O.

PL/I: 160's PL/I es un lenguaje de programación que incorporó por primera vez el multitasking, además de ser diseñado para ser multipropósito

Bull Gamma 60: El diseño del sistema fue revolucionario para su época, siendo la primera arquitectura diseñada específicamente para parallel y multiprogramming. La instrucción SIMUpermitía dividir un programa indivdual en dos secuencias que se pueden correr por separado.

1960: Honeywell 800 contaba con soporte para timesharing entre 8 programas

1968 IBM ACS-360 simulator: primeros acercamientos a simultaneaous mulithreading

1980's: Las primeras arquitecturas multihebra comercializadas fueron: HEP, TERA, MASA y Alewife. El TERA implementaba 128 hebras en paralelo.

1990's: En los primeros años de esta década, Sun reconoció los problemas que enfrentarían los diseñadores de procesadores prducto del rápido avance que debieran tener las frecuencias de reloj para mejorar el Single-threading. Para solucionarlo, esta compañía define la arquitectura MAJC dirigida al paralelismo a nivel de hebras..

Estudio: Simultaneous Multithreading: Maximizing On-Chip Parallelism Se hizo examinando y comparando las técnicas de multithreading (técnica que permite tener varas hebras independientes llevando a cabo instrucciones en un sólo siclo de procesador). Las técnicas comparadas fueron wide, superscalar, procesador multihebra fine-grain y chip individual. Como conclusión se obtuvo que tanto el superscalar como el fine-grain, ambos multihebra, están limitados a la hora de utilizar recursos de un gran procesador (no lo aprovechan). Por otra parte, el multithreading simultáneo tiene el potencial de alcanzar hasta 4 veces más el throughput de un superscalar y hasta 2 veces más el del fine-grain.

2000's:

Intel implementó el hyper-threading en sus procesadores: HH80552PG0962M, HH80547PG0961MM, HH80547PG0801MM y NE80546PG0801M. Todos ellos son de la generación Pentium 4.

Evolución

  • Secuencia múltiple.
  • Multihilo de Granularidad Fina (FGMT).
  • Multihilo de Granularidad Gruesa (CGMT).
  • Multihilo Simultaneo (SMT).
  • Multihilo Implícito (IMT).
  • Multihilo Dinámico (DMT).

Referencias

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16]

  1. http://www.cs.clemson.edu/~mark/multithreading.html
  2. http://www.computerhistory.org/timeline/?year=1950
  3. http://thaddy.co.uk/threads/Ch1.html
  4. http://www.reocities.com/lbosq/hilo.htm
  5. http://fileadmin.cs.lth.se/cs/Education/EDA095/2012/lectures/Threads/threads_2012_4.pdf
  6. http://www.ccpr.ucla.edu:8080/CCPRWebsite/services/computing/High%20Performance%20Computing.pdf
  7. https://ctbp.ucsd.edu/pc/html/intro4cont.html
  8. http://research.microsoft.com/en-us/um/people/gbell/craytalk/sld047.htm
  9. http://people.ac.upc.es/mpericas/trabajo_smt.pdf
  10. http://www.cs.cmu.edu/afs/cs/user/fp/www/courses/15213-s07/misc/spracklen_2005_cmt.pdf
  11. * System Sepcifications for the DYSEAC B y A L A N L. L E I N E R N a t i o n a l Bureau of S t a n d a r d s , Washington, D. C.
  12. * Design of a Multiprogrammed Algebraic Compiler Ascher Opler and Myra Gray Computer Usage Company, Inc., New York, N.Y.
  13. * Ascher Opler and Myra Gray Computer Usage Company, Inc., New York, N.Y.
  14. * SOMETHING OLD: THE GAMMA 60 THE COMPILER THAT WAS AHEAD OF ITS TIME by M. Bataille
  15. * Some Thoughts on Parallel Processing by Lynn D. Yarbrough North American Aviation Inc., Inglewood, Calif.
  16. * Chip Multithreading: Opportunities and Challenges by Lawrence Spracklen & Santosh G. Abraham Scalable Systems Group Sun Microsystems Inc., Sunnyvale, CA
Herramientas personales
Espacios de nombres
Variantes
Acciones
Navegación
Herramientas