Vcpkg: Add PETSc

Created on 19 Dec 2016  路  13Comments  路  Source: microsoft/vcpkg

Hi!

It would be great if you add PETSc.

Link:
https://bitbucket.org/petsc/petsc

Thanks in advance!

new-port good-first-issue

Most helpful comment

Building PETSc requires a Fortran compiler (in general). See #485 and #1098 for progress regarding Fortran support in vcpkg.

Whenever #1098 reaches a status where it can be merged I will provide port files for PETSc including BLAS/LAPACK, ScaLAPACK, METIS, ParMETIS, HYPRE, MUMPS and SuperLU_dist.

All 13 comments

+1 for this!

If it's of any help, the Microsoft Innovation Centre Rapperswil used to distribute PETSc for Windows:
http://www.msic.ch/Downloads/Software

This download provides the files and a Visual Studio project template for compiling PETSc:
http://www.msic.ch/Portals/0/downloads/PETScForWindows.zip

Unfortunately it doesn't work past VS2013. It would be fantastic to have PETSc available via vcpkg.

Building PETSc requires a Fortran compiler (in general). See #485 and #1098 for progress regarding Fortran support in vcpkg.

Whenever #1098 reaches a status where it can be merged I will provide port files for PETSc including BLAS/LAPACK, ScaLAPACK, METIS, ParMETIS, HYPRE, MUMPS and SuperLU_dist.

Sounds great - thanks.

Since the options for Fortran seem to be intel and pgi, neither of which are (in general) free, would it be worth (and possible) having a non-Fortran PETSc option in addition?

I think on that list you would only lose HYPRE and MUMPS.

PGI introduced a free version of it's Fortran compiler for windows a few months ago [1].

I have never build PETSc without Fortran support, so I am not 100% sure what you will lose, but you are right, HYPRE and MUMPS will definitely be missing.

When we get the feature packages (#1205) Fortran could be made an optional dependency.

[1] http://www.pgroup.com/products/community.htm

Thanks for the update, and for all your work on this!

In my opinion, it's possible to compile PETS without Fortran support and it would be great too have both versions (with Fortran and C++ only).

add options in port for petsc, no fortran

I tried to build PETSc without Fortran once and I failed at some point because some important dependency was missing. Though this is a long time ago and I am not sure what exactly the reason was and whether things have changed in recent versions of PETSc.

Anyway I have a port of PETSc in a branch at https://github.com/albertziegenhagel/vcpkg/tree/fortran-ports. The port is already written to have Fortran as optional feature, though I have never tried to build it without Fortran.

Edit: in the portfile one would have to exchange the dependency to reference-lapack by just lapack to switch from the original Fortran implementation to the one that is available in the regular set of vcpkg ports.

Albert, add please port scotch, pastix

And the question is how real to use in your fork compiler from Intel ICL instead of CL from MSVC, or from pgi pgcc

I tried to build PETSc without Fortran once and I failed at some point because some important dependency was missing. Though this is a long time ago and I am not sure what exactly the reason was and whether things have changed in recent versions of PETSc.

I have built PETSc often without Fortan (on Linux), so I think it should be straightforward, at least for the basic functionality (would have to leave out things like hypre).

@albertziegenhagel I'm fairly unfamiliar with vcpkg; how easy would it be to get a non-fortran package of PETSc into the main vcpkg? Or, do you think fortran support might be added officially soon anyway? (Do you know what is holding that up?)

I don't thing it should be to difficult. Based on my port one would just need to remove everything related to fortran and the dependencies that require fortran. Additionally I had to update the MSYS2 version that is downloaded by vcpkg. The commit for that could just be cherry-picked from my branch.

I don't think Fortran support will be integrated in main vcpkg soon. Although my current implementation works, there are multiple issues with it (e.g. problems with the fortran runtime libraries).

@albertziegenhagel
configure, no fortran, norm

--with-fortran=0 --with-fc=0 --with-windows-graphics=0 --with-x11=0

Was this page helpful?
0 / 5 - 0 ratings

Related issues

madkoala picture madkoala  路  3Comments

aspioupiou picture aspioupiou  路  3Comments

angelmixu picture angelmixu  路  3Comments

ThinkalVB picture ThinkalVB  路  3Comments

tzbo picture tzbo  路  3Comments