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 52416
To read all comments associated with this story, please click here.
He's being truthful, check the code!
by Guppetto on Fri 28th Oct 2005 13:42 UTC
Member since:

While it's evident that there is a lot of MS backlash in this thread, he is telling the truth about programming across the board. If you examine most software, you won't see threading libraries very often, because most programmers have not been educated on how to develope software in a multithreaded environment. In fact, the only time most developers go the thread route is when they have to retrieve data and it becomes unavoidable that the app will hang until that retrieval process completes; then after being scolded by users, they tend to say, hey let me check out this threading concept I've heard about that allows me to perform multiple task, simultaneously. Mutithreaded programming is not intuitive and to develop an entire application using a multithreaded design requires lots of training, thought, and discussion, because you can't avoid prioritizing every action the application performs. Functional (Linear) programming has been embeded into developers for the past 50 years, so to switch to an entirely different paradign won't be easy, and he is absoultely being truthfull when he says that as of right now, regardsless of which operating system your running, most of the developers writing the software your using, have little to no clue about how to maximize the benifits of a multicore environment.

Reply Score: 5

japail Member since:

It's not just a matter of education, but a matter of tools and practicality. That is to say that it is easier (especially in imperative languages without inherent concurrency primitives) to write single-threaded code and the most practical decision has been to do so in terms of performance and development time given the niche multiprocessor systems have been. When threading has been utilized it has often been so naively, as one might with BeOS or Java wherein lots of threads are spawned for conceptually distinct tasks as a means of providing "fire and forget" asynchronous behavior.

Lots of libraries are not thread-safe, and the naive manner in which one is to make use of such libraries is either to perform locking when calling into them, or to delegate all interaction with the given library to a single thread.

There are a lot of other things involved here, but I can't really address them now.

Reply Parent Score: 3

Member since:

I agree strongly with this and with the statements of
the software architecture ( i did not RTTA , i
don't use the F work ). It was something I was
thinking about a few days back. Multi core systems
fundamentally introduce a new programming paradigm.
In introduces parellelism into the soup, what tasks,algorithms, functions can parallelise, will they parallelise well, will they scale well to more processors.How much should I do or let the OS figure out when developing on a parallel platform.

The horizons that paralellism opens up are exciting but they will be largely unexplored for a long while yet. ....

Reply Parent Score: 0