Что такое параллельное распределение памяти?

Что такое параллельное распределение памяти?

Я пытаюсь понять, что такое параллельное выделение памяти.

Я думаю, что понимаю, что такое «выделение памяти», но не понимаю термин «параллельный». Возможно, это связано с несколькими процессорами?

Также мне нужно реализовать параллельное выделение памяти на языке C. Есть ли у вас рекомендации по хорошему веб-сайту/странице, на которые можно обратить внимание?

решение1

Параллельное распределение памяти решает проблемы распределения памяти в многопоточном приложении, работающем на архитектуре с несколькими ЦП. В отличие от архитектур с одним ЦП необходимо учитывать конфликты совместного использования памяти (блокировки, аннулирование кэша и т. д.). Например, два потока, работающие на разных ЦП, которые снова и снова обращаются к одной и той же строке кэша, могут столкнуться с резким падением производительности, поскольку ЦП не может извлечь выгоду из своей локальной кэш-памяти, поскольку она всегда аннулируется другим ЦП.

Прежде чем углубляться в написание собственных процедур, я бы рекомендовал использовать встроенные библиотеки, такие как hoard (см.http://www.hoard.org/), поскольку проверка таких процедур на надежность является довольно сложной задачей из-за множества возможных условий гонки.

РЕДАКТИРОВАТЬ:

Вы можете проверить следующий документ:http://people.cs.umass.edu/~emery/pubs/berger-asplos2000.pdf- Это также касается реализации хранилища, но это также заслуживает прочтения, поскольку в нем подробно объясняется множество связанных с этим вопросов.

Связанный контент