intel tbb 2.2 released

서버 프로그래밍 하면서 유용하게 쓰고 있는 intel의 threading building block의 새 버젼이 릴리즈되었다. 자세한 사항은 직접 가서 보시고(…), 내가 제일 먼저 관심을 가졌던 부분만 써보겠다.

예전 글에서 썼던 내용이지만, 당연히 느려야할 병행 객체(tbb::concurrent_hash_map)가 오히려 sequential code 용의 map이나 hash_map 객체 보다 빨라서 놀랬던 적이 있다. ((물론 여기엔 VS에 있는 hash_map 구현체가 느리다는 이유도 섞여 있을 것이다))

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 ((가장 메인스트림인 MS Windows와 linux 를 지원한다)) 에서는 링크 시간에 할당자를 덮어써서 성능을 올려주는 것. 일종의 공짜 점심?

Jinuk Kim
Jinuk Kim

SW Engineer / gamer / bookworm / atheist / feminist

Articles: 935

One comment

  1. intel TBB를 써서 메모리 할당하기…

    월 초에 포스팅한 내용이지만, 약간 내용을 추가해보는 의미로 글 하나 남기기.
    intel TBB 2.2 부터는 Windows 환경이나 linux 환경에서 intel TBB를 써서 기본 할당자(malloc/free, 그리고 new/delete)를 덮어 쓸 수 있게 되었다.
    그래서 어떻게 하는지 + 약간의 성능 비교를 해봤다.
    프로그래머가 직접 malloc/free 혹은 new/delete를 덮어 쓰는 좀 안 이쁜 방법말고, hoard allocato…

Leave a Reply