Sections
Y-7 Parallel Systems
Previous terms
Y-7 Parallel Systems / Fall 2003
Main Project:
- Algorithms for barriers, implementation and measurements (Κακολύρης)
- Algorithms for parallel sorting and implementations (Τσώτσος)
- Posix threads API, system-specific implementations, example usage of primitives (Παπαδόπουλος)
- RPC and Java RMI (Πλίτσης)
- OpenMP and NPB - Nasa Parallel Benchmarks (Ζέλιου)
-
Study and use the communicators and process topologies of MPI.
- Write an extensive report on their usage
- Use the cartesian process topologies to implement different programs for matrix multiplication.
- Report your results on helios.cc and our local net.
- Problem 6.7
- Prove Amdahl's law using Gustafson's law
- Prove that in a hypercube exactly half of the nodes have odd weight
- Write C programs for mapping meshes/tori to hypercubes.
- Problem 4.1
Assume the mesh and torus are square MxM
- Write, execute and measure parallel MPI programs for
matrix multiplication using checkerboard
and strip partitioning (where each process calculates
a set of rows of the result).
- Repeat your measurements (at least 4 times) and average the results
- Use 1, 4, 16, 64 processes, 512x512 integer matrices
- Your report should contain plots of the results and discussion.
- All prorgams are to be run in helios.cc and our local net.
- Problems: 9.1-9.3
- Show the equvallency of butterfly, omega and binary delta networks
- Prepare a report on the MOESI cache coherency protocol of the AMD 64-bit processors.
- Survey the contemporary bus-based machines of Sun, HP/Compaq and SGI.
- Problems: 3.2, 3.3, 3.4, 3.5, 3.6
- Learn how to time in Unix; find out about high resolution timers; write a summary report (3-4 pages).
- Measure fork()'s and pthread_create()'s time
overhead.
You should repeat measurements many times (e.g. 1000) and average the results. Run your tests in atlantis, titan and helios.cc. Be careful, it is a bit tricky! - Write, execute and measure parallel programs for calculating
π = 3,14.. and for matrix multiplication.
- using SysV shared memory and processes, do π with block scheduling and matrix multiplication with self-scheduling
- using Posix Threads (pthreads), do π with loop splitting and matrix multiplication with checkerboard partitioning.
- Repeat your measurements (at least 4 times) and average the results
- Use 1, 4, 16, 64 processes / threads, 512x512 integer matrices
- Your report should contain plots of the results and discussion.
- All prorgams are to be run in atlantis, titan and helios.cc.
- Here is a serial program for matrix multiplication and two matrices A, B to play with.
- Problems: 8.1, 8.3-8.6, 8.8, 8.10-8.14
- Create your own home page for this course
- Survey all parallel UoI machines in Computer Center & Dept. of Computer Science (IP address/name, model type, # processors, O.S., total memory)
- Problems: 1.1, 1.2 & DBPP 1.1, 1.2, 1.3
Course notes/material:
- Butterfly and related networks slides (postscript files, .tar.gz)
- Memory consistency (.ps.gz, in greek)
Students:
Student
/ URL |
|
Ιωάννα Ζέλιου | ioanna |
Ανδρέας Κακολύρης | akakolir |
Φίλιππος Παπαδόπουλος |
filip |
Ζήσης Πλίτσης |
zplitsis |
Θοδωρής Τσώτσος |
thodoris |
Course outline:
Introduction: parallel systems and their programming
Shared-memory programming: processes, threads, apps, openMP
Shared-memory machines: architecture, networks, cache coherence, memory consistency
Message-passing programming: communication primitives, MPI, apps
Distributed-memory machines: architecture, interconnection networks, routing, collective communications, distributed shared memory
Performance and metrics: Amdhal, Gustafson, granularity, scalability
Topics on shared-memory systems and programming: TBA
Topics on distributed-memory systems and message passing: TBA
Shared-memory programming: processes, threads, apps, openMP
Shared-memory machines: architecture, networks, cache coherence, memory consistency
Message-passing programming: communication primitives, MPI, apps
Distributed-memory machines: architecture, interconnection networks, routing, collective communications, distributed shared memory
Performance and metrics: Amdhal, Gustafson, granularity, scalability
Topics on shared-memory systems and programming: TBA
Topics on distributed-memory systems and message passing: TBA
Books:
- The instructor's
- I. Foster, Designing and Building Parallel Programms, DBPP, available on-line
- V. Kumar et al, Introduction to Parallel Computing: Design and Analysis of Algorithms
- D. Culler et al, Parallel Computer Architecture: A Hardware/Software Approach
Journals:
The library has many relevant technical
journals & conference proceedings. Keep an eye on the following general-purpose
magazines, too:
IEEE Computer, IEEE Micro, ACM Computing
Surveys
A few relevant links:
- Internet Parallel Computing Archive
- MPI
- OpenMP
- Διεργασίες, κοινή μνήμη και σημαφόροι στο Unix, σύντομο tutorial (VVD)
- Πως να χρονομετρήσετε στο Unix (VVD)
- Οδηγίες για την χρήση του LAM / MPI (VVD)
AMD, Compaq, Cray, DEC, Fujitsu, HP,
IBM, Intel, Meiko, MIPS, Motorola, NEC, SGI, Sun