5 ms·
"Small" is difficult, and it is actually in many cases, harder than "big". Small needs language support, GC support, runtime support, and is delicate - any one
by ViralBShah 4y ago
"Small" is difficult, and it is actually in many cases, harder than "big". Small needs language support, GC support, runtime support, and is delicate - any one thing can throw off performance. You can't hide behind library calls. In Julia, since we can orchestrate everything, from the abstractions all the way down to the instructions, making small problems work well has been possible.
A single grad student can make large problems work (my thesis was large linear algebra and I could just hack away on enough C and MPI to get it done). In our early days on Julia, we realized that 90% of the world actually needs small linear algebra and it is a tantalizingly difficult problem. The work done in the Julia community over the years has made it all possible through a collaboration across lots of different teams and disciplines.
- dekhn 4y agoI think this is a pretty key point- the majority of users haven't been well-served by large-scale compute. I've heard from a number of folks in genomics that all they need is a faster way to invert a "big" matrix- and when they show me the matrix, it's tiny compared to what state of the art supercomputers are working on.
- ViralBShah 4y agoAsk them to download Julia and try it, and file an issue if it is not fast enough. We try to have the latest available. See for example: https://github.com/JuliaLinearAlgebra/RecursiveFactorization.jl https://github.com/JuliaLinearAlgebra/RecursiveFactorization...
- adgjlsfhk1 4y agoThat's especially funny because inverting a matrix is almost never what you want to do anyway.
- dekhn 4y agoYeah, in retrospect, I'm sure what they really wanted was to diagonalize the matrix.
- hpcjoe 4y agoOne of the first questions I ask when discussing issues like this, is to define "big" and "small" for me. Every group has their own set of definitions, and the differences can result in interesting conversations.