4 ms·
This is a good pitch and I think composability is the major selling point for programming in the large. Time will tell though if the ecosystem doesn’t fragment
by marmaduke 6y ago
This is a good pitch and I think composability is the major selling point for programming in the large. Time will tell though if the ecosystem doesn’t fragment as different approches or competing packages appear, for political if not technical reasons. The Torch vs TensorFlow choice could have been in Julia.
> I think Julia will someday eat Python for scientific computing, but it may be a while before that becomes obvious to Python users.
I can’t say I understand this rather pervasive attitude. If you have well tested code in a language which you can easily interface with, why bother rewriting it except for reasons of performance or compositionality? Or perhaps you mean that we’ll all be writing Julia even if some algorithms still sit in Python?
- dnautics 6y agoTurnover. More and more students will be taught starting with julia instead of python, since it has a foothold in academia. Not all academics, but some academics will be forced to switch over due to performance characteristics, or because they have to reproduce some existing code that's already in julia, and the ergonomic delta will be enough that those people (mostly grad students and postdocs I imagine) will want to their next project in julia-not-python, too. Eventually you won't be able to turn down a job candidate because they learned in julia. The hangers on in python will hang on of course (it's very hard to convince people it's time to move on due to sunk cost emotional attachment).
- marmaduke 6y agoI get this argument, but in my experience, PhD students are still using Python and the HPC centers I work with still don’t have Julia on their radar.
- dnautics 6y agoIndeed. I deployed julia on 40,000 cores at TACC, but they wouldn't take an upgrade ticket so I had to run it in a container (not docker, obvi). On the other hand Julia probably has a very strong long game, given that the Federal reserve bank uses it.
- ViralBShah 6y agoWhat's the application? Would love to read more if there is a paper. The Julia Lab folks at MIT are collecting big parallel applications for pushing parallelism in Julia further.
- dnautics 6y agoThere was no paper, sorry, we talk about some of the research here https://www.youtube.com/watch?v=aP0Y1uAA-2Y https://www.youtube.com/watch?v=aP0Y1uAA-2Y big julia demo 40 minutes in. But the video doesn't feature the results I talk about (that happened a few months after the video) the specific results are somewhere in a DARPA presentation (but I don't have those slides, and the data are like 5 laptops back for me). The parallelism was, well, Gustafson parallelization, I pushed a randomly-generated 10k x 10k matrix solve to each of the nodes with a custom soft floating point to measure the relative numerical accuracy. Each node did all of one run per core, it was done very fast, but it would have taken months on a pc. As it was a gustafson scaling at its finest, there was zero cross-node communication during the computation. The containerization I used was singularity. I don't really love them much anymore, for various non-technical reasons, but it got the job done.
- eigenspace 6y ago> I can’t say I understand this rather pervasive attitude. If you have well tested code in a language which you can easily interface with, why bother rewriting it except for reasons of performance or compositionality? Or perhaps you mean that we’ll all be writing Julia even if some algorithms still sit in Python? I mostly mean that I think Julia will someday have more mindshare in scientific computing than Python. However, I'd say that the reason you see the "rewrite it in pure julia" attitude everywhere is that we enjoy a lot of benefits from having more and more things in pure julia, namely that our very powerful metaprogramming and code introspection tools can more easily 'get inside' Julia code, and that the compiler is able to perform interproceedural optimizations (IPO). IPO are not always important, but when you need them and don't have them, you really miss them, so at least for numerical kernels and such, it's really nice to have as much pure julia infrastructure as possible. In the meantime though, as I daydream about a world where everything is written in Julia, there's nothing stopping me from being pragmatic and wrapping / bridging to and from other languages.
- marmaduke 6y agoI completely agree Julia is fantastic for computational kernel construction. I would like to never again write GPU kernels by hand (though Numba has been quite sufficient for my needs). I just don’t see this as everything.