Performance of Oceananigans v0.90 #3435
Replies: 3 comments 1 reply
-
@Yixiao-Zhang How did you get Oceananigans running on Satori? I'm running into a lot of bugs regarding CUDA |
Beta Was this translation helpful? Give feedback.
-
I just noticed this comment now: @Yixiao-Zhang I strongly suspect that the reason Oceananigans is slower on version 0.90.0 that on version 0.63 is because we do advection in a very different way now. In 0.63.0 a high order scheme (like WENO5) was limited only once near the boundary to a centered scheme, now we progressively decrease the order as we approach the boundary (from 5 to 3 to finally first order in case of WENO5) by keeping the characteristic numerical error of the advection (in WENO case a diffusive instead of limiting to a dispersive scheme like centered second order). Regarding immersed grids, I do not have a figure in mind particularly on how slow an immersed grid is vs a non immersed grid, but Immersed boundaries do indeed put a strain on the performance because of the many if conditions that require loading the immersed boundary from memory. @anthony-meza I routinely run on satori without any problem, what errors are you facing? Note that on Satori it is more convenient to build julia from source because of its architecture (PowerPC). Try following these steps:
Not that (I am not sure it is strictly necessary) before I launch a job I also
|
Beta Was this translation helpful? Give feedback.
-
@simone-silvestri Thank you for your response! The perform of the latest version is fine for me. I was just curious about the reasons behind. I am closing this issue. For the @anthony-meza I think it is best to show your error messages first. Since I am closing this issue, you can open a new issue if you need to. I will be willing to help. |
Beta Was this translation helpful? Give feedback.
-
I have some old simulations that use Oceananigans v0.63 and Julia v1.6.2. Now, I need to add topography to these simulations. So, I set up a new simulation with Oceananigans v0.90 and Julia v1.9.3 and used an immersed boundary condition. However, I found the new simulation is 2.3 times slow as the old ones. I do not know whether it is because of the immersed boundary condition, so I tested the performance of the two versions of Oceananigans for a standard non-hydrostatic simulation.
I did not use the benchmark scripts in Oceananigans, because some of them are broken (it seems to me that it is due to changes in the API of
PrettyTables
.). The script for Oceananigans v0.63 isI tested on MIT Satori, using a Tesla V100 GPU. For this simulation, one time-step takes 0.29 seconds for Oceananigans v0.63 but 0.39 seconds for Oceananigans v0.90. The script for Oceananigans v0.90 and the output logs are posted here:
- test_speed_v0.63.jl.txt
- test_speed_v0.90.jl.txt
- test_speed_output_v0.63.txt
-test_speed_output_v0.90.txt
In summary, I have two questions:
- Based on my test, can we say that Oceananigans v0.90 is 30% slower than Oceananigans v0.63 for the same simulation?
- Does using an immersed boundary condition make the simulation roughly 50% slower?
Beta Was this translation helpful? Give feedback.
All reactions