• @[email protected]
    link
    fedilink
    04 months ago

    numpy

    Numpy is written in C.

    Numba

    Numba is interesting… But a) it can already do multithreading so this change makes little difference, and b) it’s still not going to be as fast as C++ (obviously we don’t count the GPU backend).

    • HyperCube
      link
      fedilink
      04 months ago

      Numpy is written in C.

      So you get the best of both worlds then: the speed of C and the ease of use of Python.

      • @[email protected]
        link
        fedilink
        04 months ago

        Sure but that’s not relevant to the current discussion. The point is that removing the GIL doesn’t affect Numpy because Numpy is written in C.

    • @[email protected]
      link
      fedilink
      English
      0
      edit-2
      4 months ago

      Numpy is written in C.

      Python is written in C too, what’s your point? I’ve seen this argument a few times and I find it bizarre that “easily able to incorporate highly optimised Fortran and C numerical routines” is somehow portrayed as a point against python.

      Numpy is a defacto extension to the python standard that adds first class support for single type multi-dimensional arrays and functions for working on them. It is implemented in a mixture of python and c (about 60% python according to github) , interfaces with python’s c-api and links in specialist libraries for operations. You could write the same statement for parts of the python std-lib, is that also not python?

      Its hard to not understate just how much simpler development is in numpy compared to c++, in this example here the new python version was less than 50 lines and was developed in an afternoon, the c++ version was closing in on 1000 lines over 6 files.

      • @[email protected]
        link
        fedilink
        04 months ago

        Python is written in C too, what’s your point?

        The point is that eliminating the GIL mainly benefits pure Python code. Numpy is already multithreaded.

        I think you may have forgotten what we’re talking about.

        the new python version was less than 50 lines and was developed in an afternoon, the c++ version was closing in on 1000 lines over 6 files.

        That’s a bit suss too tbh. Did the C++ version use an existing library like Eigen too or did they implement everything from scratch?