I found a projetc called Linear Algebra Targeting Exascale SLATE that aims to substitute ScaLapack.
Looking around its documentation and articles, they have some concepts similar to Julia like using Templates of C++ instead of Multiple Dispatch of Julia.
Their expectations for the final library depends heavily on using parallelism in many scales (MPI with OpenMP). Do you think that (full) Julia would a be perfect language for this project ?
Hi Noel - good question. I think that Julia is a great language for Exscale computing. As you say, the other likely candidate is heavily templated C++, which although I’m sure will work, has downsides in terms of complexity of the language, and how far the template pervades the rest of the code base(s). Furthermore, the revolving door of PhD students and post-docs who will end up working with exascale tools will have to be trained up to use (probably relatively complicated) C++. Julia’s learning curve is less steep, even if arguably it keeps going higher than C++. Also moving towards Julia encourages the development of smaller packages and enables the community to build more agile frameworks - which is something the exascale will need because we’re only beginning to get an idea of what the first ExaScale machines will be made of.
From what I’ve seen looking at the source code in C++, I would need a solution for this post Combining distributed computing / multithreading to make an equivalent code in Julia - if someone has a working solution and want to shared with us I would be happy to see it.
Also, I agree that moving towards Julia encourages new packages the benefit all the community.
“With great projects, comes great packages” (I heard more or less this phrase in SpiderMan)