INTEGRATING PARALLEL AND DISTRIBUTED COMPUTING MODULES INTO CS CURRICULUM AT UESTC Guoming Lu, Jie Xu, Jieyan Liu, Bo Dai, Shenglin Gui, Siyu Zhan University of Electronic Science and Technology of China Introduction This poster provides a status update on the integration of NSF/IEEE‐TCPP Curricular standard at University of Electronic Science and Technology of China(UESTC). So far, TCPP recommended curriculum has been integrated into eight courses of our current curriculum of Computer Science and Technology( Computer Science Direction). evaluations show our integration efforts are successful. Evaluation also shows that practices such as lab/homework assignment effectively improve students’ conception. Conclusion TCPP recommended curriculum has been integrated eight courses, evaluation shows our integration effort is successful. Practices such as lab/homework assignment effective improve students’ conception and practical skill. Contest can significantly motivate students’ imagination and creativity. Acknowledgements This work was support by the NSF/IEEE-TCPP Curriculum Initiative on Parallel and Distributed Computing Early Adopters Program. This work was also funded by Key Technology Research and Development Program of the Bureau of Science and Technology of Sichuan Province (2014GZ0174). We would also like to thank NVDIA for their support on GPU and related technology application. Lab Assignments Related To Pdc Topics Project Goal Re-structure curriculum of Computer Science and Technology( Computer Science Direction)to make students ‘think in parallel’ naturally. Sufficient practical exposure to strengthen students’ development and analytical skills. Integrating PDC topics at early stage of curriculum to make students see PDC as a natural and common part of programming. Involved Courses Course Name Seme ster Related PDC topics Computer Introduction 1st Why and What Is PDC, make students ‘Think in parallel’ as early as possible. Data Structures and Algorithms 3rd Discussing some possible parallel solutions while teaching typical sequential algorithms. Object-oriented Programming in Java 4th Enhancing PDC topics on Client/Server paradigms, RMI and pThreads. Computer Network Programming 5th Java threads and concurrency defects . Computer Architecture 6th Cover most architecture topics of PDC Operating System 6th Discussing how parallelism propagation from hardware to higher programming platform. Compiler Design 6th To know the basic mechanism that parallel code parsing and generating Parallel and Distributed Computing 7th Focus on algorithms and programming topics of PDC Computer Architecture PDC Topics Assignment Architecture Taxonomy(K) Superscalar (C) SIMD/Vector (K) Pipeline(A) MIMD(K) Simultaneous Multi-Threading(K) Multicore (C) Heterogeneous (K) SMP(K) NUMA(K) Algorithms Space/Memory(K) Cost reduction: Speedup (A) Cost tradeoffs: Time vs. space(K) Power vs. time(K) Cache Organization(K) Cache organization(A) Impact on software(C) Floating point representation(A) Cycles per instruction (A) Benchmarks(C) Peak performance MIPS/FLOPS(C) Sustained performance(C) Notions from complexity- theory: Simulation/emulation(K) Notions from scheduling: Dependencies (A) Parallel And Distributed Computing PDC Topics Assignment Architecture Taxonomy(C) Data vs. control parallelism (K) Shared vs. distributed memory(C) Memory Hierarchy(C) Performance metrics(K). Algorithm Divide and Conquer (C) Recursion (C) Scan (C) Map-Reduce (K) Series-Parallel Composition(C) Sorting(C) PRAM(K) Task graphs(C) Synchronization(K) Matrix product(K) Programming Shared memory(A) Distributed memory(C) Hybrid(K) Data parallel(A) Synchronization(A) Concurrency defects(C), Performance metrics(C) COURSE ASSIGNMENT TOPICS LAB /HW Data Structures and Algorithms Merge Sort Divide And Conquer Lab Maze Solving Graph Algorithms HW Operating System Processes Scheduling Task/Thread Spawning, Tasks And Threads Lab Threads Synchronization Synchronization, Tasks And Threads Lab Inter-Process Communication Synchronization HW Computer Architecture Basic Pipeline Design Pipelines Lab Solve Data Dependence Pipelines, Data Dependence Lab Solve Control Dependence Pipelines, Control Dependence Lab Dual-Core CPU Design Pipelines, Multicore Elective lab Parallel and Distributed Computing Prefix Sum Data Parallel, SPMD Lab N-Body Simulation Message Passing Lab Pi Calculation Parallel Loops For Shared Memory HW Java Rotating Earth Task/Thread Spawning HW Computer Network Programming TCP Server Simultaneous Multi- Threading, Client Server Lab Distributed Application Client Server Lab HPC Contest Club HPC club was setup up in order to encourage students to actively explore HPC knowledge. The discussion and exercises topics include: Supercomputer architecture. Parallel benchmark test. Parallel software tuning and optimization. Parallelizing serial programs. Recent achievement: Rank 18th in ASC2015( 152 teams from all over the world)