¿Cuál es el mejor marco de Python para el procesamiento en paralelo (procesamiento SMP y de clúster)?

La mayoría de las herramientas en esta página están bastante desactualizadas. (Hay algunos que no han sido tocados por más de 10 años)
La mejor herramienta para Python SMP es la biblioteca de multiprocesamiento incorporada (que es en mi humilde opinión por qué estas otras herramientas no ganaron tracción). Hay un envoltorio a su alrededor llamado joblib que también es bueno.
La mejor herramienta para usar Python en clúster (si no usa Hadoop y otras arquitecturas distribuidas similares) es primicia en Python puro (tiene un enlace en esta página). Hay herramientas comparativamente más nuevas basadas en C como blaze y versiones distribuidas de numpy que están por venir. El kit de herramientas Fortran Global Array también se puede usar con Python en un clúster.
Mientras tanto, la última tendencia en la comunidad Python no es distribuir tareas en clústeres, sino colocarlas en GPU de alto rendimiento (la mayoría de las supercomputadoras serán GPU en un futuro próximo). Hay muchas bibliotecas de Python para hacer frente a estas tareas, incluidos los enlaces a OpenCL y CUDA.

OpenMP a través de Cython y MPI de mpi4py funcionan bastante bien. El primero requiere que no use el GIL, por lo que no debe usar objetos Python, pero si está buscando un alto rendimiento, debe hacerlo de todos modos. Sin embargo, estas bibliotecas son principalmente adecuadas para aplicaciones numéricas, y no estoy seguro de qué tan bien se pueden usar en general. Además, pyCUDA también es bastante bueno para las GPU.