What is distributed memory parallelism?
Multiple processes with separate memory spaces that communicate explicitly over a network
Why is explicit communication needed?
Processes cannot directly access each other’s memory - must send/receive messages
What is the key difference from shared memory?
No data races possible, but communication overhead is the main performance bottleneck
What is a process vs a thread?
Process: separate address space, expensive to create; Thread: shared address space, cheap to create
How do processes communicate?
Via interprocess communication (IPC) like sockets, pipes, or message passing libraries
What is MPI?
Message Passing Interface - standard library for distributed memory programming
What are the advantages of distributed systems?
Scalability to thousands of nodes, no cache coherency issues, fault tolerance
What are the disadvantages?
Communication overhead, explicit data movement, more complex programming
What is a cluster?
Collection of computers connected by high-speed network, running same OS
What is a supercomputer?
Large-scale cluster optimized for high performance computing
What is the fastest supercomputer today?
El Capitan: 11,340,000 cores, ~1.8 exaFLOPS, 30MW power consumption
What are exaflop machines?
Supercomputers capable of 10^18 floating point operations per second
What is the interconnection network?
High-performance network connecting cluster nodes (e.g. InfiniBand, Gigabit Ethernet)
What is the difference between local and wide area networks?
Local: high bandwidth, low latency; Wide area: lower bandwidth, higher latency
What is the primary performance bottleneck in distributed systems?
Communication time - data transfer between nodes
What makes distributed programming challenging?
Coordination without shared clock, explicit data movement, potential network failures
What is the benefit of distributed systems for large problems?
Can solve problems too big for single machines
What types of applications benefit most from distributed computing?
Weather forecasting, scientific simulations, large-scale data processing