From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Mark H Weaver Newsgroups: gmane.lisp.guile.bugs Subject: bug#13188: Whats' the proper senario of par-map? (Was Re: bug#13188: par-map causes VM stack overflow) Date: Thu, 28 Mar 2013 14:00:52 -0400 Message-ID: <87ip4b9zfv.fsf__5870.66149241782$1364493728$gmane$org@tines.lan> References: <1355559152.27310.5.camel@Renee-desktop.suse> <87y5d8rclr.fsf@gnu.org> <1364439334.2730.41.camel@Renee-desktop.suse> <874nfwazc3.fsf@tines.lan> <87r4izprks.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1364493700 7759 80.91.229.3 (28 Mar 2013 18:01:40 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 28 Mar 2013 18:01:40 +0000 (UTC) Cc: Nala Ginrut , guile-devel@gnu.org, 13188-done@debbugs.gnu.org To: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-X-From: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Thu Mar 28 19:02:06 2013 Return-path: Envelope-to: guile-bugs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ULH9I-0002iV-7p for guile-bugs@m.gmane.org; Thu, 28 Mar 2013 19:02:04 +0100 Original-Received: from localhost ([::1]:54138 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ULH8u-0003a4-6z for guile-bugs@m.gmane.org; Thu, 28 Mar 2013 14:01:40 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:34315) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ULH8q-0003Zg-97 for bug-guile@gnu.org; Thu, 28 Mar 2013 14:01:37 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ULH8l-0002pQ-Fq for bug-guile@gnu.org; Thu, 28 Mar 2013 14:01:36 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:45773) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ULH8l-0002pG-Dr for bug-guile@gnu.org; Thu, 28 Mar 2013 14:01:31 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1ULHBB-0004fi-Tf for bug-guile@gnu.org; Thu, 28 Mar 2013 14:04:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Mark H Weaver Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-guile@gnu.org Resent-Date: Thu, 28 Mar 2013 18:04:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 13188 X-GNU-PR-Package: guile X-GNU-PR-Keywords: Original-Received: via spool by 13188-done@debbugs.gnu.org id=D13188.136449382217926 (code D ref 13188); Thu, 28 Mar 2013 18:04:01 +0000 Original-Received: (at 13188-done) by debbugs.gnu.org; 28 Mar 2013 18:03:42 +0000 Original-Received: from localhost ([127.0.0.1]:49881 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1ULHAr-0004f4-P3 for submit@debbugs.gnu.org; Thu, 28 Mar 2013 14:03:42 -0400 Original-Received: from world.peace.net ([96.39.62.75]:50853) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1ULHAo-0004ev-Sa for 13188-done@debbugs.gnu.org; Thu, 28 Mar 2013 14:03:40 -0400 Original-Received: from 209-6-91-212.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com ([209.6.91.212] helo=tines.lan) by world.peace.net with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1ULH8G-0007Nc-4C; Thu, 28 Mar 2013 14:01:00 -0400 In-Reply-To: <87r4izprks.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Thu, 28 Mar 2013 14:44:03 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 140.186.70.43 X-BeenThere: bug-guile@gnu.org List-Id: "Bug reports for GUILE, GNU's Ubiquitous Extension Language" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Original-Sender: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.bugs:7021 Archived-At: Hi Ludovic, ludo@gnu.org (Ludovic Court=C3=A8s) writes: > Mark H Weaver skribis: > >> It only makes sense to use 'par-map' when the procedure is fairly >> expensive to compute. > > Indeed. > >> There is inevitably a lot of overhead in creating and joining the >> threads. > > We use a thread pool, so there=E2=80=99s no such cost. Sorry, I was using the term 'threads' not in the sense of OS-level threads, but in a more general sense. I should have been more clear. What I meant is that from the user's perspective, threads are being created and joined, and even if you build those using a pool of OS-level threads, this inevitably involves thread synchronization, which is very expensive on modern architectures. So I maintain that there _is_ such a cost, and it can't be avoided. The point I was really trying to make here, in the simplest possible terms, is that it will *never* make sense to replace all uses of 'map' with 'par-map' wherever it is safe to do so. > But there are other costs. When delimited continuations are used, we=E2= =80=99re > on the slow path. Also, Guile=E2=80=99s fat mutexes & co. are terribly > inefficient. And finally, there may be contention on the futexes mutex > (esp. when the computations is too small.) Indeed, I wouldn't be surprised if we could improve this by an order of magnitude. More items for my TODO list :) > So yes, there=E2=80=99s room for improvement. Yet, it should be fruitful, > provided you use it for reasonably long computations, as Mark outlines. Regards, Mark