Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
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)