2010-03-17 9 views
17

Con el lanzamiento de Intel de un procesador Hexa-Core (6) para el escritorio, parece que ya no podemos esperar a que Microsoft haga que la programación de varios núcleos sea "fácil". Solo ordeno una copia del programa de concurrencia Joe Duffy en Windows. Sin embargo, parece un excelente lugar para comenzar. Espero que algunos de ustedes que se han dirigido a sistemas centrales múltiples/muchos me señalen algunos buenos recursos que han ayudado o que han ayudado en sus proyectos.Pautas de programación paralela para C#?


Has dado algunas buenas respuestas, pero déjame agregar a lo que quiero decir con "buenos recursos". El hecho de que tengamos 6,12 o 48 núcleos no significa que nuestras aplicaciones se beneficiarán al tratar de usarlas todas. Sigo escuchando que el paradigma de programación actual cambiará cuando tengamos una plétora de núcleos en nuestros sistemas.

Qué blogs/libros debería leer para comprender mejor los patrones y cuándo usarlos. ¿Hay algún buen podcast o webcast que pueda ayudar?


Éstos son algunos enlaces que he encontrado interesante:

de utilidad general:

Multi-Threading:

+0

Vamos a enviar borradores de los primeros dos capítulos del libro de p & p mencionados anteriormente en CodePlex junto con muestras la próxima semana. http://parallelpatterns.codeplex.com/ Nos gustaría recibir comentarios sobre lo que estamos haciendo, así que no dude en echar un vistazo. Gracias, Ade –

+0

@Ade: estoy seguro de que todos estamos esperando ansiosamente el próximo borrador y sin duda brindaremos sus comentarios. Gracias por mantenernos al dia. – VoidDweller

+0

Acabamos de publicar borradores del prefacio y los capítulos 1, 2 y 5 de Codeplex, http://parallelpatterns.codeplex.com/. Si tiene tiempo, nos gustaría escuchar sus comentarios. –

Respuesta

12

Estas son algunas de las opciones

  • F # tiene muy buen soporte para el código concurrente
  • Parallel LINQ y tareas en .NET 4 son abstracciones útiles.

Véase el pfxteam blog para obtener información adicional sobre las nuevas herramientas de programación paralela en .NET 4.

+0

Es difícil superar el blog pfxteam. ¿Conoces algún recurso específico de C# 3.0? – VoidDweller

+0

Iba a decir Joe Albahari y Jon Skeet, pero ya has puesto sus publicaciones en la pregunta :) –

8

Hay una series of articles por Reed Copsey que es muy completa y extensa. Comienza con los principios básicos de programación paralela y continúa con la forma de implementar soluciones utilizando la nueva Biblioteca de tareas paralelas en .NET4.

+0

Empecé a leer los artículos, esto parece lo que deberíamos estar pensando. – VoidDweller

+0

@rwwilden: Gracias por el enchufe. Solo quería agregar que todavía es un trabajo en progreso, con muchos más por venir. Acabo de empezar con el paralelismo de Tareas en este punto, aunque el paralelismo de datos está bastante borrado. –

4

Tenga en cuenta que, en medio de todo esto, no todas las aplicaciones que escriba se beneficiarán necesariamente de la programación paralela.Los sistemas operativos ya son capaces de lanzar diferentes procesos en diferentes núcleos, lo que significa que su aplicación de una sola hebra ya se beneficiará del hecho de que no tiene que compartir su núcleo con tantos otros hilos y procesos.

+0

Este es un punto excelente Spencer, y una gran parte de mi motivación para hacer la pregunta. He editado mi pregunta para reflejar esto. – VoidDweller

2

Estoy de acuerdo con Brian y rwwilden sobre el uso de la biblioteca de tareas en paralelo. Si bien TPL es la característica .NET 4, si tiene como objetivo 3.5, está disponible como parte de Reactive Extensions for .NET (Rx).

+0

Rx se ve muy convincente, me gusta que se puede usar con 3.5 sp1. Lo investigaré, me pregunto si se puede incluir con nuestras aplicaciones o si tiene que ser instalado. – VoidDweller

+0

Se puede combinar con su aplicación, pero consulte los términos de la licencia en vivo. –

+0

@Richard: Gracias por la información. – VoidDweller

Cuestiones relacionadas