《PerSyst监控工具:基于分位数的高性能计算机性能数据传输系统》
立即解锁
发布时间: 2025-10-21 00:26:57 阅读量: 20 订阅数: 56 AIGC 

面向未来的并行计算研究
### 《PerSyst监控工具:基于分位数的高性能计算机性能数据传输系统》
#### 1. 引言
为了让计算机尽可能高效地运行,需要在应用程序层面进行系统级监控。低效的应用程序会阻碍超级计算机产生更多的科学成果,因此提前检测超级计算机中运行的低效应用程序,有助于筛选出需要优化的应用程序,这就使得获取超级计算机的性能数据变得十分必要。
不过,并非所有性能数据都对性能分析有必要,每个应用程序保留一个描述性指标即可。PerSyst监控工具使用固定数量的分位数进行性能监控,分位数已被证明足以保留用于瓶颈检测的性能数据质量。该工具还具备系统级测量功能,因此需要对整个机器的测量进行同步。
它通过两个主要思路来实现系统级同步和从超级计算机中提取数据:一是使用树状代理层次结构,通过优化的路由提取数据;二是使用数据的统计聚合。性能数据与资源管理器提供的作业信息相关联,作业信息和拓扑结构决定了如何从传输系统中最优地提取数据。
通过在应用程序层面使用固定数量的分位数进行聚合来减少数据量。根据应用程序使用的核心数量计算分位数,从而保留描述性特征。由于分位数数量固定,无需存储数据范围或直方图区间,形成了一个与数据无关的数据库。
根据作业大小,可以部分且高效地使用树状拓扑结构。通过所有作业的分布以及未使用核心的监控数据,可以实现系统级监控,并在系统级进行监控间隔的聚合。作业被分配给收集性能数据的代理,以确保这些代理之间的分布尽可能平衡,并考虑到与整个作业的拓扑最近距离。如果作业信息集中收集,则可以精确计算累积频率。
无法由一个收集器处理的作业会被分配到代理树中最近的收集器,这些作业需要根据每个收集代理获得的分位数数据进行分位数估计。计算出的分位数子集会在拓扑网络中向上推送。该监控系统已部署在多种不同架构和核心数量的超级计算机系统中。
#### 2. 相关工作
有其他具有树状层次结构的工具用于提取和/或存储数据:
- **Multicast Reduction Network工具(MRNet)**:是一个用于并行应用程序的工具,可实现高吞吐量通信。它使用树状拓扑的软件层次结构,即基于树的覆盖网络,以扩展到数十万个核心。组播从前端向下通过树进行,直到命令到达树拓扑的叶子节点。数据传输采用自下而上的逻辑,即从树的叶子节点到前端。可以通过可定制的过滤器实现数据聚合,但这些过滤器只能对分段连续的聚合函数进行数据聚合。
- **NWPerf工具**:使用分层结构提取性能数据,但不进行统计聚合,可提供高性能计算机性能计数器的系统级监控。
- **Periscope**:是一个可扩展的工具,用于分析单个应用程序的性能。它支持基于硬件计数器以及MPI和OpenMP的分布式在线搜索性能指标,使用代理层次结构提取信息并向树层次结构的叶子节点发送命令。
- **分布式分层存储**:也使用树状结构查询性能数据。
PerSyst监控工具是一个分布式软件的覆盖层,具有树状代理层次结构。与其他现有工具一样,使用树状结构克服了许多可扩展性问题,但数据收集和提取方式不同。它利用运行作业的拓扑结构优化大型集群中性能数据的提取,将性能数据存储在尽可能靠近测量源的位置,而不是通过整个代理树发送信息。与其他分层工具的不同之处在于,作业的收集代理将有一个共同且较小的子树,其根节点将最终处理该作业,而不是前端,从而避免使用整个树拓扑。
#### 3. 传输系统
PerSyst监控工具包含三种类型的代理:
| 代理类型 | 主要功能 |
| ---- | ---- |
| 同步代理(SyncAgent) | 同步测量 |
| 收集代理(Collector Agent) | 收集性能数据 |
| PerSyst代理 | 执行测量 |
每个代理都有一个核心框架,用于实现通信和基本功能。该框架提供接口,允许使用临时委托,这些委托与批处理调度程序和系统测量接口进行交互,确保了工具的可移植性。
PerSyst代理在前端(根节点的SyncAgent)的同步命令下进行测量,使用TCP/IP通信协议。SyncAgent只能进行分位数估计,而收集代理层则进行分位数的精确计算。如果需要在SyncAgent处收集性能数据,涉及的收集代理和SyncAgent需遵循原始树配置的父子关系。PerSyst代理则将性能数据发送到代理树中的优化路由。
由于分位数子集的聚合无法通过定义直接实现,只能进行估计,因此在层次树的不同级别需要两种类型的聚合。为了尽可能避免估计,对软件组件之间的聚合函数进行了调整。与其他分层工具一样,通过代理的树状结构发送命令实现了代理的自上而下控制,但PerSyst代理的响应不一定指向其收集器父节点。
```mermaid
graph TD;
A[SyncAgent] --> B[Collector Agent];
B --> C[PerSyst Agent];
C --> B;
B --> A;
```
#### 4. 分位数的估计
为了实际应用,后续将使用百分位数的定义和含义,其他分位数(如五分位数、四分位数或十分位数)可根据定义和用法进行调整。
标准定义中,第k个百分位数Pk是x范围内的一个值,例如xk,它将数据集分为两组,百分位数指定的
0
0
复制全文


