Tuuna Computer Science

멀티 스레드 환경에서의 성능 최적화 본문

OS

멀티 스레드 환경에서의 성능 최적화

GuTTe 2020. 2. 7. 17:31

만약 멀티코어 환경에서 코어마다 스레드를 만들어서 실행한다는 가정과 첫 번째 스레드가 특정 메모리에 값을 설정하고 두 번째 스레드가 특정 메모리의 값을 가져온다고 했을 때 동일한 스레드였다면 L1캐시에서 값을 가져왔을 것이다. 하지만 이는 다른 스레드이기 때문에 L1캐시 접근하지 않고 L2캐시에 값이 있기를 믿어야한다. 없다면 L3, mem까지 접근해야해서 굉장히 느려진다. 

결론은 동일한 데이터에 대한 접근은 동일한 코어에 해당하는 스레드가 담당하는 것이 성능적인 이슈면에서 좋은 효과를 발휘한다. 

캐시에 대한 성능 체크 도구로는 oprofile, cachegrind 도구가 존재한다. 

Comments