The quick development and increasing complexity of computing platforms pose an important challenge for designers of high end computer software for engineering, technology, and customer applications: it becomes increasingly harder to harness the available computing energy. Simple implementations may lose up to 1 or 2 instructions of magnitude in performance. Having said that, producing optimal implementations calls for the designer to possess a knowledge of algorithms, capabilities and limits of compilers, and also the target platform’s architecture and microarchitecture. This course that is interdisciplinary the pupil into the fundamentals and state-of-the-art approaches to high end computer pc computer software development utilizing crucial functionality such as linear algebra kernels, transforms, filters, among others as examples. The program will explain simple tips to optimize for the memory hierarchy, benefit from special instruction sets, and exactly how to publish code that is multithreaded multicore platforms, centered on advanced research. Further, a strategy that is general performance analysis and optimization is introduced that the pupils will use in team tasks that accompany this course.