Terry Harple wrote:What challenges to current concurrency methodologies do you foresee in a future where thousands of CPU core become the standard?
That is a good question. The primary shift I see is a move away from manual control of threads to higher level code where the library controls the number of threads and the distribution of work between them. The C++0x facilities have the beginnings of such support in the form of
std::async, where the library can choose whether the task is run on its own
thread or on the first thread to wait for the task to complete. However, in time I think we will see things move towards parallel algorithms (
parallel_for_each etc) and things like dataflow frameworks where you specify the relationships between tasks and let the library handle the concurrency.