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

Exploring ghost optimisation #128

Merged
merged 21 commits into from
Aug 31, 2023

Conversation

JordiManyer
Copy link
Member

@JordiManyer JordiManyer commented Aug 28, 2023

Todo/Done:

  • Merge functionalities of consistent_local_views and change_ghost. Expand functionality of change_ghost.
  • Add possibility to use OwnAndGhostVector as vector partition of resulting PVectors, as a way to reduce memory copying when transferring between FESpace and linear system layouts.
  • Implement BlockPArray <: AbstractBlockArray, a new type that behaves as a BlockArray{PArray} and which fulfills the APIs of both PArray and AbstractBlockArray. This will get rid of the type piracy we have been using up to now and gets rid of some of the issues we are having (mainly, the fact that BlockArray expects its blocks to be indexable).
  • MultiFieldFESpace{<:BlockMultiFieldStyle} now has a BlockPRange as gids, which makes the fespace dof vector be of type BlockPVector. This is necessary to create consistency between fespace and system vectors, which in turn avoids memory allocations/copies when transferring between FESpace and linear system layouts.

To Think:

  • Now BlockPArray constructors work with BlockPRanges, which is inconsistent with PartitionedArrays. Should we be trying to be coherent? How can we do it well for dispatching?

Left for another PR:

  • Implement a new mechanism that allows the user to skip PRange ghost-related optimisations while assembling the system matrix. This will create linear systems which ghost layout is compatible with the original FESpace, avoiding copying data when transferring between FESpace and linear system layouts.

@codecov-commenter
Copy link

codecov-commenter commented Aug 29, 2023

Codecov Report

Merging #128 (f73f0d6) into block-assemblers-v0.3 (25ece1f) will not change coverage.
The diff coverage is 0.00%.

❗ Current head f73f0d6 differs from pull request most recent head c8c6d2a. Consider uploading reports for the commit c8c6d2a to get more accurate results

❗ Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.

@@                  Coverage Diff                   @@
##           block-assemblers-v0.3    #128    +/-   ##
======================================================
  Coverage                   0.00%   0.00%            
======================================================
  Files                         11      12     +1     
  Lines                       2242    2402   +160     
======================================================
- Misses                      2242    2402   +160     
Files Changed Coverage Δ
src/Algebra.jl 0.00% <0.00%> (ø)
src/BlockPartitionedArrays.jl 0.00% <0.00%> (ø)
src/FESpaces.jl 0.00% <0.00%> (ø)
src/MultiField.jl 0.00% <0.00%> (ø)

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

@JordiManyer
Copy link
Member Author

Tests will not fail after the release of Gridap v0.17.20

@JordiManyer JordiManyer marked this pull request as ready for review August 31, 2023 04:55
@JordiManyer JordiManyer merged commit 5b52a4f into block-assemblers-v0.3 Aug 31, 2023
@JordiManyer JordiManyer deleted the exploring-ghost-optimisation branch August 31, 2023 04:55
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.

2 participants