1.共享式内存模型(shared memory)
所有的处理单元共享内存,拥有统一的地址空间
这种模型的缺点在于 扩展性差,在增加 处理单元和内存的情况下,同步操作必须要编程
2.分布式内存模型(distributed memory)
3.混合式内存模型(hybird )
There are several parallel programming models in common use:
- Shared Memory
- Threads
- Message Passing
- Data Parallel
- Hybrid
以上是 虚拟的架构和具体底层物理架构无关
在 shared memory 硬件底层上 可以实现 共享内存模型
线程模型我感觉 并行代码设计比较简单,但是需要写大量的同步操作,粒度问题非常考验编程功底
具体实现: posix thread(基于库),openmp (基于编译指令)
消息传递模型可扩展性强