Alocação de memória paralela lida com os problemas de alocação de memória em um aplicativo multi-thread executado em uma arquitetura multi-CPU. Em contraste com as arquiteturas de CPU única, é preciso considerar os 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 novamente podem sofrer uma dramática degradação de desempenho, porque a CPU não pode se beneficiar de sua memória cache local, já que é sempre invalidada por outra CPU.
Antes de aprofundar muito escrevendo rotinas próprias, eu recomendaria o uso de bibliotecas drop-in como o tesouro (veja link ) é uma tarefa bastante sofisticada testar essas rotinas quanto à robustez, devido às muitas condições de corrida que podem ocorrer.
EDITAR:
Você pode conferir o seguinte documento: link - É também sobre o tesouro implementação, mas também é digno de leitura, já que explica em profundidade muitas questões relacionadas.