From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Love Subject: Re: OpenBLAS and performance Date: Wed, 20 Dec 2017 11:50:23 +0000 Message-ID: <87tvwl7h4w.fsf@albion.it.manchester.ac.uk> References: <20171219104956.GB806@thebird.nl> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:34497) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eRctL-0000Y6-SP for guix-devel@gnu.org; Wed, 20 Dec 2017 06:50:33 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eRctH-0008O9-R8 for guix-devel@gnu.org; Wed, 20 Dec 2017 06:50:31 -0500 Received: from clarity.mcc.ac.uk ([130.88.200.144]:41234) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eRctH-0008Ka-EC for guix-devel@gnu.org; Wed, 20 Dec 2017 06:50:27 -0500 In-Reply-To: <20171219104956.GB806@thebird.nl> (Pjotr Prins's message of "Tue, 19 Dec 2017 11:49:56 +0100") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Pjotr Prins Cc: Guix-devel , Federico Beffa Pjotr Prins writes: > The last weeks I have been toying with OpenBlas and tweaking it boosts > performance magnificently over the standard install we do now. How so? I haven't measured it from Guix, but I have with Fedora packages, and OB is basically equivalent to MKL in the normal configuration for AVX < 512. > A configuration for Haswell looks like: > > https://gitlab.com/genenetwork/guix-bioinformatics/blob/master/gn/packa= ges/gemma.scm#L64 Why make it Haswell-specific? The cpuid dispatch is the main reason to use OB over at least BLIS currently. > It will benefit python-numpy and R users greatly to use > multi-threading (particularly). How do we make a flavour that supports > this. [I assume/hope it's not intended to default to multithreading.] Fedora sensibly builds separately-named libraries for different flavours , but I'd argue also for threaded versions being available with the generic soname in librray sub-directories. There's some discussion and measurements (apologies if I've referenced it before) at -- not that measurements sway people who insist on Microsoft R =E2=98=B9. Fedora should sort out support for optimal BLAS/LAPACK, but those sort of dynamic loading tricks are important in HPC systems for various reasons, and seem rather at odds with the Guix approach. I should write something about that sometime. If you do provide some sort of threaded version for Python, then as far as I remember it must use pthreads, not OpenMP, though you want the OpenMP version for other purposes, and I hadn't realized there wasn't one currently. That's covered in some combination of the OB and Debian issue trackers. I don't know if the same applies to R in general. > Or are channels going to solve this for us? > > Btw the latest stable release worked fine too: > > https://gitlab.com/genenetwork/guix-bioinformatics/commit/474524a5a0d57= 744c1727442b33d8f2889eb0397 > > Pj. Beware that 0.2.20 has one or two significant problems that I don't remember, but could check.