ENGS 67: Programming Parallel Systems
Identical to COSC 63
Multi-core processors are now ubiquitous in most personal computers. These are the fundamental computer-engineering building blocks for high-performance servers, blade farms, and cloud computing. In order to utilize these devices in large systems they must be interconnected through networking and collectively programmed. This hands-on system-engineering course offers students the opportunity to explore problem-solving techniques on a high-performance multi-computer containing multi-core processors. The course involves weekly programming laboratories that teach POSIX thread, UDP and TCP network, and MPI style programming techniques. These techniques are explored in the context of scalable problem solving methods applied to typical problems in science and engineering ranging from client-server sensing and data repositories, to numerical methods, gaming and decision support. All laboratories will be conducted in the C programming language and proficiency in C is required. Enrollment is limited to 30 students.