Scaling NumPy on Free-Threaded Python

(labs.quansight.org)

45 points | by ngoldbaum 5 days ago

5 comments

  • w-m 1 hour ago
    This is well-written. I could follow along quite nicely, from the setup through the bottlenecks and onto the resolution of the performance bug. Even the PRs are very pleasant to read: the majority of them is just a handful of changed lines with an added tests and a bit of documentation.

    I was taken aback for a moment that this work originated from a report on StackOverflow. I had thought SO was effectively dead and abandoned by its community. But maybe I shouldn't project my own experience onto everyone else.

  • tialaramex 47 minutes ago
    > only acquire the lock when the flag needs to be updated

    Unclear why you still need the lock here in that case. The idea that this flag may get updated during runtime and impacts how the software works when set seems to clash with the idea we need take no action having performed a relaxed (ie non-synchronising) load and seen it wasn't set at some previous time.

    Maybe there's something I don't understand about these internals, which may be as simple as "It's just advisory so if we don't trace when we should no big deal".

  • wiz21c 37 minutes ago
    I know this is more or less expected, but the improvement induced by adding a worker diminishes very rapidly... I guess it's not the cpython/numpy's fault but rather the CPU.
  • pjmlp 1 hour ago
    Nice to see the performance improvements work.
  • dha111 1 hour ago
    Everything in Python is such a hack that requires shoring up ancient software forever.

    But people love the thrill of things not working, as Djikstra already pointed out.

    • pm90 1 hour ago
      All of software is a hack in some way or another. You think of tradeoffs and make a decision. Theoretical purity is mostly an academic thing and Im sure you would love TCS.
    • bvan 1 hour ago
      Perhaps, however, this hacky language is more productive in the real world than most. What’s the point, otherwise?
      • 120394857 1 hour ago
        The points:

        - As the GP stated, the thrill of hidden bugs.

        - Feeling productive due to fixing eternal issues.

        - Getting paid to fix eternal issues.

        - Feeling smart by talking about unnecessary issues.

        - Writing a constant stream of PEPs to fix issues.

        - Give conference talks about how you fixed issues.

        - Give conference talks about how you will speed up Python by 5%.