Parallel Programming Models (recap)
- Shared-memory models:
- Processes: shared main memory regions
- fork
- shmem family/library
- Threads: program user space → sharing lightweight
- pthreads (POSIX)
- OpenMP
- Processes: shared main memory regions
- Distributed-memory models: message passing
- MPI: a specification
- Implementations: OpenMPI, MPICH
- API → library
- underlying middleware
- RPC: remote procedure call
- Stubs: remote
- broker
- Net programming: send + receive → UDP/TCP
- Data-parallel models: partitioned global address space (PGAS) → shared-memory/distributed memory
- Apache Spark
- CUDA
- Hybrid models: a mix of any of the above
- e.g. MPI + OpenMP, MPI + CUDA, …
Note
stopped taking notes
i think im doomed