Está en la página 1de 3

1.1.

Selección del problema


El procesamiento paralelo es un tipo de procesamiento de la información, que permite que se
ejecuten varios procesos concurrentemente. El procesamiento paralelo puede ser de diferentes
tipos: i) Un tipo es ejecutar procesos independientes simultáneamente, los cuales son controlados
por el sistema operativo (usando tiempo compartido, multiprogramación y multiprocesamiento).
ii) Otro tipo es descomponer los programas en tareas (controladas por el sistema operativo, los
compiladores, los lenguajes de programación, etc.), algunas de las cuales pueden ser ejecutadas
en paralelo. iii) Finalmente, el último tipo se basa en usar técnicas de encauzamiento para
introducir paralelismo a nivel de instrucciones, lo que implica dividirlas en pasos sucesivos que
pueden ser ejecutados en paralelo, cada uno procesando datos diferentes. Es difícil determinar
qué resulta más natural, sí el procesamiento paralelo o el secuencial. Los enfoques paralelos
resultan una necesidad, dada la constante afirmación de que la velocidad máxima en
procesamiento secuencial se alcanzará prontamente, excepto que aparezcan avances en otras
áreas que definan nuevos mecanismos de procesamiento, los cuales pueden venir de nuevos
descubrimientos en áreas tales como computación AND, computación cuántica, etc. En los últimos
años, el uso extensivo del paralelismo ha estado ligada básicamente a los siguientes hechos:

La necesidad de mayor potencia de cálculo: independientemente de que la potencia


de los procesadores aumente, siempre habrá un límite que dependerá de la tecnología del
momento. Para aumentar la potencia de cálculo, además de los progresos tecnológicos
que permitan aumentar la velocidad de cálculo, se requieren nuevos paradigmas basados
en cálculo paralelo. Es decir, una manera de aumentar la velocidad de cálculo es usar
múltiples procesadores juntos. Así, un problema es dividido en partes, cada una de las
cuales es ejecutada en paralelo en diferentes procesadores. La programación para esta
forma de cálculo es conocida como programación paralela, y las plataformas
computacionales donde pueden ser ejecutadas estas aplicaciones son los sistemas
paralelos y distribuidos. La idea que se usa es que al tener n computadores se debería
tener n veces más poder de cálculo, lo que conllevaría a que el problema pudiera
resolverse en 1/n veces del tiempo requerido por el secuencial. Por supuesto, esto bajo
condiciones ideales que raramente se consiguen en la práctica. Sin embargo, mejoras
sustanciales pueden ser alcanzadas dependiendo del problema y la cantidad de
paralelismo presente en el mismo.

Una mejor relación costo/rendimiento: en el orden económico, es muy importante


tener máquinas con excelente relación costo/rendimiento. Normalmente, el mayor
poder de cálculo genera una explosión de costos que a veces lo hacen prohibitivo.
Una manera para lograr mayor poder de cálculo sin costos excesivos es hacer
cooperar muchos elementos de cálculo de bajo poder, y por consiguiente, de bajos
costos.

- Potencia expresiva de los modelos de procesamiento paralelo: muchos problemas


son más fáciles de modelar usando paradigmas paralelos, ya sea por la estructura que
se usa para su resolución o porque el problema es intrínsecamente paralelo. Es decir,
si desde el principio se puede pensar en los mecanismos paralelos/concurrentes para
resolver un problema, eso puede facilitar la implantación del modelo computacional.
Esto podría permitir obtener mejores soluciones para los problemas a resolver, en
tiempos razonables de ejecución. Así, este enfoque permite el surgimiento de
modelos de cálculos diferentes, a los modelos secuenciales. En pocas palabras,
además del procesamiento de paralelismo para mejorar los tiempos de ejecución se
agrega la ganancia conceptual, al poder resolver los problemas con nuevos métodos
de resolución hasta ahora imposibles de ejecutarse en máquinas secuenciales.

Así, la computación paralela está jugando un papel fundamental en el avance de todas


las ciencias, abriendo las puertas para explotar, más allá de las fronteras ya conocidas,
impresionantes poderes de cálculo que permiten modelos más realistas

1.2. Definición del problema

La necesidad de resolver problemas de manera eficiente y en el menor tiempo posible ha hecho


que se tengan que realizar mejoras en el poder computacional de los computadores.

La eficiencia de un computador depende directamente del tiempo requerido para ejecutar una
instrucción básica y del número de instrucciones básicas que pueden ser ejecutadas
concurrentemente. Esta eficiencia puede ser incrementada por avances en la arquitectura y por
avances tecnológicos. Una vez incorporados estos avances, mejorar la eficiencia de un procesador
implica reducir el tiempo de los ciclos: avances tecnológicos.

Una eficiencia cercana a 1 indica que se están aprovechando los p procesadores eficientemente. El
speedup y la eficiencia también se pueden analizar a poste- riori sobre una implementación
particular del algoritmo paralelo, en cuyo caso se mide el tiempo en segundos en lugar de
expresarlo en flops.

Para observar la gravedad del problema realizaremos la comparación de coste al ejecutar un


algoritmo secuencial versus uno paralelo.Para este procedimiento se utilizará un grafo euleriano
como ejemplo .

1.3. Justificación del problema


A menudo la computación paralela se aplica a algoritmos de cálculo intensivo, en cuyo caso el
objetivo principal suele ser acelerar el cálculo para obtener la respuesta en un tiempo inferior al
que se tendría con un algoritmo secuencial. En otras ocasiones, el objetivo es poder abordar
problemas de mayor dimen- sión, los cuales exceden la capacidad de memoria de un único
computador, pero sí son factibles con la memoria agregada al utilizar varios computadores a la
vez, como ocurre en un cluster de computadores. El análisis de costes (especialmente el coste
computacional, aunque también el coste de memoria) es muy importante para poder determinar
si un algoritmo paralelo será más o menos rápido y eficiente en comparación con su equivalente
secuencial.
Por desgracia un pensamiento distribuido no es algo que se enseñaba o se enseñe
comúnmente en las carreras de ingeniería en computación o desarrollo de software .Por lo
tanto, para muchos programadores el nuevo enfoque no parecía tan natural. Esta serie de
eventos ha creado la necesidad de explicar, argumentar y convencer a la industria y a las
instituciones educativas el valor de enseñar e implementar los nuevos paradigmas.
¿Por qué son útiles y por qué es importante desarrollar buenas prácticas y extender nuestros
conocimientos más allá de la programación secuencial?

Hay varias razones que hacen de los sistemas paralelos opciones viables y necesarias. Entre
otras los límites físicos que se están alcanzando con los procesadores de un solo núcleo.
El hardware eventualmente alcanzará varios límites. Uno de los que se vislumbra a mediano
plazo es la miniaturización. Surgen varios problemas de hacer los transistores –y por ende
microprocesadores– cada vez más pequeños. Primero se tiene el límite físico, los transistores
atómicos ya han sido creados y hacerlos más pequeños es una tarea que actualmente
parece imposible. Gracias a la miniaturización, se pueden incrementar los transistores en un
circuito integrado, pero también se necesita más energía para su funcionamiento. Mientras
más energía se utiliza, más es disipada como calor. Se acumula tanto calor en los procesadores
de alto desempeño que los sistemas de enfriamiento simples, que se encuentran en
computadoras comerciales, no son capaces de disiparlo. De ahí surge el segundo problema: la
necesidad insaciable de energía de los procesadores y sistemas de cómputo. La energía va
relacionada con el costo de un sistema. No forma parte del costo directo que se cubre con la
compra del equipo, pero sí es un costo indirecto.

Sin embargo, el costo de los electrónicos también se ve afectado. Un procesador de un solo


núcleo con un gran poder es considerablemente más caro que uno de dos núcleos, ya que el
proceso de miniaturización del procesador monolítico es considerablemente más sofisticado. El
gasto necesario para tener equipos de alto poder con un procesador monolítico vuelve inviable la
inversión, porque la ganancia que se obtiene por unidad monetaria es menor mientras más
poderoso es el microprocesador

También podría gustarte