5 ms·
There's no mention of distribution, which is a huge advantage for rust since it compiles to a static binary. There are many applications where the algorithms a
by vsskanth 3y ago
There's no mention of distribution, which is a huge advantage for rust since it compiles to a static binary.
There are many applications where the algorithms are written by a specialist which is then compiled into a static binary for use in another application or UI. This is why FORTRAN C and C++ are so popular in the scientific computing field for writing numerical algorithms. It's not just for speed, there is clear separation of concerns here.
Julia is still far behind here as you can't compile to a GC free static binary yet. There is PackageCompiler.jl but it appears it makes large binaries.
Scientific analysis and plotting is just one aspect, ultimately your algorithms would have to be distributed for use by others.
- Archit3ch 3y ago> There's no mention of distribution, which is a huge advantage for rust since it compiles to a static binary. Frustrating article. Not only does it levy unfair criticism against Julia, it misses on one obvious legitimate complaint. Rust can be compiled today, no caveats.
- pjmlp 3y agoHardly irrelevant to a community used to R, Python, Mathematica and MatLab. Fortran, C and C++ are popular due to the way they allow to explore HPC infrastructure, which Rust is still years away to support, and Julia is already ahead in that regard. MPI, SIMD, OpenMP, NUMA algorithms across the computation cluster.
- cozzyd 3y agoIs there something like OpenMP for rust? (there must be...) But I imagine MPI is probably not a great fit...
- IceSentry 3y agoThere's rayon, which in my opinion makes writing multi threaded code even simpler than openmp. It's also nice that it doesn't rely on any compiler feature. It's just a library.
- pjmlp 3y agoRayon doesn't do GPGPU offloading. https://www.openmp.org/updates/openmp-accelerator-support-gpus/ https://www.openmp.org/updates/openmp-accelerator-support-gp...
- physicsguy 3y agoPlus vendor compilers often outperform GCC and LLVM… on Cray systems especially
- sanderjd 3y agoCan Julia take advantage of that?
- pjmlp 3y agoCray is pushing their own language as well, Chapel. https://chapel-lang.org/ https://chapel-lang.org/ As for Julia on Cray, "Julia — The Newest Petaflop Family Language We Have Started to Love" https://www.avenga.com/magazine/julia-programming-language https://www.avenga.com/magazine/julia-programming-language > Julia is one of the few languages that are in the so-called PetaFlop family; the other languages are C, C++ and Fortrant. It achieved 1.54 petaflops with 1.3 million threads on the Cray XC40 supercomputer.
- sanderjd 3y agoBut specifically because of the proprietary compiler? Or is it just calling Fortran / C / C++ libraries that were compiled with their compiler?
- leephillips 3y agoThe program is Celeste: https://juliahub.com/case-studies/celeste/index.html https://juliahub.com/case-studies/celeste/index.html It seems to be pure Julia. Julia uses the LLVM compiler; I’m pretty sure that’s the only platform, aside from experiments compiling to WASM.
- DNF2 3y agoThe compiler is free and open source, not proprietary. It is built on LLVM, which is also FOSS. And Julia code is not Fortran/C/C++, not sure what you are asking.
- cozzyd 3y agoC and fortran win here because of ABI... (and C++ sorta...)
- sanderjd 3y agoYes. I work on a project that calls into Julia from Python, and the dynamic packaging has been (IMO) a nightmare. It would be so excellent if I had a static library to link against instead!