Right now, some functions on the computation level are not inlined. This is a slight problem for the parallel backend, as we can't split non-inlined functions into tasks. As a workaround, the parallel backend tracks functions containing a merge barrier (see doc/ParNotes.md in the parallel branch for details about barriers) and mark any call to those functions as barriers themselves, getting a course-grained approximation of the user's parallelism annotations.
The good news is, that whenever someone gets around to properly inlining computation level functions, we'll get better parallelism without any additional effort.
Right now, some functions on the computation level are not inlined. This is a slight problem for the parallel backend, as we can't split non-inlined functions into tasks. As a workaround, the parallel backend tracks functions containing a merge barrier (see doc/ParNotes.md in the parallel branch for details about barriers) and mark any call to those functions as barriers themselves, getting a course-grained approximation of the user's parallelism annotations.
The good news is, that whenever someone gets around to properly inlining computation level functions, we'll get better parallelism without any additional effort.