Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Everytime this topic comes up I always replay this clip of Gabe Newell ranting about having to write multi-threaded code for the PS3 and chuckle [1]

Was writing code for the PS3 genuinely difficult or was it also a skill issue? The counter-argument I've heard is that multi threaded programming just wasn't as common at the time due to minimal number of cores available on most consumer hardware.

Perhaps the PS3 would have fared better with a different generation of developers.

[1] https://youtu.be/dKYT6NzsUZQ?si=wzf5e5iBP3MEEJEn



I'm sure there's some degree of just not being used to multi-threaded code, but it's also not like today's multi-threading. When we think about utilizing multiple cores today, we're thinking about running normal application code across many identical cores, within one process managed by a multi threaded kernel.

The PS3 wasn't like that. It was a single core machine, with one big CPU core which runs the operating system and your application, and it had a bunch of co-processors. I've never written for such a system, but I'd assume that a somewhat close analogy would be a single core Linux computer with 10 microcontrollers attached. (Though I'd love to hear from someone with more knowledge whether this is a reasonable analogy.)


> I've never written for such a system, but I'd assume that a somewhat close analogy would be a single core Linux computer with 10 microcontrollers attached. (Though I'd love to hear from someone with more knowledge whether this is a reasonable analogy.)

Where this otherwise good analogy basically lacks is that the SPEs of a Cell were really fast (in opposite to microcontrollers), so a better analogy could be: a single core computer that has 7 ultra-fast, identical DSPs attached, of which you can use 6. [1]

---

[1] For the 7 available and 6 usable SPEs, see https://en.wikipedia.org/w/index.php?title=Cell_(processor)&...


The 360 was a multithreaded machine, it had 3 physical cores with hyperthreading (so 6 logical cores).

The PS3 was a completely different beast, it had a single general purpose core (hyperthreaded) with 6 user-accessible vector coprocessors (in-order, non-speculative, with their own ISA, and without shared memory) on a 4-lane ring bus. This was much more complex and fairly alien topology even more so back at the time, and while tooling might have helped bridge the gap Sony’s were… not great, even less so compared to MS which could lean on their windows tooling.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: