Intel® oneAPI Threading Building Blocks
Ask questions and share information about adding parallelism to your applications when using this threading library.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!

Documentation on Scalable Allocator

Ritwik_D_1
Beginner
127 Views

I am trying to find details about how the scalable allocator works. I found some material at:

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.71.8289&rep=rep1&type=pdf

but this is a little outdated (2007). It would be good to have some updated resource which explains the data structures used and the memory size bins used in the current (or rather recent) implementation of the allocator. For memory allocations >8KB, does TBB request directly the OS virtual memory or has this been changed?

 

0 Kudos
3 Replies
Alexandr_K_Intel1
127 Views

Unfortunately such text has not been written yet, while things are changed since 2007. Sources are here, but they are bad replacement to high-level overview.

As for objects >8KB, they are split from big “regions” (if less than 1 MB) or received directly from OS via mmap/VirtualAlloc, later they are subject to per-thread caching (up to 4 MB) at first, and then to global large object caching (up to 129 MB).

Ritwik_D_1
Beginner
127 Views

Can you please point me to the sources?

Alexandr_K_Intel1
127 Views

Please find most recent: https://www.threadingbuildingblocks.org/sites/default/files/software_releases/source/tbb44_20160526oss_src.tgz

Reply