practices of integrating parallel and distributed computing topics into cs curriculum at uestc...

9
Practices of Integrating Parallel and Distributed Computing Topics into CS Curriculum at UESTC Guoming Lu University of Electronic Science and Technology of China

Upload: cameron-carr

Post on 03-Jan-2016

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Practices of Integrating Parallel and Distributed Computing Topics into CS Curriculum at UESTC Guoming Lu University of Electronic Science and Technology

Practices of Integrating Parallel and Distributed Computing Topics into

CS Curriculum at UESTC

Guoming LuUniversity of Electronic Science and

Technology of China

Page 2: Practices of Integrating Parallel and Distributed Computing Topics into CS Curriculum at UESTC Guoming Lu University of Electronic Science and Technology

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

Page 3: Practices of Integrating Parallel and Distributed Computing Topics into CS Curriculum at UESTC Guoming Lu University of Electronic Science and Technology

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

Page 4: Practices of Integrating Parallel and Distributed Computing Topics into CS Curriculum at UESTC Guoming Lu University of Electronic Science and Technology

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

Page 5: Practices of Integrating Parallel and Distributed Computing Topics into CS Curriculum at UESTC Guoming Lu University of Electronic Science and Technology

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

Page 6: Practices of Integrating Parallel and Distributed Computing Topics into CS Curriculum at UESTC Guoming Lu University of Electronic Science and Technology

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

Page 7: Practices of Integrating Parallel and Distributed Computing Topics into CS Curriculum at UESTC Guoming Lu University of Electronic Science and Technology

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

Page 8: Practices of Integrating Parallel and Distributed Computing Topics into CS Curriculum at UESTC Guoming Lu University of Electronic Science and Technology

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.

Page 9: Practices of Integrating Parallel and Distributed Computing Topics into CS Curriculum at UESTC Guoming Lu University of Electronic Science and Technology

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.