I am looking for information on numerical models of the ocean (currents and waves) that have GPU capabilities. Seems there is some work done with ROMS and NEMO (called gNEMO). What are the limitations of those codes?
Hi Héctor, the MIKE21 HD FM model (hydrodynamic model) has GPU capabilities, unfortunately it is commercial software and the source code is not available. Nevertheless, it is very powerful and the GPU reduces considerably the computing time and can be run while other models use the core power (for instance a wave model such as MIKE 21 SW). I believe the MIKE3 HD FM model also has GPU capabilities and the wave model MIKE21 SW will follow. DHI is also planning to release the MIKE3 SW model, which is a 3D wave model and will most likely will have GPU capabilities. There is a bechmark report from DHI which should be available from their webpage.
I am looking at an implementation of SWE equations on GPU's and I did quite some work using ordinary programming based on massive parallel systems and domain decomposition methods.
I would conclude that thinking in GPU + MIC style is a benefit since it forces u to look at SIMD vectorization and cache locality but I am afraid that most of the models we have now available are far away from being optimized in such a way that they fit well in this kind of parallel framework ... look at this article and u will see, which way has to be chosen I like this article a lot ... even if really not something new but we need to put parallel programming on another level and design code more versatile with respect to hybrid parallelism ...
Moreover, I like to mention that many claim to have GPU capabilities but all this breaks down if we talk about massive number of grid points, where this methods mostly completely fail to scale with the number of cores and this is true for all of the commercial system, so as long your problems is say about 1Million unknowns it can be quite ok but this are childish problems in terms of ocean modeling. We are rather looking in problems of sizes of about 1Billion unknowns ... at least. E.g. in spectral wave modelling we have like 1-10 Million grid points and each grid point has 1000 spectral bins for Ocean models we have we can have much more grid points and maybe 100 vertical levels ... if u want to be innovative rather then doing things that have been done already ...