📄 mpi22.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE> ICPSEP Content
</TITLE>
<META NAME="GENERATOR" CONTENT="Mozilla/3.0Gold (X11; I; SunOS 5.4 sun4m) [Netscape]">
</HEAD>
<BODY BGCOLOR="#F0F8FF">
<TABLE WIDTH="100%" >
<TR>
<TD align=left><FONT SIZE=+2>2.2 过程说明 </FONT></TD>
<TD align=right><A HREF="mpi2.htm#mpi21.htm" tppabs="http://arch.cs.pku.edu.cn/parallelprogramming/mpispec/mpi2.htm#mpi21.htm"><IMG SRC="backward.gif" tppabs="http://arch.cs.pku.edu.cn/image/backward.gif" ALT="BACKWARD" HEIGHT=32 WIDTH=32></A><A HREF="mpi23.htm" tppabs="http://arch.cs.pku.edu.cn/parallelprogramming/mpispec/mpi23.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 的函数。过程调用的参数有 IN (输入)、OUT (输出)
或 INOUT (输入/输出)。含义如下: </P>
<UL>
<LI>调用时使用的但没有修改的参数记为IN, </LI>
<LI>调用时可以修改的参数记为OUT, </LI>
<LI>调用时使用的并可修改的参数记为INOUT。 </LI>
</UL>
<P>有一种特殊情况--如果一个参数是隐含对象(这些术语在<A HREF="mpi24.htm#mpi241.htm" tppabs="http://arch.cs.pku.edu.cn/parallelprogramming/mpispec/mpi24.htm#mpi241.htm">2.4.1</A>
中定义)的一个句柄,并且这个对象被过程调用修改,那么这个参数记为OUT。即使句柄本身没被修改,仍记为OUT--我们用OUT属性表示句柄所引用的部分被修改。</P>
<P>MPI 的定义在最大范围内避免 INOUT 参数的使用, 因为这些使用易于出错,特别对标量参数。
</P>
<P>MPI 函数的一般情况是一个参数被一些进程用作 IN , 被另些进程用作 OUT。这样的参数语法上记为
INOUT , 虽然在语义上它不是同一个调用的输入和输出,但它仍记为 INOUT 。 </P>
<P>当进程仅需要一个参数值时,另种情况将出现。在进程中一个参数不重要时,可传送任意值作为参数。</P>
<P>如果一个参数没有被指定为 OUT 或 INOUT , 那么它不能和任何其他参数混合一起传送给一个
MPI 函数。下面是 C 语言中参数混合的一个例子。我们如下定义一个 C 过程, </P>
<PRE>void copyIntBuffer( int *pin, int *pout, int len )
{ int i;
for (i=0; i<len; ++i) *pout++ = *pin++;
}</PRE>
<PRE>
</PRE>
<P>那么在下面代码段中, 对这个过程的调用混合了参数。</P>
<P>int a[10];</P>
<P>copyIntBuffer( a, a+3, 7);</P>
<P>虽然 C 语言中允许这样,但除非特别说明,MPI过程禁止这样使用。注意Fortran
中禁止参数混合。 </P>
<P>所有 MPI 函数首先是不依赖任何语言而被指定, 然后给出这个函数的标准 C版本,
最后给出这个函数的 Fortran 77 版本。
<HR WIDTH="100%"></P>
<TABLE WIDTH="100%" >
<TR>
<TD align=left>Copyright: NPACT </TD>
<TD align=right><A HREF="mpi2.htm#mpi21.htm" tppabs="http://arch.cs.pku.edu.cn/parallelprogramming/mpispec/mpi2.htm#mpi21.htm"><IMG SRC="backward.gif" tppabs="http://arch.cs.pku.edu.cn/image/backward.gif" ALT="BACKWARD" HEIGHT=32 WIDTH=32></A><A HREF="mpi23.htm" tppabs="http://arch.cs.pku.edu.cn/parallelprogramming/mpispec/mpi23.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 + -