In Semantics we saw that DepSpawn tracks the memory occupied by the objects passed as arguments to the tasks in order to detect dependencies. While this suffices in many situations, sometimes it may be desirable to express dependencies on regions that are not consecutive, such as tiles of a matrix. For this reason DepSpawn provides support for Blitz++ arrays, which are well known for their efficiency, flexibility and intutive notation.
Unfortunately, using the standard distribution of Blitz++ would imply a noticeable overhead for DepSpawn to compute the dependencies between different arrays because of the lack of some useful information in the objects. For this reason, a slightly modified version of Blitz++, in which the arrays keep this information, is provided with DepSpawn. The installation of this library is totally optional.
Three things must be taken into account in order to use this feature:
-DBZ_THREADSAFE -DBZ_THREADSAFE_USE_TBB