Estou tentando entender o que é alocação de memória paralela.
Acho que entendo o que é 'alocação de memória', mas não entendo o termo 'paralelo'. Talvez algo a ver com vários processadores?
Também tenho que implementar a alocação de memória paralela em C. Alguma recomendação sobre um bom site/página para ver?
Responder1
A alocação de memória paralela trata dos problemas de alocação de memória em um aplicativo multithread executado em uma arquitetura multi-CPU. Em contraste com arquiteturas de CPU única, é preciso considerar conflitos de compartilhamento de memória (bloqueios, invalidações de cache e outros). Por exemplo, dois threads em execução em CPUs diferentes acessando a mesma linha de cache repetidamente podem sofrer uma degradação drástica de desempenho porque a CPU não pode se beneficiar de sua memória cache local, pois ela é sempre invalidada por outra CPU.
Antes de ir muito fundo escrevendo rotinas próprias, eu recomendo usar bibliotecas drop-in como hoard (vejahttp://www.hoard.org/), uma vez que é uma tarefa bastante sofisticada testar a robustez de tais rotinas devido às muitas condições de corrida que podem ocorrer.
EDITAR:
Você pode verificar o seguinte documento:http://people.cs.umass.edu/~emery/pubs/berger-asplos2000.pdf- É também sobre a implementação do tesouro, mas também é digno de leitura, pois explica em profundidade muitas questões relacionadas.