TBB and Non-Integer Ranges
I’ve been using the Intel Threading Building Blocks (TBB) library for a while now, and I finally figured out how to overcome one of the annoyances I had with it.
All of the examples I’ve been able to find show how to iterate over a range of
integers. I couldn’t find how to directly iterate over a range of doubles. I
worked around this by iterating over integers and translating back to doubles
in the inner operator()
function. I finally figured out the answer, after
reading the Reference Manual (as they say, rtfm).
The trick is that the blocked_range
construct can accept, in addition to
integers, random access iterators. So, with a range:
I can now parallelize a group of doubles
.
Of course, this assumes that you have a container ready. Luckily, I happened
to have one ready. In other cases, it’s probably best to continue and shuffle
between int
s and double
s.