Live data from Hacker News

The Zen of Parallel Programming

smolnero.com

41–50 of 50 posts

Re: The Zen of Parallel Programming

#41

Earlier quoted context omitted.

For greenfield work, we are using mostly Rust, although small utilities built with Go or Python are also acceptable provided they have a comprehensive set of unit tests, an integration test suite, well-defined specifications and acceptance criteria, and thorough documentation. Once you have that, it's much easier for the AI to work on it. (Our main motivation for doing this is that it takes far fewer tokens now to ge…

I'll contend that any Rust build involving Cargo is bloated and slow. `rustc` is impressively slow on a translation unit basis, and Cargo is basically a build recursion bingo card. Throw in about 900 micro point releases in flight at any given time? If you're not running an elite `bazel` or `buck2` RBE with `nativelink`? You're not even playing.

I make sure projects are split into much smaller units so we don’t need some gargantuan bazel based build.

Having a bloated, barely-maintainable codebase and a build that takes hours and needs 100GB of storage is not a badge of honour.

Re: The Zen of Parallel Programming

#42
Something that never gets old is Rob Pike's framing: concurrency is about structuring a program, while parallelism is about the execution. Plenty of concurrent programs never run in parallel and there are plenty of parallel programs that are poorly structured.

Re: The Zen of Parallel Programming

#43

Earlier quoted context omitted.

I'll contend that any Rust build involving Cargo is bloated and slow. `rustc` is impressively slow on a translation unit basis, and Cargo is basically a build recursion bingo card. Throw in about 900 micro point releases in flight at any given time? If you're not running an elite `bazel` or `buck2` RBE with `nativelink`? You're not even playing.

I make sure projects are split into much smaller units so we don’t need some gargantuan bazel based build. Having a bloated, barely-maintainable codebase and a build that takes hours and needs 100GB of storage is not a badge of honour.

[dead]

Re: The Zen of Parallel Programming

#44

Fred Brooks and the mythical man month observed that communication between people expands faster than linear, and that adding more people to a project makes it later.

Amdahl's law says something similar, adding more processors to a problem eventually gives almost no speedup because parts of the problem cannot be parallelized and need to be done sequentially. To the people wondering the meaning of the article, it's I think this.

amdahl's law is trivial tautological nonsense and has nothing to do with the mythical man month.

The mythical man month is about communication between people and the amount of work to be productive in a project. It's about people colliding with programming.

It has nothing to do with a vague statement that "eventually" you have diminishing returns on processors (of course there is some limit even though different tasks could be many orders of magnitude apart).

Re: The Zen of Parallel Programming

#45

Earlier quoted context omitted.

Amdahl's law says something similar, adding more processors to a problem eventually gives almost no speedup because parts of the problem cannot be parallelized and need to be done sequentially. To the people wondering the meaning of the article, it's I think this.

amdahl's law is trivial tautological nonsense and has nothing to do with the mythical man month. The mythical man month is about communication between people and the amount of work to be productive in a project. It's about people colliding with programming. It has nothing to do with a vague statement that "eventually" you have diminishing returns on processors (of course there is some limit even though different task…

Amdahl's law states diminishing returns are because some processes cannot be parallelized, thus eventually they become the bottleneck.

For Brooks the communication between people starts to dominate the time spent the more people you add, so it will eventually become the bottleneck.

For me it's an interesting parallel. Feel free to come up with your own conclusions.

Re: The Zen of Parallel Programming

#46

Earlier quoted context omitted.

amdahl's law is trivial tautological nonsense and has nothing to do with the mythical man month. The mythical man month is about communication between people and the amount of work to be productive in a project. It's about people colliding with programming. It has nothing to do with a vague statement that "eventually" you have diminishing returns on processors (of course there is some limit even though different task…

Amdahl's law states diminishing returns are because some processes cannot be parallelized, thus eventually they become the bottleneck. For Brooks the communication between people starts to dominate the time spent the more people you add, so it will eventually become the bottleneck. For me it's an interesting parallel. Feel free to come up with your own conclusions.

thus eventually they become the bottleneck

It's completely obvious and the "eventually" is where anything interesting happens. This comes from the early days of computers which is why something trivial became a supposed insight.

For Brooks the communication between people starts to dominate the time spent the more people you add, so it will eventually become the bottleneck.

Not just the communication between people while working in general but the communication to get someone involved in the project weighing down the people who would be making progress.

Feel free to come up with your own conclusions.

I did come up with own conclusion, the only similarity is the word bottleneck.

Re: The Zen of Parallel Programming

#47

Earlier quoted context omitted.

Amdahl's law states diminishing returns are because some processes cannot be parallelized, thus eventually they become the bottleneck. For Brooks the communication between people starts to dominate the time spent the more people you add, so it will eventually become the bottleneck. For me it's an interesting parallel. Feel free to come up with your own conclusions.

thus eventually they become the bottleneck It's completely obvious and the "eventually" is where anything interesting happens. This comes from the early days of computers which is why something trivial became a supposed insight. For Brooks the communication between people starts to dominate the time spent the more people you add, so it will eventually become the bottleneck. Not just the communication between people w…

You try to speed up work by parallelizing, either by adding more machines or more humans. Seems pretty similar.

Re: The Zen of Parallel Programming

#48

Earlier quoted context omitted.

thus eventually they become the bottleneck It's completely obvious and the "eventually" is where anything interesting happens. This comes from the early days of computers which is why something trivial became a supposed insight. For Brooks the communication between people starts to dominate the time spent the more people you add, so it will eventually become the bottleneck. Not just the communication between people w…

You try to speed up work by parallelizing, either by adding more machines or more humans. Seems pretty similar.

It might seem obvious if you don't think about it much, but one is a pragmatic breakdown from experience and one just says "adding cpus won't work forever if there is some part where you can't add more cpus".

One is basically 1 + 1 = 2 and the other is a warning of a non obvious situation that comes from lots of experience and effort.

Re: The Zen of Parallel Programming

#49

Earlier quoted context omitted.

You try to speed up work by parallelizing, either by adding more machines or more humans. Seems pretty similar.

It might seem obvious if you don't think about it much, but one is a pragmatic breakdown from experience and one just says "adding cpus won't work forever if there is some part where you can't add more cpus". One is basically 1 + 1 = 2 and the other is a warning of a non obvious situation that comes from lots of experience and effort.

It's still an interesting parallel, but that might be not be of interest if you're trying hard to be the middle guy from the bell curve meme.

Re: The Zen of Parallel Programming

#50

Earlier quoted context omitted.

It might seem obvious if you don't think about it much, but one is a pragmatic breakdown from experience and one just says "adding cpus won't work forever if there is some part where you can't add more cpus". One is basically 1 + 1 = 2 and the other is a warning of a non obvious situation that comes from lots of experience and effort.

It's still an interesting parallel, but that might be not be of interest if you're trying hard to be the middle guy from the bell curve meme.

It's not a parallel at all, the two things have nothing to do with each other. One means nothing and gives no new information, the other is about the complexity of getting familiar with software for people which is why adding more people doesn't help despite being unintuitive.

One is is good information from lots of experience, one is "the parts that don't use more cpus don't speed up with more cpus".

Unhelpful nonsense about running software vs battle won experience about making software.

Post reply on HN