Los algoritmos paralelos pueden ejecutarse simultáneamente en múltiples unidades de procesamiento para resolver problemas complejos de manera más eficiente. Su diseño implica dividir los datos y tareas, coordinar la comunicación entre unidades, agrupar tareas pequeñas y asignar trabajos a procesadores. Figuras como William Gropp y Jakub Tarnawski han hecho contribuciones importantes al desarrollo de algoritmos paralelos para problemas como el emparejamiento y el viajante de comercio.