CSCE569 Parallel Computing

Slides:



Advertisements
Similar presentations
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Parallel Programming in C with MPI and OpenMP Michael J. Quinn.
Advertisements

Introduction to Parallel Computing
1 Chapter 1 Why Parallel Computing? An Introduction to Parallel Programming Peter Pacheco.
Parallel (and Distributed) Computing Overview Chapter 1 Motivation and History.
Parallel Programming in C with MPI and OpenMP Michael J. Quinn.
HPC - High Performance Productivity Computing and Future Computational Systems: A Research Engineer’s Perspective Dr. Robert C. Singleterry Jr. NASA Langley.
Development of Parallel Simulator for Wireless WCDMA Network Hong Zhang Communication lab of HUT.
Parallel and Cluster Computing 1. 2 Optimising Compilers u The main specific optimization is loop vectorization u The compilers –Try to recognize such.
Revisiting a slide from the syllabus: CS 525 will cover Parallel and distributed computing architectures – Shared memory processors – Distributed memory.
© University of Minnesota Data Mining for the Discovery of Ocean Climate Indices 1 CSci 8980: Data Mining (Fall 2002) Vipin Kumar Army High Performance.
Parallel (and Distributed) Computing Overview
Fall 2007 CS 668/788 Parallel Computing Fred Annexstein
CISC 879 : Software Support for Multicore Architectures John Cavazos Dept of Computer & Information Sciences University of Delaware
Lecture 29 Fall 2006 Lecture 29: Parallel Programming Overview.
Slide 1 Standard Grade Computing Studies Systems Software.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides Courtesy Michael J. Quinn Parallel Programming in C.
CSE 219 Computer Science III Program Design Principles.
1 Parallel Programming Aaron Bloomfield CS 415 Fall 2005.
Parallel Programming in C with MPI and OpenMP Michael J. Quinn.
Lecture 4 TTH 03:30AM-04:45PM Dr. Jianjun Hu CSCE569 Parallel Computing University of South Carolina Department of.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Parallel Programming in C with MPI and OpenMP Michael J. Quinn.
Data Structures and Algorithms in Parallel Computing
Day 2. Agenda Parallelism basics Parallel machines Parallelism again High Throughput Computing –Finding the right grain size.
3/12/2013Computer Engg, IIT(BHU)1 INTRODUCTION-1.
Uses some of the slides for chapters 3 and 5 accompanying “Introduction to Parallel Computing”, Addison Wesley, 2003.
Algorithms in Programming Computer Science Principles LO
Why Parallel/Distributed Computing Sushil K. Prasad
COMP8330/7330/7336 Advanced Parallel and Distributed Computing Decomposition and Parallel Tasks (cont.) Dr. Xiao Qin Auburn University
Our Graphics Environment Landscape Rendering. Hardware  CPU  Modern CPUs are multicore processors  User programs can run at the same time as other.
1 ”MCUDA: An efficient implementation of CUDA kernels for multi-core CPUs” John A. Stratton, Sam S. Stone and Wen-mei W. Hwu Presentation for class TDT24,
Introduction to computer software. Programming the computer Program, is a sequence of instructions, written to perform a specified task on a computer.
Parallel Algorithm Design & Analysis Course Dr. Stephen V. Providence Motivation, Overview, Expectations, What’s next.
Evolution and History of Programming Languages
These slides are based on the book:
Auburn University COMP8330/7330/7336 Advanced Parallel and Distributed Computing Parallel Hardware Dr. Xiao Qin Auburn.
Algorithms and Problem Solving
Advanced Architectures
Topic: Programming Languages and their Evolution + Intro to Scratch
High and low level languages
Introduction to programming
CSCI-235 Micro-Computer Applications
Computer Programming.
Fall 2008 CS 668 Parallel Computing
ALGORITHMS AND FLOWCHARTS
Parallel Programming By J. H. Wang May 2, 2017.
Pattern Parallel Programming
The University of Adelaide, School of Computer Science
Parallel Density-based Hybrid Clustering
VLSI Testing Lecture 6: Fault Simulation
ECE 553: TESTING AND TESTABLE DESIGN OF DIGITAL SYSTES
VLSI Testing Lecture 6: Fault Simulation
Parallel (and Distributed) Computing Overview
Unit# 9: Computer Program Development
CSCE569 Parallel Computing
Simulation at NASA for the Space Radiation Effort
CSCE569 Parallel Computing
Design Model Like a Pyramid Component Level Design i n t e r f a c d s
CIS 488/588 Bruce R. Maxim UM-Dearborn
Shared Memory Programming
CSCE569 Parallel Computing
Dr. Tansel Dökeroğlu University of Turkish Aeronautical Association Computer Engineering Department Ceng 442 Introduction to Parallel.
COMP60621 Fundamentals of Parallel and Distributed Systems
By Brandon, Ben, and Lee Parallel Computing.
CSCE569 Parallel Computing
Chapter 4: Threads & Concurrency
Chapter 01: Introduction
COMP60611 Fundamentals of Parallel and Distributed Systems
1.3.7 High- and low-level languages and their translators
Programming Parallel Computers
Presentation transcript:

CSCE569 Parallel Computing Lecture 4 TTH 03:30AM-04:45PM Dr. Jianjun Hu http://mleg.cse.sc.edu/edu/csce569/ University of South Carolina Department of Computer Science and Engineering

Parallel Programming Model

Seeking Concurrency Data dependence graphs Data parallelism Functional parallelism Pipelining

Data Dependence Graph Directed graph Vertices = tasks Edges = dependences

Data Parallelism Independent tasks apply same operation to different elements of a data set Okay to perform operations concurrently for i  0 to 99 do a[i]  b[i] + c[i] endfor

Functional Parallelism Independent tasks apply different operations to different data elements First and second statements Third and fourth statements a  2 b  3 m  (a + b) / 2 s  (a2 + b2) / 2 v  s - m2

Pipelining Divide a process into stages Produce several items simultaneously

Partial Sums Pipeline

Data Clustering Data mining = looking for meaningful patterns in large data sets Data clustering = organizing a data set into clusters of “similar” items Data clustering can speed retrieval of related items

Document Vectors Moon The Geology of Moon Rocks The Story of Apollo 11 A Biography of Jules Verne Alice in Wonderland Rocket

Document Clustering

Clustering Algorithm Compute document vectors Choose initial cluster centers Repeat Compute performance function Adjust centers Until function value converges or max iterations have elapsed Output cluster centers

Data Parallelism Opportunities Operation being applied to a data set Examples Generating document vectors Finding closest center to each vector Picking initial values of cluster centers

Functional Parallelism Opportunities Draw data dependence diagram Look for sets of nodes such that there are no paths from one node to another

Data Dependence Diagram Build document vectors Choose cluster centers Compute function value Adjust cluster centers Output cluster centers

Programming Parallel Computers Extend compilers: translate sequential programs into parallel programs Extend languages: add parallel operations Add parallel language layer on top of sequential language Define totally new parallel language and compiler system

Strategy 1: Extend Compilers Parallelizing compiler Detect parallelism in sequential program Produce parallel executable program Focus on making Fortran programs parallel

Extend Compilers (cont.) Advantages Can leverage millions of lines of existing serial programs Saves time and labor Requires no retraining of programmers Sequential programming easier than parallel programming

Extend Compilers (cont.) Disadvantages Parallelism may be irretrivably lost when programs written in sequential languages Performance of parallelizing compilers on broad range of applications still up in air

Extend Language Add functions to a sequential language Create and terminate processes Synchronize processes Allow processes to communicate

Extend Language (cont.) Advantages Easiest, quickest, and least expensive Allows existing compiler technology to be leveraged New libraries can be ready soon after new parallel computers are available

Extend Language (cont.) Disadvantages Lack of compiler support to catch errors Easy to write programs that are difficult to debug

Add a Parallel Programming Layer Lower layer Core of computation Process manipulates its portion of data to produce its portion of result Upper layer Creation and synchronization of processes Partitioning of data among processes A few research prototypes have been built based on these principles

Create a Parallel Language Develop a parallel language “from scratch” occam is an example Add parallel constructs to an existing language Fortran 90 High Performance Fortran C*

New Parallel Languages (cont.) Advantages Allows programmer to communicate parallelism to compiler Improves probability that executable will achieve high performance Disadvantages Requires development of new compilers New languages may not become standards Programmer resistance

Current Status Low-level approach is most popular Augment existing language with low-level parallel constructs MPI and OpenMP are examples Advantages of low-level approach Efficiency Portability Disadvantage: More difficult to program and debug

Summary (1/2) High performance computing Parallel computers U.S. government Capital-intensive industries Many companies and research labs Parallel computers Commercial systems Commodity-based systems

Summary (2/2) Power of CPUs keeps growing exponentially Parallel programming environments changing very slowly Two standards have emerged MPI library, for processes that do not share memory OpenMP directives, for processes that do share memory

Places to Look Best current news: Huge Conference: Top500.org http://www.hpcwire.com/ Huge Conference: http://sc09.supercomputing.org/ http://www.interactivesupercomputing.com Top500.org