并行与分布式计算期末复习知识点
时间: 2025-07-06 13:50:31 浏览: 17
### 并行计算与分布式计算期末复习知识点总结
#### 一、并行计算的特点及挑战
并行计算涉及多个处理器协同解决一个问题,旨在提高性能和效率。然而,在实际应用中,并行计算面临诸多挑战:
某些算法常常表现出较差的内存访问局部性[^1]。这不仅影响缓存命中率,还可能导致频繁的内存交换操作,从而降低整体执行速度。
对于特定类型的图结构数据集(如社交网络),针对单个顶点的操作量往往非常有限,使得硬件资源利用率不高。这种情况下,尽管存在大量并发任务,但由于每个任务的工作负载极低,难以充分发挥多核或多机环境的优势。
在大规模图处理场景下,随着迭代次数增加,并发线程数会发生动态变化,给编程模型带来额外复杂度。程序员需要设计能够适应不同阶段需求的应用程序框架来应对这一特性。
#### 二、分布式系统的定义与构成要素
分布式系统是指一组相互独立但又紧密协作的计算机集合体;这些机器之间通过网络相连互通,共同完成某项复杂的运算或服务请求。其核心特征在于各节点间的信息共享机制以及由此衍生出来的高效能优势[^2]。
一个典型的分布式架构通常包含以下几个组成部分:
- **物理层**:即底层硬件设施,比如服务器集群、存储阵列等;
- **传输介质**:负责承载消息传递过程中的载体形式,例如光纤电缆或是无线射频信号;
- **协议栈**:用于规定通信双方如何交互的一系列规则和技术标准;
- **操作系统/中间件平台**:提供必要的抽象接口和服务支持,简化应用程序开发流程的同时保障跨域互操作性的实现可能性。
#### 三、两者之间的区别与联系
虽然都追求加速问题求解的速度,但是二者侧重点有所不同——前者强调的是同一台设备内部CPU/GPU间的协调运作模式;后者则更关注于跨越地理空间界限的不同主机之间的合作方式。值得注意的是,现代高性能计算领域内越来越多的趋势表明,并行化策略正逐渐融入到分布式的体系当中去形成所谓的“混合型”解决方案。
```python
# Python伪代码展示简单的MapReduce范式下的单词计数逻辑
def map_reduce_wordcount(input_files):
mapper_outputs = []
# Mapper phase: 对输入文件进行分词映射
for file in input_files:
words = tokenize(file.read())
mapped_items = [(word, 1) for word in words]
mapper_outputs.extend(mapped_items)
shuffled_data = shuffle(mapper_outputs)
# Reducer phase: 聚合相同key对应的value值之和
result = {}
for key, values in grouped(shuffled_data).items():
count_sum = sum(values)
result[key] = count_sum
return result
```
阅读全文
相关推荐




















