Presentation is loading. Please wait.

Presentation is loading. Please wait.

CPS 258, Fall 2004 Introduction to Computational Science.

Similar presentations


Presentation on theme: "CPS 258, Fall 2004 Introduction to Computational Science."— Presentation transcript:

1 CPS 258, Fall 2004 Introduction to Computational Science

2 Introduction to Computational Science An introduction to a wide variety of methods in computational science to facilitate interdisciplinary collaborative research Cover leading techniques and potential applications to research Introduce PRACTICAL computational methods Bring together graduate students from different disciplines in science, engineering and the basic sciences Underline the "common-ground" of computational methods

3 Administeria Lead Instructor: Nikos Pitsianis nikos@cs.duke.edu Prerequisites: Programming experience, calculus, numerical linear algebra or equivalent Schedule: Tu-Th, 2:50 PM-4:05 PM LSRC A156 Grading: –30% Class Participation –30% Homework Assignments –40% Final Project Credit: 3 hours Office Hours: to be announced Course Admin: Mindy Quigley mindy@cs.duke.edu

4 Instructors Nikos Pitsianis and Rachael Brady Tod Laursen Bill Rankin …

5 Syllabus High performance computer architectures Linear Algebra Visualization Spatial & Time Integration Finite Elements, Applied to PDEs and ODEs Fast Transforms Introduction to MPI programming Schroedinger’s Equation Molecular Dynamics Stochastic Optimization and Integration

6 Abstraction and Portability vs Performance High level programming Easy maintenance Flexible and reusable code Portable to other architectures

7 Questions Can my program be faster/more accurate/stable –Computational complexity –Algorithm choice –Implementation How can I make it better Is it worth the effort

8 Parallel Architectures

9 Parallelism Levels Job Program Instruction Bit

10 Parallel Architectures Pipelining Multiple execution units –Superscalar –VLIW Multiple processors

11 Pipelining Example Load UALUStore load x(i) load y(i) load x(i+1)add z(i),x(i),y(i) load xy(i+1) store z(i) add z(i+1),x(i+1),y(i+1) store z(i+1) Prologue Loop body Epilogue for i = 1:n z(i) = x(i) + y(i); end

12 Generic Computer CPU Memory Bus

13 Memory Organization Distributed memory Shared memory

14 Shared Memory

15 Distributed Memory

16 Interleaved Memory

17 Network Topologies Ring Torus Tree Star Hypercube Cross-bar

18 Flynn’s Taxonomy SISD SIMD MISD MIMD

19 Instruction Processing Stages Fetch Decode Execute Post

20 Vector Architectures Single Instruction Multiple Data Exploit uniformity of operations Multiple execution units Pipelining Hardware assisted loops Vectorizing compilers


Download ppt "CPS 258, Fall 2004 Introduction to Computational Science."

Similar presentations


Ads by Google