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

Hello,

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?

Regards,
Christos

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.

-Mat

Hi Mat,

That’s perfect, thanks.

Regards,
Christos

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