Department of Computer Science and Technology

Course pages 2017–18

Multicore Semantics and Programming

Assessment Criteria

Second part: exercises

The written coursework comprises a series of questions on the design of mutual exclusion locks and shared-memory data structures. Pseudo-code can be used when writing algorithms, and a sequentially-consistent memory model can be assumed. For questions about performance, it is sufficient to describe how an algorithm is likely to interact with a classical MESI cache in a machine with multiple cores and/or multiple sockets.

Second part: practical report

The report is required to describe the experiments carried out to a sufficient level of detail to enable someone else to repeat them. The report should include information about the hardware and software used (such as the operating system and compilers). The report should also describe the experimental techniques that were used, such as how the timed portions experiments were run, how variability between runs was examined, and how you confirmed that results are showing stable behavior rather than “warm up” effects. In addition, the report should describe any control made over the placement of threads within the machine (e.g., whether threads were placed on the same socket, or on different sockets). On Unix, tools such as “top” may be used to watch the behavior that occurs in practice. On Windows, the task manager tool may provide this information.

It is not necessary to submit the actual code with the practical report.