intel tbb 2.2 released

서버 프로그래밍 하면서 유용하게 쓰고 있는 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처럼 일부 OS2 에서는 링크 시간에 할당자를 덮어써서 성능을 올려주는 것. 일종의 공짜 점심?


  1. 물론 여기엔 VS 200x에 있는 hash_map 구현체가 느리다는 이유도 섞여 있을 것이다. ↩︎

  2. 가장 메인스트림인 MS Windows와 linux 를 지원한다. ↩︎