Lecture2 Structure
Shared Memory Structure
- 多个processor连接到相同的shared memory
- 缺点:
- 访存十分频繁,在时钟频率很高的情况下速度会受影响
- 距离越长传输噪声越大,限制了发展
- Hardware: processors, shared global memory
- Software model:
- thread
- shared varialbles
- communications
- synchronization
- CPU内部仍然有这样的结构,因为距离较小
Clusters (服务器集群)
- 可扩展性好
- 多个服务器之间用网络互联
- 以太网:冲突检测,查错重传
- 对于一个信道而言,可能有多个信号,那么就查错重传
- 优点是实现简单
- 某些机器间利用交换机相连(无锡超算)
- 速度快
- 利用率低
- 主要有两种连接方式
- pon 树结构
- 交换机和机器形成树结构
- 在相同交换机之间通讯极其迅速
- 跨越桥路的速度减慢
- Torus:
- 三维正方体结构
- 除了和周围相邻的机器相连,也按照指数增长和远处计算机相连
- 直径为d,按照O(logd)就能相连
为什么核要设计得复杂?
- 为了使得C运行迅速
- 尽管如此,我们仍然要想着很多底层的细节(such as cache)
- 加速器:
- 牺牲可编程性
- CPU和GPU合作:
- 利用PCI插槽
- 一个大核内放多个小核
- 放两种核,因为对于一些旧的代码,我们使用大核跑
- 专门优化的程序放到小核上
- 功耗和数据搬运相关
加快的方式——并行性和局部性
- 多个高效的处理器和层次性的存储结构
- 两个处理器,各自有L1缓存,为什么要共用L2缓存:
- 两个处理器可能有公用的数据
- 增大L2缓存的利用
Memory Hierarchy
pinned memory and pageable memory
pinned memory can directly be tranported by DMA
-
pageable memory has to be exported to pinned memory first:
因为pageable的里面,元素可能不连续
DMA只能传输成块的东西
constant memory: 在一个程序调用过程中不发生改变,在程序调用一开始就读入