MPI文件读写(1)

  1. 使用MPI的文件读写函数时,文件需为二进制文件,可以使用代码自己进行格式转换
    示例代码:
//将存储三个数的文本文件转换为二进制文件
int r,c,m;	
FILE *fp = fopen(filein, "r");
fscanf(fp, "%d", &r);
fscanf(fp, "%d", &c);
fscanf(fp, "%d", &m);
fclose(fp);

fp = fopen(fileout, "wb");
fwrite(&r, sizeof(int), 1, fp);
fwrite(&c, sizeof(int), 1, fp);
fwrite(&m, sizeof(int), 1, fp);
fclose(fp);
  1. MPI_File_read_at_allMPI_File_read_at_all
int MPIAPI MPI_File_read_at_all(
        MPI_File     file,                   //文件指针
        MPI_Offset   offset,                 //偏移量
  _Out_ void         *buf,                   //读出的缓冲区地址
        int          count,                  //读出的个数
        MPI_Datatype datatype,               //读的数据类型
  _Out_ MPI_Status   *status        
);
/*使用示例
MPI_File fh; 
MPI_Status status;
MPI_File_read_at_all(fh, offset, array, count, MPI_INT, &status);
*/
//此函数使用时所有进程都同时调用,当某一进程执行完毕后,会阻塞直到所有进程都执行完毕为止
//区别于MPI_File_read_at,此函数不用所有进程都同时调用
//相关的使用还有MPI_File_write_at_all,  MPI_File_write_at
  1. MPI_File_open
int MPIAPI MPI_File_open(
        MPI_Comm comm,      //集合通信子
  _In_  char     *filename, //打开的文件名
        int      amode,     //打开模式,包括读写等
        MPI_Info info,      
  _Out_ MPI_File *newfile   //文件指针
);
//本函数也是组函数,只要一个进程想调用此函数,就需要所有进程都使用了这个函数后程序才能继续运行
/*使用示例
MPI_File_open(MPI_COMM_WORLD, "in", MPI_MODE_RDONLY, MPI_INFO_NULL, &fh);
MPI_File_open(MPI_COMM_WORLD, "out", MPI_MODE_CREATE | MPI_MODE_WRONLY, MPI_INFO_NULL, &fh);
*/
//一般而言,输入输出函数为二进制文件,需要自己进行转换
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值