practices of integrating parallel and distributed computing topics into cs curriculum at uestc...
TRANSCRIPT
Practices of Integrating Parallel and Distributed Computing Topics into
CS Curriculum at UESTC
Guoming LuUniversity of Electronic Science and
Technology of China
Introduction to UESTC• Two majors in Department of Computer Science
and Engineeringo 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 planCourse
IDCourse Name Semest
erF060011
0Computer Introduction 1st
E0600645
Data Structures and Algorithms
3rd
G0601335
Object-oriented Programming in Java
4th
H0604130
Computer Network Programming
5th
G0601625
Computer Architecture 6th
E0600940
Operating System 6th
E0601035
Compiler Design 6th
H0604630
Parallel and Distributed Computing
7th
First step Of Integration, Fall 2013• Object-oriented Programming in Java (G0601335,
core)o Java threads
• Computer Network Programming (H0604130, elective)o pthreads
• Computer Architecture (G0601625, core)o Most architectures topics
• Parallel and Distributed Computing (H0604630 core)o Algorithms and programming topics
Second Stage Integration, Fall 2014
• Operating System (E0600940, core) o To show how parallelism propagation from hardware to higher
programming platform
• Compiler Design (E0601035, core)o Basic mechanism of parallel code parsing and generating
• Data Structures and Algorithms (E0600645, core) o Possible parallel algorithms solution, OpenMP
• Computer Introduction (F0600110, core)o Few PDC related topics, making students ‘Think in parallel’ as early as
possible
Lab AssignmentsCOURSE ASSIGNMENT TOPICS DETAIL E06006
45Merge Sort Divide And
ConquerSort 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
E0600645
Maze Solving Graph Algorithms Minimum 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
E0600940
Processes Scheduling
Task/Thread Spawning, Tasks And Threads
Design & implement a simplified process and resource manager, scheduling process based on priority.
Lab
E0600940
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
E0600940
Inter-Process Communication
Synchronization Design and implement inter-process communication via pipe, socket or shared memory on Linux
HW
G0601625
Basic Pipeline Design
Pipelines Design a single core with at least 10 MIPS instructions Lab
G0601625
Solve Data Dependence
Pipelines,Data Dependence
Solve data dependence determination and corresponding treatments based on the basic CPU.
Lab
G0601625
Solve Control Dependence
Pipelines, Control Dependence
Solve control dependence determination and corresponding treatments. Lab
G0601625
Dual-Core CPU Design
Pipelines, Multicore
Design and implement a dual-core CPU with all above features Elective lab
H0604630
Prefix Sum Data Parallel,SPMD
Implement prefix-sum with CUDA. Effectively exploiting share memory. Lab
H0604630
N-Body Simulation
Message Passing To implement N-body simulation program with MPI. Analysis the speedup.
Lab
H0604630
Pi Calculation Parallel Loops For Shared Memory
To accelerate parallel Pi calculation program using OpenMP. HW
G0601335
Rotating Earth Task/Thread Spawning
Rotate earth via Java multithreading. HW
H0604130
TCP Server Simultaneous 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
H0604130
Distributed Application
Client Server Design 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 courseo Scatter TCPP PDC topics in large amount of elective courseso Add more upper-level courses that provide more breadth and depth of
coverage of parallel and distributed computing. Computer Graphics, Information Security etc.