OpenMP is the standard for writing parallel codes to run on a shared memory computer or multi-core processor. It primarily involves adding compiler directives to an existing serial code. This course is aimed at those interested in parallelising their software. We will introduce concepts and syntax of OpenMP, covering a range of features and including both loop and task based parallelism. Throughout we will emphasise performance issues.