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
[DO NOT MERGE] single build.sh + Makefile for scotch + ptscotch #17
Conversation
- Single Makefile.inc (requires GNU Make). - Do not define `SCOTCH_PTHREAD`. Number of threads is a compile-time setting and defaults to one. Client code is forced to call `MPI_Init_thread()` requesting `MPI_THREAD_MULTIPLE` support. - Build/check/install/test scotch, then ptscotch. This should simplify a future split in two, with ptscotch depending on scotch and providing only the parallel headers and libraries. - Add trivial patch for a missing function prototype. - Add pthread patch from https://bitbucket.org/petsc/pkg-scotch. - Bump build number.
include mpiexec.sh to fix O_NONBLOCK error
much simpler than in the Makefile
it only handles missing pthread, which doesn't occur
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( |
Why you removed patch2? If we (or others) ever want to build without thread support, we need that patch. What's the harm of keeping it? |
@minrk Could you please wait until I can finish to work in some other issues in #16, then you can take over and do whatever refactor (like moving logics from make to bash)? I have the feeling that we are stepping over each other without proper discussion.
|
@minrk When you "make ptesmumps", you get almost all sequential+parallel headers and libraries, EXCEPT that the sequential |
Isn’t that a bug in petsc configuration if it fails to configure when serial scotch isn’t present, and it’s supposed to use ptscotch? |
I’ll stop working on this until you are done. I removed the unused threads patch because it only applies to a case that isn’t relevant: pthreads being unavailable. That doesn’t occur for conda-forge, so I wanted to keep the deviations from upstream minimal. I expected the noblock patch to work on circle, but it doesn’t appear to, so we are still stuck not testing on Linux. |
Perhaps the issue in PETSc with |
@minrk about the thread patch, I was thinking on users that for any reason may need to do a manual, local rebuild of this package with pthreads disabled. They could just grab our recipe and do minimal modifications to achieve that goal (in my original |
@minrk I'm almost done with #16. Note the different build install path for ptscotch, now the ptscotch package only contains the parallel headers and libraries. So, in short, the files provided by scotch and ptscotch are disjoint sets. The only issue that remains is the header |
About the configure logics in |
Thanks! #18 applies this PR to master, plus moving the logic to build.sh. I didn't end up adding a config.sh since configuring the build is already what build.sh is for, and moving a couple of lines to a different script only to source it didn't make a lot of sense to me.
conda doesn't check for conflicts, so I think whatever package happens to get installed last will own the file. If it's the same file, then it makes sense for it to be in scotch and for ptscotch to depend on scotch, right? |
builds on #16
This build.sh and Make.inc can be used exactly as-is on master