<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div><br></div>Dear Russel.<div><br></div><div>I see that too. Please also check my previous post and this code: <a href="http://svn.finmath.net/finmath experiments/trunk/src/net/finmath/experiments/concurrency/NestedParallelForEachTest.java">http://svn.finmath.net/finmath%20experiments/trunk/src/net/finmath/experiments/concurrency/NestedParallelForEachTest.java</a></div><div><br></div><div>I can show you the line in the implementation of the ForkJoinTask that is responsible for this. It is this one:</div><div><a href="http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/6be37bafb11a/src/share/classes/java/util/concurrent/ForkJoinTask.java#l386">http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/6be37bafb11a/src/share/classes/java/util/concurrent/ForkJoinTask.java#l386</a></div><div>This test if fine for any non-nested loop. For a nested loop the test is wrong and results in an awaitJoin called on a different workQueue (which then either results in a performance issue or in a deadlock).</div><div><br></div><div>Best</div><div>Christian</div><div><br></div><div><div><div>Am 06.05.2014 um 10:12 schrieb Russel Winder <<a href="mailto:russel@winder.org.uk">russel@winder.org.uk</a>>:</div><br class="Apple-interchange-newline"><blockquote type="cite">On Tue, 2014-05-06 at 00:50 +0400, Aleksey Shipilev wrote:<br>[]<br><blockquote type="cite">To my knowledge of FJP mechanics, this should work perfectly well, since<br>submitters from the external loop will participate in the computation<br>and making progress. My throw-away tests, like:<br><br>    @GenerateMicroBenchmark<br>    public void test(BlackHole bh) {<br>        IntStream.range(0, TASKS).parallel().forEach(i -> {<br>            IntStream.range(0, TASKS).parallel().forEach(j -> {<br>                bh.consume(i + j);<br>            });<br>        });<br>    }<br><br>...do not manage to deadlock.<br></blockquote>[]<br><br>I am finding that whilst nested streams code works, it seems to have<br>dreadful performance. I need to do more work, and get proper benchmark<br>data, before making an serious claim on this, for now it is just an<br>anecdotal indicator. <br>-- <br>Russel.<br>=============================================================================<br>Dr Russel Winder      t: +44 20 7585 2200   voip: <a href="sip:russel.winder@ekiga.net">sip:russel.winder@ekiga.net</a><br>41 Buckmaster Road    m: +44 7770 465 077   xmpp: <a href="mailto:russel@winder.org.uk">russel@winder.org.uk</a><br>London SW11 1EN, UK   w: <a href="http://www.russel.org.uk">www.russel.org.uk</a>  skype: russel_winder<br><br></blockquote></div><br></div></body></html>