Skip to content
0:00 / 0:00

#julia#celeste.jl#supercomputing

Celeste.jl: Petascale Computing in Julia | Prabhat, Regier & Fischer | JuliaCon 2017

The Julia Programming Language

91K subscribers • 18 videos on Hallway

YouTube

Advanced. Deep dive for people who know the field.

7.5K views9 years ago3 recommendations

Programming languagesSystems programmingPerformance and optimizationConcurrency and parallelism

Prabhat, Jeff Regier, and Keno Fischer present Celeste.jl, a Julia project achieving petascale performance for astronomical data analysis on supercomputers.

Visit julialang.org/ to download Julia. Contents Welcome! Prabhat's part of the talk Supercomputers at National Energy Research Supercomputing Center (NERSC) Top 10 data analytics problems (link to blog post) Celeste is at top of the list for many reasons Cori Phase 2, Cray XC-40, the supercomputer that we use NERSC big data stack Performance and productivity tradeoff? Celeste team accomplishment The Celest.jl collaboration Project goals. Jeff Regier's part of the talk Examples of astronomical images that we want to analyze Challenge of analyzing faint stars and galaxies Our approach using Bayesian inference The Celest.jl graphical model Scientific color priors The likelihood: p(images|catalog) Tractable and intractable quantities in Bayesian inference Problem with integral over too high dimensional space Variational inference Julia makes implementation of complicated functions possible Results for small data Validation of our methods against well-researched sky region Stripe 82 Numerical optimization scheme and making it parallel Cori Phase 2 supercomputer, some technical information Performance results of Celest.jl Solving large-scale I/O problem. Keno Fischer part of the talk Problem that we encounter with I/O We take down the network with data traffic that we created Standard high-performance guidelines Julia code Majority of hot code in Celest.jl compute Hessian matrix of the objective function Analyzing for loops in the code Question: what is ILP (Instruction Level Parallelism) How much ILP is required? Putting a large chunk of Julia and assemble code in one big scalar inner loop and vectoring it Improving Julia and LLVM to allow the aforementioned vectorization Improvements from the previous point are slowly moving into Julia proper Using StaticArrays.jl Optimization of memory layout to avoid vector shuffling Using multiple dispatch to utilize Hessian matrix structure Optimization takeaways Conclusions Closing information S/O to github.com/KZiemian for the video timestamps! Want to help add timestamps to our YouTube videos to help with discoverability? Find out more here: github.com/JuliaCommunity/YouTubeVideoTimestamps Interested in improving the auto generated captions? Get involved here: github.com/JuliaCommunity/YouTubeVideoSubtitles

Why it's here

3 people recommend this

What people say. Recommended as an impressive demonstration of Julia's capabilities in high-performance scientific computing.

Moments people linked to

u/Nuauain r/programming • Recommends

On “Julia 1.0”

Julia is very good with memory allocation and data layout. Julia structs are just memory footprints; you can take a pointer to a C object and reinterpret the memory with a julia struct. And since its quite generic you can do more abstract/general optimization, for example in the Celeste project (the petaflop thing) they had custom indexing for matrices that took advantage of the structure of the matrix so if fits nicely into memory (the code was the same Ai,j but the way of accessing i,j was different depending on the matrix structure). Edit: found the video link to this video
9View on Reddit

u/Starossin r/programming • Recommends

On “Julia - the language trying to replace Python in scientific computing”

…e. Compare numpy's atanh implementation with Julia's one. Applying it inplace (no memory allocations) on your custom complex sparse matrix type is as easy as x .= atanh.(x), because everything is written in Julia and is generic. And Julia was already used for things that are impossible in other scientific programming languages (besides Fortran): link to this video This part of the talk is also quite nice to show the advantage of using a language with high-level abstraction for HPC: link to this video…
7View on Reddit

u/Starossin r/programming • Recommends

On “High performance tensor library in Nim”

I haven't read the paper but they gave a talk about it last JuliaCon, it's quite impressive: link to this video
1View on Reddit

u/xazaccazaxin r/compsci • Recommends

On “Julia Joins Petaflop Club”

Here's a talk about Celeste given by the authors last month at Juliacon: link to this video