Вы находитесь на странице: 1из 41

MISD

Taxonoma de Flynn Una instruccin Un dato Mltiples datos Mltiples instrucciones

SISD

MISD

SIMD

MIMD

En computacin, MISD (del ingls Multiple Instruction, Single Data, en espaol: "mltiples instrucciones, un dato") es un tipo dearquitectura computacional (particularmente de computacin paralela) donde muchas unidades funcionales realizan diferentes operaciones en los mismos datos. Las arquitecturas segmentadas pertenecen a este tipo, aunque en un extremo se podra llegar a decir que los datos son diferentes despus de ser procesados por cada etapa en el pipeline, con lo cual no entrara en esta categora. Las mquinas tolerantes a fallos ejecutan la misma instruccin redundantemente para detectar y corregir errores, utilizando task replication, son consideradas de este tipo. No existen muchos ejemplos de esta arquitecura dado que las tcnicas ms comunes de procesamiento de datos en paralelo suelen ser ms apropiadas para MIMD y SIMD. Especficamente, facilitan el escalamiento y el uso de recursos computacionales mejor que MISD. Algunos argumentan que un array sistlico es un ejemplo de una estructura MISD. [editar]Referencias
Quinn, Michael J. Parallel Programming in C with MPI and OpenMP.Boston: McGraw Hill, 2004.
1 2

1.

2.

Ibaroudene, Djaffer. "Parallel Processing, EG6370G: Chapter 1, Motivation and History." St Mary's University, San Antonio, TX. Spring 2008.

Taxonoma de Flynn
Taxonoma de Flynn Una Mltiples instruccin instrucciones Un dato Mltiples datos

SISD

MISD

SIMD

MIMD

La taxonoma de Flynn es una clasificacin de arquitecturas de computadores propuesta por Michael J. Flynn en 1972.1 2

[editar]Clasificaciones
Las cuatro clasificaciones definidas por Flynn se basan en el nmero de instrucciones concurrentes (control) y en los flujos de datos disponibles en la arquitectura: Una instruccin, un dato (SISD) Computador secuencial que no explota el paralelismo en las instrucciones ni en flujos de datos. Ejemplos de arquitecturas SISD son las mquinas con uni-procesador o monoprocesador tradicionales como el PC o los antiguos mainframe. Mltiples instrucciones, un dato (MISD) Poco comn debido al hecho de que la efectividad de los mltiples flujos de instrucciones suele precisar de mltiples flujos de datos. Sin embargo, este tipo se usa en situaciones de paralelismo redundante, como por ejemplo en navegacin area, donde se necesitan varios sistemas de respaldo en caso de que uno falle. Tambin se han propuesto algunas arquitecturas tericas que hacen uso de MISD, pero ninguna lleg a producirse en masa. Una instruccin, mltiples datos (SIMD) Un computador que explota varios flujos de datos dentro de un nico flujo de instrucciones para realizar operaciones que pueden ser paralelizadas de manera natural. Por ejemplo, un procesador vectorial. Mltiples instrucciones, mltiples datos (MIMD) Varios procesadores autnomos que ejecutan simultneamente instrucciones diferentes sobre datos diferentes. Los sistemas distribuidos suelen clasificarse como arquitecturas MIMD; bien sea explotando un nico espacio compartido de memoria, o uno distribuido.

[editar]Diagrama

de comparacin de las clasificaciones

Esas cuatro arquitecturas son mostradas visualmente a continuacin en donde cada "PU" (processing unit) es una unidad de procesamiento:

SISD

MISD

SIMD

MIMD

Clasificaciones adicionales
Tambin existe una extensin comn a esta taxonoma que es:

Un programa, mltiples datos (SPMD) - mltiples procesadores autnomos que trabajan simultneamente sobre el mismo conjunto de instrucciones (aunque en puntos independientes) sobre datos diferentes. Tambin se le llama 'un proceso, mltiples datos'. Mltiples programas, mltiples datos (MPMD) - mltiples procesadores autnomos que trabajan simultneamente sobre al menos dos programas independientes. Normalmente este sistema elige a un nodo para ser el host o administrador, que corre el programa y otorga los datos a todos los dems nodos que ejecutan un segundo programa. Esos dems nodos devuelven sus resultados directamente al administrador. Un ejemplo podra ser la consola de Sony PlayStation 3, que tiene la arquitectura de procesador SPU/PPU.

Taxonoma de las arquitecturas 1 Introduccin

Introduccin En este trabajo se explican en detalle las dos clasificaciones de computadores ms conocidas en la actualidad. La primera clasificacin, es la clasificacin clsica de Flynn en dnde se tienen en cuenta sistemas con uno o varios procesadores. La segunda clasificacin es una clasificacin moderna en la que slo tienen en cuenta los sistemas con ms de un procesador. El objetivo de este trabajo es presentar de una forma clara los tipos de sistemas que existen en la actualidad desde el punto de vista de distintos autores, as como cules son las ventajas e inconvenientes que cada uno ostenta.

Clasificacin de Flynn Clasificacin clsica de arquitectura de computadores que hace alusin a sistemas con uno o varios procesadores. Flynn la public por primera vez en 1966 y por segunda vez en 1970. Esta taxonoma se basa en el flujo que siguen los datos dentro de la mquina y de las instrucciones sobre esos datos. Se define como flujo de instrucciones al conjunto de instrucciones secuenciales que son ejecutadas por un nico procesador y como flujo de datos al flujo secuencial de datos requeridos por el flujo de instrucciones. Con estas consideraciones, Flynn clasifica los sistemas en cuatro categoras:

SISD (Single Instruction stream, Single Data stream)


Los sistemas de este tipo se caracterizan por tener un nico flujo de instrucciones sobre un nico flujo de datos, es decir, se ejecuta una instruccin detrs de otra. Este es el concepto de arquitectura serie de Von Neumann donde, en cualquier momento, slo se ejecuta una nica instruccin.

Un ejemplo de estos sistemas son las mquinas secuenciales convencionales.

SIMD (Single Instruction stream, Multiple Data stream)


Estos sistemas tienen un nico flujo de instrucciones que operan sobre mltiples flujos de datos. Ejemplos de estos sistemas los tenemos en las mquinas vectoriales con hardware escalar y vectorial. El procesamiento es sncrono, la ejecucin de las instrucciones sigue siendo secuencial como en el caso anterior, todos los elementos realizan una misma instruccin pero sobre una gran cantidad de datos. Por este motivo existir concurrencia de operacin, es decir, esta clasificacin es el origen de la mquina paralela. El funcionamiento de este tipo de sistemas es el siguiente. La Unidad de Control manda una misma instruccin a todas las unidades de proceso (ALUs). Las unidades de proceso operan sobre datos diferentes pero con la misma instruccin recibida. Existen dos alternativas distintas que aparecen despus de realizarse esta clasificacin:

Arquitectura Vectorial con segmentacin: Una CPU nica particionada en unidades funcionales independientes trabajando sobre flujos de datos concretos

Arquitectura Matricial (matriz de procesadores): Varias ALUs idnticas a las que el procesador de instrucciones asigna una nica instruccin pero trabajando sobre diferentes partes del programa.

SIMD CON CPU PARTICIONADA


En este tipo de sistemas, la CPU se disea como un conjunto de unidades funcionales independientes que ejecutan simultneamente varias operaciones aritmtico/lgicas. La CPU contiene un nico procesador con instrucciones que procesa un nico flujo de estas liberando cada instante una. Debido a que las unidades funcionales operan independientemente, es posible liberar nuevas instrucciones antes de que finalice la ejecucin de las instrucciones previas. Ejemplos de este tipo de sistemas los encontramos en los computadores CRAY monoprocesador, CYBER 205, FUJITSU, HITACHE, NEC SUPERCOMPUTERS, IBM 390 VF, IBM 9000 VF, ALLIANT FX/1 Y CONVEX C-1.

SIMD CON MULTIPLES ALUS


Estos sistemas trabajan en modo lock step, ejecutando o ignorando una misma instruccin para todas las ALUs. Existe un nico procesador que maneja el flujo de instrucciones del programa y que transfiere todas las instrucciones a las diferentes unidades aritmtico/lgicas. Cada ALU opera sobre un segmento diferente de datos del programa. Ejemplo de funcionamiento del sistema con el siguiente bucle: DO 2000 I=1,N A(I) = B(I) + C(I)

2000 CONTINUE El procesador asigna a cada ALU la operacin de suma de B(I) con C(I) y siendo el almacenamiento del resultado en A(I) pero pasando a cada ALU un valor diferente de I. En el caso de que haya menos ALUs que iteraciones del bucle, el procesador ordenar la ejecucin hasta que estn procesados todos los valores de I. En el caso de que haya ms ALUs que iteraciones, existir un nmero de estas que no estn operativas durante la ejecucin de las instrucciones del bucle. Una ALU inactiva o en OFF significa que:

La ALU recibe instrucciones pero las ignora La ALU ejecuta clculos pero no almacena ningn resultado. MISD (Multiple Instruction stream, Single Data stream)
Sistemas con mltiples instrucciones que operan sobre un nico flujo de datos. Este tipo de sistemas no ha tenido implementacin hasta hace poco tiempo. Los sistemas MISD se contemplan de dos maneras distintas:

Varias instrucciones operando simultneamente sobre un nico dato. Varias instrucciones operando sobre un dato que se va convirtiendo en un resultado que ser la
entrada para la siguiente etapa. Se trabaja de forma segmentada, todas las unidades de proceso pueden trabajar de forma concurrente. Ejemplos de estos tipos de sistemas son los arrays sistlicos o arrays de procesadores. Tambin podemos encontrar aplicaciones de redes neuronales en mquinas masivamente paralelas.

MIMD (Multiple Instruction stream, Multiple Data stream)


Sistemas con un flujo de mltiples instrucciones que operan sobre mltiples datos. Estos sistemas empezaron a utilizarse a principios de los 80. Son sistemas con memoria compartida que permiten ejecutar varios procesos simultneamente (sistema multiprocesador). Cuando las unidades de proceso reciben datos de una memoria no compartida estos sistemas reciben el nombre de MULTIPLE SISD (MSISD). En arquitecturas con varias unidades de control (MISD Y MIMD), existe otro nivel superior con una unidad de control que se encarga de controlar todas las unidades de control del sistema. Ejemplo de estos sistemas son las mquinas paralelas actuales.

Categoras de Ordenadores Paralelos Clasificacin moderna que hace alusin nica y exclusivamente a los sistemas que tienen ms de un procesador (i.e mquinas paralelas). Existen dos tipos de sistemas teniendo en cuenta su acoplamiento. Los sistemas fuertemente acoplados son aquellos en los que los procesadores dependen unos de otros. Los sistemas

dbilmente acoplados son aquellos en los que existe poca interaccin entre los diferentes procesadores que forman el sistema. Atendiendo a esta y a otras caractersticas, la clasificacin moderna divide a los sistemas en dos tipos: Sistemas multiprocesador (fuertemente acoplados) y sistemas multicomputador (dbilmente acoplados).

Multiprocesadores
Un multiprocesador puede verse como un computador paralelo compuesto por varios procesadores interconectados que comparten un mismo sistema de memoria. Los sistemas multiprocesadores son arquitecturas MIMD con memoria compartida. Tienen un nico espacio de direcciones para todos los procesadores y los mecanismos de comunicacin se basan en el paso de mensajes desde el punto de vista del programador. Dado que los multiprocesadores comparten diferentes mdulos de memoria, pudiendo acceder a un mismo mdulo varios procesadores, a los multiprocesadores tambin se les llama sistemas de memoria compartida. Dependiendo de la forma en que los procesadores comparten la memoria, se clasifican en sistemas multiprocesador UMA, NUMA y COMA.

UMA (Uniform Memory Access)


Sistema multiprocesador con acceso uniforme a memoria. La memoria fsica es uniformemente compartida por todos los procesadores, esto quiere decir que todos los procesadores tienen el mismo tiempo de acceso a todas las palabras de la memoria. Cada procesador tiene supropia cach privada y tambin se comparten los perifricos. Los multiprocesadores son sistemas fuertemente acoplados (tightly-coupled), dado el alto grado de comparticin de los recursos (hardware o software) y el alto nivel de interaccin entre procesadores, lo que hace que un procesador dependa de lo que hace otro. El sistema de interconexin debe ser rpido y puede ser de uno de los siguientes tipos:

Bus comn Red crossbar Red multietapa Este modelo es conveniente para aplicaciones de propsito general y de tiempo compartido por varios usuarios. Existen varias categoras de sistemas UMA.

Sistema Simtrico
Cuando todos los procesadores tienen el mismo tiempo de acceso a todos los componentes del sistema (incluidos los perifricos), reciben el nombre de sistemas multiprocesador simtrico. Los procesadores tienen el mismo dominio (prioridad) sobre los perifricos y cada procesador tienen la misma capacidad para procesar.

Sistema Asimtrico
Los sistemas multiprocesador asimtrico, son sistemas con procesadores maestros y procesadores esclavos, en donde slo los primeros pueden ejecutar aplicaciones y dnde en tiempo de acceso para diferentes procesadores no es el mismo. Los procesadores esclavos (attached) ejecutan cdigo usuario bajo la supervisin del maestro, por lo tanto cuando una aplicacin es ejecutada en un procesador maestro dispondr de una cierta prioridad.

NUMA (Non Uniform Memory Access)


Un sistema multiprocesador NUMA es un sistema de memoria compartida donde el tiempo de acceso vara segn donde se encuentre localizado el acceso. El acceso a memoria, por tanto, no es uniforme para diferentes procesadores. Existen memorias locales asociadas a cada procesador y estos pueden acceder a datos de su memoria local de una manera ms rpida que a las memorias de otros procesadores, debido a que primero debe aceptarse dicho acceso por el procesador del que depende el mdulo de memoria local. Todas las memorias locales conforman la memoria global compartida y fsicamente distribuida y accesible por todos los procesadores.

Cluster Jerrquico
Otro modelo NUMA que nace como la mezcla del modelo UMA explicado anteriormente y el modelo NUMA anterior, es el cluster jerrquico en el que se combinan las memorias locales y las globales obteniendo una cierta escalabilidad del sistema. Los procesadores aparecen distribuidos en clusters (1 sistema UMA o un 1 sistema NUMA). Estos clusters estn conectados a la memoria global compartida. El sistema en su totalidad es un sistema NUMA, ya que el acceso a memoria es no uniforme por parte de los clusters. La ventaja de estos sistemas con respecto a los sistemas UMA, es que el acceso a memoria local es mucho ms rpido.

COMA (Cache Only Memory Access)


Los sistemas COMA son un caso especial de los sistemas NUMA. Este tipo de sistemas no ha tenido mucha transcendencia, al igual que los sistemas SIMD. Las memorias distribuidas son memorias cachs, por este motivo es un sistema muy restringido en cuanto a la capacidad de memoria global. No hay jerarqua de memoria en cada mdulo procesador. Todas las cachs forman un mismo espacio global de direcciones. El acceso a las cachs remotas se realiza a travs de los directorios distribuidos de las cachs. Dependiendo de la red de interconexin utilizada, se pueden utilizar jerarquas en los directorios para ayudar a la localizacin de copias de bloques de cach.

Multicomputadores
Los sistemas multicomputadores se pueden ver como un computador paralelo en el cual cada procesador tiene su propia memoria local. En estos sistemas la memoria se encuentra distribuida y no compartida como en los sistemas multiprocesador. Los computadores se

comunican a travs de paso de mensajes, ya que stos slo tienen acceso directo a su memoria local y no al las memorias del resto de procesadores. El diagrama de bloques de un sistema multicomputador coincide con el visto para los sistemas UMA, la diferencia viene dada porque la red de interconexin no permite un acceso directo entre memorias, sino que la comunicacin se realiza por paso de mensajes. La transferencia de los datos se realiza a travs de la red de interconexin que conecta un suconjunto de procesadores con otro subconjunto. La transferencia de unos procesadores a otros se realiza por tanto por mltiples transferencias entre procesadores conectados dependiendo del establecimiento de dicha red. Dado que la memoria est distribuida entre los diferentes elementos de proceso, estos sistemas reciben el nombre de distribuidos. Por otra parte, estos sistemas son dbilmente acoplados, ya que los mdulos funcionan de forma casi independiente unos de otros. 3 1

SISD, SIMD, MISD, MIMD En 1972 Michael Flynn, profesor de ingeniera elctrica en la de la Universidad de Stanford, public un documento en donde escogi dos caractersticas de las computadoras y prob con las 4 combinaciones posibles. Dos estaban en la mente de todos, y las otras no. Esta taxonoma es ampliamente conocida y aceptada. Describe las computadoras por como los flujos de instrucciones interactan con los flujos de informacin. Esta clasificacin es:
Nmero de Flujos de Informacin Uno Mltiples Nmero de solo Flujos de Uno solo SISD SIMD Instrucciones. Mltiples MISD MIMD

[notacin] S=single, M=multiple, I=instruction, D=data. SISD (Single Instruction, Single Data) Se refiere a las computadoras convencionales de Von Neuman. Ejemplo: PCs. En la categora SISD estn la gran mayora de las computadoras existentes. Son equipos con un solo procesador que trabaja sobre un solo dato a la vez. A estos equipos se les llama tambin computadoras secuenciales.

SIMD (Single Instruction, Multiple Data) Arreglo de procesadores. Cada procesador sigue el mismo conjunto de instrucciones; diferentes elementos de informacin son asignados a cada procesador. Utilizan memoria distribuida. Tpicamente tienen miles procesadores simples. Son utilizadas en redes neuronales. Las computadoras SIMD tienen una sola unidad de control y mltiples unidades funcionales. La unidad de control se encarga de enviar la misma instruccin a todas las unidades funcionales. Cada unidad funcional trabaja sobre datos diferentes. Estos equipos son de propsito especfico, es decir, son apropiados para ciertas aplicaciones particulares, como por ejemplo el procesamiento de imgenes. Existe controversia acerca de si realmente existen equipos de tipo MISD. Hay quienes argumentan que estos equipos no existen. Otras personas consideran que un grupo de equipos que trabaja sobre un solo dato se puede considerar como un sistema de tipo MISD. Un ejemplo sera un conjunto de equipos que trata de factorizar un nmero primo muy grande utilizando diferentes algoritmos. Ejemplos: o Thinking Machines CM-2

o MassPar computers o Procesador MMX MIMD (Multiple Instruction, Multiple Data) Mltiples computadoras y multiprocesadores. Las piezas de cdigo distribuidas entre los procesadores. Los procesadores pueden ejecutar la misma o instruccin o diferentes instrucciones. Se puede decir que MIMD es un super conjunto de SIMD. Diferentes elementos de informacin se asignan a diferentes procesadores. Pueden tener memoria distribuida o compartida. Cada procesador MIMD corre casi independientemente de los otros. Las computadoras MIMD pueden ser utilizadas en aplicaciones con informacin en paralelo o con tareas en paralelo. En la categora MIMD estn los equipos con varios procesadores completos. Cada procesador tiene su propia unidad de control y su propia unidad funcional. Esta categora incluye varios subgrupos: Equipos de memoria compartida, equipos de memoria distribuida y redes de computadores. Los equipos MIMD son de propsito general. Ejemplos:

o SGI/Cray Power Challenge Array o SGI/Cray Origin-2000 o HP/Convex SPP-2000 MISD (Multiple Instruction, Single Data) No son usadas, y no son significativas. Pipeline Una pipeline es una serie de mdulos que son capaces de ejecutar fases de instrucciones, si un procesador tiene dos pipelines puede ejecutar dos instrucciones en una sola fase en un momento dado, duplicando (otra vez en teora) el rendimiento. En cada una de estas pipelines, se lanzan cada uno de los dos flujos resultados de efectuar o no el salto. Al cabo de un momento, cuando ya se sabe el resultado, se anula el pipeline errneo y el otro contina como si nada. Tightly coupled El Multiprocesamiento simtrico (symmetric multiprocessing / SMP) tiene un diseo simple pero an as efectivo. En SMP, multiples procesadores comparten la memoria RAM y el bus del sistema. Este diseo es tambin conocido como estrechamente acoplado (tightly coupled), o todo compartido (shared everything).

D E F I N I C I O N.- El multiprocesamiento simtrico (SMP) es una arquitectura computacional paralela en la cual los procesadores mltiples hacen funcionar una sola copia del sistema operativo y comparten la memoria con otros recursos de una computadora. Todos los procesadores tienen el mismo acceso a la memoria, entradas y salidas e interrupciones externas. El multiprocesamiento simtrico, es un tipo de computacin que utiliza ms de un solo procesador, que descansa en uno solo al final de un funcionamiento continuo desde una lengeta giratoria de Arquitectura de Memoria Inmediata Coherente no Uniforme (ccNUMA) hacia unos sistemas de procesamiento paralelo menos ajustados y masivamente conectados que se dirigen a sistemas distribuidos tales como Beowulfs, los cuales son grupos de acomodamiento de PCs off-the-shelf los cuales estn interconectados con una tecnologa como Ethernet y que corren programas escritos para procesamientos paralelos. Irnicamente tanto la fuerza (velocidad) y la debilidad (carecen de escalabilidad) del multiprocesamiento simtrico llegan de la caracterstica ms relevante: memoria compartida. En ms de un lado, no hay necesidad de pasar mensajes, y pocas veces existen apariciones de memoria desigual, permitiendo a los sistemas de multiprocesamiento simtrico

comunicarse y sincronizarse ms rpidamente que otros sistemas de procesamiento paralelo. Note que es poco frecuente que en el cualificador haya recursos que no sean compartidos. En la mayora de los sistemas de multiprocesamiento, cada procesador tiene su propia memoria inmediata Este es un esttica RAM ms cara que es requerida porque el principal acceso RAM dinmico es demasiado lento para mantenerse con la velocidad de los procesadores. Esto, an cuando, conlleva a un problema de coherencia inmediata cuando un procesador de multiprocesamiento simtrico (SMP) necesita para tener acceso a una direccin que puede estar almacenado en otra memoria inmediata del procesador. El problema es resuelto en el hardware. El direccionamiento deseado viene desde otra memoria inmediata del procesador, ms que desde la memoria principal y el valor en la memoria inmediata original es invalidado. Aunque esta solucin es rpida, todava se genera ms gastos generales que en un sistema de procesador nico, el cual es una razn que los sistemas de multiprocesamiento simtrico (SMP) puestos directamente no es proporcionalmente ms grandes que los sistemas de procesador nico. Esto es, la postura directa de dos procesadores es menos que dos veces la puesta directa de un procesador

nico y la puesta de cuatro procesadores es menos de dos veces que la de dos procesadores. Para un nmero limitado de procesadores, el multiprocesamiento simtrico (SMP) todava golpea los gastos generales requeridos por otras arquitecturas paralelas, haciendo que se requiera un alto grado de cooperacin para las aplicaciones front-runner. La memoria compartida tambin tiene un impacto en la codificacin. Mientras que no haya la necesidad de pasar datos entre procesadores, es necesario evitar condiciones contrarias, las cuales el procesador resiste para tener acceso y transcribe los valores de datos que sobrescriben el trabajo de otros procesadores. Existe un limite de cmo varios procesadores de multiprocesamiento simtrico (SMP) pueden compartir el sistema operativo y los recursos de una computadora antes que la memoria y que la contienda del conductor imponga una ley de retornos decrecientes: Los lmites superiores de sistemas de multiprocesamiento simtrico (SMP) para computadoras de mesa de uso normal que parecen ser cerca de ocho procesadores. Los sistemas de multiprocesamiento simtrico High-end y los sistemas de multiprocesamiento simtrico como los ccNUMA son ms escalables. Esencialmente, los sistemas ccNUMA son sistemas de multiprocesamiento

simtrico SMP que son rotos dentro de los dominios de la memoria, con alguna memoria menos local que la de un multiprocesamiento simtrico puro. Para aplicaciones que no estn conectadas estrechamente y caen en forma natural dentro de los dominios, puede que sea lo perfecto. Los sistemas ccNUMA Higher-end han sido hechos para escalar tanto como 64 nodos, con 128 procesadores. Sin embargo los sistemas de multiprocesamiento simtrico (SMP) no resisten los defectos. Si la operacin de un procesador disminuye la coherencia de la memoria inmediata no est garantizada por mucho tiempo para el sistema operativo y la aplicacin para el usuario. Es probable que los sistemas y las variables del usuario sean dejados en un estado sin resolver. Puede ser que haya apuntadores con valores que no tengan significado. En definitiva, uno de los nodos restantes es probable que tenga acceso a algo que causar una interrupcin. Una combinacin de un sistema operativo, una tarjeta madre y procesadores debe estar configurada para funcionar los multiprocesamientos simtricos. En cuanto a software, el multiprocesamiento simtrico es soportado por las diversas variedades de Unix, Linux2.0 hacia delante, Sistema Operativo 9 de Mac, Sistema Operativo 2 Servidor Warp , Windows NT y Windows 2000 . No tiene soporte para MS-DOS, Windows 95

Windows 98. Las aplicaciones enlazadas pueden tomar ventaja de los multiprocesamiento simtricos que se incluyen en BackOffice Suites, de Microsoft Corp., Lotus Notes y los administradores de bases de datos SQL de Oracle, Sybase Inc. e Informix Corp. Del lado del hardware, el multiprocesamiento simtrico puede ser implementado en arquitecturas Ultra SPARC, SPARCserver y PowerPC, y tambin por todo los circuitos integrados Intel, incluyendo desde los procesadores 486s hacia arriba. Porque Intel es propietario de los estndares del Controlador de Interrupcin Programables (APIC) stos pueden ser utilizados para los multiprocesamiento simtricos (SMP), en cambio otros distribuidores de unidades centrales de procesamiento (CPU) que no pueden usarlo incluyen a la empresa Via Technologies la cual est ubicada en Taipei Taiwn, y la empresa Advanced Micro Devices Inc. la cual esta ubicada en Sunnyvale, California. En vez de esto, ellos se prestan soporte con el estndar sin patente OpenPIC para los procesadores Cyrix 6x86 de la empresa Via Technologies y los procesadores k6 de la empresa AMD. Lightly coupled ( Procesamiento masivamente paralelo MPP) Los sistemas MPP no comparten recursos, stos estn constituidos por un conjunto de nodos interconectados en modo "loosely coupled"

(interconexin dbil). Cada nodo posee la potencia computacional de un computador completo: procesador, memoria, entradas/salidas de disco y red (Figura 3). Los diferentes nodos se interconectan mediante un mecanismo de intercambio de mensajes. Sobre cada nodo se ejecuta un micro-sistema operacional o micro-Kernel. Puesto que cada nodo es "autnomo", el nmero de mensajes es muy limitado (lo contrario de los SMP) y por ende los buses de interconexin no constituyen, en este esquema, cuellos de botella. De esta manera el nmero de nodos interconectados es en teora ilimitado, en la prctica, se habla de centenas de nodos (de procesadores). Esta nueva modalidad de multiprocesamiento es la piedra angular de los sistemas de ayuda a la decisin. La mquina OPUS (Open Parallel Unisys System) de Unisys, sin igual en el mercado, es un claro ejemplo de este nuevo tipo de computacin paralela. Su arquitectura permite incrementar el nmero de procesadores configurando as mquinas a la medida del problema que se desea resolver, sin que por ello se tengan cuellos de botella entre memoria y procesador o entre procesador y dispositivos de I/O, como suele ocurrir en los sistemas SMP. Los nodos trabajan conjuntamente para resolver queries complejos usuales de los DatawareHousings o de los contextos DSS. Todos los nodos son de propsito general. Un sistema as dimensionado tiene capacidad para soportar miles de usuarios y Terabytes de almacenamiento magntico. El sistema puede ser afinado segn las necesidades de la Empresa, por ejemplo, algunos nodos puede ser

dedicados a operaciones de bases de datos, mientras que otros son asignados a otras tareas especficas. Programacin vectorial Para mostrar los conceptos que se encuentran detrs de un procesador vectorial, vamos a presentar en primer lugar una breve muestra de cmo programar operaciones vectoriales sobre cdigos FORTRAN. Un vector v, es una lista de elementos de la forma: v = (v1, v2, v3,..., vn)T La longitud del vector se define como el nmero de elementos en el vector, de forma que la longitud del vector v que acabamos de presentar es n. Cuando queremos representar un vector en un programa, se declara el vector como una matriz de una nica dimensin. En FORTRAN, declararamos el vector v mediante la expresin: DIMENSION V (N) En donde N es una variable entera que almacena el valor de la longitud del vector. Dos vectores se pueden sumar simplemente sumando cada una de sus componentes, es decir: s = x + y = (x1+ y1, x2+ y2, . . . , xn+yn) En FORTRAN, la suma de vectores se puede realizar utilizando el siguiente cdigo: DO I=1, N S (I) = X(I) + Y (I)

ENDDO Donde s es el vector en el que se almacena la suma final, y S, X, e Y han sido declarados como matrices de dimensin N. Elementos de la arquitectura vectorial Una computadora vectorial contiene un conjunto de unidades aritmticas especiales denominadas pipelines. Estas pipelines superponen la ejecucin de las diferentes partes de una operacin aritmtica sobre los elementos del vector, produciendo una ejecucin ms eficiente de la operacin aritmtica que se est realizando. En muchos aspectos, una pipeline es similar a una cadena de montaje de una fbrica de coches, en la que los distintos pasos de la fase de montaje de un automvil, por ejemplo, se realizan en distintas etapas de la cadena. Consideremos, por ejemplo, los pasos o etapas necesarias para realizar una suma en punto flotante en una mquina con hardware que emplee aritmtica IEEE. Los pasos para realizar la operacin s = x + y son: 1. Se comparan los exponentes de los dos nmeros en punto flotante que se quieren sumar para encontrar cul es el nmero de menor magnitud. 2. El punto decimal del nmero con menor magnitud se desplaza de forma que los exponentes de los dos nmeros coincidan. 3. Se suman los dos nmeros. 4. Se normaliza el resultado de la suma.

5. Se realizan los chequeos necesarios para comprobar si se ha producido algn tipo de excepcin en punto flotante durante la suma, como un overflow. 6. Se realiza el redondeo. Registros vectoriales Algunas computadoras vectoriales, como el Cray Y-MP, contienen registros vectoriales. Un registro de propsito general o un registro de punto flotante contiene un nico valor. Sin embargo, los registros vectoriales contienen en su interior muchos elementos de un vector al mismo tiempo. Por ejemplo, los registros vectoriales del Cray Y-MP contienen 64 elementos, mientras que los del Cray C90 contienen 128 elementos. Los contenidos de estos registros pueden ser enviados a (o recibidos por) una pipeline vectorial a razn de un elemento por paso temporal.. Registros escalares Los registros escalares se comportan de la misma forma que los registros de punto flotante, conteniendo un nico valor. Sin embargo, estos registros se configuran de tal forma que pueden ser utilizados por una pipeline vectorial. En este caso, el valor del registro se lee una vez cada t unidades de tiempo y se introduce en el pipeline, de la misma forma que cada elemento de un vector se introduce en cada paso en la pipeline vectorial. Esto permite que los elementos de un vector puedan realizar operaciones con elementos escalares. Por ejemplo, para calcular el resultado de la operacin y = 2.5x, el valor 2.5 se almacena en un registro escalar y se introduce en la pipeline de

multiplicacin cada t unidades de tiempo para ser multiplicado por cada uno de los elementos de x y as obtener el resultado en el vector y. Operaciones de dispersin y agrupamiento Algunas veces slo son necesarios algunos de los elementos de un vector para realizar un clculo. La mayora de los procesadores vectoriales estn equipados para poder recoger los elementos necesarios de un vector (una operacin de recogida) y colocarlos juntos en un vector o en un registro vectorial. Si los elementos que se utilizan presentan un patrn de espaciado regular, el espaciado entre los elementos que se van a recoger se denomina desplazamiento o stride. Por ejemplo, si se quieren extraer los elementos: x1,x5,x9,x13 ,..., x4(n-1)+1 del vector (x1, x2, x3, x4, x5, x6,...,xn) para realizar algn tipo de operacin vectorial, se dice entonces que el desplazamiento es igual a 4. Una operacin de dispersin reformatea el vector resultante para que los elementos se encuentren espaciados correctamente. Las operaciones de dispersin y recogida tambin se pueden utilizar con datos que no se encuentran regularmente espaciados. Procesadores vectoriales de registro vectorial Si un procesador vectorial posee registros vectoriales, los elementos del vector que se van a procesar se cargan desde la memoria

directamente en el registro vectorial utilizando una operacin de carga vectorial. El vector que se obtiene a partir de una operacin vectorial se introduce en un registro vectorial antes de que se pueda almacenar de nuevo en la memoria mediante una operacin de almacenamiento vectorial. Esto permite que se pueda utilizar en otra operacin sin necesidad de volver a leer el vector, y tambin permite que el almacenamiento se pueda solapar con otro tipo de operaciones. En este tipo de computadoras, todas las operaciones aritmticas lgicas vectoriales son operaciones registro a registro, es decir, slo se realizan operaciones vectoriales sobre vectores que ya se encuentran almacenados en los registros vectoriales. Por este motivo, a estas computadoras se les conoce como procesadores vectoriales de registro vectorial. La figura 3 muestra la arquitectura de registros y pipelines de una computadora vectorial de registro vectorial. El nmero de etapas de cada pipeline se muestra entre parntesis dentro de cada pipeline. Procesadores vectoriales memoria a memoria Otro tipo de procesadores vectoriales permite que las operaciones realizadas con vectores se alimenten directamente de datos procedentes de la memoria hasta los pipelines vectoriales y que los resultados se escriban directamente en la memoria. Este tipo de procesadores se conocen con el nombre de procesadores vectoriales memoria a memoria. Dado que los elementos del vector necesitan venir de la memoria en lugar de proceder de un registro, se requiere ms tiempo para conseguir que la operacin vectorial comience a realizarse. Esto es debido en parte al coste del acceso a la memoria. Un ejemplo de

procesador vectorial memoria a memoria era el CDC Cyber 205. Debido a la capacidad de superponer el acceso a la memoria y la posible reutilizacin de los vectores ya utilizados, los procesadores vectoriales de registro vectorial suelen ser ms eficientes que los procesadores vectoriales memoria a memoria. Sin embargo, a medida que la longitud de los vectores utilizados para un clculo se incrementa, esta diferencia en el rendimiento entre los dos tipos de arquitecturas tiende a desaparecer. De hecho, los procesadores vectoriales memoria a memoria pueden llegar a ser ms eficientes si la longitud de los vectores es lo suficientemente grande. Sin embargo, la experiencia ha demostrado que la longitud de los vectores suele ser mucho ms corta de la necesaria para que esta situacin llegue a producirse. Bancos de memoria entrelazados Para permitir un acceso ms rpido a los elementos vectoriales que se encuentran almacenados en la memoria, las memorias de los procesadores vectoriales se suelen dividir en bancos de memoria. Los bancos de memoria entrelazados asocian de forma sucesiva las direcciones de memoria con bancos sucesivos de forma cclica. De esta forma, la palabra 0 se almacena en el banco 0, la palabra 1 se almacena en el banco 1, ..., la palabra n-1 se almacena en el banco n-1, la palabra n en el banco 0, la palabra n+1 en el banco 1,..., etc., en donde n es el nmero de bancos de memoria. Como sucede con muchas otras caractersticas de arquitectura de computadoras, n es normalmente una potencia de 2: n= 2k, donde k = 1, 2, 3 4.

Un acceso a memoria (carga o almacenamiento) de un valor de datos en un banco necesita varios ciclos de reloj para llegar a completarse. Cada banco de memoria permite slo que se lea o almacene un valor de los datos por cada acceso a memoria, mientras que se puede acceder a varios bancos de memoria de forma simultnea. Cuando los elementos de un vector que se almacena en una memoria entrelazada se trasladan al registro vectorial, las lecturas se reparten entre los bancos de memoria, de forma que un elemento vectorial es ledo en cada banco por cada ciclo de reloj. Si un acceso a memoria precisa de n ciclos de reloj, entonces n elementos de un vector pueden ser ledos con el mismo coste del que sera necesario para un nico acceso a memoria. Este procedimientos es n veces ms rpido que el necesario para realizar el mismo nmero de accesos a memoria sobre un nico banco. Proceso masivo en paralelo (Neurocomputacin ) Proceso masivo en paralelo mediante redes neuronales artificiales. Permiten resolver problemas de forma adaptativa y no algortmica. Adecuado para la resolucin de problemas no estructurados: reconocimiento de voz, de patrones, correccin de errores, etc. Comienzan a aparecer neurocomputadores con coprocesadores asociados a ordenadores personales y estaciones de trabajo. Tambin comienzan a estar disponibles lenguajes de alto nivel para la reconfiguracin y redefinicin de las redes neuronales. Clustering Clustering es el proceso de agrupar datos en clases o clusters de tal forma que los objetos de un cluster tengan una similaridad

alta entre ellos, y baja (sean muy diferentes) con objetos de otros clusters. La medida de similaridad est basada en los atributos que describen a los objetos. Los grupos pueden ser exclusivos, con traslapes, probabilsticos, jerrquicos. Clustering puede ser aplicado, por ejemplo, para caracterizar clientes, formar taxonomas, clasificar documentos, etc. Retos: -Escalabilidad: normalmente corren con pocos datos. -Capacidad de manejar diferentes tipos de atributos: numricos (lo ms comn), binarios, nominales, ordinales, etc. -Clusters de formas arbitrarias: lo basados en distancias numricas tienden a encontrar cluster esfricos. -Requerimientos mnimos para especificar parmetros, como el nmero de clusters. -Manejo de ruido: muchos son sensibles a datos erroneos. -Independiendentes del orden de los datos. -Poder funcionar eficientemente con alta dimensionalidad. -Capacidad de aadir restricciones.

-Que los clusters interpretables y utilizables. -La medida de similaridad se define usualmente por proximidad en un espacio multidimensional. -Para datos numricos, usualmente se pasa primero por un proceso de estandarizacin. Ethernet Arquitectura Ethernet A finales de 1960, la universidad de hawai desarroll una red de rea amplia(WAN, Red que se extiende a travs de un rea geogrfica mayor a una LAN). La universidad necesitaba conectar varias computadora que estaban esparcidas a travs de su campus. La pieza principal en el diseo de la red fue llamado Carrier-Sense Multiple Access with Collision Detection (CSMA/CD). Carrier-Sense significa que la computadora escucha el cable de la red y espera hasta un periodo de silencio para poder mandar su mensaje. Multiple Access se refiere a que mltiples computadoras pueden estar conectadas en el mismo cable de red. Collision Detection es una proteccin contra mensajes chocando en el transito. Este temprano diseo de red fue la fundacin de lo que hoy es Ethernet. En 1972, Xerox Corporation cre el experimental Ethernet, y en 1975 introdujo el primer producto Ethernet. La versin original de este producto de red fue diseado como un sistema de 2.94mbps(Megabits por segundos) conectando hasta 100 computadoras en un cable de un kilometro.

El Ethernet de Xerox fue tan existoso que Xerox, Intel y Digital crearon un standard para Ethernet de 10mbps. Este diseo fue la base de la especificacin IEEE 802.3. El producto Ethernet se apega en la mayoria de las partes del standard 802.3. El CSMA/CD funciona de la siguiente manera: cuando una computadora desea mandar informacin primero escucha el cable de la red para revisar que no se este usando en ese precioso momento (Carrier-Sense). Esto se oye muy sencillo, pero el problema reside en que dos o mas computadoras al escuchar que no se esta usando el cable pueden mandar el exacto mismo momento su informacin (Multiple Access), y como solamente puede haber uno y slo un mensaje en trnsito en el cable se produce una colisin. Entonces las computadoras detectan la colisin y deciden reenviar su informacin a un intervalo al azar, es importante que sea al azar ya que si ambas computadoras tuvieran el mismo intervalo fijo se producira un ciclo vicioso de colisiones y reenvos (Collision Detection). Asi por ejemplo al detectar la colisin una computadora se espera tres milisegundos y la otra cinco milisegundos, siendo obvio que una computadora reenviara en primer lugar y la otra esperar a que el cable este de nuevo sin trnsito. Evidentemente que en una misma red Ethernet al haber muchas computadoras tratando de enviar datos al mismo tiempo y/o al haber una transferencia masiva de datos se crea un gran porcentaje de colisiones y utilizacin. Si se pasa del 1% de colisiones y/o 15% de utilizacin de cable ya se dice que la red est saturada. Adems, las seales de este tipo de red tienden a degradarse con la distancia debido a la resistencia, la

capacidad u otros factores. Inclusive la seal todavia se puede distorsionar por las interferencias elctricas exteriores generadas por los motores, las luces fluorecentes y otros dispositivos elctricos. Cuanto ms se aumenta la velocidad de transmisin de los datos. Ms susceptible es la seal a degradarse. Por esta razn las normas de Ethernet especifican los tipos de cables, los protectores y las distancias del mismo, la velocidad de transmisin y otros detalles para trabajar y proporcionar un servicio relativamente libre de errores en la mayora de los entornos. Las redes Ethernet pueden utilizar diferentes tipos de cableado, cada uno con sus beneficios y problemas. Los tres cableados ms comunes son Thinnet, Thicknet, y Twisted Pair (Par trenzado). Thinnet 10Base2 puede transmitir datos a 10mbps por Banda Base(seales digitales), pudiendo llegar el cableado hasta 185 metros. Se utiliza cable coaxial RG-58 el cual es bastante barato por lo que a esta red tambin se le conoce como CheapNet. Un mismo segmento de cable puede soportar hasta 30 computadoras. Es el ms utilizado y recomendado para redes pequeas. Utiliza la topologia local bus, donde un mismo cable recorre todas y cada una de las computadoras. Thicknet 10Base5 transmite datos a 10mbps por Banda Base en un cableado que puede alcanzar 500 metros. El cableado es grueso y es utilizado principalmente para largas oficinas o hasta todas las computadoras de un edificio. Del cable principal (backbone) salen cables usualmente Par Trenzado que se conectan a directamente a cada una de las computadoras. Se pueden conectar hasta 100

computadoras con este cableado en un mismo segmento. Twisted Pair 10BaseT transmite datos a 10mbps por Banda Base y utiliza un Hub (concentrador)desde el cual con cable Par Trenzado se conecta cada una de las computadoras quedando en forma similar a estrella. El Hub queda en el centro de la estrella y funciona como "repetidor". El cable desde el Hub hasta la computadora no debe de medir ms de 100 metros. Topologas Se disean redes Ethernet tpicamente en dos configuraciones generales o topologas: "bus" y "estrella". Estas dos topologas definen cmo se conectan entre s los "nodos". Un nodo es un dispositivo activo conectado a la red, como una computadora o una impresora. Un nodo tambin puede ser dispositivo o equipo de la red como un concentrador, conmutador o un router. Una topologa de bus consiste en que los nodos se unen en serie con cada nodo conectado a un cable largo o bus. Muchos nodos pueden conectarse en el bus y pueden empezar la comunicacin con el resto de los nodos en ese segmento del cable. Una rotura en cualquier parte del cable causar, normalmente, que el segmento entero pase a ser inoperable hasta que la rotura sea reparada.

Вам также может понравиться