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

📄 mpi36.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 (X11; I; SunOS 5.4 sun4m) [Netscape]">
</HEAD>
<BODY BGCOLOR="#F0F8FF">

<TABLE WIDTH="100%" >
<TR>
<TD align=left><FONT SIZE=+2>3.6 缓存分配和使用方法</FONT></TD>

<TD align=right><A HREF="mpi35.htm" tppabs="http://arch.cs.pku.edu.cn/parallelprogramming/mpispec/mpi35.htm"><IMG SRC="backward.gif" tppabs="http://arch.cs.pku.edu.cn/image/backward.gif" ALT="BACKWARD" HEIGHT=32 WIDTH=32></A><A HREF="mpi361.htm" tppabs="http://arch.cs.pku.edu.cn/parallelprogramming/mpispec/mpi361.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_BUFFER_ATTACH( buffer, size) <BR>
 IN buffer 初始缓存地址(选择类型) <BR>
 IN size 按字节计数缓存尺寸(整型) </P>

<P>int MPI_Buffer_attach( void* buffer, int size) </P>

<P>MPI_BUFFER_ATTACH( BUFFER, SIZE, IERROR) <BR>
 &lt;type&gt;BUFFERR(*) <BR>
 INTEGER SIZE, IERROR </P>

<P>给MPI在用户存储空间提供一个缓存, 用于缓存正出发的消息。这个缓存只能用于以缓存模式发送的消息。同一时间一个进程只能联结一个缓存。
</P>

<P>MPI_BUFFER_DETACH( buffer, size) <BR>
 OUT buffer 初始缓存地址(选择类型) <BR>
 OUT size 安字节计数缓存尺寸(整型) </P>

<P>int MPI_Buffer_detach( void** buffer, int* size) </P>

<P>MPI_BUFFER_DETACH( BUFFER, SIZE, IERROR) <BR>
 &lt;type&gt;BUFFER(*) <BR>
 INTEGER SIZE, IERROR </P>

<P>解出与MPI当前联结的缓存。这个操作将阻塞,一直到当前在缓存中全部消息已被传送完。在这个函数返回时,用户可以再使用或解出分配这个缓存所占用的空间。
  </P>

<P>这节的语句描述了MPI缓存模式发送的行为。当没有缓存被联结时,MPI以零尺寸缓存与进程联结。
  </P>

<P>在指定的缓存空间, 使用一个环型的连续空间分配策略, MPI必须为正出发的消息提供多缓存,
正出发的消息数据被发送进程缓存。下面我们概述一个定义这个策的模型实现。MPI可以提供更多的缓存,
可使用比下面描述的更好的缓存分配算法。另一方面,当下面描述的简单的缓存分配器用完空间时,MPI可发错误信号。特别是,如果与进程没有显式联结的缓存,那么任何缓存型发送可引起一个错误。  </P>

<P>MPI不给标准模式发送的缓存提供查寻或控制机制。生产商将给他们的实现提供这样的信息。
  </P>

<UL>
<P><I>基本原理</I>. 缓存通信有一个广泛的可能实现的范围: 缓存可以在发送者完成,在接收者完成或两者都完成;缓存能被指定给一对发送-接收,或由所有通信共享;可以实存或虚存实现缓存;它可以用指定的存储器或由其他进程共享的存储器;缓存空间可以被静态地分配或被动态地修改;等等。给和所有这些选择兼容的缓存提供查寻和控制的可移植机制,并提供有意义的信息,这似乎是不容易的。(<I>基本原理结束</I>)。</P>
</UL>

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

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

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