From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id RFepNjiGVGDRBAAA0tVLHw (envelope-from ) for ; Fri, 19 Mar 2021 11:08:40 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id MLvsMTiGVGBMIwAAB5/wlQ (envelope-from ) for ; Fri, 19 Mar 2021 11:08:40 +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 3600317E83 for ; Fri, 19 Mar 2021 12:08:40 +0100 (CET) Received: from localhost ([::1]:55010 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lNCzf-000068-0g for larch@yhetil.org; Fri, 19 Mar 2021 07:08:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59446) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lNCz5-0008Ul-0z for guix-patches@gnu.org; Fri, 19 Mar 2021 07:08:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:37374) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lNCz4-0007ZQ-OY for guix-patches@gnu.org; Fri, 19 Mar 2021 07:08:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lNCz4-0001iQ-IW for guix-patches@gnu.org; Fri, 19 Mar 2021 07:08:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#47237] [PATCH] gnu: metis: Use 64-bit floating pointer numbers on 64-bit architectures. Resent-From: Emmanuel Agullo Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 19 Mar 2021 11:08:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47237 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: zimoun Cc: Ludovic =?UTF-8?Q?Court=C3=A8s?= , Eric Bavier , Ludovic Courtes , 47237@debbugs.gnu.org, Paul Garlick Received: via spool by 47237-submit@debbugs.gnu.org id=B47237.16161520576557 (code B ref 47237); Fri, 19 Mar 2021 11:08:02 +0000 Received: (at 47237) by debbugs.gnu.org; 19 Mar 2021 11:07:37 +0000 Received: from localhost ([127.0.0.1]:48920 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNCyf-0001hh-E1 for submit@debbugs.gnu.org; Fri, 19 Mar 2021 07:07:37 -0400 Received: from mail2-relais-roc.national.inria.fr ([192.134.164.83]:59522) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNCyc-0001hR-6b for 47237@debbugs.gnu.org; Fri, 19 Mar 2021 07:07:36 -0400 IronPort-HdrOrdr: A9a23:GY7phK8h3a/mtQDEo99uk+B/I+orLtY04lQ7vn1ZYxpTb8CeioSSjO0WvCWE8Qo5dVMBvZS7OKeGSW7B7pId2+MsFJqrQQWOghrMEKhM9o3nqgeQfBHW0s54+eNef7NlCNv2ZGIVse/f7BOjG9gthPmrmZrY59v29HtmQQF0Z6wI1W4QYTqzKUFuQRkDOJxRLvqhz/BKoDetYh0sH6eGL0MYVOvOrcCjruODXTc6AXccmW+zpALtxrq/NxSDxB8RX3d03L8+/QH+/zDR1+GMtfe0zxOZ+k3yy9BtmNXnwsZeH8DksKUoAwSppACvaoFsH4eHoSlwmuey81wn+eOinz4Qe/9+4X/QYW25yCGN5zXd X-IronPort-AV: E=Sophos;i="5.81,261,1610406000"; d="scan'208";a="498867688" X-MGA-submission: MDGkNF+WN+uOH8xYw38k+It8KatiaGNxLD2ZCmikkap9Zsl1lq4/cRq3YSyctEKfFpW2e8vGfF8j+QLfKWP4Ea0vLWXQMY6SxpnWI1W2M0/9h4DBHy2DtCTNgJA4s3X0xagEAqpUGUnWueVk9+cYwEmH72Iel0+MpGhnau36MVGBJg== Received: from zcs-store4.inria.fr ([128.93.142.31]) by mail2-relais-roc.national.inria.fr with ESMTP; 19 Mar 2021 12:07:18 +0100 Date: Fri, 19 Mar 2021 12:07:17 +0100 (CET) From: Emmanuel Agullo Message-ID: <1615735689.2305611.1616152037667.JavaMail.zimbra@inria.fr> In-Reply-To: <86v99ot9po.fsf@gmail.com> References: <20210318150246.7220-1-ludo@gnu.org> <79577287.1930022.1616081242591.JavaMail.zimbra@inria.fr> <86v99ot9po.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Originating-IP: [5.49.130.168] X-Mailer: Zimbra 8.8.15_GA_3996 (ZimbraWebClient - FF84 (Linux)/8.8.15_GA_4007) Thread-Topic: metis: Use 64-bit floating pointer numbers on 64-bit architectures. Thread-Index: tBDsWSsXCfnRFEsfUs/hZZvlENNG3A== X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1616152120; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post; bh=sufqvmqzQOT/Gl0OdKIMtUXY/8CIFYCSGMzQMEqcEPQ=; b=OMZ5UxKaAzvrURYPBzrSt7b/DFYwVDnMX0lgcI6Enp78DvZBwemrjORXDouzt1CDEI1PO/ kvrVRFibEMSO7PcXmMsjhAm5wX0Lm6MApy8B43QLavt4ZL49ym7+VO7lM2YCGFngxDMr4V Zig7+RY83IKUdbYpR8iZkYMgYZInW+IhX6SoiE6cRuGHFwaj5aYFnak8IZw6V25vEBALL3 cRMAQWIaxavBpbmRE+fVyvSEscRNSqjqs8kkkCtzQQzI0dxecgJaSaKZRmbVGUhvcoooc3 Al48SzUJjGKKYcfUhhMLKIcyGA6SbnDI1r76gKKrPAQjs05HvX88UP10l6LNmQ== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1616152120; a=rsa-sha256; cv=none; b=n6rUH3lR2k/Q9hSSDN6uSvO72lPYsV+OAQWZg8NVdiqftszGzFWrP14gM8PN0Bymlku8aK zS/11SQW1v4aYwlUQf5NnukGX6Eio+fE7Sq0+zPm7GmXjxwCD03u71Q7BtuIyQUMVbBCzb IBEVAh/ZWnZlmvPbdN4uFPw7aGLGd+itbnP+bTa6TNoq5djFh+in6tCt0ySKQYVQDDvvpm NR97Lohs5S9W+tewunXlYRDHJT8KbJcGUZsIwe2a4qUlR+Id84s5uz0mYIqnrJPSQ40rMF 0bBxhdYr28UkLDMQxSI+MOfZUZ3SI8MNdF+4DLYLPzcwbHMeZMfKaqkWQjQSPg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Spam-Score: -0.91 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Queue-Id: 3600317E83 X-Spam-Score: -0.91 X-Migadu-Scanner: scn0.migadu.com X-TUID: 5xTrdr6nHmT4 Hi Simon, > I am probably out-of-scope, and it does probably not make sense for > partitioners as Metis, how are considered mixed precision solvers? > i.e., computing some part using 64 bits floating points and other part > using 32 bits. (My memory is not clear but I remember reading couple of > weeks ago an acceleration with 3 levels of float-pointing precision.) > > In the i32_r64 example of convention, what should be considered as rXY? > The final accuracy, whatever the internals? You are right, in principle, there are many combinations we would like to consider and I don't think combinatorial or numerical library developers have followed a unique common rule. I would say that most fully-featured numerical libraries have an interface for all four main floating-point arithmetic (s, d, c, z, to follow blas/lapack convention). Therefore, for most of them, a single package should be enough regarding floating-point arithmetic. The same is true for mixed precision routines (such as the dsgesv mixed precision lapack solver with iterative refinement http://www.netlib.org/lapack/explore-html/d7/d3b/group__double_g_esolve_ga05bea3dc0386868e4720f22c969cb9f5.html ). On the other hand, as I understand, currently, integers are not handled the same way. There is of course always the option to force the compiler to turn all integers in a give arithmetic but advanced combinatorial and numerical codes provider finer strategies. In fully-featured combinatorial codes such scotch (and if I understand metis), the selection is made at compile time. In guix, for instance, the scotch and scotch32 package position INTSIZE64 and INTSIZE32, respectively. [In this case, symbol renaming would be necessary to implement algorithms dealing with subgraphs in 32 bits and other subgraphs in 64 bits (a "mixed integer arithmetic") but I would say that is out of the scope of immediate needs for the guix community, or, that should at least be discussed with library developers ahead of time before being packaged as they may provide facilities in upcoming releases]. The most advanced fully-featured numerical codes may also provide selective 64-bit integers in order to handle large problems while maintaining most arrays in 32-bits (one may want to have a look for instance at the Section 2.6.2 of the 5.3.5 mumps user's guide for such an example http://mumps.enseeiht.fr/doc/userguide_5.3.5.pdf ). This is typically useful for sparse direct solvers (such as mumps) which may have to cope with very large matrices with billions of entries. On the other hand, it is much less common to process such large dense matrices in dense (except possibly for level-1 blas routines), this is why large integer arrays are most often consitently 32 bits in dense routines. To come back to your original question: > In the i32_r64 example of convention, what should be considered as rXY? > The final accuracy, whatever the internals? I would say, at least for now, to focus only on the options that library developers have proposed to position at compile time in their makefiles. For scotch, it is already distinguished through the scotch and scotch32 pakages (however we may still want to make sure the naming convention is clear). For metis, *if I understand correctly*, there is the option to position both integers and floating-point numbers, hence maybe the four combinations that could be considered (but I have no experience in dealing with floating-point numbers in metis). Hope this helps. Best regards, Emmanuel