3/6/2016

Outline

Parallel Programming Models

o Vector Processing o Vector Instructions o Vector Processing in Desktop

By: Muhammad Naseem Assistant Professor Department of Computer Engineering, Sir Syed University of Engineering & Technology, Web: http://sites.google.com/site/muhammadnaseem105 Email: [email protected]

• This kind of computations has the advantage Vector Processing

• Vector processing falls in SIMD class and is • •

(more or less) supported by several processor architectures in the form of SIMD multimedia extensions as well as by GPUs The basic idea of vector computations is to apply the same (arithmetic) operation (successively or concurrently) to multiple data elements Appropriate vector instructions are provided for doing this

• •

Vector Instructions • • •

Vector instructions can be applied to all (or part of values by specifying length of vector stored in special length register) of the values stored in the operand registers Vector instructions can also use scalar registers as operands: when using a vector register and a scalar register as operands the result vector is obtained by adding the value in the scalar register to each element of the vector register The use of vector instructions has the advantage that for the internal processing by the hardware, an efficient pipelining can be used because there are no data dependencies between the values to be processed.

that a single vector instruction issues the computation of several pairs of source operands, in contrast to a scalar instruction where one instruction issues exactly one computation To use vector instructions, the application program must provide suitable operations, e.g., by applying the same operation to a set of data elements controlled by a loop Application programs from scientific computing domain require the same type of processing on all elements of a vector or a matrix.

Vector Processing in Desktop • • •



Vector operations can also be useful for standard desktop microprocessors Specialized SIMD instructions have been included in addition to the standard instructions that use 32-or 64bitoperands These SIMD instructions were originally intended for a fast processing of multimedia data, but they can be used for other data as well For the x86 architecture, SIMD instructions have been added in 1996 in the form of MMX instructions (MultiMedia eXtensions) working on 64-bit floating-point registers

1

3/6/2016

Vector Processing in Desktop

• In 1999, the Streaming SIMD Extensions (SSE)



were introduced working on separate 128bitfloating-point registers, which can store eight 16-bit values, four 32-bit values, or two 64-bit values -the SSE instructions perform operations simultaneously on these values In 2010, the Advanced Vector Extensions (AVX) have been added, working on 256-bit registers and are supported by the Intel Core i7 processors starting with the SandyBridge architecture as well as by the AMD processors starting with the Bulldozer architecture

2

Parallel Programming Models

Department of Computer Engineering,. Sir Syed University of Engineering & Technology,. Web: http://sites.google.com/site/muhammadnaseem105.

188KB Sizes 1 Downloads 238 Views

Recommend Documents

Heterogeneous Parallel Programming - GitHub
The course covers data parallel execution models, memory ... PLEASE NOTE: THE ONLINE COURSERA OFFERING OF THIS CLASS DOES NOT ... DOES NOT CONFER AN ILLINOIS DEGREE; AND IT DOES NOT VERIFY THE IDENTITY OF ...

UNIT –3 PARALLEL PROGRAMMING
In the following code fragment, the directives indicate that the outer two loops are ... iii) Using a completely new programming language for parallel programming (e.g. Ada). ... execution of the user code beyond the end of the parallel construct.

UNIT –3 PARALLEL PROGRAMMING
Page 24. Parallel Algorithms &. Parallel Programming. Check Your Progress 3. 1) (a) syntax for parallel directive : #pragma omp parallel [set of clauses].

Introduction to Parallel Programming - Udacity.pdf
Whoops! There was a problem loading more pages. Introduction to Parallel Programming - Udacity.pdf. Introduction to Parallel Programming - Udacity.pdf. Open.

Parallel Programming CPUs & GPUs
1837-71: Charles Babbage analytical engine. • 1954: IBM 704 “first real MIMD”. • 1958: parallelism in numerical calculations. • 1962: four-processor, 16 memory modules. • 1964: SIMD. • 1969: eight processors in parallel. • 1970s: more

Introduction to Parallel Programming - Udacity.pdf
Introduction to Parallel Programming - Udacity.pdf. Introduction to Parallel Programming - Udacity.pdf. Open. Extract. Open with. Sign In. Main menu. Whoops!

Parallel Programming by Transformation
details. The languages have APM definitions for their parallel constructs, but ... the infrastructure of compilers and tools; and a semantics that ensures the valid-.

[Heterogeneous Parallel Programming] Certificate [with Distinction].pdf
[Heterogeneous Parallel Programming] Certificate [with Distinction].pdf. [Heterogeneous Parallel Programming] Certificate [with Distinction].pdf. Open. Extract.