lukego / blog

Luke Gorrie's blog
565 stars 11 forks source link

JuliaCon Local 2023 (Eindhoven) trip notes #40

Open lukego opened 7 months ago

lukego commented 7 months ago

Just back from JuliaCon Local 2023. This was my first time at a Julia event and that's exciting because I'm working a lot with Gen at the moment.

Overall

Organization was excellent. High quality talks throughout the day, sensible two-track split, frequent coffee breaks, ample refreshments from morning to night. Plenty of opportunity for people to circulate and meet each other.

Lots of energetic people working on interesting problems within science, engineering, and the Julia ecosystem. I did feel like the only person interested in Bayesian computation with Monte Carlo methods though.

There were a lot of excellent talks but I restrict these notes to the ones relevant to my immediate interests.

Industrial applications

ASML (major sponsor) have been using Julia for a few years now. Their historical approach to software development is for scientists to prototype in MATLAB/R/Python and "throw it over the wall" for software engineers to rewrite in C++/Java/Fortran. Their experimental new approach is scientists and software engineers working together on a common Julia codebase. This seems to be working pretty well for them so far. (Anecdote: Scientists find their software engineer colleagues much more willing to give friendly feedback on Julia code than MATLAB and that doesn't surprise me one bit.)

Bosch tried a small internal project in Julia and were disappointed. They expected to port their MATLAB prototype to Julia and be done. In practice though the Julia code still needs to be productionized with a serious software engineering effort. Julia promoters need to manage expectations carefully.

Tech

Julia supports Nvidia/AMD/Intel/Apple GPUs. The basic primitive is a function for allocating an array in GPU memory. Whenever any Julia function receives a GPU-array value as an argument it is automatically JIT compiled onto the GPU and executed there. (GPU toolchains are installed automatically.) Intriguing approach to say the least!

NearestNeighbours.jl was a wholesome story of carefully optimizing algorithms and data structures. The message is that you can profitably approach optimization in Julia the same as you would in C/C++/Rust e.g. choose a CPU-friendly memory layout, play nice with auto-vectorization, profile with perf/vtune, tease out the optimal machine code.

Pluto.jl is a fresh Julia-native take on Jupyter notebooks. For me it was valuable to understand that Pluto is meant for casual programmers ("if you want emacs/vim bindings you're in the wrong place.") I'll try it out on the kids.

Summary

Great conference. I'm already looking forward to the big JuliaCon 2024 over July 9-12 that'll also be in Eindhoven (hosted in a football stadium of all places.)

Glad to be back home in Skövde with fresh white snow all around. Bort bra men hemma bäst.