-
Notifications
You must be signed in to change notification settings - Fork 78
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 support for METIS to partition a cpgrid #725
Conversation
jenkins build this please |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks quite good.
3d1f269
to
8b2780b
Compare
@blattms: I've added my most recent changes, I've briefly tested SPE9/SPE9_CP.DATA with 4 processes and these are the results: |
Update: When doing the "dry run" for the spe11c_cp case on 6 processes I get the picture below (for Zoltan that looks better) and on 14 processes (which is the maximum on my machine) I even get another segmentation fault.. :( |
@blattms: For a grid without wells, this would be the spot where the edge weights are set, right? And here for a grid with wells, right? Where does the vector As far as I see it, I'm filling everything correctly, since I have extracted the respective things to this function, which I am calling from the METIS code.. |
8b2780b
to
20d857c
Compare
hey, maybe we can improve the title a bit. That would be really cool. I am having a look at the rest now, |
20d857c
to
711308c
Compare
jenkins build this please |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. Just a few comment.
I like the cleanup that you did for the zoltan code. 🦾
Note that in CMakeLists.txt we still require ZOLTAN by default (option REQUIRE_ZOLTAN is ON). Maybe should change that and make sure that either ZOLTAN or METIS is there if the user requires a full-fledged partitioner. This is also fine in a separate PR:
benchmark please |
For the record: I found the error here: METIS need to be compiled with 64-bit integers for this to work with the default edgeWeightMethod, I've added a check for this https://github.com/OPM/opm-grid/pull/725/files#diff-1c35cc536b7520ac857320ed480551e301d775a8c9d51300ea2e01b76489769aR54 |
e1ee426
to
6bb1729
Compare
…umbs) such that 0 is 'poor man's load balancer', 1 is Zoltan and 2 is Metis
a400cb1
to
e1c48f7
Compare
…aking the Zoltan serial partitioner
The default value is a nullptr, if the pointer is set though, the gridAndWells graph is taken from the pointer and not recreated.
e1c48f7
to
d9bc594
Compare
jenkins build this please |
Co-authored-by: Markus Blatt <markus@dr-blatt.de>
7a04cf6
to
c3e17d1
Compare
jenkins build this opm-common=4115 please |
1 similar comment
jenkins build this opm-common=4115 please |
c3e17d1
to
a29048d
Compare
jenkins build this opm-common=4115 please |
jenkins build this opm-common=4120 please |
a29048d
to
72f49cf
Compare
jenkins build this opm-common=4120 please |
1 similar comment
jenkins build this opm-common=4120 please |
2114747
to
136c1ad
Compare
For this: - Include scotch.h in MetisPartition and in the opm-grid-prereqs.cmake - Manually set the SCOTCH_METIS_VERSION to 5 - Do not make METIS Options available when using scotch-metis
When compiling shared libaries we got linker errors for functions that were defined multiple times.
…orSpecificCellAndIncrementNeighborCounter and fillNBORGIDAndWeightsForSpecificCellAndIncrementNeighborCounterForGridWithWells for the case ID = long
136c1ad
to
eeb7f19
Compare
jenkins build this opm-common=4120 please |
rerun "jenkins build this opm-common=4120 please" as soon as Debian has been updated on Jenkins |
jenkins build this please |
@blattms Finally green! |
I am afraid this broke building on Red Hat 8 over here. Does it introduce a hard dependency on Ptscotch? |
Not intentionally. I did not discover this while reviewing at least. There is a version assumption on metis/scotch somehwere. Maybe Redhat 8 ships an older version? Would be cool if you would share the build error. |
Uh ok - yes please share the build error and then I have a look! |
@alfbr: Can you build flow again with this fix here: OPM/opm-common#4140? |
Add support for METIS to partition a cpgrid.
For the reference manual:
This PR and #733, #736, #737, #738 and OPM/opm-simulators#5477 belong together.
Now, a grid can be partitioned using the METIS partitioner or the Zoltan partitioner (which was the only one available before):
For that reason: You either should use Metis with 64-bit integers (for this I had to download metis and compile it myself) or try the log-edge-weights-method.