







Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Some concept of High Performance Computing are Addressing Modes, Program Execution, Basic Computer Organization, Control Hazard Solutions, Least Recently Used, Memory Hierarchy Progression. Main points of this lecture are: Cache Coherence Problem, Processor, Multiple Processor, Potential Data, Consistency, Coherence Problem, Shared Variable, Modification, Private Cache, Solutions
Typology: Slides
1 / 13
This page cannot be seen from the preview
Don't miss anything!








2
Potential data consistency problem: the cache coherence problem Shared variable modification, private cache
Hardware: cache coherence mechanisms Software: compiler assisted cache coherence
4 X: 0 X: 1 X: 0 Read X Read X X: 0 Write X= X: 1 Read X: Cache Miss P1 P
5
7
But, many processes finding L=0 will all try and do Test&Set(L) causing a burst of bus traffic Could try and prevent all of these processes from attempting Test&Set at about the same time
8
Recall: Flynn’s SIMD, MIMD How would you describe a program meant to run on each of these parallel computer classes? SIMD: Single Program Multiple Data (SPMD) MIMD: Multiple Program Multiple Data (MPMD) The programs could involve cooperating activities using either Shared memory: threads with shared variables Message passing: communication using messages Speedup = parallel sequential
10
P1: send( &x, P2) P2: receive( &y, P1)
PVM (1980s) MPI (1990s)
11
Gropp, Lusk, Skjellum www.mcs.anl.gov/mpi/usingmpi
Snir, Otto, Huss-Lederman, Walker, Dongarra www.netlib.org/utk/papers/mpi-book/mpi-book.html
13
MPI_Init (int *argc, char ***argv) MPI_Finalize (void) MPI_Comm_rank (MPI_COMM comm, int *rank) MPI_Comm_size (MPI_COMM comm, int *size) MPI_Send (void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm) MPI_Recv (void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status *status) MPI_CHAR, MPI_INT, MPI_LONG, MPI_BYTE MPI_ANY_SOURCE, MPI_ANY_TAG