Depende mucho de los datos y funciones que utiliza dentro de for y la máquina. Últimamente he estado jugando con parallel.for y parallel.foreach y descubrí que mis aplicaciones eran aún más lentas ... (en una máquina de 4 núcleos, probablemente si tienes un servidor de 24 núcleos es otra historia)
Creo que la gestión de los hilos implica demasiada sobrecarga ...
Incluso MS en su documentación (aquí hay un muy largo pdf en msdn al respecto http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=19222) admite que no hace que las aplicaciones se ejecuten más rápido. Tienes que intentarlo todo el tiempo, y si funciona, genial, y si no es mala suerte.
Deberías probar con el externo para y el interno, pero al menos en las aplicaciones que probé ninguno hizo la aplicación más rápido. Externo o interno no importaba mucho, solo estaba obteniendo los mismos tiempos de ejecución o incluso peor.
Tal vez si también usa colecciones concurrentes, obtiene un mejor rendimiento. Pero, de nuevo, sin intentarlo, no hay forma de saberlo.
EDIT:
simplemente me encontré con un buen enlace en MSDN que resultó ser muy útil (en mi caso) para mejorar el rendimiento Parallel.foreach http://msdn.microsoft.com/en-us/library/dd560853.aspx
Depende del número de núcleos, pero sospecho que no verá ninguna mejora. Pruébalo, sin embargo. – Ryan
http://guyellisrocks.com/coding/nested-parallel-foreach/ ... ¿Qué podemos decirle que una simple prueba de referencia no lo haría? –