⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mpi71.htm

📁 该文件为mpich2的开发文档
💻 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>7 MPI环境管理</H2>
</TD>

<TD align=right><A HREF="mpi66.htm" tppabs="http://arch.cs.pku.edu.cn/parallelprogramming/mpispec/mpi66.htm"><IMG SRC="backward.gif" tppabs="http://arch.cs.pku.edu.cn/image/backward.gif" ALT="BACKWARD" HEIGHT=32 WIDTH=32></A>
<A HREF="mpi72.htm" tppabs="http://arch.cs.pku.edu.cn/parallelprogramming/mpispec/mpi72.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>本章讨论用于获取和在合适的地方设置相关于MPI实现及执行环境(例如错误处理)的不同参数的例程。这里描述了用于进入和离开MPI执行环境的过程。</P>

<H3>7.1 实现信息</H3>

<H3>7.1.1 环境查询</H3>

<P>当MPI初始化时,描述执行环境的属性集是与通信子MPI_COMM_WORLD相联系的。通过使用第五章所描述的函数,MPI_ATTR_GET可以查询这些属性值。删除这些属性或释放它们的关键字是错误的。</P>

<P>预定义的属性关键字字表包括</P>

<P>MPI_TAG_UB 用于表示值的上边界</P>

<P>MPI_HOST 如果存在,则是宿主进程的标识数,否则是MPI_PROC_NULL。 </P>

<P>MPI_IO 带有规则I/O设备(可能是myrank)的节点标识数。在同一通信子中的节点对于本参数可以返回不同的值。
</P>

<P>销售商可以增加特殊参数的实现。(例如节点号,实内存尺寸,虚拟内存尺寸等。)
</P>

<P>所需的参数值会在下面更详细地讨论:</P>

<P>标识值</P>

<P>标识值范围从0到MPI_TAG_UB所包含的返回值。这些值保证在一个MPI程序的执行过程中不变。另外,表示的上边界值必须至少为32767。一个MPI的实现可以自由地使MPI_TAG_UB值大于这个数;例如,值<IMG SRC="fig71.gif" tppabs="http://arch.cs.pku.edu.cn/parallelprogramming/mpispec/fig71.gif" HEIGHT=26 WIDTH=37 ALIGN=ABSCENTER>对于MPI_TAG_UB也是合法的值。
</P>

<P>宿主标识数</P>

<P>如果存在,在与通信子MPI_COMM_WORLD相联系的组中,对于MPI_HOST返回的值得到HOST进程的标识数。如果不存在宿主,则返回MPI_PROC_NULL。MPI并不说明一个进程是一个HOST意味着什么,也不要求HOST存在。
</P>

<P>IO标识数</P>

<P>由MPI_IO返回的值是一个处理器的标识数,这个处理器能提供标准语言I/O工具。例如Fortran,这是指支持所有的Fortran
I/O操作(如,OPEN,REWIND,WRITE)。对于C,这是指支持所有的ANSI I/O操作。(如,fopen,fprintf,lseek)</P>

<P>如果每一进程能提供标准语言I/O,那么必须返回值MPI_ANY_SOURCE。 如果没有进程能提供标准语言I/O,那么必须返回值MPI_ANY_SOURCE。所有进程不必返回同样的值。(标识数)</P>

<P>MPI_GET_PROCESSOR_NAME(name, resultlen)</P>

<UL>
<P>OUT name 实际节点的唯一的说明符(与虚拟节点相对)</P>

<P>OUT resultlen 在name中返回结果的长度(以可打印字符的形式)</P>
</UL>

<P>int MPI_Get_processor_name ( char *name, int *resultlen)</P>

<P>MPI_GET_PROCESSOR_NAME(NAME, RESULTLEN, IERROR)</P>

<UL>
<P>CHARACTER *(*) NAME</P>

<P>INTEGER RESULTLEN, IERROR</P>
</UL>

<P>此进程返回调用时调用所在处理器名。为了最大灵活性,名字可以是字符串。通过这个值,它必须表示专门的硬件片;可能的值包括“processor
9 in rack 4 of mpp.cs.org”和“231”(231是所运行的同构系统中的实际处理器号)。参数name必须代表至少是MPI_MAX_PROCESSOR_NAME字符长的存储空间,MPI_GET_PROCESSOR_NAME可以将这些字符写到name中。</P>

<P>实际上所写的字符数是在输出参数resultlen中返回。</P>

<UL>
<P>理由:这个函数允许MPI实现将进程迁移到当前的处理器。注意在MPI中不需要或定义进程迁移;MPI_GET_PROCESSOR_NAME简单地允许这种实现。(理由结束)</P>

<P>建议用户:用户必须提供至少MPI_MAX_PROCESSOR_NAME大小的空间来写处理器名——处理器名可以是这种长度。用户应该检查输出参数resultlen,以决定实际名字的长度。
(建议用户结束)</P>
</UL>

<P>
<HR WIDTH="100%"></P>

<TABLE WIDTH="100%" >
<TR>
<TD align=left>Copyright: NPACT </TD>

<TD align=right><A HREF="mpi66.htm" tppabs="http://arch.cs.pku.edu.cn/parallelprogramming/mpispec/mpi66.htm"><IMG SRC="backward.gif" tppabs="http://arch.cs.pku.edu.cn/image/backward.gif" ALT="BACKWARD" HEIGHT=32 WIDTH=32></A>
<A HREF="mpi72.htm" tppabs="http://arch.cs.pku.edu.cn/parallelprogramming/mpispec/mpi72.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 + -