8.3设计逻辑

BACKWARD FORWARD


假设MPI实现满足上述要求,剖析系统的实现者很可能截获所有由用户程序产生的MPI调用。然后能在调用底层MPI实现之前,收集所要求的任何信息,以达到所需的效果。

8.3.1 多方面的剖析控制

存在一个明确的要求,使得用户代码能在运行时间动态的控制剖析。这正常地用于下面的目的

通过使用MPI_PCONTROL满足这些要求。

MPI_PCONTROL(level, …)

int MPI_Pcontrol(const int level, …)

MPI_PCONTROL(LEVEL)

MPI库自己没有利用这个例程,而且简单地立即返回用户代码。然而调用这个例程的存在允许用户明显的调用剖析包。

由于MPI没有控制剖析代码的实现,我们不能精确说明通过调用MPI-PCONTROL所提供的文法。这种模糊延伸到对于函数和它们的数据类型的参数数目上。

然而为了将一些用户代码的可移植性的级别提供给不同的剖析库,我们要求对于某级别值的含义如下。

我们也要求在调用MPI-INIT后,对于剖析缺省状态在正常的缺省级别上被使能。(例如,就象刚用参数1调用MPI-PCONTROL)。这允许用户链接剖析库,并且根本不用修改它们的源代码就能得到剖析输出。

在标准MPI库中作为无操作而提供MPI-PCONTROL,允许它们修改源代码以得到更详细地剖析信息, 但仍能准确的连接同样的代码,而不是标准的MPI库。


Copyright: NPACT BACKWARD FORWARD