Advanced Computer Concepts for the (Not So) Common Chef: The Multi-core Industrial Kitchen

This is going to be a short blog as there is no new material to discuss, just a simple extension of the earlier blogs (see Advanced Computer Concepts for the (Not So) Common Chef: The Home Kitchen  and Advanced Computer Concepts For The (Not So) Common Chef: Terminology Pt 1) on how the CPU can be viewed as a chef along with her kitchen and recipe book.

A multicore processor, and most current processors such as the Intel® Core 2 generations, are multicore. They can have anywhere from two CPUs/cores to upwards of 60 cores in the Intel® Xeon Phi processor family.

Being a bright and perceptive audience, I’m sure you’ve figured out from this article’s title what kitchen analogy applies to a multi-core processor configuration.

A multi-core processor is equivalent to having multiple kitchens in the same building. Now, these kitchens don’t need to be in separate rooms. They only need to have duplicate equipment, chefs, etc. See Figure INDUSTRIAL_KITCHEN. Note that these kitchens can share pantries, meaning memory, but the distance to different pantries may differ depending upon what kitchen is accessing it. (Hint: Can you guess what topic a future blog might have?)

In such an industrial kitchen, several recipes can be prepared and cooked simultaneously by, say, n different chefs. Similarly, in an n-core multi-processor, n programs can execute simultaneously+

Figure INDUSTRIAL_KITCHEN. A large restaurants with two kitchens and two chefs.

Multi-core Kitchen


That’s it. Simple enough, right?

NEXT UP: The pipeline! What is the pipeline? It’s the internal workings of a core.

+ This is different from the multi-tasking that modern operating systems, such as Windows*, OS X*, and Linux* do. Multi-tasking emulates multi-processing by switching quickly between multiple tasks/programs giving the impression that multiple programs are running simultaneously even though only one is really running at a time.


Para obter informações mais completas sobre otimizações do compilador, consulte nosso aviso de otimização.