Changed the form of the field allocators #24
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR applies some performance changes in the OpenACC code and changes the form of the allocators in the swm_cartesian.py code. These changes while ugly significantly improve the performance of the code. Strangely, when using the gt4py.next allocator, which has an asnumpy() method, the performance of the following backends gt:gpu, numpy, and gt:cpu_ifirst is rather disappointing. So I changed the storage types to use the gt4py.storage class. While this improves the performance for all the backends significantly, this new storage class does not support the use of the asnumpy() method. So an ugly solution is to only use the gt4py.next storage class when generating output. We need to fix this but for now, this solution gives both good performance and the ability to verify correctness.