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

Update products with the block-Jacobi preconditioner #278

Merged
merged 1 commit into from
Oct 11, 2023

Conversation

amontoison
Copy link
Member

No description provided.

@amontoison
Copy link
Member Author

amontoison commented Sep 29, 2023

For Block-Krylov methods we need operator-matrix products.
I added a method for CPU matrices.

I don't understand why you implemented a kernel for the CUDA version.
Is it not possible to perform a asynchronous gemm with each block and synchronize at the end?

A block-Jacobi should not have overlap.

ps: I also added some view for the CPU variants to avoid unnecessary copies.

@frapac
Copy link
Member

frapac commented Sep 29, 2023

The preconditioner on master is deprecated. Please have a look at the fp/precond_experiments branch.

I don't understand why you implemented a kernel for the CUDA version.

https://github.com/exanauts/ExaPF.jl/blob/fp/precond_experiments/src/LinearSolvers/preconditioners.jl#L182-L188

A block-Jacobi should not have overlap.

The block-Jacobi preconditioner was just an intermediate step to implement a overlapping Schwarz preconditioner. Hence the overlap found in the code. Feel free to rename the preconditioner if you prefer.

ps: I also added some view for the CPU variants to avoid unnecessary copies.

The CPU implementation is here just for debugging purpose, but feel free to clean it.

My opinion is that preconditioners do not belong to ExaPF and should be moved in a new package.

test/TestLinearSolvers.jl Outdated Show resolved Hide resolved
test/TestLinearSolvers.jl Outdated Show resolved Hide resolved
test/TestLinearSolvers.jl Outdated Show resolved Hide resolved
@codecov-commenter
Copy link

codecov-commenter commented Oct 3, 2023

Codecov Report

Merging #278 (368237b) into main (dbc883e) will increase coverage by 0.04%.
The diff coverage is 70.00%.

❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

@@            Coverage Diff             @@
##             main     #278      +/-   ##
==========================================
+ Coverage   74.50%   74.55%   +0.04%     
==========================================
  Files          31       30       -1     
  Lines        4182     4201      +19     
==========================================
+ Hits         3116     3132      +16     
- Misses       1066     1069       +3     
Files Coverage Δ
src/LinearSolvers/preconditioners.jl 81.93% <70.00%> (+0.65%) ⬆️

... and 5 files with indirect coverage changes

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

@amontoison amontoison force-pushed the mul-block-jacobi branch 2 times, most recently from b5d5b88 to 89126a3 Compare October 4, 2023 01:19
@amontoison amontoison requested a review from frapac October 4, 2023 01:19
@frapac frapac merged commit 7d92b39 into exanauts:main Oct 11, 2023
2 checks passed
@amontoison amontoison deleted the mul-block-jacobi branch October 11, 2023 17:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants