<div dir="ltr">Hi,<div><br></div><div>Gilles: If this happens, I *suspect* this might only be in the hardware detection phase, right?</div><div><br></div><div>We might indeed have overlooked that, since ARM was originally just a low-end platform (think 32-bit Tegra...) where we never even thought of running anything multi-node.</div><div><br></div><div>We&#39;ve already thought of adding cgroups awareness (for docker), so could you possibly assist me by showing a concrete example of this on A64fx:</div><div><br></div><div>1) lscpu </div><div><br></div><div>2) cgroups information, ideally both for the node and specific MPI processes</div><div><br></div><div>... since otherwise we&#39;re programming a bit blind :-)</div><div><br></div><div>Cheers,</div><div><br></div><div>Erik</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div> </div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Nov 11, 2020 at 8:47 AM Berk Hess &lt;<a href="mailto:hess@kth.se">hess@kth.se</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">Hi,<br>
<br>
Then there is a strange bug somewhere.<br>
<br>
Are you using real MPI or thread-MPI. Do you know where this happens? <br>
Are you running with OpenMP support?<br>
<br>
Cheers,<br>
<br>
Berk<br>
<br>
On 2020-11-11 08:26, Gilles Gouaillardet wrote:<br>
&gt; Berk,<br>
&gt;<br>
&gt;<br>
&gt; There is a total of 52 cores, and my observation is that each MPI task <br>
&gt; does spawn 52 threads.<br>
&gt;<br>
&gt; So the worst case scenario is 48 MPI tasks each spawning 52 threads, <br>
&gt; so a total of 48 * 52 threads on a single node<br>
&gt;<br>
&gt;<br>
&gt; Cheers,<br>
&gt;<br>
&gt;<br>
&gt; Gilles<br>
&gt;<br>
&gt; On 11/11/2020 4:23 PM, Berk Hess wrote:<br>
&gt;&gt; On 2020-11-11 03:37, Gilles Gouaillardet wrote:<br>
&gt;&gt;&gt; Erik and all,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I am kind of facing the exact opposite issue on an other ARM processor:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; High end A64fx (Fugaku/FX1000) have 48 cores plus 2 or 4 assistant <br>
&gt;&gt;&gt; cores.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; A job is put in a cgroup of 48 cores (e.g. no assistant cores)<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Worst case scenario, a flat mpi run (48 tasks) will spawn 48 * 52 <br>
&gt;&gt;&gt; cores to spin up all the cores.<br>
&gt;&gt; What do you mean with 48 * 52 cores? There are only 52 cores. Gromacs <br>
&gt;&gt; will by default not spawn more threads in total then there are cores. <br>
&gt;&gt; If you ask for 48 MPI ranks with a real MPI library Gromacs will not <br>
&gt;&gt; spawn any additional threads. With thread-mpi it will spawn 48 or 52 <br>
&gt;&gt; total.<br>
&gt;&gt;<br>
&gt;&gt; Cheers,<br>
&gt;&gt;<br>
&gt;&gt; Berk<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; 1) GROMACS is not cgroup aware and hence consider there are 52 (or <br>
&gt;&gt;&gt; 50) cores per node (this is a very minor issue)<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; 2) spawning such a high number of threads caused some crashes (weird <br>
&gt;&gt;&gt; stack traces, I did not spend much time investigating)<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; 3) in the case of A64fx, all cores are up and running, ready to <br>
&gt;&gt;&gt; crunch, and do not require any special tricks.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; At this stage, I think the easiest path to address this on A64fx is <br>
&gt;&gt;&gt; to add yet an other cmake option to<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; unconditionally skip the spin up phase.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; This could be improved by adding a command line option, or an <br>
&gt;&gt;&gt; environment variable, to change the default behavior<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; (default behavior should be a cmake option imho)<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Any thoughts on how to best move forward?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Cheers,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Gilles<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On 11/11/2020 6:08 AM, Erik Lindahl wrote:<br>
&gt;&gt;&gt;&gt; We might be able to work around the last aspect, but it will likely <br>
&gt;&gt;&gt;&gt; take a couple of weeks until I can lay hands on a new ARM-based <br>
&gt;&gt;&gt;&gt; Macbook.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Long story made short: The advanced power-saving features on ARM <br>
&gt;&gt;&gt;&gt; mean some cores are not visible until they are used, so we created <br>
&gt;&gt;&gt;&gt; a small hack where we &quot;spin up&quot; the CPU by exercising all cores.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; We might anyway need to do something different with the new type of <br>
&gt;&gt;&gt;&gt; big.LITTLE cores where we have 4+4 or 8+4 cores, but I can&#39;t even <br>
&gt;&gt;&gt;&gt; start to work on that until I have suitable hardware. The good news <br>
&gt;&gt;&gt;&gt; is that such hardware was announced a couple of hours ago, with <br>
&gt;&gt;&gt;&gt; availability next week ;-)<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Cheers,<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Erik<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; On Tue, Nov 10, 2020 at 9:45 PM Mark Abraham <br>
&gt;&gt;&gt;&gt; &lt;<a href="mailto:mark.j.abraham@gmail.com" target="_blank">mark.j.abraham@gmail.com</a> &lt;mailto:<a href="mailto:mark.j.abraham@gmail.com" target="_blank">mark.j.abraham@gmail.com</a>&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;     No, the use of std::thread in eg hardware detection also requires<br>
&gt;&gt;&gt;&gt;     a lower level threading implementation.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;     Mark<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;     On Tue, Nov 10, 2020, 20:41 Berk Hess &lt;<a href="mailto:hess@kth.se" target="_blank">hess@kth.se</a><br>
&gt;&gt;&gt;&gt;     &lt;mailto:<a href="mailto:hess@kth.se" target="_blank">hess@kth.se</a>&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;         Hi,<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;         Turning off GMX_THREAD_MPI in cmake should remove the<br>
&gt;&gt;&gt;&gt;         dependency on pthreads.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;         Cheers,<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;         Berk<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;         On 2020-11-10 18:06, Guido Giuntoli wrote:<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;         Hi,<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;         Is there any way to disable the “Pthreads” dependency during<br>
&gt;&gt;&gt;&gt;&gt;         the configuration/compilation of GROMACS?<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;         *Best regards | Mit freundlichen Grüßen*<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;         **<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;         *Guido Giuntoli***<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;         **<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;         HUAWEI TECHNOLOGIES Duesseldorf GmbH<br>
&gt;&gt;&gt;&gt;&gt;         Hansaallee 205, 40549 Dusseldorf, Germany, *<a href="http://www.huawei.com" rel="noreferrer" target="_blank">www.huawei.com</a>*<br>
&gt;&gt;&gt;&gt;&gt;         &lt;<a href="http://www.huawei.com/" rel="noreferrer" target="_blank">http://www.huawei.com/</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt;         Registered Office: Düsseldorf, Register Court Düsseldorf, HRB<br>
&gt;&gt;&gt;&gt;&gt;         56063,<br>
&gt;&gt;&gt;&gt;&gt;         Managing Director: Li Peng, Li Jian, Shi Yanli**<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;         Sitz der Gesellschaft: Düsseldorf, Amtsgericht Düsseldorf,<br>
&gt;&gt;&gt;&gt;&gt;         HRB 56063,<br>
&gt;&gt;&gt;&gt;&gt;         Geschäftsführer: Li Peng, Li Jian, Shi Yanli<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; *-----------------------------------------------------------------------------------------------* <br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;         *This e-mail and its attachments contain confidential<br>
&gt;&gt;&gt;&gt;&gt;         information from HUAWEI, which is intended only for the<br>
&gt;&gt;&gt;&gt;&gt;         person or entity whose address is listed above. Any use of<br>
&gt;&gt;&gt;&gt;&gt;         the information contained herein in any way (including, but<br>
&gt;&gt;&gt;&gt;&gt;         not limited to, total or partial disclosure, reproduction, or<br>
&gt;&gt;&gt;&gt;&gt;         dissemination) by persons other than the intended<br>
&gt;&gt;&gt;&gt;&gt;         recipient(s) is prohibited. If you receive this e-mail in<br>
&gt;&gt;&gt;&gt;&gt;         error, please notify the sender by phone or email immediately<br>
&gt;&gt;&gt;&gt;&gt;         and delete it!*<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;         --         Gromacs Developers mailing list<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;         * Please search the archive at<br>
&gt;&gt;&gt;&gt; <a href="http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List" rel="noreferrer" target="_blank">http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List</a><br>
&gt;&gt;&gt;&gt; &lt;<a href="http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List" rel="noreferrer" target="_blank">http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List</a>&gt;<br>
&gt;&gt;&gt;&gt;         before posting!<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;         * Can&#39;t post? Read<br>
&gt;&gt;&gt;&gt;         <a href="http://www.gromacs.org/Support/Mailing_Lists" rel="noreferrer" target="_blank">http://www.gromacs.org/Support/Mailing_Lists</a><br>
&gt;&gt;&gt;&gt;         &lt;<a href="http://www.gromacs.org/Support/Mailing_Lists" rel="noreferrer" target="_blank">http://www.gromacs.org/Support/Mailing_Lists</a>&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;         * For (un)subscribe requests visit<br>
&gt;&gt;&gt;&gt; <a href="https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers" rel="noreferrer" target="_blank">https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers</a> <br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; &lt;<a href="https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers" rel="noreferrer" target="_blank">https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers</a>&gt; <br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;         or send a mail to <a href="mailto:gmx-developers-request@gromacs.org" target="_blank">gmx-developers-request@gromacs.org</a><br>
&gt;&gt;&gt;&gt;         &lt;mailto:<a href="mailto:gmx-developers-request@gromacs.org" target="_blank">gmx-developers-request@gromacs.org</a>&gt;.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;     --     Gromacs Developers mailing list<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;     * Please search the archive at<br>
&gt;&gt;&gt;&gt; <a href="http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List" rel="noreferrer" target="_blank">http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List</a><br>
&gt;&gt;&gt;&gt; &lt;<a href="http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List" rel="noreferrer" target="_blank">http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List</a>&gt;<br>
&gt;&gt;&gt;&gt;     before posting!<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;     * Can&#39;t post? Read <a href="http://www.gromacs.org/Support/Mailing_Lists" rel="noreferrer" target="_blank">http://www.gromacs.org/Support/Mailing_Lists</a><br>
&gt;&gt;&gt;&gt;     &lt;<a href="http://www.gromacs.org/Support/Mailing_Lists" rel="noreferrer" target="_blank">http://www.gromacs.org/Support/Mailing_Lists</a>&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;     * For (un)subscribe requests visit<br>
&gt;&gt;&gt;&gt; <a href="https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers" rel="noreferrer" target="_blank">https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers</a> <br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; &lt;<a href="https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers" rel="noreferrer" target="_blank">https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers</a>&gt; <br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;     or send a mail to <a href="mailto:gmx-developers-request@gromacs.org" target="_blank">gmx-developers-request@gromacs.org</a><br>
&gt;&gt;&gt;&gt;     &lt;mailto:<a href="mailto:gmx-developers-request@gromacs.org" target="_blank">gmx-developers-request@gromacs.org</a>&gt;.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; -- <br>
&gt;&gt;&gt;&gt; Erik Lindahl &lt;<a href="mailto:erik.lindahl@dbb.su.se" target="_blank">erik.lindahl@dbb.su.se</a> &lt;mailto:<a href="mailto:erik.lindahl@dbb.su.se" target="_blank">erik.lindahl@dbb.su.se</a>&gt;&gt;<br>
&gt;&gt;&gt;&gt; Professor of Biophysics, Dept. Biochemistry &amp; Biophysics, Stockholm <br>
&gt;&gt;&gt;&gt; University<br>
&gt;&gt;&gt;&gt; Science for Life Laboratory, Box 1031, 17121 Solna, Sweden<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;<br>
<br>
-- <br>
Gromacs Developers mailing list<br>
<br>
* Please search the archive at <a href="http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List" rel="noreferrer" target="_blank">http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List</a> before posting!<br>
<br>
* Can&#39;t post? Read <a href="http://www.gromacs.org/Support/Mailing_Lists" rel="noreferrer" target="_blank">http://www.gromacs.org/Support/Mailing_Lists</a><br>
<br>
* For (un)subscribe requests visit<br>
<a href="https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers" rel="noreferrer" target="_blank">https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers</a> or send a mail to <a href="mailto:gmx-developers-request@gromacs.org" target="_blank">gmx-developers-request@gromacs.org</a>.</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div>Erik Lindahl &lt;<a href="mailto:erik.lindahl@dbb.su.se" target="_blank">erik.lindahl@dbb.su.se</a>&gt;</div><div>Professor of Biophysics, Dept. Biochemistry &amp; Biophysics, Stockholm University</div><div>Science for Life Laboratory, Box 1031, 17121 Solna, Sweden</div></div></div></div></div></div></div></div></div>