Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add PETSc #431

Closed
vmaks opened this issue Dec 19, 2016 · 15 comments
Closed

Add PETSc #431

vmaks opened this issue Dec 19, 2016 · 15 comments
Labels
category:new-port The issue is requesting a new library to be added; consider making a PR! info:good-first-issue This issue would be a good issue to get one's feet wet in solving.

Comments

@vmaks
Copy link

vmaks commented Dec 19, 2016

Hi!

It would be great if you add PETSc.

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

Thanks in advance!

@ras0219-msft ras0219-msft added the category:new-port The issue is requesting a new library to be added; consider making a PR! label Dec 19, 2016
@fcooper8472
Copy link

+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.

@albertziegenhagel
Copy link
Contributor

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.

@fcooper8472
Copy link

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.

@albertziegenhagel
Copy link
Contributor

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

@fcooper8472
Copy link

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

@MVoz
Copy link
Contributor

MVoz commented Aug 5, 2017

#1098 (comment)

@vmaks
Copy link
Author

vmaks commented May 24, 2018

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).

@MVoz
Copy link
Contributor

MVoz commented May 24, 2018

add options in port for petsc, no fortran

@albertziegenhagel
Copy link
Contributor

albertziegenhagel commented May 24, 2018

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.

@MVoz
Copy link
Contributor

MVoz commented May 24, 2018

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

@fcooper8472
Copy link

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?)

@albertziegenhagel
Copy link
Contributor

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).

@MVoz
Copy link
Contributor

MVoz commented May 25, 2018

@albertziegenhagel
configure, no fortran, norm

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

@NancyLi1013 NancyLi1013 added the info:good-first-issue This issue would be a good issue to get one's feet wet in solving. label Dec 9, 2019
@NancyLi1013 NancyLi1013 removed their assignment Dec 9, 2019
@Cheney-W
Copy link
Contributor

Cheney-W commented Nov 3, 2022

If you wish to add this port in the future, you can reopen this issue, but we're closing it for now.

@Cheney-W Cheney-W closed this as not planned Won't fix, can't repro, duplicate, stale Nov 3, 2022
@Yattabyte
Copy link

Yattabyte commented May 14, 2024

PETSc and SLEPc are a nightmare to configure on windows, it would be great if this package manager had these at some point in the last 7 years

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:new-port The issue is requesting a new library to be added; consider making a PR! info:good-first-issue This issue would be a good issue to get one's feet wet in solving.
Projects
None yet
Development

No branches or pull requests

8 participants