Author: George Kornaros
Publisher: CRC Press, 2010
Aimed at: Multi-processing beginners
Pros: Collection of academic papers in hardback format
Cons: Vague to the point of being irritating
Reviewed by: Harry Fairhead
This is an academic collection of papers - hard bound and expensive. It is claimed that it is an overview of multi-core design but many of the papers are simply about multi-processor and parallelism in general. Also if you are thinking that multi-core might mean the sort of thing you find on the desktop or server then think again. In most cases the authors have grids and networks of processors in mind.
It has to be said that many of the papers are written as if the authors had never seen a processor, let alone a multi-core processor. Indeed it's more as if they had been teleported in from Mars and were describing an alien technology.I'm sure that this isn't the case but this is the effect of the academic style with the need to present everything as a deeper abstract concept and at all cost avoid actually writing any code.
The first paper is not unreasonably an overview and starts with "What makes multi-processor solutions attractive?". Well it's because they are multi-processor stupid.... Don't get me wrong - I enjoyed reading this first chapter but it didn't tell me anything I either couldn't have guessed at or found out by reading manufacturers' blurbs. If you have never considered multi-processor architecture then it might serve as an introduction at the level of a magazine article.
From this point the book continues in the same academic - let's make things abstract - style. Even when you hit a chapter that has a title that should force it to be practical you can still be disappointed. Chapter Three is about power optimisation but it still manages to digress into the role of intellectual property rights. Eventually it does settle down and describes the problems, approaches and tools that can be used for the job - but again at a distance and suitable for someone not really involved in the technology.
Things improve when the papers turn to algorithms. But once again the discussions are very general. For example, the discussion of routing methods in irregular networks could have been about almost any network routing problem. The paper on debugging similarly is so theoretical that the debugging models apply to almost any debugging situations. Programming models for multi-core does at least summarize the use of PThread, OpenMP and then goes on to discuss more esoteric solutions. The paper on Operating System support discusses the problem as if there were no existing operating systems and never really comes down to earth... and so on. The last few papers are a little better in that they describe real hardware and how it has been used - but even here the level of detachment from the subject is very large and the papers tend to try to abstract and talk around the subject.
I fully understand that there is a need for collections of academic papers on practical topics but in this is an example of why so much time is simply wasted in their production. There might be something of value in this expensive exercise but I for one didn't find it. Its purpose in life seems to be to give the authors something to add to their publication lists and to give the reader something to reference when they add to the growing pile of academic fluff.