Generally, the parfor dependency analysis applies a series of tests
including traditional techniques from high-performance compilers combined
with additional rules for common cases. This dependency analysis tries to
proof that there are no loop-carried dependencies - so yes, false positives
can happen, in which case a user needs to take responsibility by disabling
the dependency analysis.

Regarding your concrete problem - any null pointer exception is of course
bug and needs fixing. Could you please create a minimal scenario that
reproduces this issues and create a JIRA for it. I'm happy to help
resolving this.

Regards,
Matthias

On Wed, Jun 14, 2017 at 4:24 PM, <dusenberr...@gmail.com> wrote:

> While working on depthwise convolution, I wanted to make use of a parfor
> loop to run multiple convolutions at once (there is a vectorized approach
> as well, but that is out of scope for this question), but I'm running into
> issues with false flags for loop interdependencies.  Within the parfor
> body, I am performing left-indexing over unique ranges to store results in
> a variable `out`, and the engine currently expresses concerns regarding
> this variable.  The range bounds are short expressions, and I have printed
> out the ranges to be absolutely sure that they are unique.  If I use
> `check=0`, then the engine dies with a null pointer exception.
>
> What is the current strategy used for determining inter-loop dependencies
> for parfor statements?  How can we improve this?
>
> -Mike
>
> --
>
> Mike Dusenberry
> GitHub: github.com/dusenberrymw
> LinkedIn: linkedin.com/in/mikedusenberry
>
> Sent from my iPhone.
>
>

Reply via email to