Desde hace unos años las CPUs
tienen ciertas limitaciones de hardware que hacen necesaria una
refrigeración especial. En este punto la carrera para reducir el tamaño
del silicio e incrementar la frecuencia del reloj ha terminado. En lugar
de gastar grandes cantidades de silicio en el CPU para algoritmos
avanzados que mejoren las instrucciones
pre-fetch, CPUs más pequeños y más simples son usados y hay espacio
para más de una CPU en una misma oblea de silicio. Tenemos la CPU
multi-núcleo que significa prácticamente varias CPUs en el mismo equipo.
Al principio, los núcleos de una CPU multi-núcleo eran más sencillos
que el de un solo núcleo. Estos núcleos también operan en una frecuencia
mucho más baja lo que significa que una aplicación diseñada para una
operación única de la tarea tendría un enorme impacto en el rendimiento
al pasar a un equipo nuevo, por primera vez.
La computación paralela se ha convertido en la corriente principal.
Empezamos con una larga serie de conferencias sobre la computación
paralela. Parecía que la gente quería saber sobre este tema, pero
sobrevino que la computación paralela asusto a la gente. Hay una enorme
brecha antes de que puedas llegar a ser un buen programador paralelo.
Así como lo es para la programación orientada a objetos. Esto significa
que los jefes de equipo y los arquitectos se encontraban en el mismo
nivel que los programadores principiantes.
Añade a esto el hecho de que hay grandes cantidades de código ya
escrito para una CPU de un solo núcleo y las ventajas que pueden
obtenerse después de que al
menos alguien lo re-escriban. Pero la más importante razón de peso para
rechazar la computación paralela fue que es más fácil y más barato
comprar otra máquina, que hacer el mejor de los núcleos del CPU. Esta
fue una realidad que impulso la computación de la nube (Cloud Computing).
- Computador paralelo: Capaz de ejecutar varias instrucciones simultáneamente.
- Computación Paralela: Uso de varios procesadores trabajando juntos para resolver una tarea común:
- Cada procesador trabaja en una porción del problema.
- Los procesos pueden intercambiar datos, a través de la direcciones de memoria compartidas o mediante una red de interconexión
- Programación Paralela: Considera aspectos conceptuales y las particularidades físicas de la computación paralela.
- Objetivo: Mejorar las prestaciones mediante un buen aprovechamiento de la ejecución simultánea
No hay comentarios:
Publicar un comentario