Computación paralela¶
Es una computación que permite realizar varios calculos al mismo tiempo
- Principio básico: Computación se puede dividir en varias computaciones más pequeñas que se pueden realizar al mismo tiempo
- Suposición: Contamos con hardware paralelo.
Diseño programas paralelos¶
- Hay mayor complejidad que en la computación secuencial, se requiere establecer rutinas para dividir las tareas de forma simultanea y posteriormente integrar los resultados
- Separar la computaciones que en algunas ocasiones no es posible
- Asegurar que los programas sean correctos: da el resultado esperado.
- Aceleración es la única razón por la cual utilizamos paralelización: objetivo es acelerar los cómputos de un programa
Paralelismo y concurrencia¶
- Programación en paralelo: Usa hardware en paralelo para ejecutar programas más rapidamente, la eficiencia es su principal preocupación en esto se enfoca el curso
- Programación concurrente: Puede o no puede realizar computaciones al mismo tiempo y su principal preocupación es la modularidad, capacidad de respuesta y mantenibilidad.
Tenemos diferentes niveles de granularidad
- Paralelismo a nivel de bits: Procesamiento de datos en paralelo en la CPU
- Paralelismo a nivel de instrucciones: Ejecución de instrucciones en diferentes flujos al mismo tiempo
- Paralelismo a nivel de tareas: Ejecución de flujos de instrucciones separadas en paralelo. nos enfocamos en este
| Concepto | Definición |
|---|---|
| Computación paralela | Realización de varios cálculos simultáneamente mediante división en computaciones más pequeñas ejecutadas en hardware paralelo |
| Diseño de programas paralelos | Mayor complejidad que secuencial, requiere división de tareas simultáneas e integración de resultados, con objetivo de aceleración |
| Paralelismo | Uso de hardware paralelo para ejecución más rápida, enfocado en eficiencia |
| Concurrencia | Puede o no ejecutar simultáneamente, enfocado en modularidad, capacidad de respuesta y mantenibilidad |
| Niveles de granularidad | |
| - Paralelismo a nivel de bits | Procesamiento paralelo de datos en CPU |
| - Paralelismo a nivel de instrucciones | Ejecución simultánea de instrucciones en diferentes flujos |
| - Paralelismo a nivel de tareas | Ejecución paralela de flujos de instrucciones separadas (enfoque principal) |