¿Para qué nos sirve?
- La programación paralela nos sirve para ejecutar varias tareas de forma simultanea.
- Se rige bajo el principio de que problemas grandes se pueden dividir en unos más pequeños, para ser resueltos simultáneamente.
- Existen los siguientes tipos de paralelismo: a nivel de bit, instrucción, datos y tareas.
Conceptos importantes:
- Proceso: Proporciona los recursos necesarios para ejecutar un programa, se inicia con un código único de identificación y ocupa un espacio en memoria virtual, requiere al menos un hilo para ejecutarse.
- Hilos (Threads): Entidad dentro de un proceso que realmente ejecuta código. Todos los hilos comparten los recursos y memoria virtual del proceso donde se ejecutan.
- A mayor cantidad de hilos, mayor uso de CPU, ya que el sistema operativo sede el recurso basado en el número de hilos.
- Las aplicaciones .NET usan al menos dos hilos para ejecutarse, uno para ejecutar su código y otro para el Collector.
- Cuando un proceso tiene muchos hilos consume mucho más tiempo de CPU que los demás y funciona bastante rápido, pero los demás procesos deben esperar más.
Multithreading v.s paralelismo
- Multithreading Permite manejar varios hilos en una aplicación.
- Permite realizar tareas asíncronas, pero usa un solo core del procesador.
- Es complejo para controlar, difícil de depurar y no permite acceso a UI.
- Paralelismo Permite implementar multithreading usando varios core del procesador.
- Permite un fácil manejo y buena depuración.
- Permite acceso a UI.
- Permite especificar cuantos core del procesador usar para un tarea en especifico.
¿Qué nos ofrece .NET Framework para trabajar paralelismo?
- PLinq: Consultas Linq to Objects con paralelismo.
- Data Parallel: Paralelismo con bucles.
- Task: Agrupa instrucciones para ser ejecutas en paralelo.
- Concurrent: Maneja sincronización en colecciones.
- Depuración: Permite depurar diferentes hilos ejecutándose en paralelo.
Esto es una breve introducción a la programación paralela, en próximos artículos veremos como implementar paralelismo en .NET, espero les sea de utilidad.
Este comentario ha sido eliminado por el autor.
ResponderEliminarmejor dicho.. muy agradecido.. ;)
ResponderEliminarSaludos Fernando, que bueno que te resultó de utilidad esta introducción a la programación paralela.
EliminarExcelente ;)
ResponderEliminarMuy bueno gracias por el aporte
ResponderEliminar