CS Bits & Bytes is a bi-weekly newsletter highlighting innovative computer science research. It is our hope that you will use CS Bits & Bytes to engage in the multi-faceted world of computer science to become not just a user, but also a creator of technology. Please visit our website at: www.nsf.gov/cise/csbytes/.

June 4, 2013
Volume 2, Issue 17

Multi-core processors

Have you ever been in the middle of a tedious chore and thought it might be easier if there were two of you to share the work? Believe it or not, this kind of thinking has led to continued improvements in computer performance!

AMD Quad Core

A commercial Quad-Core AMD Opteron processor. Note the four identical processing units situated adjacently on a single chip. Image Credit: Advanced Micro Devices, Inc. (AMD).

A computer’s central processing unit (CPU) is very much like its brain. The CPU performs the fundamental steps required to run a computer program, such as basic mathematics and logic operations, through very tiny electronics components called transistors. Electronics specialists keep finding ways to build smaller, higher-frequency transistors, so that every new model of CPU can hold even more "brain" power!

In fact, since the mid-1960’s, the number of transistors that can fit on a chip has doubled approximately every two years, a trend referred to as "Moore’s law." Unfortunately, while in theory more, higher-frequency transistors mean faster calculations, too many can cause the CPU to generate a great deal of heat, which counteracts at least some of the improvements.

Instead of using more transistors to create more complicated CPUs that operate at high frequencies and produce a lot of heat, why not combine several simpler processing units to perform the task in less time? This is quite like getting some friends to help you with a chore instead of rushing to get it done alone. Computer designers first tried this by connecting multiple processors to each other. However, it can take a longer time for signals to travel between separated CPUs than it does to travel within a single, small unit, which can limit the improvements. It wasn’t until the mid-nineties when one research group put several processing units on the same tiny piece of silicon, and the multi-core processor was born. Over the next decade or so, the idea caught on! Today, multi-core processors are used to make computers, from smartphones to servers, more responsive and powerful with decreased heat generation.

Professor Kunle Olukotun.

Professor Kunle Olukotun.

Who thinks of this stuff? Kunle Olukotun is a Professor of Electrical Engineering and Computer Science at Stanford University. In 1995, just after starting out at Stanford, his research group developed the first general-purpose multi-core processor. This work inspired the wide development and adoption of multicore processors, which are the current standard in computer hardware. When asked about his research, Kunle emphasized the value of teamwork. "I love to work with my graduate students who are fearless in pursuing research goals." Says Kunle. "All my accomplishments over the years have been driven by the creativity of the students I collaborated with."

Links

Read an IEEE Spectrum article http://spectrum.ieee.org/semiconductors/processors/multicore-cpus-processor-proliferation on how Multicore CPUs were named one of the top 11 technologies of the previous decade

Visit Professor Olukotun’s research web page at: http://arsenalfc.stanford.edu/kunle/

 

 

Activity

This activity is adapted from CS Unplugged’s Sorting Networks activity. For the original activity, please see: http://csunplugged.org/sorting-networks.

In this activity, students will act out the steps of two different computational approaches, serial and parallel, for sorting a group of numbers. This will demonstrate the advantages of parallel processing in computing.

This activity should be conducted outside. Beforehand, the instructor should draw the two diagrams below on the pavement in chalk.

Two schematics for sorting a set of 4 numbers

Two schematics for sorting a set of 4 numbers. Network A describes a series sorting process, and Network B a parallel sorting process.

These diagrams represent a network of computational sorting steps; students will physically traverse the network according to a set of rules.

Prepare several sets of index cards, each containing four cards numbered 1 through 4. Divide the class into teams of 4. Each network may be traversed by one team at a time as follows:

  1. Each student in a team must stand in one of the four squares on the left-hand side of the diagram.
  2. Hand out, at random, the set of index cards so that each student gets one.
  3. Start the stopwatch. Each student travels to the circle indicated by the arrow leading from their square.
  4. If two students are in the same circle, they must compare their assigned numbers. The student with the larger number moves to the circle indicated via the path on the left, and the student with the smaller circle moves to the circle indicated via the path on the right.
  5. If a student is alone in a circle, he or she must wait for another student to arrive in order to compare numbers before advancing.
  6. When all four students are in one of the squares on the right-hand side of the diagram, the timekeeper should stop the stopwatch and record the time. Check to make sure that the students are arranged such that their numbers are in order, as indicated in the diagram.

Have each group go through each sorting network several times. With the whole class, have each team report back its best time for each network. As a class, discuss the following questions.

  1. How would you describe in words the difference between the two sorting approaches?
  2. Which sorting approach went more quickly? Why?
  3. What would happen if you increased the distance between the circles? By analogy, what is the advantage of a multicore processor over a multi-processor computer?
  4. How would you design a network for sorting 6 numbers? 8 numbers? Consider path length.