Notes on blocked_range2d

The template class blocked_range2d is included in Threading Building Blocks because beneficial uses for it showed up in many common applications. Parallelizing over two dimensions instead of one often yields more parallelism and better cache behavior than parallelizing over only one dimension.

The idea of extending to three or more dimensions, and the idea of making the number of dimensions a parameter, were both considered but rejected because they added too much complexity with few practically motivating cases.

A constructor for blocked_range2d that takes two blocked_range arguments was considered as an alternative to the six-argument constructor, but so far, practice has shown that such a constructor just adds extra clutter.

Get Intel Threading Building Blocks now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.