当前位置: 首页 > news >正文

并行程序设计基础——并行I/O(4)

目录

一、共享文件读写

1、共享文件读写

1.1 MPI_FILE_SEEK_SHARED

1.2 MPI_FILE_GET_POSITION_SHARED

2、阻塞共享文件读写

2.1 MPI_FILE_READ_SHARED

2.2 MPI_FILE_WRITE_SHARED

2.3 MPI_FILE_READ_ORDERED

2.4 MPI_FILE_WRITE_ORDERED

3、非阻塞共享文件读写

3.1 MPI_FILE_IREAD_SHARED

3.2 MPI_FILE_IWRITE_SHARED

4、两步非阻塞共享文件组读写

4.1 MPI_FILE_READ_ORDERED_BEGIN

4.2 MPI_FILE_READ_ORDERED_END

4.3 MPI_FILE_WRITE_ORDERED_BEGIN

4.4 MPI_FILE_WRITE_ORDERED_END

4.5 MPI_FILE_GET_TYPE_EXTENT

4.6 MPI_REGISTER_DATAREP

4.7 MPI_FILE_SET_ATOMICITY

4.8 MPI_FILE_GET_ATOMICITY

4.9 MPI_FILE_SYNC


        本节继续对并行I/O部分的剩余内容进行介绍。

一、共享文件读写

        对于独立视口文件的读写,每一个进程都拥有一个独立的视口文件指针,各个进程对自己视口文件的读写操作只会改变本视口文件指针的位置,对其它视口的文件指针没有任何影响,就如同是在对两个互不相干的文件进行操作。

        但是对于共享文件的读写,该共享文件只有一个文件指针,所有的进程都共享它,即任何一个进程对该指针的修改都会对其它的进程产生影响。

1、共享文件读写

1.1 MPI_FILE_SEEK_SHARED

        MPI_FILE_SEEK_SHARED的含义与MPI_FILE_SEEK类似,只不过前者移动的是共享文件指针,该调用执行完成后所有的进程都会看到指针位置的变化,而MPI_FILE_SEEK只移动当前进程的指针。

MPI_FILE_SEEK_SHARED(fh, offset, whence)
INOUT    fh        共享文件句柄
IN       offset    偏移的相对位置
IN       whence    偏移相对的绝对位置//c语言的说明
int MPI_File_seek_shared(MPI_File fh, MPI_Offset offset, int whence)
//Fortran语言的说明
MPI_FILE_SEEK_SHARED(FH, OFFSET, WHENCE, IERROR)
INTEGER  FH, WHENCE, IERROR
INTEGER  (KIND=MPI_OFFSET_KIND)  OFFSET

1.2 MPI_FILE_GET_POSITION_SHARED

        MPI_FILE_GET_POSITION_SHARED和MPI_FILE_GET_POSITION类似,它返回共享文件指针相对起始位置的偏移。

MPI_FILE_GET_POSITION_SHARED(fh, offset)
IN       fh        共享文件句柄
OUT      offset    偏移的相对位置//c语言的说明
int MPI_File_get_position_shared(MPI_File fh, MPI_Offset *offset)
//Fortran语言的说明
MPI_FILE_GET_POSITION_SHARED(FH, OFFSET, WHENCE, IERROR)
INTEGER  FH, IERROR
INTEGER  (KIND=MPI_OFFSET_KIND)  OFFSET

2、阻塞共享文件读写

2.1 MPI_FILE_READ_SHARED

        MPI_FILE_READ_SHARED从句柄fh对应的共享文件中读取count个数据类型为datatype的数据,放到buf中,返回的状态是status。这一调用使用的文件指针是共享指针,即该读取操作完成后,共享指针自动移到下一个数据单元的位置,其它进程再对该共享文件进行操作时,文件指针的位置是本调用完成后指针移动过的位置。

MPI_FILE_READ_SHARED(fh, buf, count, datatype, status)
INOUT    fh        共享文件句柄
OUT      buf       读取数据存放的缓冲区
IN       count     读取数据的个数
IN       datatype  读取数据的数据类型
OUT      status    返回的状态信息//c语言的说明
int MPI_File_read_shared(MPI_File fh, void *buf, int count, MPI_Datatype datatype, MPI_Status *status)
//Fortran语言的说明
MPI_FILE_READ_SHARED(FH, BUF, COUNT, DATATYPE, STATUS, IERROR)
<type>  BUF(*)
INTEGER  FH, COUNT, DATATYPE, STATUS(MPI_STATUS_SIZE), IERROR

2.2 MPI_FILE_WRITE_SHARED

        MPI_FILE_WRITE_SHARED向句柄fh对应的共享文件中写入数据,数据存放在buf中,共count个,数据类型为datatype,返回的状态信息是status。MPI_FILE_WRITE_SHARED调用和MPI_FILE_READ_SHARED相同,写入位置是共享文件指针对应的位置,该写入操作完成后,共享文件指针自动指向下一个数据单元的位置,指针的移动在所有的进程中都会体现出来,本写入操作完成后,其它进程对共享文件的操作是在本操作完成后指针所在的位置开始的。

MPI_FILE_WRITE_SHARED(fh, buf, count, datatype, status)
INOUT    fh        共享文件句柄
OUT      buf       写入数据存放的缓冲区
IN       count     写入数据的个数
IN       datatype  写入数据的数据类型
OUT      status    返回的状态信息//c语言的说明
int MPI_File_write_shared(MPI_File fh, void *buf, int count, MPI_Datatype datatype, MPI_Status *status)
//Fortran语言的说明
MPI_FILE_WRITE_SHARED(FH

http://www.mrgr.cn/news/26722.html

相关文章:

  • Redhat 7,8系(复刻系列) 一键部署Oracle21-xe rpm
  • Android 用线程池实现一个简单的任务队列(Kotlin)
  • element实现动态路由+面包屑
  • python版本dikstra堆优化
  • 【C++】c++的继承
  • 【数据仓库】数据仓库常见的数据模型——维度模型
  • SAP B1 Web Client MS Teams App集成连载二:安装Install/升级Upgrade/卸载Uninstall
  • Mysql | 知识 | 理解是怎么加锁的
  • SpringBoot
  • 我知道,不少人会有质疑,为什么当地的医生,会想不到是这种病?
  • 详细步骤指导:怎么轻松设置代理IP和端口
  • Echarts中文版 2D世界地图
  • POI生成Excel文件增加数据验证(下拉序列)
  • GEE Python:采用比利时的VITO(100m)分辨率数据的NDVI 时序计算
  • k8s常用指令续:
  • 高可用性设计在非结构化数据中台的应用研究
  • Mysql 的查询过慢如何排查以及优化
  • 利用apache-pdfbox库修改pdf文件模板,进行信息替换
  • LIMS:全方位管理实验室数据、仪器和工作流程
  • Java学习路线