From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id TAA03083; Tue, 26 Nov 2002 19:43:44 +0100 (MET) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id TAA04462 for ; Tue, 26 Nov 2002 19:43:43 +0100 (MET) Received: from relay.pair.com (relay1.pair.com [209.68.1.20]) by concorde.inria.fr (8.11.1/8.11.1) with SMTP id gAQIhgX23671 for ; Tue, 26 Nov 2002 19:43:42 +0100 (MET) Received: (qmail 51013 invoked from network); 26 Nov 2002 18:43:41 -0000 Received: from arda.pair.com (HELO compaqreview.d6.com) (209.68.1.133) by relay1.pair.com with SMTP; 26 Nov 2002 18:43:41 -0000 X-pair-Authenticated: 209.68.1.133 Message-Id: <4.3.2.7.2.20021126102033.01c42008@localhost> X-Sender: checker@localhost X-Mailer: QUALCOMM Windows Eudora Version 4.3.2 Date: Tue, 26 Nov 2002 10:42:37 -0800 To: Xavier Leroy , Blair Zajac From: Chris Hecker Subject: Re: [Caml-list] Why systhreads? Cc: caml-list@inria.fr In-Reply-To: <20021126100254.A19708@pauillac.inria.fr> References: <3DE2736D.F4FCC064@orcaware.com> <20021123090806.GA633@la.iki.fi> <20021125110133.A12077@pauillac.inria.fr> <3DE2736D.F4FCC064@orcaware.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk >Factors of 10 are always nice :-) Just kidding. What I meant is the >following: assume making the Caml runtime system thread-safe entails a >25% slowdown on program execution. (This can easily happen if e.g. we >have to lock a mutex at each heap allocation.) Further assume that by >doing so, you get a 1.5 speedup from hyperthreading. In the end, your >program will run 1.5 * 0.75 = 1.12 times faster than its equivalent >running on the standard, single-processor Caml runtime. It's not >worth the effort. Sure, that's kinda obvious. My original question was whether there was a known way to do a multithreaded gc that doesn't suck (costing 25% on nonthreaded applications does not count as not sucking) that ocaml could use if it became worth it (ie. in the event HT was widely adopted and actually worked well in practice). If you're saying the above is the state of the art in multithreaded gc, then yes, it's not worth it. If there was a multithreaded gc technique that cost 3% for single threaded apps, and all processors in existence were HT-enabled, then the equation starts to look different. I never said this was the case now, or somebody should start typing this new gc in, I just wondered if the technology existed in case it became interesting. I find it slightly ironic that I'm the "HyperThread guy" in this thread, since I'm pretty anti-hype myself. Oh well. Another slightly frustrating thing is that 90% of this thread was taken up by stuff that's documented (poorly, but still) on the net (whether SMP is supported now, whether async io works, whether non-systhreads work in native code, how the global mutex works, etc.). It would be so nice if the FAQ was better formatted and we had a way of quickly updating it, but no, I don't have any time for that and I'm sure nobody else does either. And, of course, nobody reads the FAQ before posting anyway. :) Chris ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners