-
Notifications
You must be signed in to change notification settings - Fork 194
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
example code for AMG-DD solver? #1115
Comments
@BenWibking, you can use the ij driver to test AMG-DD by passing -solver 90 or -solver 91: |
Thanks for the quick response! I see I was looking at the wrong source file. I am unsure about the parameter setting the number of ghost layers:
Perhaps I missed something in the paper. How many ghost layers were used for the tests shown? |
If I'm remembering this correctly, everything should work correctly with a single ghost layer. The main algorithmic development in the paper was driven by trying to minimize the number of ghost layers required. A single ghost layer is the default set in the ij driver, so you shouldn't need to set anything: |
Ok, I've looked at that code and tried to modify the AMG2023 code to use AMGDD based on ij.c. My code is here: BenWibking/AMG2023@c847960#diff-ee753cc8c3a9fe01da6eeade8f8b9aee1d4c7485f3f52f2ae2add0a12222111d However, I get an MPI_ABORT with no other error message that would enable me to debug it, even when running in a debugger:
Is there some way to see why Hypre called MPI_ABORT? |
I recompiled without MPI and was able to see this. It looks like a bug:
|
The full backtrace is:
|
Hm... after just a few quick ij driver runs, I'm not able to reproduce this on my side. From your backtrace, it looks like the size passed to the memory allocation is bad (looks like some uninitialized garbage or something). The code should just be allocating a small amount of memory here: basically just a data structure for each level of the AMG hierarchy (the size is |
|
If I set a breakpoint on line 76, it doesn't trigger, so I assume that means it's not getting executed:
|
Ok, it's not setting up BoomerAMG:
|
Are you calling |
OK, I think I see your issue. The AMG-DD solver object is called |
Ah, ok. I was confused about that. Everything works now. |
Does the AMGDD solver work on HIP? I tried to run it on a single node on Frontier, but I get a segmentation fault (whereas the unmodified AMG2023 runs fine with this build):
I built Hypre with |
You can see the full set of changes and the job scripts I used here: LLNL/AMG2023@main...BenWibking:AMG2023:amgdd |
I recompiled Hypre with
|
It should work fine with hip (I just tried AMG-DD via the ij driver on an AMD machine with no issues). Your build looks OK to me. Also nothing is jumping out at me in your changes that would screw up a GPU run... Not sure where the issue is. Can you try running with valgrind? That might be the easiest way to at least diagnose where the segfault is occurring. |
Are there any examples of AMG-DD usage?
I don't see it used anywhere in https://github.com/hypre-space/hypre/blob/master/src/test/test_ij.c.
I would like to replicate the tests in https://arxiv.org/abs/1906.10575, but there does not appear to be enough information in the paper to choose values for all of the parameters that are exposed by the API.
The text was updated successfully, but these errors were encountered: