Aquí podría ser tu PUBLICIDAD


¿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 Larsenal
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 11:32
fuente por usuario McKenzieG1


Aquí podría ser tu PUBLICIDAD


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 05:41
fuente por usuario John Downey

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 06:41
fuente por usuario John Downey

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 06:32
fuente por usuario Larsenal

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 11:46
fuente por usuario John Channing