Practices of Integrating Parallel and Distributed Computing Topics into CS Curriculum at UESTC Guoming Lu University of Electronic Science and Technology of China
Introduction to UESTC Two majors in Department of Computer Science and Engineering o Information Security(200+ students/year) o Computer Science and Technology(300+ students/year) Computer Science Computer Engineering
Project Goal Re-structure department curriculum to fully cover parallel and distributed computing with both a breadth and depth. o fundamental concepts o Full framework of parallel and distributed computing Sufficient practical exposure and hands on development experience Integration PDC topics at early stage of curriculum Think in parallel
integrating plan Course IDCourse NameSemester F Computer Introduction1st E Data Structures and Algorithms3rd G Object-oriented Programming in Java 4th H Computer Network Programming5th G Computer Architecture6th E Operating System6th E Compiler Design6th H Parallel and Distributed Computing7th
First step Of Integration, Fall 2013 Object-oriented Programming in Java (G , core) o Java threads Computer Network Programming (H , elective) o pthreads Computer Architecture (G , core) o Most architectures topics Parallel and Distributed Computing (H core) o Algorithms and programming topics
Second Stage Integration, Fall 2014 Operating System (E , core) o To show how parallelism propagation from hardware to higher programming platform Compiler Design (E , core) o Basic mechanism of parallel code parsing and generating Data Structures and Algorithms (E , core) o Possible parallel algorithms solution, OpenMP Computer Introduction (F , core) o Few PDC related topics, making students ‘Think in parallel’ as early as possible
Lab Assignments COURSEASSIGNMENTTOPICSDETAIL E Merge SortDivide And Conquer Sort data by k-way (k>2) merge sort algorithm. Accelerate it by OpenMP, and benchmark program on single core, 2 cores, 4 cores machine and analysis speedup. Parallel implementation is welcome. Lab E Maze SolvingGraph AlgorithmsMinimum distance between start and end by going through must visit points in a maze. Accelerate it by OpenMP, and benchmark program on single core, 2 cores, 4 cores machine and analysis speedup. HW E Processes Scheduling Task/Thread Spawning, Tasks And Threads Design & implement a simplified process and resource manager, scheduling process based on priority. Lab E Threads Synchronization Synchronization, Tasks And Threads Design and solve the producer/consumer problem via semaphores, using Pthreads to implement synchronization and mutex between producer thread and consumer thread Lab E Inter-Process Communication SynchronizationDesign and implement inter-process communication via pipe, socket or shared memory on Linux HW G Basic Pipeline Design PipelinesDesign a single core with at least 10 MIPS instructionsLab G Solve Data Dependence Pipelines, Data Dependence Solve data dependence determination and corresponding treatments based on the basic CPU. Lab G Solve Control Dependence Pipelines, Control Dependence Solve control dependence determination and corresponding treatments.Lab G Dual-Core CPU Design Pipelines, MulticoreDesign and implement a dual-core CPU with all above featuresElective lab H Prefix SumData Parallel, SPMD Implement prefix-sum with CUDA. Effectively exploiting share memory.Lab H N-Body SimulationMessage PassingTo implement N-body simulation program with MPI. Analysis the speedup.Lab H Pi CalculationParallel Loops For Shared Memory To accelerate parallel Pi calculation program using OpenMP.HW G Rotating EarthTask/Thread Spawning Rotate earth via Java multithreading.HW H TCP ServerSimultaneous Multi- Threading, Client Server Design and implement a concurrent TCP server and client in Linux, using Pthreads and concurrency to controls how many connections may be active at the same time. Lab H Distributed Application Client ServerDesign a Distributed Application using RMI for remote computation.Lab
Conclusion TCPP recommended curriculum has been integrated eight courses, evaluation shows our integration effort is successful. Practice such as lab/homework assignment effective improve students’ conception and practical skill. Contest can significantly motivate students’ imagination and creativity.
Future work ‘General education’ leads to majors reformation. CS and CE will merge into a single CST(Computer Science and Technology) major in UESTC. o Courses adjustment and condense. o CST Curriculum is very full. o Parallel and Distributed Computing will change into elective course o Scatter TCPP PDC topics in large amount of elective courses o Add more upper-level courses that provide more breadth and depth of coverage of parallel and distributed computing. Computer Graphics, Information Security etc.