Lecture 1 Introduction to Parallel Programming



Similar documents
Making Multicore Work and Measuring its Benefits. Markus Levy, president EEMBC and Multicore Association

GPU System Architecture. Alan Gray EPCC The University of Edinburgh

Course Development of Programming for General-Purpose Multicore Processors

Parallel Programming Survey

Multi-core Curriculum Development at Georgia Tech: Experience and Future Steps

Parallel Algorithm Engineering

10- High Performance Compu5ng

Introducing PgOpenCL A New PostgreSQL Procedural Language Unlocking the Power of the GPU! By Tim Child

Introduction to GPU hardware and to CUDA

CS 159 Two Lecture Introduction. Parallel Processing: A Hardware Solution & A Software Challenge

Introduction to GPU Programming Languages

Lecture 11: Multi-Core and GPU. Multithreading. Integration of multiple processor cores on a single chip.

High Performance Computing. Course Notes HPC Fundamentals

Lecture 3: Modern GPUs A Hardware Perspective Mohamed Zahran (aka Z) mzahran@cs.nyu.edu

Introduction to Cloud Computing

Software and the Concurrency Revolution

An Introduction to Parallel Computing/ Programming

Designing and Building Applications for Extreme Scale Systems CS598 William Gropp

OpenPOWER Outlook AXEL KOEHLER SR. SOLUTION ARCHITECT HPC

Overview of HPC Resources at Vanderbilt

Multi-core Programming System Overview

Incorporating Multicore Programming in Bachelor of Science in Computer Engineering Program

Data Centric Systems (DCS)

Principles of Software Construction: Objects, Design, and Concurrency. Course Introduction. toad. toad Fall School of Computer Science

Introduction to DISC and Hadoop

Symmetric Multiprocessing

MAQAO Performance Analysis and Optimization Tool

IBM CELL CELL INTRODUCTION. Project made by: Origgi Alessandro matr Teruzzi Roberto matr IBM CELL. Politecnico di Milano Como Campus

Home Exam 3: Distributed Video Encoding using Dolphin PCI Express Networks. October 20 th 2015

Introduction to GP-GPUs. Advanced Computer Architectures, Cristina Silvano, Politecnico di Milano 1

Scalable and High Performance Computing for Big Data Analytics in Understanding the Human Dynamics in the Mobile Age

Data Center and Cloud Computing Market Landscape and Challenges

Multi-core architectures. Jernej Barbic , Spring 2007 May 3, 2007

Performance Evaluation of NAS Parallel Benchmarks on Intel Xeon Phi

Petascale Software Challenges. William Gropp

Cloud Computing. Adam Barker

22S:295 Seminar in Applied Statistics High Performance Computing in Statistics

Building an energy dashboard. Energy measurement and visualization in current HPC systems

Gildart Haase School of Computer Sciences and Engineering

White Paper The Numascale Solution: Extreme BIG DATA Computing

Bob Boothe. Education. Research Interests. Teaching Experience

David Rioja Redondo Telecommunication Engineer Englobe Technologies and Systems

Overview and History of Operating Systems

GPUs for Scientific Computing

PARALLEL & CLUSTER COMPUTING CS 6260 PROFESSOR: ELISE DE DONCKER BY: LINA HUSSEIN

Trends in High-Performance Computing for Power Grid Applications

This Unit: Putting It All Together. CIS 501 Computer Architecture. Sources. What is Computer Architecture?

Distributed and Cloud Computing

Program Optimization for Multi-core Architectures

Chapter 1: Introduction. What is an Operating System?

Programming models for heterogeneous computing. Manuel Ujaldón Nvidia CUDA Fellow and A/Prof. Computer Architecture Department University of Malaga

Part I Courses Syllabus

Spring 2011 Prof. Hyesoon Kim

Big Data and Industrial Internet

The Fusion of Supercomputing and Big Data: The Role of Global Memory Architectures in Future Large Scale Data Analytics

Why Computers Are Getting Slower (and what we can do about it) Rik van Riel Sr. Software Engineer, Red Hat

CISC, RISC, and DSP Microprocessors

EECS 678: Introduction to Operating Systems

The Fastest Way to Parallel Programming for Multicore, Clusters, Supercomputers and the Cloud.

OpenSPARC Program. David Weaver Principal Engineer, UltraSPARC Architecture Principal OpenSPARC Evangelist Sun Microsystems, Inc.

GPU Parallel Computing Architecture and CUDA Programming Model

CS Standards Crosswalk: CSTA K-12 Computer Science Standards and Oracle Java Programming (2014)

numascale White Paper The Numascale Solution: Extreme BIG DATA Computing Hardware Accellerated Data Intensive Computing By: Einar Rustad ABSTRACT

CP3109: Introduction to Cloud Computing

GPU Architectures. A CPU Perspective. Data Parallelism: What is it, and how to exploit it? Workload characteristics

Speeding up MATLAB and Simulink Applications

Datacenters and Cloud Computing. Jia Rao Assistant Professor in CS

BLM 413E - Parallel Programming Lecture 3

Computer Organization

OPERATING SYSTEMS Internais and Design Principles

Lecture 10 - Functional programming: Hadoop and MapReduce

COM 444 Cloud Computing

High Performance Computing in the Multi-core Area

GPGPU Computing. Yong Cao

Surfing the Data Tsunami: A New Paradigm for Big Data Processing and Analytics

Chapter 12: Multiprocessor Architectures. Lesson 01: Performance characteristics of Multiprocessor Architectures and Speedup

Principles of Operating Systems CS 446/646

How To Understand The Design Of A Microprocessor

CS 575 Parallel Processing

COURSE OUTLINE Survey of Operating Systems

Supercomputing and Big Data: Where are the Real Boundaries and Opportunities for Synergy?

Going Linux on Massive Multicore

Parallel Computing for Data Science

Multicore Parallel Computing with OpenMP

MapReduce on GPUs. Amit Sabne, Ahmad Mujahid Mohammed Razip, Kun Xu

Introduction to Parallel and Distributed Databases

CS550. Distributed Operating Systems (Advanced Operating Systems) Instructor: Xian-He Sun

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson

Virtualization and Cloud Computing. Sorav Bansal

Computer Science. Master of Science

Barry Bolding, Ph.D. VP, Cray Product Division

Transcription:

Lecture 1 Introduction to Parallel Programming EN 600.320/420 Instructor: Randal Burns 4 September 2008 Department of Computer Science, Johns Hopkins University

Pipelined Processor From http://arstechnica.com/articles/paedia/cpu/pipelining-2.ars

Multi-Core Super-scalar the wrong(ish) term Cray T3e Independent processing units on one chip

Why this class? Parallelism is everywhere! Every program/programmer needs to address it Traditional CS curriculum totally misses the point Who should take it? Anyone who needs to program ever. Period! Excalamation point!!

Whatʼs a Parallel Computer?

Whatʼs a Parallel Computer?

Whatʼs a Parallel Computer?

Whatʼs a Parallel Computer?

Whatʼs a Parallel Computer?

Whatʼs a Parallel Computer?

Whatʼs a Parallel Computer?

Whatʼs a Parallel Computer?

Concurrency in Operating Systems Informal perspective (1980s and 1990s) Threaded and multi-process programming to hide I/O network latencies To avoid stalls on Web servers, file servers For responsiveness of GUIs Important for scalar architectures (2000s) Parallel to exercise processors Pipeline/multi-core capabilites Multi-processors (game consoles and video cards) Adapt techniques from HPC and SMP communities Otherwise we throw the cycles away

Weʼve been duped! Mooreʼs law The number of transistors that can be inexpensively placed on an integrated circuit is increasing exponentially, doubling approximately every two years. The observation has held for half a century Itʼs a fallacy: pipelined multicore not the same N k flop cores is not the same as an Nxk flop processor But the chip vendors tell us it is So we (the programmers) must deal with parallelism

Weʼve been duped!

About the Class: Goals The few, the proud, the parallel programmers This is a systems class, not a PL class Focus on understanding concurrency Algorithmic thinking not algorithms Play with toys Languages (MPI, concurrent Java, Hadoop!, maybe OpenMP) Hardware (uh oh! Thereʼs a lot of you!)

About the Class: Caveats New course. Material will co-evolve. Maybe a little chaotic at times Our systems may not always work New hardware New software We learn as you learn Two parallel themes Follow the book (cover to cover), learn ParProg. idioms Learn about languages and technology (unstructured)

Course Structure Exams: 1 or 2 Programming assignments: 2-3 major (Java, MPI, Hadoop!) 1-4 minor Problem sets (I doubt it) If we need to support exams Quizzes: only if you make me

Discussion (you first)

Discussion (OK me) What are the hardware trends of note? GPU processor convergence What is cloud computing? How and why do Google!/IBM, Yahoo! And Amazon feel differently? Canʼt my compiler do it for me? Or why is MPI the assembly language of parallelism successful? This is why itʼs a systems class The Tim Sweeney (Epic Games) question Why do game consoles drive in one lane on an 8-lane superhighway?