Я пытаюсь понять, что такое параллельное выделение памяти.
Я думаю, что понимаю, что такое «выделение памяти», но не понимаю термин «параллельный». Возможно, это связано с несколькими процессорами?
Также мне нужно реализовать параллельное выделение памяти на языке C. Есть ли у вас рекомендации по хорошему веб-сайту/странице, на которые можно обратить внимание?
решение1
Параллельное распределение памяти решает проблемы распределения памяти в многопоточном приложении, работающем на архитектуре с несколькими ЦП. В отличие от архитектур с одним ЦП необходимо учитывать конфликты совместного использования памяти (блокировки, аннулирование кэша и т. д.). Например, два потока, работающие на разных ЦП, которые снова и снова обращаются к одной и той же строке кэша, могут столкнуться с резким падением производительности, поскольку ЦП не может извлечь выгоду из своей локальной кэш-памяти, поскольку она всегда аннулируется другим ЦП.
Прежде чем углубляться в написание собственных процедур, я бы рекомендовал использовать встроенные библиотеки, такие как hoard (см.http://www.hoard.org/), поскольку проверка таких процедур на надежность является довольно сложной задачей из-за множества возможных условий гонки.
РЕДАКТИРОВАТЬ:
Вы можете проверить следующий документ:http://people.cs.umass.edu/~emery/pubs/berger-asplos2000.pdf- Это также касается реализации хранилища, но это также заслуживает прочтения, поскольку в нем подробно объясняется множество связанных с этим вопросов.