Transcript

High-Performance Computing and OpenSolaris

Silveira Neto

Sun Campus Ambassador

Federal University of Cear

ParGO - Paralellism, Graphs, and Combinatorial Optimization Research Group

Agenda

Why programs should run faster?

How programs can run faster?

High Performance Computing

Motivating

Computer Models

Approachs

OpenSolaris

What is, Advantages and Tools.

Aplication Area Share

stats fromTop500.org Application area share for November/2007

Computational fluid dynamics

Finite Element Analysis

Serial Computation

problem

instructions

CPU

Serial Computation

Single computer, single CPU.

Problem broken into discrete series of instructions.

One instruction per time.

instructions

CPU

Parallel Computing

problem

CPU

CPU

CPU

parts

instructions

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

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

SISD

Single Instruction, Single Data

LOAD A

LOAD B

C = A+B

STORE C

CPU

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

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

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

Parallel Programming Models

Shared Memory

Threads

Message Passing

Data Parallel

Hybrid

Threads Model

Memory

CPU

CPU

CPU

CPU

Threads Model

Message Passing Model

Memory

CPU

Memory

CPU

Memory

CPU

Memory

CPU

x=10

Hybrid Model

Memory

CPU

CPU

Memory

CPU

CPU

x=10

Memory

CPU

Memory

CPU

Amdahl's Law

fraction of code that can be parallelized

Amdahl's Law

parallel fraction

number of processors

serial fraction

CPU

CPU

Integration

a

b

c

Pi calculation

Madhava of Sangamagrama (1350-1425)

CPU

CPU

MPI

Message Passing Interface

A computer specification

An implementation that allows many computers to communicate with one another. It is used in computer clusters.

MPI Simplest Example

$ mpicc hello.c -o hello$ mpirun -np 5 hi

MPI_Send

MPI_Recv

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

Creating a OpenMP Thread

$ gcc -openmp hello.c -o hello$ ./hello

Creating multiples OpenMP Threads

Pthreads

POSIX Threads

POSIX standard for threads

Defines an API for creating and manipulating threads

Pthreads

g++ -o threads threads.cpp -lpthread./threads

Java Threads

java.lang.Thread

java.util.concurrent

What is OpenSolaris?

Open development effort based on the source code for the Solaris Operating System.

Collection of source bases (consolidations) and projects.

Opensolaris

ZFS

Dtrace

Containers

HPC Tools

opensolaris.org/os/community/hpcdev/

Dtrace for Open MPI

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

Academy, industry and market

References

Introduction to Parallel Computing, Blaise Barney, Livermore Computing, 2007. https://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

Wikipedia's article on 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

Slides An Introduction to OpenSolaris, Peter Karlson.

Wikipedia's article on OpenMP, http://en.wikipedia.org/wiki/Openmp

References

Wikipedia's article on MPI, http://en.wikipedia.org/wiki/Message_Passing_Interface

Wikipedia's article on PThreads, http://en.wikipedia.org/wiki/Pthreads

Wikipedia's article on Madhave 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

Thank you!

Jos Maria Silveira NetoSun Campus [email protected]://silveiraneto.net

open artwork and icons by chandan:
http://blogs.sun.com/chandan

Click to edit the title text format

Click to edit the outline text format

Second Outline Level

Third Outline Level

Fourth Outline Level

Fifth Outline Level

Sixth Outline Level

Seventh Outline Level

Eighth Outline Level

Ninth Outline Level

USE

IMPROVE

EVANGELIZE

Click to edit the notes format

Click to edit the title text format

Click to edit the outline text format

Second Outline Level

Third Outline Level

Fourth Outline Level

Fifth Outline Level

Sixth Outline Level

Seventh Outline Level

Eighth Outline Level

Ninth Outline Level

USE

IMPROVE

EVANGELIZE

Click to edit the notes format

Click to edit the outline text format

Second Outline Level

Third Outline Level

Fourth Outline Level

Fifth Outline Level

Sixth Outline Level

Seventh Outline Level

Eighth Outline Level

Ninth Outline Level

USE

IMPROVE

EVANGELIZE

Click to edit the notes format


Top Related