[IDEA] Fiber Pool-like synchronization classes


Multicore CPUs are almost on any computer today, so it would be great to have “something” like ThinkMeta’s Fiber Pool:

[quote]The reason:

The Fiber Pool framework extends C++ software development by elements of asynchronous programming. It facilitates the implementation of linear executed program sections as asynchronous tasks and execute them also in asynchronous mode.

It’s the only multicore framework that can execute tasks with data dependencies on a single thread and thus it is the only framework that satisfies the fundamental rule “Scaling starts at 1” for the development of scalable applications.

The features:
[]a multithreaded task scheduler based on fibers[/]
[]multicore-capable user mode threads[/]
[]optimal processor utilization[/]
[]optimal memory utilization[/]
[]parallel file processing[/]
[]easy programming of asynchronous tasks[/]
[][color=#FF0000]a C++ class library with an extensive set of synchronization classes[/color][/][/list]
Fields of use:

Fiber Pool can be used in different fields: CPU-bound applications (e.g. multimedia) profit by the task scheduler, file-intensive applications (e.g. antivirus-software) by the I/O scheduler and memory-intensive applications by the implemented memory management.
An application receives maximum performance if it can exploit all three components.[/quote]

Official website


UPDATE: here’s an Eric Gur (Processor Client Application Engineer @ Intel Corp.) reply to my message about MT library:

[quote]For threading I recommend using Intel’s free TBB library. It’s very fast, cross platform, simple to use and has an important feature - malloc replacement.
I used it in a previous project - 1M lines of code, multithreaded application on Linux x64. Just the malloc replament boosted performance by 3x without changing any code (1 line in the makefile).[/quote]

Hope that helps !