- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I read this on xtremetech:
"Fast, unaligned cache access-Before Nehalem, data needed to be aligned on cache line boundaries for maximum performance. That's no longer true with Nehalem. This will help newer applications written for Nehalem, more than older ones, only because compilers and application authors often took great care to align data along cache line boundaries."
Does this mean that I wouldn't need to use the scalable allocator if I am running my app on Nehalem? Or do I still have a penalty if I use the default new? Thanks in advance.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I read this on xtremetech:
"Fast, unaligned cache access-Before Nehalem, data needed to be aligned on cache line boundaries for maximum performance. That's no longer true with Nehalem. This will help newer applications written for Nehalem, more than older ones, only because compilers and application authors often took great care to align data along cache line boundaries."
Does this mean that I wouldn't need to use the scalable allocator if I am running my app on Nehalem? Or do I still have a penalty if I use the default new? Thanks in advance.
I'm not sure how these two things - caching mechanisms improvements on Nehalem and TBB Scalable Allocator -are connected actually based on that quote you give. From what I understand the short answer to your question is: if an application benefited from using TBB Scalable Allocator on non-Nehalem platform, it should continue benefitting from using it on Nehalem platform.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I read this on xtremetech:
"Fast, unaligned cache access-Before Nehalem, data needed to be aligned on cache line boundaries for maximum performance. That's no longer true with Nehalem. This will help newer applications written for Nehalem, more than older ones, only because compilers and application authors often took great care to align data along cache line boundaries."
Does this mean that I wouldn't need to use the scalable allocator if I am running my app on Nehalem? Or do I still have a penalty if I use the default new? Thanks in advance.
This depends on your platform (what is "new" on your platform). And it has nothing to do with Nehalem. If your platform provides bad multi-threaded malloc (like, for example, MSVC8/9+Windows XP), then you better use tbb::scalable_malloc. In MSVC2010 they are promising good multi-threaded malloc.
Unaligned memory access have nothing to do with memory allocation scalability in multi-threaded environment.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The idea of cache-lines not mattering anymore seems very odd to me....
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page