From owner-freebsd-current@FreeBSD.ORG Tue Sep 16 00:36:13 2008 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F1AC21065671 for ; Tue, 16 Sep 2008 00:36:13 +0000 (UTC) (envelope-from stephen@math.missouri.edu) Received: from cauchy.math.missouri.edu (cauchy.math.missouri.edu [128.206.184.213]) by mx1.freebsd.org (Postfix) with ESMTP id C37208FC15 for ; Tue, 16 Sep 2008 00:36:13 +0000 (UTC) (envelope-from stephen@math.missouri.edu) Received: from laptop3.gateway.2wire.net (cauchy.math.missouri.edu [128.206.184.213]) by cauchy.math.missouri.edu (8.14.2/8.14.2) with ESMTP id m8G0ZOOX001097; Mon, 15 Sep 2008 19:35:24 -0500 (CDT) (envelope-from stephen@math.missouri.edu) Message-ID: <48CEFF74.8020602@math.missouri.edu> Date: Mon, 15 Sep 2008 19:36:04 -0500 From: Stephen Montgomery-Smith User-Agent: Mozilla/5.0 (X11; U; FreeBSD amd64; en-US; rv:1.8.1.16) Gecko/20080909 SeaMonkey/1.1.11 MIME-Version: 1.0 To: Martin Cracauer References: <48CDBC78.4010409@math.missouri.edu> <20080915195021.GA69528@cons.org> In-Reply-To: <20080915195021.GA69528@cons.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-current@freebsd.org Subject: Re: Improved multiprocessor usage on amd64 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Sep 2008 00:36:14 -0000 Martin Cracauer wrote: > Stephen Montgomery-Smith wrote on Sun, Sep 14, 2008 at 08:38:00PM -0500: >> I have a dual core amd64 on which I run a processor intensive numerical >> program. I had been frustrated because it seemed to run 3 or 4 times >> faster under Linux. But with a recent upgrade of FreeBSD-CURRENT, it >> now goes at about the same speed as Linux. > > Are the threads meant to provide additional CPU resources or help with > concurrency/IO issues? They are meant to provide additional CPU resources. > > Do you create a lot of new threads on the fly? > No. They are synchronized via standard pthread_cond type constructions... > What kind of worker model do you have there? > ... and each thread is a loop of the form while (1) { wait until told to start; do massive amounts of floating point arithmetic (only additions and multiplications) on large arrays; tell the master process that you are done; } > Do you have about as many threads as processor or more? Both ways. The time difference between the two approaches is negligible. > > How malloc intensive is it? All mallocs are done one time at the beginning. > > Martin