Problems that must be solved in many different disciplines are rapidly becoming too large to be approached using traditional computing techniques. These problems require computers that are many orders of magnitude faster than the fastest computers available today. Parallel computing represents one of the most feasible avenues to achieve the performance necessary to solve these problems. Because our students will see and use parallel machines in graduate school and industry, an undergraduate course in parallel program is required. Writing parallel programs provides a special challenge to the computer scientist.
Classic training teaches skills that are primarily sequential in nature.
The next generation of computer scientists must be introduced to the parallel methods of computing in order to produce the results that will be required of them. Parallel programming is different from traditional programming in that a knowledge of the computer architecture is often necessary to develop effective parallel algorithms. It is essential that a parallel programmer not only understand the programming techniques required but also understand the hardware on which the program runs. This course will introduce students to parallel computing in general. Students will be introduced to the ideas and concepts of parallel computing, parallel computing hardware, and programs.