Computer Science 335
Parallel Processing and High Performance Computing
Fall 2024, Siena College
Lecture 5: Speedup and Scalability
Date: Friday, September 20, 2024
Agenda
- Announcements
- Repository tip: make sure you don't add/commit/push executables
- A look at the Programming Project 1: Introduction to Jacobi
Iteration [PDF] reference solution
- for high-performance computing, especially as we move to C,
we will want to think about the balance between a very detailed
object-oriented decomposition of the problem, and the efficiency
of a simple, direct implementation
- Lab 2: Chapter 2 Questions [HTML] [PDF] discussion
- Q&A/work time on ongoing tasks
Terminology
- vonNeumann architecture: main memory, central processing unit/processor/core, interconnection,
- registers, program counter, bus, fetch/read, store/write
- vonNeumann bottleneck
- operating system
- process
- call stack, heap
- multitasking, time slicing
- blocking
- threading
- fork, join
- single-program multiple data (SPMD)
- task parallel
- load balancing
- parallelization
- embarrassingly parallel
- shared vs. private memory
- static vs. dynamic (pop-up) threads
- nondeterminism
- race condition
- critical section
- mutual exclusion
- mutex lock
- serialization
- busy waiting
- thread safety
- distributed memory
- message passing
- speedup
- efficiency
- Amdahl's law
- scalability