¿Qué es la asignación de memoria paralela?

¿Qué es la asignación de memoria paralela?

Estoy tratando de entender qué es la asignación de memoria paralela.

Creo que entiendo qué es la "asignación de memoria", pero no entiendo el término "paralelo". ¿Quizás algo que ver con múltiples procesadores?

También tengo que implementar la asignación de memoria paralela en C. ¿Alguna recomendación sobre un buen sitio web/página para mirar?

Respuesta1

La asignación de memoria paralela aborda los problemas de asignación de memoria en una aplicación multiproceso que se ejecuta en una arquitectura de múltiples CPU. A diferencia de las arquitecturas de CPU única, hay que considerar los conflictos de uso compartido de memoria (bloqueos, invalidaciones de caché y demás). Por ejemplo, dos subprocesos que se ejecutan en diferentes CPU y acceden a la misma línea de caché una y otra vez pueden experimentar una dramática degradación del rendimiento porque la CPU no puede beneficiarse de su memoria caché local ya que otra CPU siempre la invalida.

Antes de profundizar demasiado escribiendo rutinas propias, recomendaría usar bibliotecas directas como hoard (verhttp://www.hoard.org/) ya que es una tarea bastante sofisticada probar la robustez de dichas rutinas debido a las muchas condiciones de carrera que pueden ocurrir.

EDITAR:

Puede consultar el siguiente documento:http://people.cs.umass.edu/~emery/pubs/berger-asplos2000.pdf- También trata sobre la implementación del tesoro, pero también vale la pena leerlo ya que explica en profundidad muchos temas relacionados.

información relacionada