<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"Segoe UI Emoji";
        panose-1:2 11 5 2 4 2 4 2 2 3;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.apple-converted-space
        {mso-style-name:apple-converted-space;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 2.0cm 2.0cm 2.0cm;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="IT" link="blue" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">Thanks Pierre,</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I’ll give a shot at it as soon as I have everything in place again</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Paolo</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Inviato da <a href="https://go.microsoft.com/fwlink/?LinkId=550986">
Posta</a> per Windows 10</p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" style="border:none;padding:0cm"><b>Da: </b><a href="mailto:pierre.jolivet@enseeiht.fr">Pierre Jolivet</a><br>
<b>Inviato: </b>domenica 28 giugno 2020 17:32<br>
<b>A: </b><a href="mailto:paololampitella@hotmail.com">Paolo Lampitella</a><br>
<b>Cc: </b><a href="mailto:balay@mcs.anl.gov">Satish Balay</a>; <a href="mailto:petsc-users@mcs.anl.gov">
petsc-users</a><br>
<b>Oggetto: </b>Re: [petsc-users] PETSc and Windows 10</p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">On 28 Jun 2020, at 5:13 PM, Paolo Lampitella <<a href="mailto:paololampitella@hotmail.com">paololampitella@hotmail.com</a>> wrote:<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">Hello Pierre,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">thank you very much. Knowing that you actually test it on a daily basis is already enough for me to then focus on the MSYS2-MinGw64 toolchain, which would be more straighforward to deploy (instead of having someone install cygwin) and valuable
 to reuse.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">I already had the impression that your work on it was recent but, knowing that your actual code is C++, and seeing some recent issues with MS-MPI and gfortran, say<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><a href="https://github.com/microsoft/Microsoft-MPI/issues/33">https://github.com/microsoft/Microsoft-MPI/issues/33</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">gave me the impression that the overall toolchain was poorly mantained/tested by Microsoft on the fortran side and maybe this could go undetected in non fortran projects.<o:p></o:p></p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">It may be poorly tested, but it’s working, at least with MUMPS, see attached screenshot.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">What I’d suggest is:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">1) start from scratch with MSYS2 MS-MPI + mingw-w64-x86_64-toolchain, mingw-w64-x86_64-openblas, flex, gawk, gcc, gcc-fortran, gcc-libs, stuff like that (all installed by pacman, cf. <a href="https://github.com/FreeFem/FreeFem-sources/blob/master/etc/jenkins/deployRelease/README.md#windows-system">https://github.com/FreeFem/FreeFem-sources/blob/master/etc/jenkins/deployRelease/README.md#windows-system</a>)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">2) you need to explicitly _remove_ mingw-w64-x86_64-python because PETSc ./configure cannot work with it (there has been recent changes w.r.t. Python 3 so maybe it’s better now): pacman -R mingw-w64-x86_64-python mingw-w64-x86_64-gdb<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">3) then use the same makefile as we use for PETSc<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Do not hesitate if you run into issues.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Pierre<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><img border="0" width="640" height="409" style="width:6.6666in;height:4.2583in" id="_x0032_31375EB-8ADF-4523-905E-CCA8AEA3A900" src="cid:image001.png@01D64D76.54C49F60"><o:p></o:p></p>
</div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">I can also confirm that my problems with MSYS2 and MinGW64 already started at the MPI level and had nothing to do with PETSc… yet.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">At this point, I guess, we can either go off radar (if there really isn’t much love for MSYS2 here<span class="apple-converted-space"> </span><span style="font-family:"Segoe UI Emoji",sans-serif">😉</span>) or keep it going.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">I will try to rework everything from scratch with MSYS2 and first make extensive MPI tests again. Maybe expect to be bothered again when I try to reuse your Makefile<span class="apple-converted-space"> </span><span style="font-family:"Segoe UI Emoji",sans-serif">😉</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Thanks again<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Paolo<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Inviato da<span class="apple-converted-space"> </span><a href="https://go.microsoft.com/fwlink/?LinkId=550986">Posta</a><span class="apple-converted-space"> </span>per Windows 10<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<div>
<p class="MsoNormal"><b>Da:<span class="apple-converted-space"> </span></b><a href="mailto:pierre.jolivet@enseeiht.fr">Pierre Jolivet</a><br>
<b>Inviato:<span class="apple-converted-space"> </span></b>domenica 28 giugno 2020 16:42<br>
<b>A:<span class="apple-converted-space"> </span></b><a href="mailto:paololampitella@hotmail.com">Paolo Lampitella</a><br>
<b>Cc:<span class="apple-converted-space"> </span></b><a href="mailto:balay@mcs.anl.gov">Satish Balay</a>;<span class="apple-converted-space"> </span><a href="mailto:petsc-users@mcs.anl.gov">petsc-users</a><br>
<b>Oggetto:<span class="apple-converted-space"> </span></b>Re: [petsc-users] PETSc and Windows 10<o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Hello Paolo,<o:p></o:p></p>
</div>
<div>
<div>
<div>
<p class="MsoNormal"><br>
<br>
<br>
<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal">On 28 Jun 2020, at 4:19 PM, Satish Balay <<a href="mailto:balay@mcs.anl.gov">balay@mcs.anl.gov</a>> wrote:<o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<div>
<div>
<p class="MsoNormal">On Sun, 28 Jun 2020, Paolo Lampitella wrote:<br>
<br>
<br>
<br>
<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal" style="margin-bottom:12.0pt"> 1.  MSYS2+MinGW64 compilers. I understood that MinGW is not well supported, probably because of how it handles paths, but I wanted to give it a try, because it should be more “native” and there seems to be
 relevant examples out there that managed to do it. I first tried with the msys2 mpi distribution, produced the .mod file out of the mpi.f90 file in the distribution (I tried my best with different hacks from known limitations of this file as also present in
 the official MS-MPI distribution) and tried with my code without petsc, but it failed in compiling the code with some strange MPI related error (argument mismatch between two unrelated MPI calls in the code, which is non sense to me). In contrast, simple mpi
 tests (hello world like) worked as expected. Then I decided to follow this:<br>
<br>
<br>
<br>
<a href="https://doc.freefem.org/introduction/installation.html#compilation-on-windows">https://doc.freefem.org/introduction/installation.html#compilation-on-windows</a><o:p></o:p></p>
</blockquote>
</div>
</div>
</blockquote>
<div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">Sorry, our (FreeFEM) documentation is not the best…<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">MSYS2+MinGW64 is a fantastic tool to deploy .exe with PETSc.<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">For example, in this .exe <a href="https://github.com/FreeFem/FreeFem-sources/releases/download/v4.6/FreeFEM-4.6-win7-64.exe">https://github.com/FreeFem/FreeFem-sources/releases/download/v4.6/FreeFEM-4.6-win7-64.exe</a>, we ship PETSc +
 SLEPc (in real + complex) with MS-MPI, hypre, MUMPS, ScaLAPACK, SuperLU, SuiteSparse, ParMETIS, METIS, SCOTCH, TetGen, HPDDM, all compiled by PETSc, needless to say :)<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">There are some tricks, that you can copy/paste from <a href="https://github.com/FreeFem/FreeFem-sources/blob/master/3rdparty/ff-petsc/Makefile#L99-L120">https://github.com/FreeFem/FreeFem-sources/blob/master/3rdparty/ff-petsc/Makefile#L99-L120</a><o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">Basically, hypre + MinGW64 does not work if you don’t supply '--download-hypre-configure-arguments=--build=x86_64-linux-gnu --host=x86_64-linux-gnu' and all CMake packages need an additional flag as well:<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">'--download-metis-cmake-arguments=-G "MSYS Makefiles"' '--download-parmetis-cmake-arguments=-G "MSYS Makefiles"' '--download-superlu-cmake-arguments=-G "MSYS Makefiles"'<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">This is tested on a daily basis on Windows 7 and Windows 10, so I’m a little puzzled by your MPI problems.<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">I’d suggest you stick to MS-MPI (that’s what we use and it’s trivial to install on MSYS2 <a href="https://packages.msys2.org/package/mingw-w64-x86_64-msmpi">https://packages.msys2.org/package/mingw-w64-x86_64-msmpi</a>).<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">I’m not sure this is specific to PETSc, so feel free to have a chat in private.<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">But I guess we can continue on the mailing list as well, it’s just that there is not much love for MSYS2 over here, sadly.<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">Pierre<o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal"><br>
<br>
<br>
<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal"><br>
but the exact same type of error came up (MPI calls in my code were different, but the error was the same). Trying again from scratch (i.e., without all the things I did in the beginning to compile my code) the same error came up in compiling some of the freefem
 dependencies (this time not even mpi calls).<br>
<br>
<br>
<br>
As a side note, there seems to be an official effort in porting petsc to msys2 (<a href="https://github.com/okhlybov/MINGW-packages/tree/whpc/mingw-w64-petsc">https://github.com/okhlybov/MINGW-packages/tree/whpc/mingw-w64-petsc</a>), but it didn’t get into
 the official packages yet, which I interpret as a warning<br>
<br>
<br>
<br>
 1.  Didn’t give a try to cross compiling with MinGw from Linux, as I tought it couldn’t be any better than doing it from MSYS2<br>
 2.  Didn’t try PGI as I actually didn’t know if I would then been able to make PETSc work.<br>
<br>
So, here there are some questions I have with respect to where I stand now and the points above:<br>
<br>
<br>
    *   I haven’t seen the MSYS2-MinGw64 toolchain mentioned at all in official documentation/discussions. Should I definitely abandon it (despite someone mentioning it as working) because of known issues?<o:p></o:p></p>
</div>
</blockquote>
<div>
<p class="MsoNormal"><br>
I don't have experience with MSYS2-MinGw64, However Pierre does - and perhaps can comment on this. I don't know how things work on the fortran side.<br>
<br>
<br>
<br>
<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">    *   What about the PGI route? I don’t see it mentioned as well. I guess it would require some work on win32fe<o:p></o:p></p>
</div>
</blockquote>
<div>
<p class="MsoNormal"><br>
Again - no experience here.<br>
<br>
<br>
<br>
<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">    *   For my Cygwin-GNU route (basically what is mentioned in PFLOTRAN documentation), am I expected to then run from the cygwin terminal or should the windows prompt work as well? Is the fact that I require a second Enter hit and the
 mismanagement of serial executables the sign of something wrong with the Windows prompt?<o:p></o:p></p>
</div>
</blockquote>
<div>
<p class="MsoNormal"><br>
I would think Cygwin-GNU route should work. I'll have to see if I can reproduce the issues you have.<br>
<br>
Satish<br>
<br>
<br>
<br>
<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">    *   More generally, is there some known working, albeit non official, route given my constraints (free+fortran+windows+mpi+petsc)?<br>
<br>
Thanks for your attention and your great work on PETSc<br>
<br>
Best regards<br>
<br>
Paolo Lampitella<o:p></o:p></p>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>