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

FullyAssembledRows vs SubAssembledRows for GMG #11

Open
JordiManyer opened this issue Mar 11, 2023 · 5 comments
Open

FullyAssembledRows vs SubAssembledRows for GMG #11

JordiManyer opened this issue Mar 11, 2023 · 5 comments
Assignees
Labels
help wanted Extra attention is needed

Comments

@JordiManyer
Copy link
Member

One of the performance inefficiencies we have right now (both in GMG and patch-based smoothers) is the fact that we are constantly having to copy information between PVectors with a matrix-ghost layout (used in CG) and a FESpace-ghost layout (used in the transfer operators).

Within a conversation with Santi, he thought that restricting our implementation to FullyAssembledRows assembling strategies could resolve this issue and would result in greater efficiency.

Food for thought...

@JordiManyer JordiManyer added the help wanted Extra attention is needed label Mar 11, 2023
@JordiManyer JordiManyer self-assigned this Mar 11, 2023
@amartinhuertas
Copy link
Member

One of the performance inefficiencies we have right now (both in GMG and patch-based smoothers) is the fact that we are constantly having to copy information between PVectors with a matrix-ghost layout (used in CG) and a FESpace-ghost layout (used in the transfer operators).

Can you please point in the code the particular point at which this copy is being done?

@JordiManyer
Copy link
Member Author

For instance:

  • In transfer operators for GMG here, here, here, here and many other places.
  • I patch based solvers here

It's an issue we've discussed a couple of times already...

@amartinhuertas
Copy link
Member

It's an issue we've discussed a couple of times already...

I am aware of this.

It is just I don't have the code in mind, so that it is quicker if you point me to the particular lines of code rather than myself trying to find them.

Thanks.

@amartinhuertas
Copy link
Member

Within a conversation with Santi, he thought that restricting our implementation to FullyAssembledRows assembling strategies could resolve this issue and would result in greater efficiency.

I am not sure how FullyAssembledRows is going to fix this.

If am not wrong, the issue is that the local numbering of DoFs in the FESpace does not match the local numbering of DoFs in the linear algebra data structures. Perhaps I am missing something ...

@amartinhuertas
Copy link
Member

BTW ... did we measure the overhead of these copies? It is actually an issue/hot spot in practice?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants