1
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)

INTEGRATING PARALLEL AND DISTRIBUTED COMPUTING MODULES INTO CS …tcpp.cs.gsu.edu/curriculum/sites/default/files/poster... · 2018. 5. 23. · INTEGRATING PARALLEL AND DISTRIBUTED

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: INTEGRATING PARALLEL AND DISTRIBUTED COMPUTING MODULES INTO CS …tcpp.cs.gsu.edu/curriculum/sites/default/files/poster... · 2018. 5. 23. · INTEGRATING PARALLEL AND DISTRIBUTED

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)