Archives

Posts from Anton Malakhov (Intel) RSS

Anton Malakhov (Intel)

Anton is one of the senior developers of TBB. He joined Intel in Jan 2006.

Scalable Memory Pools: community preview feature

By Anton Malakhov (Intel) (6 posts) on December 19, 2011 at 5:05 am
Comments (3)

In TBB 4.0, we introduced new community preview feature (CPF) – the scalable memory pools. See the TBB Reference Manual (D.4) for formal and detailed description. In this blog, we will present them less formally and discuss what changes can be made. Motivation We had vague requests from customers to implement a memory pool (Wikipedia [...]

Continued ›

Category: Open Source, Parallel Programming
Tags: , , , , ,

Joint lifetime and access synchronization algorithm for shared dynamic objects

By Anton Malakhov (Intel) (6 posts) on January 26, 2011 at 9:55 am
Comments (8)

Modern programming practices and computer languages (like .NET) tend to dynamically create and destroy objects at run-time, but how does it correlate with multi-core-enabled programming? A parallel program may need to synchronize both lifetime of- and access to- an object in shared memory. Known methods suffer from either limitation of scalability or additional synchronization overhead. [...]

Continued ›

Category: Open Source, Parallel Programming, Performance and Optimization
Tags: , ,

Traversing concurrent_hash_map concurrently

By Anton Malakhov (Intel) (6 posts) on May 14, 2010 at 6:30 am
Comments (32)

People keep asking how to traverse tbb::concurrent_hash_map concurrently with other operations. But it wouldn’t be worth the blog if there was not any problem. The Reference clearly states that: Concurrent operations (count, find, insert, and erase) invalidate any existing iterators that point into the table, An exception to this rule is that count and find [...]

Continued ›

Category: Open Source, Parallel Programming, Software Tools
Tags: , , , , , ,

tbb::concurrent_vector in TBB 2.2

By Anton Malakhov (Intel) (6 posts) on September 19, 2009 at 4:13 am
Comments (0)

Concurrent vector was also significantly reworked for TBB 2.2 in all areas: interface, documentation, and internal implementation. Let's start from the interface. Methods push_back(), grow_by(), and grow_to_at_least() return iterator now.

Continued ›

Category: Open Source, Parallel Programming, Software Tools
Tags: , , , , , , ,

Delusion of tbb::concurrent_vector’s size or 3 ways to traverse in parallel correctly

By Anton Malakhov (Intel) (6 posts) on April 9, 2009 at 6:07 am
Comments (4)

Like in the previous post about concurrent_vector, I’d like to start from a sentence buried in the Reference Manual, Section 4.4.6.1, which describes the size() method: “The result may include elements that are under construction by concurrent calls to any of the growth methods”. It means that you can not safely traverse across a container [...]

Continued ›

Category: Open Source, Parallel Programming, Software Tools
Tags:

tbb::concurrent_vector: secrets of memory organization

By Anton Malakhov (Intel) (6 posts) on July 24, 2008 at 3:51 am
Comments (2)

This blog entry is intended to help you better understand the way concurrent vector works with the memory and how to use it wisely for your program to work faster or consume less memory. The concurrency comes with the price Let’s open Threading Building Blocks (TBB) reference manual at point 4.3.”Fragmentation”: “Unlike a std::vector, a [...]

Continued ›

Category: Open Source, Parallel Programming, Software Tools
Tags: