-
Notifications
You must be signed in to change notification settings - Fork 10
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
Reduce allocations #967
base: main
Are you sure you want to change the base?
Reduce allocations #967
Conversation
7c32282
to
9c0c61a
Compare
d6fb842
to
dabcb52
Compare
91d014d
to
fbe6886
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this looks good - to be thorough, maybe we can compare the buildkite (regular CI) plots for e.g. Ozark, snow col de porte, and snow soil to the current main before merging
also, if you dont mind, you can assign me an issue re dealing with the snow specific humidity allocation and the allocation in HydrologyEarthParameters |
JULIA_CUDA_MEMORY_POOL="none" disables the CUDA memory pool. This is required for MPI runs with certain versions of MPI, but it hurts performance
4f63af6
to
a74687b
Compare
This commit reduces allocations by changing turbulent_fluxes and net_radiation to be in place. In addition to this, the workaround introduced to enable GPU-compatibility in energy_hydrology resulted in lots of additional allocations, so I modified that too. There are still allocations. One of the easy ones to tackle is in surface_specificy_humidity for snow, which accounts for a large fraction of the total allocations for the snowy_land benchmark
a74687b
to
1822266
Compare
This commit reduces allocations by changing turbulent_fluxes and net_radiation to be in place. In addition to this, the workaround introduced to enable GPU-compatibility in energy_hydrology resulted in lots of additional allocations, so I modified that too.
These allocations are due to the fact that there are broadcasted expression hidden in simple function calls, so that Julia cannot properly do operations in place.
There are still allocations. One of the easy ones to tackle is in surface_specificy_humidity for snow, which accounts for a large fraction of the total allocations for the snowy_land benchmark.
Closes #966