CSE 4392 Lab Assignments 3 & 4
Due August 8, 2002
Goals:
1.
Understanding of pthreads programming.
2.
Understanding of MPI programming.
3.
Speed-up and efficiency evaluation.
Requirements:
1.
Convert the program 2dclosest.c that was sent by email to your
CSE 4392
Summer 2002
Test 2
Name _
Short Answer - 10 Points Each
1.
What is the bisection width of a 6 x 8 mesh?
2.
What is the diameter of a 1024-node hypercube?
3.
What is the purpose of the GCD test?
4.
What is the diameter of a 8 x 9 torus?
5.
How man
CSE 4351/5351 Notes 8: Parallelizing Compilers, Sequent FORTRAN, and OpenMP
Elementary Data Dependence Concepts
1:
1:
1:
1:
1:
1:
2:
3:
4:
Entry
integer
integer
integer
integer
integer
a = b+c
d = a+2
e = a+3
a
b
c
d
e
flow dependence 2: -> 3:
flow depend
CSE 4351 Notes 1: History, Motivation, and Overview
History of High-Performance Computing (dates based on major publications)
YEAR
1955
GOVERNMENT
ACADEME
INDUSTRY
IBM 704 (5 KFLOPs, Amdahl)
1958
1964
CDC Founded
Energy/Defense
Needs
Illiac IV
1965
Critic
Take-home exam - DO YOUR OWN WORK! (Due July 16)
1. The following C function is passed two shared arrays and a pointer to a shared integer for the result.
Assuming that the threads have already been created, give pthreads code to make it execute efficient
CSE 4351/5351
Fall 2000
Test 1
Name _
Closed Book Questions - 5 Points Each
1. What are the two types of queues used in monitors?
2. How is an MPI_Bcast used during the row-oriented distributed Warshalls algorithm? Which processor will be the
root of the
CSE 4351/5351 Notes 6: Numerical Problems (Systems of Linear Equations)
Approaches:
1. Elimination methods
Gaussian
LU
Householder (available on web page, not on test)
2. Iteration
Gaussian Elimination
Solve Ax = b
n
A
n
1
b
Subtract a multiple of the fir
CSE 4351/5351 Notes 3: Elementary Message-based Programming Using MPI
NO SHARED MEMORY IN MPI!
Documentation for MPICH available from http:/reptar.uta.edu/cse4351.html
Function reference card (http:/reptar.uta.edu/NOTES4351/functions.pdf)
Users guide (htt
CSE 4351/5351 Notes 7: Task Scheduling & Load Balancing
Task Scheduling
A task is a (sequential) activity that uses a set of inputs to produce a set of outputs. A task (precedence) graph is an acyclic,
directed graph that uses the inputs and outputs for a
CSE 4351 Notes 2: Data Parallel Programing in LinuxThreads (pthreads)
LinuxThreads/Threads
Threads are main unit of concurrent execution
Lightweight processes are available in some implementations
LinuxThreads are implemented as heavyweight processes
Linu
CSE 4351/5351 Notes 4: Synchronization: Shared Memory, Message Passing, and Termination
Detection
SYNCHRONIZATION IN SHARED MEMORY
Barrier (Wait for N processes to reach):
Version 1: Single-use barrier
Initialize variable x with 0
Check-in:
Fetch-and-add(
CSE 4351/5351 Notes 9: PRAM and Other Theoretical Model s
Shared Memory Model
Traditional Sequential Algorithm Model
RAM (Random Access Machine)
Uniform access time to memory
Arithmetic operations performed in O(1) time (simplification, really O(lg n)
Gen
CSE 4392 Lab Assignment 2
Due July 11, 2002
Goals:
1.
Understanding of elementary MPI programming.
2.
Speed-up and efficiency evaluation.
Requirements:
1.
Convert the program warshallM.c in Notes 3 to handle the additional details of the Floyd-Warshall al
CSE 4351/5351 Notes 10: Obstacles to Parallelism
Overview
Inherently sequential problems
Discrete event simulation
Two-person games
NP-Completeness (Limit to sequential computation)
Traditionally, these problems are assumed to require exponential time (in