Intel® oneAPI Threading Building Blocks
Ask questions and share information about adding parallelism to your applications when using this threading library.

Documentation on Scalable Allocator

Ritwik_D_1
Beginner
684 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
684 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).

0 Kudos
Ritwik_D_1
Beginner
684 Views

Can you please point me to the sources?

0 Kudos
Alexandr_K_Intel1
684 Views

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

0 Kudos
Reply