Moore’s Law has been a guideline for the semiconductor industry for several decades. However, manufacturing technologies are reaching a physical limit affecting the design of processors, specifically thermal dissipation. Because of this, modern computer architectures have incorporated multiple processing units onto a single integrated circuit instead of just making ever increasingly complex single processors. This trend has become ubiquitous and multiprocessors can now be found on systems ranging from mobile devices to supercomputers.
People working on IT-related fields should be able to program parallel systems to create those applications that are required by society and high-tech industries. This course is focused on the topic of parallelism in computing and the relevance of considering both hardware and software to achieve computing efficiency. Fundamental concepts of parallel and distributed computing will be studied in hand with the main tools and algorithms used to design, implement and validate parallel applications.
Enrolled students are supposed to meet the following requirements:
- Programming knowledge with C/C++
- Familiarity with the use of UNIX/Linux environments and the use of commandline instructions.
- Knowledge on the basics of algorithmic analysis and data structures.