ENGS 67: Programming Parallel Systems

Offered

14F: 2A, Lab
Taylor

Textbooks  
No textbook required

Prerequisites

ENGS 20 or COSC 50

Dist

TLA

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.