Download as pdf
Download as pdf
You are on page 1of 16
‘Sobre el que vamos a desarrollar la programaci6n paralel mos una visién de los computadores paralelos lo mas proxima pprogramador. Por ello, y en la medida de 1o posible, tratamos de nivel demasiado bajo. Una forma de hacerlo es construir modelos « ‘en el sentido de abstraer aquellas caracteristicas que ve un pro far computadores paralelos ideales basados en estas caracter [Presentaremos varios modelos sobre los que vamos a desarrollar paralela. Para entender bien los tipos de modelos que vamos a ‘ideas sobre la forma en que estén construidos los computadores: ante, no ¢s un objetivo de este libro profundizar en los aspectos ‘ardware. Hay excelentes libros que tratan sobre ello. El lector | ‘Puede consultar la bibliogratia citada al final del capitulo. dores secuenciales, Estas mejoras son una riales semiconductores que ha permitido, por Gn en las puertas Idgicas, que son la base de ‘una mayor densidad de empaquetamiento en = obstante, que los limites fiscos dikimos (velocidad de la lz, den ©, »--) son una barrera que hari que el incremento de pres- + + Incremento de la longitud de palabra. Con esta técnica se consigue tener mds informacién para ser procesada en la CPU de forma simultinea, Es frecuemte en muchos procesado- res disponer de varias unidades funcionales, que pueden realizar operaciones diferentes (suma, multiplicacién, ...) de forma simultinea. De esta manera es posible incrementar las prestaciones, aunque con el limite légico de ta capaci ddad de suministro de datos. om | Se pueden realizar _— simultinea operaciones ef la oe las unidades de VO. si se utilizan controladores de VO separados 0 bien procesadores de V/O. Mas atin, en determinados computadores es frecuente encontrar este de procesadores repticados, tratando asi de superar la diferencia de entre lx CPU y las VO. rtido. También se puede it distimios po de CPU en fracciones ¢ ir asociandolas a los. p tun determinado esquema de prioridades. Este tipo de técnicas jor utilizacién de los recursos y se ha convertido ya en cualquier sistema informitico moderno. © Cengage Learning Paraninto “dia, en el diseio de nuevas arquitecturas de procesadores se ‘entre los tres Factores que tienda a hacer que el producto de el hace referencia a la organizaci6n se utilizan técnicas de disminuir el nimero medio de ciclos de reloj por instruccién, Existen dos formas bisicas para conseguir que.un conj f cuten simulténeamente: sSgectaion yrép ica (Figura 2.1). Las dos. de paralelismo se pueden usar en los jutadores monoprocesador pa <1 ntimero total de operaciones que se pueden ejecutar en el proce medio, en cada unidad de tiempo. © —> sr. * 2.2 Paralelismo en los computadores monoprocesador 23 7 La primera técnica, datos pasan de una etapa a otra con la sefial de cuyo periodo debe ajustarse a la duracién de la etapa mas larga. Con esta técnica se consigue, en el mejor de los casos, tuna vez que las etapas tienen datos suficientes para procesar. La segmentacién se utiliza profusamente en muchas partes de una unidad de proceso moderna. Por ejem- plo, es frecuente encontrarla como base de unidades de operacién en coma flotante (sumadores, multiplicadores, ...), en coprocesadores matemiéticos, etc, También se puede segmentar todo el proceso de ejecucién de instrucciones, Ha~ bitualmente este proceso consta de cuatro etapas basicas: busqueda de Ia instruccién, decodificacién, biisqueda de los operandos y operacién sobre los operandos. La segmentacién es una buena técnica para conseguir elevadas prestaciones, es~ Pecialmente si se utiliza sobre-conjuntos de datos: homogéneos. A veces presenta ciertas dificultades, como por ejemplo: « Lanecesidad de utilizaf retardos diferente en cada etapa obliga a usar el mayor de ellos en todas las etapas, ralentizando el proceso. + Normalmente deben construirsadiferentes organizaciones segmentadas para cada instruc + Pueden presentarse problemas dkdependencias dé dalO3-pgr ejemplo, cuando es necesario un operando cuyo valor debe obtenerse en la instruccién anterior, Se presentan Conffictos de accesd cuando un operando debe buscarse en el ‘mismo médulo de memoria que una instruccién. El uso de instrucciones de saltO"puede invalidar toda la busqueda anticipada de instrucciones. Muchas de las dificultades citadas pueden mitigarse cn algunos casos. Es frecuen- 'e, por ejemplo, la préctica de reordenar las instrucciones para evitar dependencias d datos © para minimizar los problemas con las i elev: algunos compiladores. Si (ura Harvard), evitando asf algunos acceso. Un sin nes de Se ‘un|Sumador y-un-multiplicador|(phaining),) De esta form: de dos etay segmentada ue perinite hacer de form i mostrado en el[Algoritmo 2.1 Jevitando accesos innecesarios a memoria del bucle. - ‘© Cengage Learning Paraninto Ms al “Oth frecue lado de estos bucles ( muchos cédigos un desenro bucks ae que aT Bice na © varias repeticiones de 1a operacién par Bees dol Variable del bucle e incrementando el paso de éste) para ap Ai méximo ls posiblidades de la unidad segmentada, como se muestra en) I hasta n paso 2 hacer S=S+alil «dii); $=S+ali+1]*d|i+1); finpara esta manera pueden ejecutarse simulténeamente tantas instrucciones como funcionales se tenga. El paralelismo en sus dos vertientes basicas ha invadido las méquinas mo cesador y lo ha hecho fundamentalmente de forma transparente al usuari destacar que la mayor parte de las prestaciones conseguidas en los.co noprocesador actuales se deben precisamente al paralelismo y que este P Se ha introdlucido en ellos a través de la organizacion mais que mediante m nol6gicas relacionadas con aspectos De hecho, actualmente, un pi Con una buena organizaciGn que adopte el paralelismo como paradigma de' beneticiaré de cualquier nueva mejora tecnolégica, que puede dar Tugar ain de prestaciones de forma independiente de la propia organizacién, 2.2.2 Procesadores vectoriales Al resaltar las dificultades comentado que éstas cor inherentes a las unidades de tipo segment buenos resultados especialmente cuando *éncos. Este es el caso cuando se Pt -_- ie 2.2 Paralelismo en los computadores monoprocesador en la mayor parte (précticamente en la totalidad) de los procesadores vectoriales ac- tuales estas instrucciones estin implementadas utilizando técnicas de segmentacién. Para que el rendimiento de una unidad vectorial (normalmente segmentada) sea ‘ptimo es necesario que se le puedan suministrar datos a la velocidad suficiente como para tenerla sistematicamente Hena. Por ello, estas unidade: (vectoriale 1s datos> ‘Tambign es it Zac - Una forma habitual de organizar la memories dividirla « x }, de tal manera que cada posicién se caracteriza por una dire or un conjunto de digi- tos binarios en los que la partedalta indica esa direccién y la parte baja lacposicién_o de este sistema de organizacién, y dado que los vectores suelen almacenarse en posi- clones consecutivas, es dificil la carga de vectores desde la memoria por tener que acceder a posiciones que se encuentran en el mismo médulo. Esto representa una grave penalizacién en los accesos a la memoria en este tipo de maquinas. Una solu- cidn es la organizacién de 1a memoria de forma entrelazada, asignando a la parte alta « de la direecién de memoria el desplazamiento dentro de'un médulo y ala parte baja el nimero del médulo. De esta forma, clalmacei i vector se hace en médulos de memoria.consecutivos evitando as bo ue representa tener que acceder al mismo médulo para almacenar o cargar muchos datos, con necesidad ademas de hacerlo répidamente,- Cabe destacar, por tltimo, que las técnicas pipelining utilizadas para la construc- sion de procesadores vectoriales han proporcionado las méquinas mas, potentes de |i década de los 80. Actualmente, los computadores de tipo vectorial son méquinas ‘nuy consolidadas, con un amplio mercado y un bien ganado prestigio. A esto ha contribuido Ia existencia de software (compiladores vectorizantes) capaz de generar codigo vectorial de forma automatica, liberando al usuario (al menos tedricamente) de la dura tarea de aprender una nueva metodologia de programacién. Alzunos computadores vectoriales han representado en su momento un verdade- ‘0 hito como supercomputadores. Cabe citar en este sentido los modelosCRAY 1 (1976), Cray 2 (1985). CRAY Y-MP (1988) 0 Fujitsu VP-200 (1990). En edicio- nes recientes de la lista del TOPSOO aparecen varios computadores con procesadores ‘sctoriales. Por ejemplo, en listas recientes del TOPSO0 aparecen entre los primeros. ‘ugares: Earth-Simulatory SX8 de la casa NEC, CRAY XI y XIE, etc. © Cengage Learning Paraninto modelo de programacién, 1o que supone que la obte > ee tipo de méquinas implique un cierto conocimiento del it ctorizacién. Por otra parte, es interesante ¢oy -séenicas habituales de vectoriza idn. i evectén del nimero de ciclo por intruccién y hacerlo de una forma Fengugje de alto nivel (0 incluso al lenguaje ensamblador). De esta forma se {que el usuario no tenga que cambiar la filosofia de programacién, de las instrucciones indicadas por el programador y, espe: cificado de lectura y escritura de variables deben respetarse aunque se orden interno de las operaciones Si se analizan en profundidad las fases en que se desarrolla la ejecucion determinada instruceién se puede observar que son suficientes y lo bastante cadas como para poder solapar partes de diferemtes instrucciones 0 inc lar algunas de forma simulténea. Norms 4 de ellas puede estar dividida en fases de menor di una visién més refinad del proceso de ejecucién muestra subetapas como: bi de Ia instruccién, decodificacién, célculo de las direcciones efectivas de fos «dos y resultado, busqueda de los operandos, ejecucién, almacenamiento del Fe ¥ actualizacién del contador de programa. La duracién de estas subetapas pued ‘bociad Con un cierto submiltiplo del ciclo de reloj distintos tipos de procesador tc lapas biisicas de biisg este sistema, supon loj, se puede conse 1a etapa inicial With decodificacion, ejecucién y almacenai wo ve ea tp a una duracién de un ei €0 la prictica, ej de Henado (Figura 2.2) In.E=tjecucion dela instruccién n In.A=Almacenamiento de resultados de fa instruccion n Figuna 2.2 _Ejecucién de instrucciones en procesador segmentado. En muchos procesadores actuales se ha venido utilizando esta técnica. Cabe destacar entre ellos los MIPS R2000 y R3000, el SPARC o el HP Precision Architecture uncon racer perenne neta nomen, imero de fases en Ia ejecucidn de una instruccién suele ser mayor que el fimero de etapas Gada etapa, que suele ejecutarse durante un ciclo de reloj, no debe considerarse como una unidad atémica de ejecucién, sino que puede dividirse en subetapas. Esto permite utlizar la técnica de segmentacin lanzando ejecuctones de ne vas instrucciones, no ev ciclo de reloj (por ejemplo cada medio 0 cada cuarto de ciclo de reloj) aprove- ‘chando periodos de duracién de alguna fase. De esta forma, y como resultado final.Ge consigue la gjccucién ias_instrucciones por ciclo de reloj (una ‘vez transcurridas las etapas iniciales), mejorando asf las prestaciones obtenidas con los procesadores de tipo segmentado (Figura 2.3), La técnica de superseg- mentacion se ha utilizado con éxito en el procesadof MIPS R4000, tra técnica utilizada actualmente en muchos procesadores es la bésqueda y lanzamiento para su ejecucién de varias ins- uucciones de forma simultinea. Si se hace una reordenacién adecuada de las instrucciones, y se eligen aquellas que permiten utilizar partes diferentes del microprocesador (por ejemplo una instruccién que utilice aritmética entera y otra que utilice aritmética en coma flotante) se pueden cjecutar de forma simul- tinea varias operaciones, consiguiendo asi el efecto réplic>Légicamente este tipo de organizacién puede completarse, por una parte con una réplica de uni- dades funcionales y por otra, con las técnicas de segmentaci6n 0 supersegmen- comentadas, consiguigndose asf un efecto potenciador que provoca tacién © Cengage Learning Paraninlo ‘ciclo Varias instrucciones por ciclo n.B=Bosqueda de la instruccién n In.D=Decodificacion de la instruccion n In.E=Ejecuci6n de la instruccién 1 in.A=Almacenamiento de resultados de la instruccion| FIGURA 2.3. Ejecuci6n de instrucciones en procesador su que se ejecuten varias instrucciones por ciclo de reloj (Figura se en niimero a las ejecutadas en el caso de los procesadores supersegmentados. Instrucciones - ne [no] He] WA 2B | 20 | we | 2A be | Bo] BE] BA [4s [wo | we] 4A 158 | 150 | I5E t [es 16e — fi t ‘ciclo Varias instrucciones por ciclo de rel In.B=Busqueda de la instrucci instruccion n n.0=Decodificacién de la instruccién n IR=Elecucion dela instruccién n In.A=Almacenamiento de resultados de la instruccion Hizando actua «el RS 6000 y erp el UltraSPARC g almente en mieroprock Power PC de IBM,)el Alpha tum de INTEL Super SPARC y ee : a Kr. La potencia de los procesadores actuales permite la ejecucién de varios procesos r Se denomina thread (hilo, hebra) a cada tno de estos procesos (en el Capitulo 3 puede encontrarse una descripcién mis detallada de este concepto): ibil > recursos que necesitan To distintos tala’ de aprovechar Taz capacidades de algunossistemas operativos y aplicaciones avanzadas de lanzar variog procesos ligeros Simultincamente. Asi eXsoftware puede dividir su carga de trabajo en threads cuya ejecucién se puede planificar de forma in- ependiente, Si se tuvieran varios elementos de proceso estos threads se ejecutarfan simulténeamente sobre ellos. Esta tecnologia ha sido implementada, por ejemplo, por Intel en los procesadres Xeon y Pent tea dentine dn aoe Asi. el microprocesador Xeon funciona como si constara de dos procesadores virtua les, lo que permite lanzar y ejecutar simulténeamente (si no comparten recursos) threads (Figura 2.5). Nivel K6gico Procesadoreslégicos visibles Productividod {a1 Sistoma Operative =O => © Nveltsico Pca en (rhveod > |[oms] [ma] (LC >P Lm [m2 ] [ar] (aoa) | male E IL FIGURA 2.5 Funcionamiento de un procesador con hyperthreading, Mientras algunos recursos se comparten (memoria cache, unidades de ejecuci6n ¥ bus), cada procesador Igico dispone de su propia arquitectura independiente, con SU propio estado y su juego de registros de propdsito general, de control, etc. Eneste ‘© Cengage Learning Paraninfo adores iccién més larga de lo habitual, y por tan Seen a esto se afta de una milfiplicidad de unidades funcionales, esta técnica permite que se ejecuten arias instrucciones simulténeamente, De esta forma se puede mejorar la velocidad de proceso de forma transparente al usuario. El paralelismo a nivel de instruccién se consigue por medio de un conjunto de técnicas de compilacién y de disefio del proce- sador, que logran acelerar la ejecucin de los programas a base de solapar operaciones didependientes, es decir, ejecutando simultaneamente diferentes operaciones de una misma instruccién. fi rT rr in a (del de par campo plantilla e ~N Esta tecnologia fue presentada, en principio, por HP e Intel bajo el nombre de EPIC (Explicit Parallel Instruction Computer). Por ejemplo, en el caso del roce- sador Itanium de Intel, cada palabra de instruccién del Procesador contiene hasta HES operaciones independientes que pueden cjecutarse simulténeamente-en uni funcionales diferentes, junto con un campo plant, el cual se establece duran Seneracion de eédigo. ya sea por el compilador o por el ensamblador, para Procesador emo ha de ejecutar las instrucciones (Figura 2.6). Procesamiento de hasta res intrucciones en parslalo. a Procesador VLIW —. Estructura de una instruccion de 128 bite Hasta ahora hemos analizado c6mo el paralelismo en sus formas basicas se ha uti- lizado para mejorar las prestaciones de los computadores monoprocesador. En cam- bio, en las maquinas que hemos estudiado no se aprecia un cambio de filosofia que haga que el usuario Hegue a percibir que el modelo basico de computador ha cam- biado. Mas aun, uno de los objetivos al disefiar un computador monoprocesador de propésito general tpico suele ser que ef paralelismo Sea wansparente aLusianin> a t a oT jue deberia utilizar técnicas espectiicas si quiere re olenet un rendimiento Sptimo en este tipo de computadores. Pero aun asf los computadores vectoriales siguen siendo 6 y en mu- chos casos el fabricante proporciona herramientas de programacién que hacen que el usuario pueda olvidarse, si asi lo desea, de que est4 ante un computador paralelo. Tampoco se ha ulizadg en los computadores presentados hasta ahora un parale- lismo que-utilice la réplica eh el mas estricto sentido. labra; es decir, imple- mentando miquinas donde se disponga ae capaces de ubordar tareas independientes de forma simulténea, y no de meras réplicas de unida- des funcionales © partes internas del procesador. A continuacién abordamos el tipo de méquinas que por sus caracteristicas repre- sentan los computadores paralelos por antonomasia, En ellas encontraremos una ver- dadera réplica de elementos de proceso, permitiéndonos asf hablar de'anquirecturas Mas atin, 1a Organizacién de estas méquinas requiere que el usuario tenga c cia de que esta ante un computador paralelo, porque el modelo de funci y de programacién es substancialmente distin dor jonales. Por ello, sin ke Utifizacién de computadores es imposible la obtencin de prestaciones no ya Gptimas, quiera acordes con el coste y la filosofia de est ‘Pardmetros para definirlas- —, © Cengage Learning Paraninfo moun a ¥ muy complejas. Respeeto al numero, pueden encontrarse desde: res con un gran mimero de procesadores ( as val otros, |) + Puncionamiento sinerono o asinerono, Desde este punto de vista p encontrar, desde (Podas las operaciones) iguales 0 distintas, en todos Tos pro caso contrario, en el qué cada Procesador tiene su propio relOp Es bast uente el caso intermedio en el que, sin permitir que un reloj global todas las operaciones, si que existen mecanismos que permit inc nes periddicas de los distintos elementos de usuario, bien de forma espont: computadores paralelos es e! mecanismo a tos de proceso pueden inter son hacerlo a ravés de Dependiendo de los pardmetros que se utilicen se p Clasificacién de Hwang-Briggs K. Hwang y F. A. Briggs establecen una primera computadores paralelos, fijand. computadores matriciutes y sistemas multiprocesadores. entre computadores basados en/paralelismo temporal, que solapan varias operaciones en el mismo instante de tiempo funcional, y paralelismo'espacial: que supone la existencia replicados (Figura 2.7). Of] OL] Of] ©] Paralelismo espacial sincrono Paralolismo espacial asinerono: EP=Elemento de proceso; M=Memoria FIGURA 2.7 Clasificacion de Hwang-Briggs. En realidad, | scementacionyynépicn: Desputs se iliza el concepto de Ge ‘iat entre computadores con t evo cjecutan ws nstmusciones una seal de un rel nog eee ae cor ‘paralelismo espacial asincrono (cada elemento de proceso ejecuts ‘nstrucciones sin una sefal global de sincronizaciGn)- a Quiz la clasificacién de los computadores Paralelo literatura sea la clasificaciGn de Flynn, En Asi, se puede tener un flujo comuntos de datos..De esta forma aparecen cuatro cli ra 28: #{SISD: un fujo snico de instrucciones datos. A esta elase pertenecen, evidentemente, SSID! un tuo dnico de inseucciones dedatos, Logicamente es necesario replicar © Cengage Learning Paraninio wnsevcion = [a] LT ae) ms] Ee)—[ (ui }-+-GP) = miso mimo EP=Elemento de proceso; M=Memoria; Ul=Unidad de instruccién FIGUAA 2.8 Clasificacién de Flynn. instrucciones se puedan ejecutar de forma simultdnea, Més ain, se sup la ejecucién de las instrucciones se hace de forma sincrona gar |a perfecta unicidad del flujo. En el mercado existen computado ‘que pertenecen a esta clase, aunque actualmente no es como computadores de propdsito general. Computadores | Iliac IV 0 la Connection Machine 1 y 2, fueron en su de este tipo. BAIBD: cierentes fujos de instrucciones s de-datos. Aunque es posible imaginardistintas api miéquinas, es dificil encontrar miquinas reales que re debiéndose considerar su existencia exclusivamente : diferentes flujos de instrucciones se tos de datos. Desde un Punto de vista teérico rep de los cuatro, correspondiendo a un computador c Proceso, donde cad uno de ellos ejecuta su propio ju forma asincrona, La introduccién a la programacién én los siguientes capitulos se orientard fundament Pertenecientes a esta clase. = Jas ideas de 8s,

You might also like