Hello Paolo, > On 28 Jun 2020, at 4:19 PM, Satish Balay <ba...@mcs.anl.gov> wrote: > > On Sun, 28 Jun 2020, Paolo Lampitella wrote: > >> 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: >> >> >> >> https://doc.freefem.org/introduction/installation.html#compilation-on-windows >>
Sorry, our (FreeFEM) documentation is not the best… MSYS2+MinGW64 is a fantastic tool to deploy .exe with PETSc. For example, in this .exe 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>, 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 :) There are some tricks, that you can copy/paste from 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> 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: '--download-metis-cmake-arguments=-G "MSYS Makefiles"' '--download-parmetis-cmake-arguments=-G "MSYS Makefiles"' '--download-superlu-cmake-arguments=-G "MSYS Makefiles"' This is tested on a daily basis on Windows 7 and Windows 10, so I’m a little puzzled by your MPI problems. I’d suggest you stick to MS-MPI (that’s what we use and it’s trivial to install on MSYS2 https://packages.msys2.org/package/mingw-w64-x86_64-msmpi <https://packages.msys2.org/package/mingw-w64-x86_64-msmpi>). I’m not sure this is specific to PETSc, so feel free to have a chat in private. 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. Thanks, Pierre >> >> 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). >> >> >> >> As a side note, there seems to be an official effort in porting petsc to >> msys2 >> (https://github.com/okhlybov/MINGW-packages/tree/whpc/mingw-w64-petsc), but >> it didn’t get into the official packages yet, which I interpret as a warning >> >> >> >> 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 >> 2. Didn’t try PGI as I actually didn’t know if I would then been able to >> make PETSc work. >> >> So, here there are some questions I have with respect to where I stand now >> and the points above: >> >> >> * 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? > > 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. > >> * What about the PGI route? I don’t see it mentioned as well. I guess >> it would require some work on win32fe > > Again - no experience here. > >> * 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? > > I would think Cygwin-GNU route should work. I'll have to see if I can > reproduce the issues you have. > > Satish > >> * More generally, is there some known working, albeit non official, >> route given my constraints (free+fortran+windows+mpi+petsc)? >> >> Thanks for your attention and your great work on PETSc >> >> Best regards >> >> Paolo Lampitella