¿Cuáles son las mejores opciones actuales para paralelizar una aplicación .NET intensiva en CPU?

votos
17

Esta es una pregunta abierta. ¿Qué enfoques debería considerar?

Publicado el 04/08/2008 a las 17:30
fuente por usuario
En otros idiomas...                            


5 respuestas

votos
8

Su primer paso es encontrar y comprender el paralelismo en su problema. Es realmente fácil escribir código de subprocesos múltiples que no funciona mejor que el código de subproceso único que reemplaza. "Patrones para programación en paralelo" (Amazon) es una excelente introducción a los conceptos clave.

Una vez que tenga un diseño funcional, comience a leer los artículos en el tema "Concurrencia" en los archivos de la Revista MSDN (enlace) , particularmente cualquier cosa escrita por Jeff Richter. Esos le darán las tuercas y tornillos en las construcciones de subprocesos específicas de Windows y .NET. (La sección multi-threading en "CLR via C # (Amazon) de Richter es corta, pero muy perspicaz, muy recomendable).

Respondida el 30/08/2008 a las 23:32
fuente por usuario

votos
6

Existen algunas extensiones paralelas a .NET que se encuentran actualmente en pruebas y están disponibles en el Centro de Desarrolladores de Computación Paralela de Microsoft . Tienen algunos elementos interesantes que esperarías como Foreach paralelo y una versión paralela de LINQ llamada PLINQ. Parte de la mejor información sobre las extensiones se encuentra en el Canal 9 .

Respondida el 04/08/2008 a las 17:41
fuente por usuario

votos
2

@Larsenal

Si desea sucursal fuera de .NET, ha habido mucha discusión sobre los Threading Building Blocks de Intel, que es una biblioteca paralela para C ++.

Respondida el 04/08/2008 a las 18:41
fuente por usuario

votos
2

Creo que también podríamos incluir enfoques no específicos de .NET para el procesamiento paralelo si se encuentran entre las mejores opciones a considerar.

Respondida el 04/08/2008 a las 18:32
fuente por usuario

votos
0

Hay muchas opciones y la mejor solución dependerá de la naturaleza del problema que está tratando de resolver. Si está tratando de resolver un problema embarazosamente paralelo , dividir y paralelizar las tareas será trivial. En ese caso, el desafío vendrá en la distribución y administración de los datos utilizados.

Algunas sugerencias serían:

Respondida el 30/08/2008 a las 23:46
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more