Linked by Thom Holwerda on Fri 28th Oct 2005 11:17 UTC
Hardware, Embedded Systems Herb Sutter, a software architect from Microsoft, gave a speech yesterday at In-Stat/MDR's Fall Processor Forum. Addressing a crowd mostly consisting of hardware engineers, he talked about how the software world was ill-prepared to make use of the new multicore CPUs coming from Intel and AMD.
Thread beginning with comment 52522
To read all comments associated with this story, please click here.
Pay attention to Herb Sutter
by emarkp on Fri 28th Oct 2005 17:39 UTC
emarkp
Member since:
2005-09-10

Listen to Herb Sutter. He's been saying this for at least 6 months. He was the chair of the C++ Standard committee before he was at Microsoft, and has worked hard to push MS to comply better with the ISO C++ standard. He is a major contributor to comp.lang.c++.moderated and comp.std.c++, and also the C/C++ Users Journal (and C++ Report before it went defunct). He has shown severe problems in the Double-Checked Lock idiom, and polymorphism in the face of multithreading.

Don't write him off as an MS cheerleader. He has done a lot of work making his name in C++ and software in general. See his website www.gotw.ca and his article in DDJ called "The Free Lunch is Over": http://www.gotw.ca/publications/concurrency-ddj.htm

Seriously, if we as developers ignore this, we'll be just like people 20 years ago ignoring OO.

Reply Score: 3

RE: Pay attention to Herb Sutter
by rayiner on Fri 28th Oct 2005 20:01 in reply to "Pay attention to Herb Sutter"
rayiner Member since:
2005-07-06

I don't know if a C++ guy is the best one to spearhead this whole movement though. The ISO C++ folks go to comical lenghts to avoid overhead, and like it or not, doing parallel code properly is going to impose significant overhead in the single-threaded case. When the C++ folks attempted to handle automatic memory management, their "no overhead" philosophy resulted in a technique (smart pointers), that manages to be much slower than GC on some benchmarks: http://www.hpl.hp.com/personal/Hans_Boehm/gc/04tutorial.pdf (pgs. 53-55).

C++ won't cut it for writing good parallel code (Lisp likely won't either, so there). Languages will need to be redesigned, at the level of their basic computational calculus, to do parallel code support properly. Microsoft is doing some research into their area (Polyphonic C# applies Pi calculus to C#). These efforts may produce the necessary results.

Reply Parent Score: 1

emarkp Member since:
2005-09-10

Funny, those are the issues Sutter (and others) are bringing to the C++ committee--that the language will have to address threads explicitly, even if it harms the single-threaded case.

Additionally, his arguments finally convinced me that GC in C++ is a good thing. He has also been one of the people working on a GC model for Managed C++ which separates object lifetime (which can be deterministic) and memory reclamation.

And I'm confident he's familiar with the C# efforts. Since C# has some problems in the MT arena (all languages do) I don't see why it has a better chance at addressing MT issues than C++ does.

Reply Parent Score: 1