12/06/2006


As you know there were still hands up at the end of class. 
One student just sent me email:

        So I had a burning question or two that I wanted to ask you but                 due to the time
constraint, I did not get the chance to speak my 
        questions.

        It seems that CPUs today are coming out with 
        more and more internal cores.
        Intel and AMD's dual core processors will likely 
        get replaced by the newer
        and faster quad core CPUs. The Playstation 
        3 uses some 8 or 9 core "Cell"
        processor, and the Xbox 360 has 3 cores on its CPU.

        Is it harder or more time consuming to produce software that actually
        utilizes  these multiple cores? I would imagine that programming on one
        CPU is easier; but what actually changes 
        when the software developers must
        prepare for multiple cores? Does having more cores mean its harder to
        program for, or is there a simple 
        way to program for "n" number or cores?

        Thanks,

Sorry you did not get to ask it, although frankly most students were in
the mood to talk about other things.

The answer to your question is exactly what you think: that writing
software for multiple cores is a lot harder than for one cpu.  In fact,
we (the community) are currently struggling with the issue of how to
program chips that have multiple cores on them.

The reason for multiple cores is simply the fact that the chip has more
and more transistors, and an easy way to use them all is by putting more
than one core on the chip.  What this does is kick the problem to the
software.  Not nice, perhaps, but a fact of life.

Some of my research lately is to have two different kinds of cores on the
chip, but to get into why this makes sense is a long explanation.  Perhaps
I will see you in 360N someday.

Yale Patt