多核能否满足科学应用的内存需求及桌面搜索索引生成器并行化探究
立即解锁
发布时间: 2025-08-20 02:13:35 阅读量: 1 订阅数: 4 


并行化桌面搜索索引生成器的设计与实现
### 多核能否满足科学应用的内存需求及桌面搜索索引生成器并行化探究
#### 多核与科学应用内存需求
在当今科技发展中,多核处理器的应用越来越广泛。研究发现,将约 100 个处理器整合到单个芯片上,利用现有的内存技术是可以实现的。但当处理器数量达到约 200 个时,就如同内存带宽的情况一样,会达到一个临界点,此时需要更密集的内存技术。
以下是一些应用在不同处理器数量下的内存占用情况:
|应用|处理器数量|内存占用(每处理器,GB)范围|
| ---- | ---- | ---- |
|MILC|16、32、64 处理器|0 - 0.8|
|GADGET2|32、64、128 处理器|0 - 1.8|
|WRF|16、32、64 处理器|0 - 0.4|
|SOCORRO|16、32、64 处理器|0 - 0.4|
在计算机系统扩展时,有两种不同的场景:
1. **增加处理器数量,问题规模不变**:目的是减少计算时间。例如,原本需要数小时计算的 MRI 图像,现在能在几分钟内完成,以便在同一次就诊时向患者展示结果。
2. **增加处理器数量,处理更大的问题**:在相同的时间内处理更大规模的问题。比如,将气象预报的网格分辨率从 1 公里提高到 10 米,实现逐街道的预报。
当前的研究结果和结论主要针对第一种场景。在这种情况下,虽然当前的内存技术在应对未来的多核处理器时会面临压力,但仍然是可行的。然而,当进入第二种场景时,增大的问题规模可能无法适应现有的 DRAM 内存,这就需要更密集的内存技术。但这些更密集的内存技术无法提供多核所需的带宽,而且增大的工作集可能会使片上缓存溢出,导致对内存带宽的需求更高,即使使用 DRAM 技术也无法满足。
由此可以推测,下一代多核芯片在当前内存技术下可以作为当今处理器的更快版本使用,但会将这些内存推向极限。因此,下一代超级计算机系统需要研究新的内存架构,以提供比当前基于 DRAM 的设计更大的容量和带宽。
#### 桌面搜索索引生成器的并行化
开发多核计算机的多线程应用是一项具有挑战性的任务。虽然数值应用的并行化已经有了广泛的研究和实践,但对于大量非数值应用的并行化了解还比较少。桌面搜索是一种广泛应用的非数值应用,对其进行并行化研究具有重要意义。
##### 可并行化的部分
在桌面搜索的索引生成器中,有至少三个部分可以独立或组合进行并行化:
1. **文件名生成**:遍历目录层次结构,生成要索引的文件的名称。
2. **术语提取**:扫描文件并提取术语。
3. **索引更新**:将提取的术语添加到索引结构中。
在项目开始时,有许多问题需要解决,例如哪些部分是主要的且值得并行化,如何并行化文件名生成和索引更新等。这些问题都需要通过实际测量来回答。
##### 各部分的特点及处理方式
- **文件名生成**:这是一个 I/O 密集型过程,其性能受到多种因素的影响,如目录数量、文件数量、驱动器的传输速率和寻道时间以及操作系统的缓冲等。由于目录树的不平衡性,并行化目录遍历比较困难。而且,文件长度不均匀,如何平衡地将文件名分配给多个术语提取器也是一个问题。经过测试,发现并行化文件名生成并不必要,因此决定使用单线程生成完整的文件名集,然后再开始术语提取。
- **术语提取**:这是索引生成器中最 I/O 密集型的工作。不清楚在文件系统出现瓶颈之前可以使用多少个线程,而且最佳配置可能因平台的不同而有所差异。另外,如何处理术语的重复也是一个问题。经过分析,决定让每个术语提取器先构建一个无重复术语的列表,然后再将其添加到索引中,这样可以减少不必要的重复检查和缓冲、锁定操作。
- **索引更新**:主要问题是索引更新和术语提取的相对速度。可以让提取器线程使用
0
0
复制全文
相关推荐










