📄 mpi843.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE> ICPSEP Content
</TITLE>
<META NAME="GENERATOR" CONTENT="Mozilla/3.0Gold (Win95; I) [Netscape]">
</HEAD>
<BODY BGCOLOR="#F0F8FF">
<TABLE WIDTH="100%" >
<TR>
<TD align=left>
<H2>8.4.3 复杂情况</H2>
</TD>
<TD align=right><A HREF="mpi842.htm" tppabs="http://arch.cs.pku.edu.cn/parallelprogramming/mpispec/mpi842.htm"><IMG SRC="backward.gif" tppabs="http://arch.cs.pku.edu.cn/image/backward.gif" ALT="BACKWARD" HEIGHT=32 WIDTH=32></A>
<A HREF="mpi85.htm" tppabs="http://arch.cs.pku.edu.cn/parallelprogramming/mpispec/mpi85.htm"><IMG SRC="forward.gif" tppabs="http://arch.cs.pku.edu.cn/image/forward.gif" ALT="FORWARD" HEIGHT=32 WIDTH=32></A></TD>
</TR>
</TABLE>
<P>
<HR WIDTH="100%"></P>
<P>多个计数</P>
<P>由于部分MPI库可以用更基本的MPI函数来实现,(例如通过使用点对点通信来实现可移植的集合操作)那么蕴含着从一个MPI函数内部调用的剖析函数,而这个函数又从一个剖析函数中调用。这将导致花费在内部例程的时间的“双重计数”。由于这种效果在某些情况下(例如它允许人们回答问题“当从集合函数调用时在点对点例程中花费多少时间”)实际上是有用的,那么我们不决定对想要克服这个情况的MPI库的作者增加任何限制。所以剖析库的作者应该关注这个问题,并且自己对它进行屏障。在单一线索的世界,通过在剖析代码中使用一个静态变量来很容易地获取它,这个剖析代码记忆你是否已在剖析例程内部。在多线索环境中它变得更复杂。(就象所记录的时间一样的含义)</P>
<P>链接特性</P>
<P>传统上Unix链接器操作一遍:在扫描库的时候,如果需要,这样的效果是仅包含在映象中库中的函数。
当与微弱符号或同样函数的多次定义结合时,这将引起奇异效应(不期望的)。
</P>
<P>例如,考虑一个MPI的实现,其中在C实现上使用打包函数来获得Fortran约定。然后剖析函数的作者假定有理由仅提供C约定的剖析函数,因为Fortran将最终调用这些而且假定打包的开销很小。然而,如果打包函数不在剖析库中,那么当剖析函数库被调用时没有剖析入口点不被定义。因此在映象中不包含剖析代码。当扫描标准MPI函数库时,Fortran打包函数被求解,并且也将收入到基本的MPI函数版本中。整体的影响是代码将成功的连接,但不被剖析。
</P>
<P>为了克服这个,我们必须确保Fortran打包函数包含在库的剖析版本中。通过要求这些,与基本MPI库的其它部分项分离,我们保证这是可能的。
这允许它们在基本库之外,且在剖析库中。 </P>
<P>
<HR WIDTH="100%"></P>
<TABLE WIDTH="100%" >
<TR>
<TD align=left>Copyright: NPACT </TD>
<TD align=right><A HREF="mpi842.htm" tppabs="http://arch.cs.pku.edu.cn/parallelprogramming/mpispec/mpi842.htm"><IMG SRC="backward.gif" tppabs="http://arch.cs.pku.edu.cn/image/backward.gif" ALT="BACKWARD" HEIGHT=32 WIDTH=32></A>
<A HREF="mpi85.htm" tppabs="http://arch.cs.pku.edu.cn/parallelprogramming/mpispec/mpi85.htm"><IMG SRC="forward.gif" tppabs="http://arch.cs.pku.edu.cn/image/forward.gif" ALT="FORWARD" HEIGHT=32 WIDTH=32></A></TD>
</TR>
</TABLE>
</BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -