Hello, everyone, and welcome to Fundamentals of Parallelism on Intel Architecture. Exactly 20 years ago, this supercomputer was being built at the Sandia Labs. It was ASCI Red, the world's fastest supercomputer of the day. These four rows of cabinets contain over 9,000 Intel Pentium Pro Processors. Together, they deliver over two trillion floating point operations per second. Two trillion, with a t, floating point operations per second. Just imagine the science you can do on this thing. Predict weather, develop life saving drugs, understand protein folding, play chess better than the best human player, or simulate the conditions of the big bang. Today, in 2017, we can get the same performance in a slightly smaller package, slightly smaller, about this big. This is an Intel Xeon Phi Processor. It can perform over 2 trillion floating point operations in double precision per second sitting quietly under your desk. The complexity of what used to be the world's fastest supercomputer has been compressed down to a single chip. So now vast numbers of people can have access to this computing power or to the computing power of large installations of such processors. This introduces a new question. How many people know how to program such computers? I come from the physics background. And in my life as physicist, I develop computer models to simulate how cosmic rays are produced and what impact they have on our universe. In my interactions with fellow researchers in natural sciences I noticed a common sentiment. People think why does computer programming have to be so hard? Do I have to become a computer scientist to learn how to use my computer and do physics? And I can absolutely relate to that sentiment. Computers are evolving faster than the software and programming methods for them. And it's not making things easier that educational programs are often lagging behind the software and the best known methods. So engineers and scientists are not opposed to learning, they are opposed to the unknown. >> After spending so many hours on learning, do they come out with something that's useless? Do they come out with something that's transient? From my experience with computer science, I know that, indeed, programming modern processors is very hard. But at the same time, for people not familiar with parallel programming, there is a lot of low hanging fruit, something that they can learn quickly to reap the benefits of parallelism and accelerate their code by one or two orders of magnitude. So I'm really excited to be creating these courses. We decided to separate the learning process into two parts. In the first part, fundamentals of parallelism. People not familiar with parallel programming will quickly learn what they can do to make their applications run faster. And then, in the second part, performance optimization. Those who wish to dig deeper will get a lot of additional information. High performance computing enables exciting science. Finding cures for diseases and predicting natural disasters. The development of clean energy and the protection of the environment. It helps to make automobiles safer, teach computers to detect crime, and create machines that help people with disabilities. Thank you for learning with us. I hope that you can take the tools that we give you and apply them to your field, make your applications run faster and, through that, fuel discovery. Enjoy the course, good luck.