Hay muchos tipos de programación paralela y hay muchos tipos de hardware paralelo.
- Con múltiples núcleos, puede usar un modelo de subprocesos, o algún modelo de tarea que se puede implementar además de subprocesos o de varias maneras. Incluso puede escribir el código de paso del mensaje.
- Los subprocesos se asignan naturalmente a un procesador multinúcleo, pero los subprocesos existían mucho antes de que existiera el multinúcleo. En ese caso, el uso de hilos se conocía como concurrencia: múltiples tareas de ejecución que no tenían una relación obvia entre esto y antes. La concurrencia es algo natural en un sistema operativo; Con la existencia de máquinas paralelas, la concurrencia también podría realizarse como paralelismo.
- La programación paralela se puede realizar en múltiples núcleos o múltiples nodos conectados a través de una red. Si está programando para multinúcleo, vea el punto 1; La programación paralela para máquinas conectadas a la red probablemente usa MPI o una biblioteca como esa.