高性能计算中的内存检查与性能测量技术
1. MPI 并行应用的高级内存检查框架
1.1 非阻塞通信示例
在 MPI 并行应用中,非阻塞通信是常见的操作。例如,在图 6.3 所示的非阻塞通信示例中,涉及到两个进程(进程 1 和进程 2),每个进程都有用户代码和 MPI 库。进程会执行诸如 MPI_Irecv 、 MPI_Isend 等操作,同时还会进行内存操作的监控和缓冲区使用情况的检查。在通信完成后,还会进行后通信检查,如 MPI_Wait 和 MPI_Finalize 操作。
1.2 缓冲区访问信息存储
图 6.4 展示了用于存储通信数据访问信息的缓冲区。通过 V - Bit 以及读写回调机制,对缓冲区的读写操作进行监控。例如在 MPI_Recv 操作中,会涉及到对缓冲区的读取和写入操作,如:
MPI_Recv(buf, len, ...)
{
data = buf[0];
buf[1] = 42;
data += buf[1];
buf[1] = 43;
while (...) {
}
如果在通信数据被覆盖或者未正确访问时,系统会触发相应的警告。例如,当重新进入 MPI_Recv 时,如果发现有未使用的数据(即通过网络传输但在接收端未被正确访问的数据),系统会发出警告。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



