¿Por qué los libros sobre programación concurrente siempre ignoran paralelismo de datos? [cerrado]

StackOverflow https://stackoverflow.com/questions/1854054

Pregunta

Ha habido un cambio significativo hacia la programación de datos en paralelo a través de sistemas como OpenCL y CUDA en los últimos años, y sin embargo, los libros publicados, incluso dentro de los últimos seis meses ni siquiera se menciona el tema de la programación de datos en paralelo.

No es adecuado para todos los problemas, pero parece que hay una brecha importante aquí que no se está abordando.

¿Fue útil?

Solución

En primer lugar, voy a señalar que la programación concurrente no es necesariamente sinónimo de programación paralela. Programación concurrente se trata de la construcción de aplicaciones de tareas débilmente acoplados. Por ejemplo, una ventana de diálogo podría tener interacciones con cada control implementado como una tarea independiente. la programación en paralelo, por el contrario, es explícitamente sobre la difusión de la solución de una tarea computacional en más de una sola pieza de hardware de ejecución, en esencia siempre por razones de rendimiento de algún tipo (nota: aunque poca RAM es una razón de rendimiento cuando la alternativa está intercambiando.

Por lo tanto, tengo que pedir a cambio: ¿Qué libros te refieres? ¿Son acerca de la programación concurrente (que tienen algunos de éstos, hay una gran cantidad de teoría interesante allí), o acerca de la programación en paralelo?

Si son en realidad acerca de la programación en paralelo, voy a hacer un par de observaciones:

  • CUDA es un objetivo que se mueve rápidamente, y ha sido desde su lanzamiento. Un libro escrito sobre él hoy sería un medio obsoleto en el momento en que lo hizo en la impresión.
  • estándar OpenCL fue lanzado hace poco menos de un año. implementaciones estables salieron en los últimos 8 meses o así. Simplemente no ha habido tiempo suficiente para conseguir un libro escrito sin embargo, por no hablar revisada y publicada.
  • OpenMP está cubierta en al menos algunos de los libros de texto de programación paralela que he utilizado. Hasta la versión 2 (v3 se acaba de publicar), que era esencialmente todo acerca de la programación paralela de datos.

Otros consejos

Creo que los que trabajan con la computación paralela académicamente hoy por lo general viene desde el campo de la computación clúster. Los procesadores gráficos de uso de OpenCL y CUDA, que más o menos sin darse cuenta han evolucionado en los procesadores de propósito general, junto con el desarrollo de los más avanzados gráficos de representación algoritmos.

Sin embargo, la gente gráficos y la gente de computación de alto rendimiento han sido "descubrir" el uno al otro desde hace algún tiempo, y mucho o investigaciones se están usando hace en las GPU de computación de propósito general.

"siempre" es un poco fuerte; hay recursos por ahí ( ejemplo ) que incluyen temas paralelismo de datos.

El clásico libro "La máquina de la conexión" por Hillis fue todo paralelismo de datos. Es uno de mis favoritos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top