This is an introductory course to Scientific Computing with a focus on mathematical and algorithmic aspects of High-Performance Computing (HPC) techniques and their areas of applications. The course has also a practical component, consisting of learning basic principles of HPC and applying the acquired knowledge and skills to solving industry-relevant problems in oil & gas, electrochemical energy storage, aerospace, food and pharmaceutics.
The practical aspects of use of a variety of computational techniques for solving scientific and engineering tasks will be taught during practical demonstrations and they will be integrated as much as possible with the corresponding theoretical materials given during the lectures. During the practical demonstrations the students will get access to the parallel cluster in Skoltech. All topics in the course will be covered at an advanced introductory level, with the goal that after passing the course the students will learn enough to start using scientific computing and HPC methods in their everyday research work. Once the students reached that level, they will learn more details and more advanced subjects in other courses in the overall Computational Science & Engineering program.
Students should be comfortable with undergraduate mathematics, particularly with basics of calculus, linear algebra and probability theory. Some preliminary knowledge of Unix-like operative systems is a plus. Many of the examples used in lectures and assignments will require this background. Although the course will overview most popular pieces of commercial software used in HPC, all of the software used for practical tasks in this course is open source and freely available.