Improving Blocking Operation Support in Intel TBB

The Intel Threading Building Blocks (TBB) template library has become a popular tool for programming many-core systems. However, it is not suitable in situations where a large number of potentially blocking calls has to be made to handle long-running operations like disk access or remote data access. We have designed and implemented an add-on for the TBB that allows developers to better integrate long-running operations into their applications. We have extended TBB's task dependencies to also include blocking operations and implemented a run-time that efficiently manages these dependencies.