General context:
I developed a fairly large Navier-Stokes (finite difference) algorithm written in FORTRAN90. It has adaptive meshes (hence the load balance problem), and I tried various methods (MPI, OpenMP and OpenMP-MPI hyrbid) to parallelize it. However, it does not scale well, that is, according to Amdahl’s law, it performs 96-97% of calculations in parallel. In addition, the total mesh size is a couple of hundred million points, which will require an increase in the future.
Query:
Now I’m thinking of switching to Julia, since it has become very tedious to maintain and add additional functionality to existing code.
The problem is that I cannot find a good answer about Julia's parallel work. I searched the web and also watched a lot of videos on YouTube. I noticed that most people say that Julia is very suitable for parallel computing, some even provide a diagram showing the reduction in time elapsed compared to the serial code. However, some of the answers / videos are quite old, which makes them a little unreliable due to the growing nature of this new language.
So I would like to know if a language can scale even for several thousand cores?
Additional Information:
, . 3-4 . , . 20 .
- , InfiniBand .