Anyways, while HPX supports distributed computing, you don't have to use it for this. HPX can be used just fine for SMP style (local only) applications as well. In fact we have shown that by simply switching from std::async/std::future to hpx::async/hpx::future you can achieve a speedup of up to a factor of 3-4 (depending on the application).
This for example would be a reason for me to provide a default implementation using std::future that i can exchange by the hpx:: versions using a preprocessor directive.
Btw: is there a specific reason for that speedup? is there just less overhead of the implementation or is it improved scheduling of tasks?
It's mainly because of a) very efficient user level threading, and b) low overhead synchronization primitives. Regards Hartmut --------------- http://boost-spirit.com http://stellar.cct.lsu.edu