\

Numba in the Browser: Unlocking a New Scientific Python Stack in JupyterLite

38 points - last Wednesday at 8:44 AM

Source
  • momojo

    today at 5:45 AM

    This is awesome! For those here not familiar with Numba, it helps bridge that performance vs ergonomics tradeoff that's always existed when you reach for python over a lower level but faster lang like C or C++.

    Sure you could write Cython but then you have to have a build step and make wheels for every platform you and python version. Sure numpy has gotten faster over the years but you're still hampered by the GIL.

    Numba is a little magic because you get to write stuff that feels like numpy, but get literal bytecode perf.

    BUT there's a cost to this, which u learned the hard way when I imported a color map extension for matplotlib recently.

    I thought i was going to be importing a couple megabytes at most. But Numba+llvmlite alone is almost 100MB!

    This might be a drop in the bucket in some applications but for a color map library that has only two hot paths that need to be JITed, it's excessive.

    Overall though, love this achievement, and i love what's being done for in-browser (aka local-first) scientific computing!

    • rossant

      today at 5:17 AM

      Congrats for a serious engineering achievement!

      I had experimented with a similar idea in an infinitely more primitive way more than ten years ago (https://cyrille.rossant.net/numpy-browser-llvm/). I'm glad to see so much progress since then.

      • lmc

        today at 5:11 AM

        Are there some benchmarks of the browser vs non-browser version? I.e., what are the absolute numbers behind

        > Numba delivers a roughly 250× speedup in WebAssembly, compared with about 90× natively.

        • hessammehr

          today at 7:56 AM

          jax in the browser on WebGPU next please?

          • SylvainCorlay

            last Wednesday at 9:00 AM

            It also works with Pytensor & PyMC!

            • saliei

              today at 3:13 AM

              This is nice actually!

              • maitrungduc

                last Wednesday at 4:07 PM

                [flagged]