Ir al contenido principal

Resumen del paralelismo

 En este blog hablaré sobre una funcionalidad que me llamo la atención al escuchar de ella y como puede beneficiar en ciertas tareas, y depende de su uso se puede lograr avanzar bastante en la tecnología. 

Paralelismo

Funcionalidad que desarrolla el procesador para ejecutar variedad de actividades al mismo tiempo lo cual significa que puede encargarse de realizar varios cálculos simultáneamente. Utiliza el principio que se basa en separar problemas grandes en problemas pequeños, que son luego solucionados en paralelo.

Ventajas

  • Beneficie con velocidad a las compañías y diferentes instituciones.
  • Mejora los tiempos de producción para los nuevos productos y servicios.
  • Posee flexibilidad operacional
  • Tiene colaboración operacional

Desventajas

  • Es difícil encontrar un hardware y software que permitan brindar estas funcionalidades
  • Su uso tiene un costo alto
  • No tiene mucha disponibilidad
  • Necesita muchos ciclos de procesos o acceso a gran cantidad de información 

Tipos de Paralelismo 

  • Nivel de bit: Son basados en el tamaño de la palabra que es capaz de manejar el procesador, ejemplo: 8 bits,16bits, 32 bits y 64 bits. Mientras más grande sea el tamaño de la palabra menos instrucciones corre el procesador para poder desarrollar una funcionalidad.
  • Nivel de instrucción: Son los mecanismo que utilizan cada arquitectura, algunos de mecanismo que utilizan para el paralelismo son: Pipelining, Superscalar, renombramiento de registros, predicción de precedencia de memoria y ramificaciones del flujo y ejecución desordenada y especulativa.
  • Nivel de datos: Se concentra en la distribución de la información entre varios procesador, es conocido también como paralelismo a nivel de lazos.
  • Nivel de tareas: Es una característica que posee un programa el cual cálculos diferentes se pueden llegar a realizar en otro conjunto equivalente o de diferentes datos. 

Clasificación de los sistemas paralelos

  • SISD: simple construcción de una arquitectura sobre simple dato. (Ver ilustración 1)
Ilustración 1

  • SIMD: posee una técnica  flujos multiples en datos y uno de instrucciones. (Ver ilustración 2)
Ilustración 2

  • MISD: este sistema posee varios flujos de instrucciones y uno solo de datos. (Ver Ilustración 3)
Ilustración 3

  • MIMD: contienen una cantidad de procesadores que funciona independientemente, cualquiera de los procesadores tiene permitido correr diferentes instrucciones sobre distintos datos. (Ver Ilustración 4)
Ilustración 4

  • Reducción: Se ejecuta cuando se le demanda, una instrucción se ejecuta cuando otra necesite sus resultados. Son de la clase de flujos de datos.
  • Flujo de datos: funciona conducido por los datos, una instrucción es ejecutada cuando los operandos estén disponibles.
  • Flujo de control: funciona ejecutando las instrucciones según el orden en el que se obtiene en memoria.

Referencias




Comentarios

Entradas populares de este blog

Código BCD

¿Qué es código BCD? El código BCD (decimal codificado, en inglés Binary-Coded Decimal), es una representación de números decimales en el sistema binario, lo cual cada dígito decimal es una codificación con secuencia de 4 bits, con esta representación se puede ver la relación que existe entre un número decimal y ese número en codificación binaria. Este sistema de numeración es ponderado, lo cual quiere decir que cada posición de una secuencia de dígitos obtiene cierto valor.  Esta representación llega a utilizar 4 dígitos binarios para representar 0 al 9. Para poder el representar el equivalente se pone el valor 1 donde se ocupa y 0 donde no se ocupa, con 4 dígitos, se pueden representar 16 números (0000-1111), pero en el código BCD, sólo se usan diez de ellos, las 6 combinaciones que no se emplean (1010, 1011, 1100, 1101, 1110 y 1111) no son válidas en el código BCD.  (Ver imagen 1) Imagen 1: números decimales respresentados en BCD Ejemplo 1   En el ejemplo 1 se

Obtener el residuo: operación módulo en ensamblador

 Para este blog quisiera hablar de un algoritmo que encontré y me sirvió para la tarea que me habían dejado. El algoritmo que encontré saca el residuo que se obtiene de una división, osea hace la operación módulo. El residuo es algo que durante el colegio no le tome importancia y me sorprende la importancia que tiene en el ámbito de la programación. Un ejemplo donde se utiliza el residuo en la programación es cuando el programador quiere obtener el último dígito de algún número.  La operación de módulo encuentra el residuo que queda después  de aplicar una división. (Ejemplos en la ilustración 1) Ilustración 1. Ejemplo de divisiones que dejan residuo Muchos lenguajes para aplicar el módulo de dos números funciona simplemente utilizando el signo "%" en el medio de los dos números, otros ponen "mod" en medio de los dos números. Sin embargo en algunos tipos  de lenguajes ensamblador no existe una forma tan directa y fácil para obtener el residuo de una divisió

Sucesión de Fibonacci: código ensamblador

En este blog, me gustaría dar un resumen comprensible sobre una sucesión interesante e infinita, hablo de la sucesión de Fibonacci. Es fundamental llegar a programar esta sucesión cuando eres estudiante de ingeniería de computación, ya que es un buen ejercicio para cuando se esta aprendiendo recursividad. Funcionalidades recursivas fue, es y será siempre una herramienta primordial para la creación de programas. Imagen 1. Sucesión de Fibonacci, sitio web: gutl.jovenclub.cu/python-y-la-sucesion-de-fibonacci La sucesión de Fibonacci Primero que todo, esta aportación de la matemática de parte de Leonardo De Pisa   surge de un problema que propuso  Liber Abaci, lo cual el problema consistía en:  " ¿Cuántas parejas de conejos conseguiremos en un año si empezamos con una pareja de conejos que produce cada mes otra pareja que a su vez procrea a los dos meses de vida? " Entonces a partir de ese problema, la sucesión de Fibonacci consta de siempre sumar los dos últimos