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

Fix Resize Issue of Fab with the Async Arena #3663

Merged
merged 4 commits into from
Dec 12, 2023

Conversation

WeiqunZhang
Copy link
Member

Summary

Previously there was an issue with resizing Fabs using The_Async_Arena. The issue was the previous allocation during resize might be done on a different stream. This commit fixes the issue and makes the following patterns work.

FArrayBox tmp0(The_Async_Arena());
FArrayBox tmp1(The_Async_Arena());
FArrayBox tmp2;
for (MFIter ...) {
    tmp0.resize(box,ncomp,The_Async_Arena());
    tmp1.resize(box,ncomp);
    tmp2.resize(box,ncomp,The_Async_Arena());
}

Additional background

AMReX-Astro/Castro#2677

Checklist

The proposed changes:

  • fix a bug or incorrect behavior in AMReX
  • add new capabilities to AMReX
  • changes answers in the test suite to more than roundoff level
  • are likely to significantly affect the results of downstream AMReX users
  • include documentation in the code and/or rst files, if appropriate

Previously there was an issue with resizing Fabs using The_Async_Arena. The
issue was the previous allocation during resize might be done on a different
stream. This commit fixes the issue and makes the following patterns work.

    FArrayBox tmp0(The_Async_Arena());
    FArrayBox tmp1(The_Async_Arena());
    FArrayBox tmp2;
    for (MFIter ...) {
        tmp0.resize(box,ncomp,The_Async_Arena());
        tmp1.resize(box,ncomp);
        tmp2.resize(box,ncomp,The_Async_Arena());
    }
@zingale
Copy link
Member

zingale commented Dec 12, 2023

this fixes the Castro problems when we remove the Elixir's in hydro

@WeiqunZhang WeiqunZhang merged commit 064db4e into AMReX-Codes:development Dec 12, 2023
69 checks passed
guj pushed a commit to guj/amrex that referenced this pull request Dec 13, 2023
## Summary

Previously there was an issue with resizing Fabs using The_Async_Arena.
The issue was the previous allocation during resize might be done on a
different stream. This commit fixes the issue and makes the following
patterns work.

    FArrayBox tmp0(The_Async_Arena());
    FArrayBox tmp1(The_Async_Arena());
    FArrayBox tmp2;
    for (MFIter ...) {
        tmp0.resize(box,ncomp,The_Async_Arena());
        tmp1.resize(box,ncomp);
        tmp2.resize(box,ncomp,The_Async_Arena());
    }

## Additional background

AMReX-Astro/Castro#2677

## Checklist

The proposed changes:
- [x] fix a bug or incorrect behavior in AMReX
- [ ] add new capabilities to AMReX
- [ ] changes answers in the test suite to more than roundoff level
- [ ] are likely to significantly affect the results of downstream AMReX
users
- [ ] include documentation in the code and/or rst files, if appropriate
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.

None yet

2 participants