From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id +EayJ7yA1GACFAEAgWs5BA (envelope-from ) for ; Thu, 24 Jun 2021 14:55:24 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id sPFxI7yA1GDiRAAA1q6Kng (envelope-from ) for ; Thu, 24 Jun 2021 12:55:24 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 07BCC9A8B for ; Thu, 24 Jun 2021 14:55:24 +0200 (CEST) Received: from localhost ([::1]:47748 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lwOt9-0004Yt-0k for larch@yhetil.org; Thu, 24 Jun 2021 08:55:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36286) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lwOsz-0004Xn-GS for guix-devel@gnu.org; Thu, 24 Jun 2021 08:55:13 -0400 Received: from mail3-relais-sop.national.inria.fr ([192.134.164.104]:65480) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lwOsv-0004oC-EH for guix-devel@gnu.org; Thu, 24 Jun 2021 08:55:13 -0400 IronPort-HdrOrdr: =?us-ascii?q?A9a23=3AbzQcxKg1lG/qLpJH5poR08StV3BQXsUji2hC?= =?us-ascii?q?6mlwRA09TyVXraqTdYcgpH3JYVcqKRIdcL+7VpVoLUmwyXcX2+ks1NWZMzUO0V?= =?us-ascii?q?HARL2KhrGP/9SPIUbDH6JmtJtdTw=3D=3D?= X-IronPort-AV: E=Sophos;i="5.83,296,1616454000"; d="scan'208";a="386033459" Received: from unknown (HELO ribbon) ([193.50.110.80]) by mail3-relais-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Jun 2021 14:55:04 +0200 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: guix-devel Subject: LAPACK vs. OpenBLAS X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 6 Messidor an 229 de la =?utf-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Thu, 24 Jun 2021 14:55:04 +0200 Message-ID: <87wnqjs9qv.fsf@inria.fr> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=192.134.164.104; envelope-from=ludovic.courtes@inria.fr; helo=mail3-relais-sop.national.inria.fr X-Spam_score_int: -41 X-Spam_score: -4.2 X-Spam_bar: ---- X-Spam_report: (-4.2 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list 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+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1624539324; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=1Rwq4qB/34Us3kycVrflawoMjnz4n4TAiu+tM1Je/7Y=; b=rnvHGrYwW0YUCsszTNCMyN8KzjiauDpl8MVRXE+y1gBJixBISM8Am8APD0FaLfkPqYsDYB nbCv3FX/aFyRwjU050R7UZIc8WII2L36cMMei/WO7x5RUoFJWJyQNmhkBvDlTXkbWxfch1 xukAE3m2sm8RY/u71z7KH55c4NjIJqDypujeq6hbDpXd60+7EN9ZUKpCoTJIQstvBollgV yxxZMWtakX5AQqVSEQA8XN/T6bSzm1lifGJhoNaUQurp3RBm7VPP7Hdwwj+D91yzKBn5Cp 1g7rWtdMOgn9TywbgSCahhbwHq2nv0DwjKB5pz1HIsqgzlFyDewYLWwbQfvPQA== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1624539324; a=rsa-sha256; cv=none; b=QhTnmUEn/tLmoobTWjpWi/+h9iRJcRPe4dRvHxI5rypP24cjFSUSj0zZQ+TBlEXOBw8YO7 lR/ht9v7I0M2xtNFXFFM6eKEcYM/TwBi73Xw7Y+Y+Mhx6LyNwOZlA6CwMR9FKdfoDQQk3R bt/jcPPk/P9MXtxFaIJu1uOMxqsgKzg2WrHrumQDPtFFUVkgT07tBkqKarGWI9URvExw7u InUxIIB1VvzZpSrC3XBJSQurcoBmJaxJ5c491Ste7zQcgo/Xbd9HP2QlA58cU5s+GZHTNp 5yZCPN+VcZvEtTajDlG9DiF4h+uUnVvi0R8X7thTzwsO6v6Aj8FdST9V8WZVfg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Spam-Score: -2.43 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Queue-Id: 07BCC9A8B X-Spam-Score: -2.43 X-Migadu-Scanner: scn0.migadu.com X-TUID: jkiqUkpkf8Uo Hello! A surprisingly large number of packages depend on =E2=80=98lapack=E2=80=99: --8<---------------cut here---------------start------------->8--- $ guix refresh -l lapack Building the following 261 packages would ensure 614 dependent packages are= rebuilt: [=E2=80=A6] --8<---------------cut here---------------end--------------->8--- Among them are Julia and Octave. You can see the reverse dependency graph with: guix graph -t reverse-bag lapack | xdot - There are two cases: 1. Packages that depend on both =E2=80=98lapack=E2=80=99 and =E2=80=98ope= nblas=E2=80=99. This is almost always a mistake because =E2=80=98openblas=E2=80=99 provides th= e same interfaces as =E2=80=98lapack=E2=80=99, only with a more efficient imp= lementation. 2. Packages that depend on =E2=80=98lapack=E2=80=99 only: for the same re= ason, they should depend on =E2=80=98openblas=E2=80=99 instead. I=E2=80=99ve addressed a case like #1 for numpy/scipy in 6623d1cd7f3298f2e5c224299d11a77f7ae18bf5, and #2 with commit c7a5c3e0bba2ac3d197b219d21527863308b75dd (petsc). Julia references both lapack and openblas: --8<---------------cut here---------------start------------->8--- $ guix graph --path -t references julia lapack /gnu/store/d077a9ggqlcyhnhcg4ng2ibnlarxq8zf-julia-1.5.3 /gnu/store/41rw9w35by4j8lbl85gi3xfiaf7zqykh-lapack-3.9.0 $ guix graph --path -t references julia openblas /gnu/store/d077a9ggqlcyhnhcg4ng2ibnlarxq8zf-julia-1.5.3 /gnu/store/bs9pl1f805ins80xaf4s3n35a0x2lyq3-openblas-0.3.9 --8<---------------cut here---------------end--------------->8--- Can a Julia-savvy person check whether this is justified? I=E2=80=99ll look at some of the other cases. Perhaps we could have a lint checker warning against the use of lapack. Thoughts? Thanks, Ludo=E2=80=99.