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

Reply via email to