병렬 메모리 할당이란 무엇입니까?

병렬 메모리 할당이란 무엇입니까?

병렬 메모리 할당이 무엇인지 이해하려고 노력 중입니다.

'메모리 할당'이 무엇인지는 이해하지만 '병렬'이라는 용어는 이해하지 못합니다. 아마도 다중 프로세서와 관련이 있습니까?

또한 C에서 병렬 메모리 할당을 구현해야 합니다. 살펴볼 좋은 웹 사이트/페이지에 대한 권장 사항이 있습니까?

답변1

병렬 메모리 할당은 다중 CPU 아키텍처에서 실행되는 다중 스레드 애플리케이션의 메모리 할당 문제를 다룹니다. 단일 CPU 아키텍처와 달리 메모리 공유 충돌(잠금, 캐시 무효화 등)을 고려해야 합니다. 예를 들어, 동일한 캐시 라인에 계속해서 액세스하는 서로 다른 CPU에서 실행되는 두 스레드는 CPU가 항상 다른 CPU에 의해 무효화되기 때문에 로컬 캐시 메모리의 이점을 누릴 수 없기 때문에 극적인 성능 저하를 경험할 수 있습니다.

자신만의 루틴을 작성하여 너무 깊게 들어가기 전에 hoard와 같은 드롭인 라이브러리를 사용하는 것이 좋습니다(참조http://www.hoard.org/) 발생할 수 있는 많은 경쟁 조건으로 인해 이러한 루틴의 견고성을 테스트하는 것은 상당히 정교한 작업이기 때문입니다.

편집하다:

다음 문서를 확인할 수 있습니다.http://people.cs.umass.edu/~emery/pubs/berger-asplos2000.pdf- 호드 구현에 관한 내용이기도 하지만, 관련된 많은 문제를 심도 있게 설명하고 있기 때문에 읽을 가치도 있습니다.

관련 정보