This is irrelevant to the example cited by Hopper. If you have a large log, you don't have time to breed a larger ox. You need to solve the problem with the oxen you have.
The thing is, Hopper said this in 1982. This was a time when, to keep stretching the analogy, it wasn't hard to find a second ox, but yokes were still flaky bleeding edge technology that mostly didn't work very well in practice.
One potentially more likely solution back in the day was to just accept the job was going to take a while. This would be analogous to using a block and tackle. The ox can do the job but they're going to pull for twice as long to get it done. Imagine pulleys cost $10, but a second ox costs $1000 and a yoke costs $5000, and getting the job done in less time is not worth $5,990 to you.
I'm all in favor of making the best of what's available. But at the same time, if such thinking is taken as dogma, innovation suffers.
You spoke of one log, and the time scales involved.
But suppose you have an entire forest of logs. Then it may indeed be worth breeding bigger oxen (or rather, inventing tractors).
I don't mean to accuse Hopper of shortsightedness, but when quotes by famous people, like the above, are thrown around without context, they encourage that dogmatic thinking.
So, I was more replying to that quote as it appeared here, rather than as it appeared in her talk.
> if such thinking is taken as dogma, innovation suffers.
I don’t think there’s anything about the original post, with quote about oxen, that reads as dogmatic, or invites such perspective.
Also, I think we can all agree most innovation happens as an extension of “making the best of what’s available” rather than independent of it, on a fully separate track.
Using two oxen can lead to realizing a bigger ox would be beneficial.
I don't mean to wear out this thread, and I totally respect your different viewpoint, but when I see:
... they're trying to tell us something. When we need greater
computer power, the answer is not "get a bigger computer", it's
"get another computer".
that does read as dogmatic advice to me, taken in isolation. It boils down to "the answer is X."
Not "consider these factors" or "weigh these different options," but just "this is the answer, full stop."
That's dogma, no?
(that aside, I do slightly regret the snarkiness of my initial comment :)
It is extremely rare that your compute workload has scaling properties that need just a little bit faster computer. The vast majority of the time if you are bound by hardware at all, the answer is to scale horizontally.
The only exception is really where you have a bounded task that will never grow in compute time.
Perhaps I misunderstand you, but what about those decades where CPUs were made faster and faster, from a few MHz up to several GHz, before hitting physical manufacturing and power/heat limits?
Was that all just a bunch of wasted effort, and what they should have been doing was build more and more 50MHz chips?
Of course not. There are lots of advantages to scaling up rather than out.
Even today, there are clear advantages to using an "xlarge" instance on AWS rather than a whole bunch of "nano" ones working together.
But all this seems so straightforward that I suspect I really don't understand your point...
>Perhaps I misunderstand you, but what about those decades where CPUs were made faster and faster, from a few MHz up to several GHz, before hitting physical manufacturing and power/heat limits?
If you waited for chips to catch up to your workload, you got smoked by any competitors who parallelized. Waiting even a year to double speed when you could just use two computers was still an eternity.
> Was that all just a bunch of wasted effort, and what they should have been doing was build more and more 50MHz chips?
No, that’s a stupid question and you know it. You set it up as a strawman to attack.
Hardware improvements are amazing and have let us do tons for much cheaper.
However, the ~4ghz CPUs we have now are not meaningfully faster in single thread performance compared to what you could buy literally a decade ago. If you’re sitting around waiting for 32ghz that should only be “3 years away”, you’re dead in the water. All modern improvements are power savings and density of parallel cores, which require you to face what Grace presented all those years ago.
Faster CPUs aren’t coming.
xlarge on AWS is a ton of parallel cores. Not faster.
In there context of an analogy for parallelism, a tractor is just a bigger oxen. The whole point seems to be instead of making a bigger X to do function Y one has the option to use multiple X at the same time.
>But suppose you have an entire forest of logs. Then it may indeed be worth breeding bigger oxen
That’s idiotic unless you have other constraints. The parallelism allows you to also break apart the oxen to do multiple smaller logs at the same time when their combined force isn’t needed.
One potentially more likely solution back in the day was to just accept the job was going to take a while. This would be analogous to using a block and tackle. The ox can do the job but they're going to pull for twice as long to get it done. Imagine pulleys cost $10, but a second ox costs $1000 and a yoke costs $5000, and getting the job done in less time is not worth $5,990 to you.