DF21500 Multicore Computing feb/march 2011 Mid-Term Evaluation 2 March 2011 by Christoph Kessler, IDA, Linköping University Received: 16 muddy cards, from 18 participants in the first morning lecture on 2/3/2011. Positive issues: * Interesting/informative/pleasant course (3) * Good overview * Wide topic coverage (2) * Useful for industry to see which techniques are available today * Insight that there are no easy solutions * Includes recent research results * Cell labs (5) * GPU programming/labs (3) * Especially, lectures on algorithm theory, on sorting algorithms, on skeletons * First part of the course was best * Informative course home page (2) * Right lecturing speed * Good slides * Very good guest lecturers Negative issues * Programming languages / tools / (?) * Many slides, too much to see in short time * Slides not self-contained/explicit (2) * Some lectures are very dense * Course book is Java-based, labs etc. use C++ * Could have more frequent/regular breaks (2) * Parallel sorting lecture was difficult, more images could help * Proofs are hard Suggestions: * Should be more focused on a few most important topics only (3) * Could also have an ordinary CPU-multicore (threads) lab * Could be more about large / industrial applications in various domains (telecom, automotive, ...) and how they use multicores * Could be more about parallelizing legacy (industry) code * Could also cover message passing, fault tolerance * Could also cover parallel functional programming * Could also cover more about embedded multicores (Tilera, NPUs...) * Need not mention API details that are not used in the labs * Could compact the nonblocking synchronization guest lecture * Could give more exercises to prepare for the exam * Labs should include more about how to use tools Conclusion by the examinator: Thanks for your feedback! By and large, the course seems to run very well. Note that an advanced-level PhD course should have more depth and higher density, compared to undergraduate/master level courses. With 7.5hp (or 9hp if you take both labs) it is also quite large, which means that a certain amount of material is expected to be covered, in both depth and breadth. Also, even if proofs and discussion of details of algorithms may seem unimportant at a first glance, they are a good exercise and should help with understanding the concepts; note also that a great level of care about details is a prerequisite for high-quality PhD research in CS. The block lecture format is a constraint imposed by the CUGS graduate school that hosts the course. Regarding more breaks: please do not hesitate to suggest a break during the lecture if you feel it is time for it. I agree that more exercises could help with the theory part; we will add them for the next round of the course. The course book only covers part of the course contents as it is not written for heterogeneous multicores which dominate the labs and require C/C++ for programming. We tried to compensate for this by providing separate material. A new, comprehensive textbook on multicore programming that covers more of our course spectrum is going to appear soon, but was unfortunately not yet in print at the time of this course. We will use the new one for the next round in 2013. - C. K.