서버 프로그래밍 하면서 유용하게 쓰고 있는 intel의 threading building block의 새 버젼이 릴리즈되었다. 자세한 사항은 직접 가서 보시고(…), 내가 제일 먼저 관심을 가졌던 부분만 써보겠다.
예전 글에서 썼던 내용이지만, 당연히 느려야할 병행 객체(tbb::concurrent_hash_map)가 오히려 sequential code 용의 map이나 hash_map 객체 보다 빨라서 놀랬던 적이 있다.[1]
hoard allocator라는 상당히 scalable한 메모리 할당자가 있는데, 이게 굉장히 쓰기 좋아 보였던게, C-runtime의 malloc/free 등을 링크 시간에 덮어써서 자동으로 모든 메모리 할당을 가속시켜준다는 점 때문이었다. 이번에 업데이트된 intel TBB 2.2 변경 목록에는 다음과 같은 얘기가 있다.
New in scalable memory allocator
- Improved support for memory requests bigger than 8K
- Intel® TBB 2.2 supports automatic replacement of the OS allocator with its scalable memory allocator (Microsoft Windows* and Linux* OS)
좀 더 큰 메모리 조각을 할당할 수 있는건 사실 큰 문제가 아니고(?), hoard처럼 일부 OS[2] 에서는 링크 시간에 할당자를 덮어써서 성능을 올려주는 것. 일종의 공짜 점심?

One Response
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.
Continuing the Discussion