Presentation is loading. Please wait.

Presentation is loading. Please wait.

USEIMPROVEEVANGELIZE High-Performance Computing and OpenSolaris ● Silveira Neto ● Sun Campus Ambassador ● Federal University of Ceará ● ParGO - Paralellism,

Similar presentations


Presentation on theme: "USEIMPROVEEVANGELIZE High-Performance Computing and OpenSolaris ● Silveira Neto ● Sun Campus Ambassador ● Federal University of Ceará ● ParGO - Paralellism,"— Presentation transcript:

1 USEIMPROVEEVANGELIZE High-Performance Computing and OpenSolaris ● Silveira Neto ● Sun Campus Ambassador ● Federal University of Ceará ● ParGO - Paralellism, Graphs, and Combinatorial Optimization Research Group

2 2 USEIMPROVEEVANGELIZE Agenda ● Why programs should run faster? ● How programs can run faster? ● High Performance Computing – Motivating – Computer Models – Approachs ● OpenSolaris – What is, Advantages and Tools.

3 3 USEIMPROVEEVANGELIZE Aplication Area Share stats fromTop500.org Application area share for November/2007

4 4 USEIMPROVEEVANGELIZE Computational fluid dynamics

5 5 USEIMPROVEEVANGELIZE Finite Element Analysis

6 6 USEIMPROVEEVANGELIZE Serial Computation problem instructions CP U

7 7 USEIMPROVEEVANGELIZE Serial Computation ● Single computer, single CPU. ● Problem broken into discrete series of instructions. ● One instruction per time. instructions CP U

8 8 USEIMPROVEEVANGELIZE Parallel Computing problem CP U parts instructions

9 9 USEIMPROVEEVANGELIZE Parallel Computing ● Simultaneous use of multiple compute resources to solve a computational problem. ● Compute resources can include – Single computer with multiple processors – Multiple computers connected by a network – or both

10 10 USEIMPROVEEVANGELIZE Flynn's Taxonomy ● Instruction or Data ● Single or Multiple SISD Single Instruction, Single Data SIMD Single Instruction, Multiple Data MISD Multiple Instruction, Single Data MIMD Multiple Instruction, Multiple Data

11 11 USEIMPROVEEVANGELIZE SISD ● Single Instruction, Single Data LOAD A LOAD B C = A+B STORE C CPU

12 12 USEIMPROVEEVANGELIZE SIMD ● Single Instruction, Multiple Data LOAD A[0] LOAD B[0] C[0] = A[0]+B[0] STORE C[0] LOAD A[1] LOAD B[1] C[1] = A[1]+B[1] STORE C[1] LOAD A[n] LOAD B[n] C[n] = A[n]+B[n] STORE C[n] CPU 1 CPU 2 CPU n

13 13 USEIMPROVEEVANGELIZE MISD ● Multiple Instruction, Single Data LOAD A[0] C[0] = A[0] *1 STORE C[0] LOAD A[1] C[1] = A[1] *2 STORE C[1] LOAD A[n] C[n] = A[n] *n STORE C[n] CPU 1 CPU 2 CPU n

14 14 USEIMPROVEEVANGELIZE MIMD ● Multiple Instruction, Multiple Data LOAD A[0] C[0] = A[0] *1 STORE C[0] X=sqrt(2) C[1] = A[1] *X method(C[1]); something(); W = C[n]**X C[n] = 1/W CPU 1 CPU 2 CPU n

15 15 USEIMPROVEEVANGELIZE Parallel Programming Models ● Shared Memory ● Threads ● Message Passing ● Data Parallel ● Hybrid

16 16 USEIMPROVEEVANGELIZE Threads Model Memory CP U

17 17 USEIMPROVEEVANGELIZE Threads Model

18 18 USEIMPROVEEVANGELIZE Message Passing Model Memory CP U Memory CP U Memory CP U Memory CP U x=10

19 19 USEIMPROVEEVANGELIZE Hybrid Model Memory CPU Memory CPU x=10 Memory CPU Memory CPU

20 20 USEIMPROVEEVANGELIZE Amdahl's Law fraction of code that can be parallelized

21 21 USEIMPROVEEVANGELIZE Amdahl's Law parallel fraction number of processors serial fraction

22 22 USEIMPROVEEVANGELIZE CP U Integration a b c

23 23 USEIMPROVEEVANGELIZE Pi calculation ● Madhava of Sangamagrama (1350-1425) CP U

24 24 USEIMPROVEEVANGELIZE MPI ● Message Passing Interface ● A computer specification ● An implementation that allows many computers to communicate with one another. It is used in computer clusters.

25 25 USEIMPROVEEVANGELIZE MPI Simplest Example $ mpicc hello.c -o hello $ mpirun -np 5 hi

26 26 USEIMPROVEEVANGELIZE MPI_Send

27 27 USEIMPROVEEVANGELIZE MPI_Recv

28 28 USEIMPROVEEVANGELIZE OpenMP ● Open Multi-Processing ● Multi-platform shared memory multiprocessing programming in C/C++ and Fortran on many architectures ● Available on GCC 4.2 ● C/C++/Fortran

29 29 USEIMPROVEEVANGELIZE Creating a OpenMP Thread $ gcc -openmp hello.c -o hello $./hello

30 30 USEIMPROVEEVANGELIZE Creating multiples OpenMP Threads

31 31 USEIMPROVEEVANGELIZE Pthreads ● POSIX Threads ● POSIX standard for threads ● Defines an API for creating and manipulating threads

32 32 USEIMPROVEEVANGELIZE Pthreads g++ -o threads threads.cpp -lpthread./threads

33 33 USEIMPROVEEVANGELIZE Java Threads ● java.lang.Thread ● java.util.concurrent

34 34 USEIMPROVEEVANGELIZE What is OpenSolaris? ● Open development effort based on the source code for the Solaris Operating System. ● Collection of source bases (consolidations) and projects.

35 35 USEIMPROVEEVANGELIZE Opensolaris ● ZFS ● Dtrace ● Containers ● HPC Tools ● opensolaris.org/os/community/hpcdev/ – Dtrace for Open MPI

36 36 USEIMPROVEEVANGELIZE Sun HPC ClusterTools ● Comprehensive set of capabilities for parallel computing. ● Integrated toolkit that allows developers to create and tune MPI applications that run on high performance clusters and SMPs. ● sun.com/clustertools

37 37 USEIMPROVEEVANGELIZE Academy, industry and market

38 38 USEIMPROVEEVANGELIZE References ● Introduction to Parallel Computing, Blaise Barney, Livermore Computing, 2007. https://computing.llnl.gov/tutorials/parallel_comphttps://computing.llnl.gov/tutorials/parallel_comp ● Flynn, M., Some Computer Organizations and Their Effectiveness, IEEE Trans. Comput., Vol. C-21, pp. 948, 1972. ● Top500 Supercomputer sites, Application Area share for 11/2007, http://www.top500.org/charts/list/30/apparea http://www.top500.org/charts/list/30/apparea ● Wikipedia's article on Finite Element Analysis, http://en.wikipedia.org/wiki/Finite_element_analysis http://en.wikipedia.org/wiki/Finite_element_analysis ● Wikipedia's article on Computational Fluid Dynamics, http://en.wikipedia.org/wiki/Computational_fluid_dynamics http://en.wikipedia.org/wiki/Computational_fluid_dynamics ● Slides An Introduction to OpenSolaris, Peter Karlson. ● Wikipedia's article on OpenMP, http://en.wikipedia.org/wiki/Openmphttp://en.wikipedia.org/wiki/Openmp

39 39 USEIMPROVEEVANGELIZE References ● Wikipedia's article on MPI, http://en.wikipedia.org/wiki/Message_Passing_Interface http://en.wikipedia.org/wiki/Message_Passing_Interface ● Wikipedia's article on PThreads, http://en.wikipedia.org/wiki/Pthreadshttp://en.wikipedia.org/wiki/Pthreads ● Wikipedia's article on Madhave of Sangamagrama, http://en.wikipedia.org/wiki/Madhava_of_Sangamagrama http://en.wikipedia.org/wiki/Madhava_of_Sangamagrama ● Distributed Systems Programming, Heriot-Watt University http://www.macs.hw.ac.uk/~hamish/DSP/topic29.html http://www.macs.hw.ac.uk/~hamish/DSP/topic29.html

40 USEIMPROVEEVANGELIZE Thank you! José Maria Silveira Neto Sun Campus Ambassador jose.neto@sun.com http://silveiraneto.net “open” artwork and icons by chandan: http://blogs.sun.com/chandan http://blogs.sun.com/chandan


Download ppt "USEIMPROVEEVANGELIZE High-Performance Computing and OpenSolaris ● Silveira Neto ● Sun Campus Ambassador ● Federal University of Ceará ● ParGO - Paralellism,"

Similar presentations


Ads by Google