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. > >