Parallelization not supported for std::inclusive_scan and std::transform_inclusive_scan with nvc++ -stdpar=multicore


When I compile a program that calls either std::inclusive_scan or std::transform_inclusive_scan, with -stdpar=multicore, nvc++ issues warnings like the following:

warning: Calls to function "std::transform_inclusive_scan(_EP &&, _FIt1, _FIt1, _FIt2, _BF, _UF, _T) [with _EP=..., _FIt1=..., _FIt2=..., _BF=..., _UF=..., _T=...]" will run sequentially, even when called with a parallel execution policy, because a parallel implementation is not available [parallelization_not_supported]

Please note I have omitted iterator and lambda types, but I’m just using random-access iterators over (heap allocated) arrays of doubles and std::plus. The transform operation passed into std::transform_inclusive_scan just adds a number to its argument and returns the result.

Am I missing anything, or is it just that these functions haven’t got parallel implementations?


Hi Cristos,

Correct. For the overloads of inclusive_scan and transform_inclusive_scan that take an initial value argument don’t have parallel implementations

However, the overloads with no initial value are parallelized.


Hi Mat,

That’s perfect, thanks.


This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.