• ඞmir@lemmy.ml
    link
    fedilink
    English
    arrow-up
    4
    ·
    1 year ago

    it’s a matter of adding more threads

    You can’t ask 300 people to build a chair, and expect the chair to be finished 300x faster than if a single person would build it.

    • Buddahriffic@lemmy.world
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      Also, to make it more accurate to what multi-threading does, none of those 300 people can see what the others are doing. And the most reliable ways of sending messages to each other involve taking a nap (though it might be brief, you might wake up in an entirely different body and need to fetch your working memory from your old body or worse, from RAM).

      Or you can repeatedly write your message until you can be sure that no one else wrote over it since you started writing it. And the more threads you have, the more likely another one wrote over your message to the point where all threads are spending all of their time trying to coordinate and no time working.

        • Buddahriffic@lemmy.world
          link
          fedilink
          English
          arrow-up
          1
          ·
          1 year ago

          I’m not familiar with their implementation but they’ll likely have one of those mechanisms under the hood.

          You can only avoid them in very simple cases that don’t really scale up to a large number of threads in most cases. The one exception that does scale well is large amounts of data that can be processed independently of the rest of the data and the results are also independent. 3D rendering is one example, though some effects can create dependencies.