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

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

目录

一、概述

1、按照读写定位分类

2、按照同步机制分类

3、按照参加读写操作的进程的限制分类

二、并行文件管理的基本操作

1、MPI_FILE_OPNE

2、MPI_FILE_CLOSE

3、MPI_FILE_DELETE

4、MPI_FILE_SET_SIZE

5、MPI_FILE_PREALLOCATE

6、MPI_FILE_GET_SIZE

7、MPI_FILE_GET_GROUP

8、MPI_FILE_GET_AMODE

9、MPI_FILE_SET_INFO

10、MPI_FILE_GET_INFO


        MPI-2与MPI-1另一个重要的区别是MPI-2支持并行I/O,因为许多应用中I/O是不可缺少的部分,所以MPI-2在大量实践基础上,提出一套并行I/O的标准接口。接下来我们将通过几节内容对MPI中并行I/O进行介绍,以实现对文件的各种并行操作和管理。

一、概述

1、按照读写定位分类

        MPI-2提供了丰富的并行文件I/O调用,根据读写定位方法的不同,可以分为三种:

        ①指定显式的偏移。这种调用没有文件指针的概念,每次读写操作都必须明确指定读写文件的位置;

        ②独立的文件指针。这种方式的文件操作不需要指定读写的位置,每一个进程都有一个相互独立的文件指针,读写的起始位置就是当前指针的位置,读写完成后文件指针自动移到下一个有效数据的位置。这种方式的文件操作,需要每一个进程都定义各自在文件中的“视口”,视口数据是文件连续或不连续的一部分,各个进程对视口的操作,就如同是对一个打开的独立的连续文件的操作一样;

        ③共享文件指针。这种情况下,每一个进程对文件的操作,都是从当前共享文件指针的位置开始,操作结束后共享文件指针自动转移到下一位置,共享指针位置的变化对所有进程都是可见的,各进程使用的是同一个文件指针,任何一个进程对文件的读写操作都会引起其它所有进程文件指针的改变。

2、按照同步机制分类

        根据同步机制的不同,对文件的操作又可以分为阻塞非阻塞两大类。

        ①阻塞调用。对文件的读写调用返回后,可以使用读入数据缓冲区中的数据或者文件已经被更新,但是对于非阻塞文件读写,如果非阻塞通信类似,读写调用的返回并不意味着读写调用的完成,需要调用相应的完成语句来保证读写操作的完成;

       ②非阻塞调用。进一步细分为单步法两步法,单步法的含义是指MPI只提供非阻塞文件读写的开始操作,不提供完成操作。对于两步法,MPI明确提供非阻塞文件读写的开始和完成语句,将对文件读写操作的调用分为明显的两步。对于单步法,其实也需要完成调用,只不过它使用的是和非阻塞通信一样的MPI_WAIT之类的完成方式,而不是特别的对文件操作的完成方式。只有对组读写,才可以使用两步法。

3、按照参加读写操作的进程的限制分类

        根据对参加读写操作的进程的限制,可以分为独立读写组读写。所谓独立读写,就是单个进程可以实现的读写操作,不需要其它进程的参与;对于组读写,则要求所有的进程都必须执行相同的读写调用,但是提供给该调用的读写参数可以不同。

        以上任意一种读写定位方式,任意一种同步机制,都有独立读写和组读写的调用。但是,在MPI-2中,对于非阻塞的组读写,只有两步法,不存在单步法调用。这是因为对于非阻塞的组调用,使用MPI提供的将读写明显分开的两步法,可以提供给MPI更多的优化机会,有利于对非阻塞组读写的高效实现。

        注意:在文件的各种组调用中,并没有给出进程组或通信域,该调用所适用的进程组是由调用使用的文件句柄决定的。因为文件打开时,需要给出通信域参数&#

http://www.lryc.cn/news/433713.html

相关文章:

  • 在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲
  • JVM系列(十) -垃圾收集器介绍
  • 项目实战 ---- 商用落地视频搜索系统(9)---UI与上层service的交互优化
  • 媒体服务器软件BUG说明及改进方案
  • Gitlab修改已push的历史commit信息
  • [Linux入门]---进程替换
  • Java语言程序设计基础篇_编程练习题*18.9 (以逆序输出一个字符串中的字符)
  • IT英语每日积累
  • QML学习二:Qt启用qml文件实时预览编辑,以及打印日志到控制台
  • JVM面试真题总结(四)
  • P1352 没有上司的舞会
  • JAVA智听未来一站式有声阅读平台听书系统小程序源码
  • 2024 第七届“巅峰极客”网络安全技能挑战赛初赛 Web方向 题解WirteUp
  • 论文阅读笔记《面向集群协同的两点相对定位技术》
  • RK3566/RK3568 Android 11 无操作自动隐藏导航栏、底部上拉显示导航栏
  • 四、Django模型
  • Telephony SS
  • 【软考】希尔排序算法分析
  • C++(一)----C++基础
  • C 语言面试题大汇总之华为面试题
  • Java:面向对象
  • 【区块链 + 基层治理】腾讯未来社区:区块链业主决策系统 | FISCO BCOS应用案例
  • 【Rust练习】13.数组
  • 直流负载技术介绍
  • FPGA低功耗设计
  • Python Opencv: 基于颜色提取的印章分割
  • Codeforces Round 970 (Div. 3)(ABCDEF)
  • springboot基于ssm+Jsp的人才招聘网站系统的设计与实现 jw2cs
  • 高质量共建“一带一路”!苏州金龙助力非洲交通驶向共同繁荣之旅
  • 嵌入式初学-C语言-数据结构--四