入门并行编程MPI(五)

检查一个交易所的执行情况

  • 当几个进程同时交换消息时,可以使用同时适用于几个交换的检查。
  • 这种检查有三种类型。
    • 检查所有交换的完成情况。
    • 检查多个交易所之间任何交易所的终止情况。
    • 在几个交换中检查一个特定交换的完成情况。
  • 每种支票都有两个品种。
    • "待定"。
    • "检查"。

阻止验证操作

  • MPI_Wait子程序阻止进程的运行,直到消息完成。
  • int MPI_Wait(MPI_Request *request, MPI_Status *status)
  • MPI_Wait(request, status, ierr)
  • 输入参数请求是交换操作的标识符,输出参数状态。
  • 在调用MPI_Ibsend后成功执行MPI_Wait意味着可以再次使用发送缓冲区,即正在传输的数据被发送或复制到调用MPI_Buffer_attach时分配的缓冲区。
  • 在这一点上,转让不能再被取消。如果没有登记相应的接收,就不能释放缓冲区。在这种情况下,可以使用MPI_Cancel子程序来释放分配给通信子系统的内存。

检查所有交流的完成情况

  • 一个子程序被用来检查所有交换的完成情况。
  • int MPI_Waitall(int count, MPI_Request requests[], MPI_Status statuses[] )
  • MPI_Waitall(count, requests, statuses, ierr)
  • 当这个子程序被调用时,进程的执行被阻止,直到所有与请求数组中的活动请求相关的交换操作被执行。这些操作的状态被返回。交换状态包含在statuses数组中。count - 交换请求的数量(请求和状态数组的大小)
  • 作为MPI_Waitall子程序的执行结果,由非阻塞交换操作产生的请求被取消,并且相应的数组元素被分配MPI_REQUEST_NULL值。
  • 如果一个或多个交换操作失败,MPI_Waitall子程序返回错误代码MPI_ERR_IN_STATUS,并将相应操作的错误代码值分配给状态错误字段。
  • 如果操作被成功执行,该字段被赋予MPI_SUCCESS值,如果没有,但也没有错误,则赋予MPI_ERR_PENDING值。这对应于存在等待处理的交换操作请求。
     

雅可比的算法(循序渐进的版本)

/* Jacobi program */
#include <stdio.h>
#define L 1000
#define ITMAX 100
int i,j,it;
double A[L][L];
double B[L][L];
int main(int an, char **as)
{
        printf("JAC STARTED\n");
        for(i=0;i<=L-1;i++)
                for(j=0;j<=L-1;j++)
                {
                        A[i][j]=0.;
                        B[i][j]=1.+i+j;
                }

 /******  iteration loop  *************************/
        for(it=1; it<ITMAX;it++)
        {
                for(i=1;i<=L-2;i++)
                        for(j=1;j<=L-2;j++)
                                A[i][j] = B[i][j];
                for(i=1;i<=L-2;i++)
                        for(j=1;j<=L-2;j++)
  
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值