并行程序设计基础——并行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更多的优化机会,有利于对非阻塞组读写的高效实现。
注意:在文件的各种组调用中,并没有给出进程组或通信域,该调用所适用的进程组是由调用使用的文件句柄决定的。因为文件打开时,需要给出通信域参数&#
相关文章:
并行程序设计基础——并行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_…...
在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲
1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance this;this.data []…...
JVM系列(十) -垃圾收集器介绍
一、摘要 在之前的几篇文章中,我们介绍了 JVM 内部布局、对象的创建过程、运行期的相关优化手段以及垃圾对象的回收算法等相关知识。 今天通过这篇文章,结合之前的知识,我们一起来了解一下 JVM 中的垃圾收集器。 二、垃圾收集器 如果说收集算法是内存回收的方法论,那么…...
项目实战 ---- 商用落地视频搜索系统(9)---UI与上层service的交互优化
目录 背景 第一次优化(UI优化) 优化前UI 优化方向与问题 代码 修改效果 第二次优化(整合优化) 优化方向与问题 代码 优化效果 第三次优化(js层优化) 优化方向与问题 代码 优化效果 第四次优化(UI逻辑再优化) 优化方向与问题 代码 优化效果 第五次优化(纯U…...
媒体服务器软件BUG说明及改进方案
媒体服务器软件BUG说明及改进方案 一、BUG描述二、问题分析三、改进方案四、实施计划五、预期效果六、总结一、BUG描述 在当前版本的媒体服务器中,存在一个关于静音媒体流处理的问题。具体表现为:当主叫连续发送静音帧到媒体服务器时,媒体服务器并未将这些静音帧转发给被叫…...
Gitlab修改已push的历史commit信息
文章目录 一、需求 二、思路 三、修改过程 四、注意 五、参考链接 一、需求 项目组结合使用JIRA和Gitlab进行项目开发。其中,JIRA用于管理开发任务(每个任务都存在一个JIRA_ID),Gitlab用于进行代码版本管理。每次代码提交时,commit mes…...
[Linux入门]---进程替换
文章目录 1.进程替换原理2.进程替换函数2.1execl函数2.2execlp函数2.3execv函数2.4execvp函数2.5execle函数2.6execve函数2.7跨语言调用程序 3.总结 1.进程替换原理 一个程序替换的函数: #include <unistd.h> int execl(const char *path, const char *arg,…...
Java语言程序设计基础篇_编程练习题*18.9 (以逆序输出一个字符串中的字符)
目录 题目:*18.9 (以逆序输出一个字符串中的字符) 代码示例 输出结果 题目:*18.9 (以逆序输出一个字符串中的字符) 编写一个递归方法,使用下面的方法头在控制台上以逆序显示一个字符串: public static void reverseDisplay(String value…...
IT英语每日积累
IT词汇积累 前言今日学习1. be synonymous with2.handle something3.modify4.optionally5. generate6,sandby7.interrupt8.emphasize9.croodinate10.splitting and merging11.shard12.per13.consecutively14.synchronization15。unbounded 前言 这里给出的是本人在生活和学习中…...
QML学习二:Qt启用qml文件实时预览编辑,以及打印日志到控制台
开发环境:Qt 6.5.3 LTS 1、Qt 6.5.3 LTS 2、Pyside6 3、Python 3.11.4 效果如下,右侧更改的代码可以实时反映到左侧的设计器中。 Qt启用qml文件实时预览编辑,以及打印日志到控制台 一、打开Qt Designer插件二、qml和Python文件打印输出到控制台总结Qt Creator版本如下:…...
JVM面试真题总结(四)
文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 列举常用的垃圾收集器,并简要说明其特点 Serial收集器…...
P1352 没有上司的舞会
~~~~~ P1352 没有上司的舞会 ~~~~~ 总题单链接 思路 ~~~~~ 设 d p [ u ] [ [ 0 / 1 ] dp[u][[0/1] dp[u][[0/1] 表示第 u u u 个点 [ 不选 / 选 ] [不选/选] [不选/选] 的最大值。 ~~~~~ d p [ u ] [ 1 ] dp[u][1] dp[u][1] 只能用 d p [ v ] [ 0 ] dp[v][0] dp[v][0] 来更…...
JAVA智听未来一站式有声阅读平台听书系统小程序源码
智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知…...
2024 第七届“巅峰极客”网络安全技能挑战赛初赛 Web方向 题解WirteUp
EncirclingGame 题目描述:A simple game, enjoy it and get the flag when you complete it. 开题,前端小游戏,红点出不去就行 直接玩通关了 看看如何不玩也能拿到flag,flag存储在后端php文件内,前端找不到。 看一下…...
论文阅读笔记《面向集群协同的两点相对定位技术》
邓廷祥,任鹏,程甲,等.面向集群协同的两点相对定位技术[J].兵工学报,2023,44(S2):22-34. 摘要 无人机精确定位的三个难题: GNSS难以提供稳定准确的位置信息、难以部署辅助锚点、传统的相对定位方法大多存在节点数量限制。 本文针对上述问题,提出了一种GN…...
RK3566/RK3568 Android 11 无操作自动隐藏导航栏、底部上拉显示导航栏
概述 总目录:RK3566/RK3568 Android 11 定制大全 在系统服务中增加无操作自动隐藏导航栏方法,在上层app动态调用无操作自动隐藏导航栏方法,系统会在5秒无操作后自动隐藏导航栏,隐藏导航栏后从底部上拉可显示导航栏,设备关机和重启后也能继续生效。 创建全局变量 1.定义…...
四、Django模型
Model Model (模型) 简而言之即数据模型,是一个Django应用的核心。模型不是数据本身(比如数据表里的数据), 而是抽象的描述数据的构成和逻辑关系。 每个Django的模型(model)实际上是个类,继承了models.Model。每个Model应该包括属性(字段)&…...
Telephony SS
1、补充业务概述 SS是补充服务的缩写,它包含呼叫转移、呼叫限制、呼叫等待、线路识别(CLIR)等。在IMS(IP多媒体子系统)网络中,它使用XCAP(XML配置访问协议)协议通过UT接口操纵SS数据。该协议允许授权用户在连接到IMS或连接到非IMS网络(例如公共互联网)时操纵与服务相…...
【软考】希尔排序算法分析
目录 1. c代码2. 运行截图3. 运行解析 1. c代码 #include <stdio.h> #include <stdlib.h> void shellSort(int data[], int n){// 划分的数组,例如8个数则为[4, 2, 1]int *delta;int k;// i控制delta的轮次int i;// 临时变量,换值int temp;…...
C++(一)----C++基础
1.C的发展史 C语言诞生后,很快普及使用,但是随着编程规模增大且越来越复杂,并且需要高度的抽象和建模时,C语言的诸多短板便表现了出来,为了解决软件危机,上世纪八十年代,计算机界提出了oop&…...
Unity编辑器AI增强:本地化轻量模型驱动的开发效率升级
1. 不是“接管”,而是编辑器能力的自然延伸:从Unity传统工作流说起你有没有过这样的时刻:在Unity里改完一段C#脚本,保存,切回编辑器,等几秒——然后发现Scene视图没刷新;再点一下Play࿰…...
Necesse 多人沙盒生存 RPG 服务器搭建教程
Necesse 多人沙盒生存 RPG 服务器搭建教程 Necesse 是一款融合了《泰拉瑞亚》式俯视角探索与《边缘世界》式基地管理的沙盒生存 RPG 游戏。当你和朋友想一起挖矿、打地牢、建造基地时,自建专用服务器能带来更稳定的连接、更低的延迟,以及完全由你掌控的…...
C51嵌入式开发中的栈下溢检测与实现
1. C51运行时栈下溢检测原理与实现在嵌入式C51开发中,栈空间管理是个永恒的话题。我曾在一个智能电表项目中,因为栈溢出导致系统随机崩溃,花了整整两周时间才定位到问题。从那以后,我养成了在关键项目中实现运行时栈检查的习惯。栈…...
Unity ECS帧同步实战:确定性模拟与Job化网络Tick
1. 这不是“又一个Unity网络教程”,而是帧同步在ECS架构下的真实落地切口很多人一看到“Unity多人对战”就下意识点开,结果发现是PhotonMonoBehaviour的旧路子:对象池、RPC调用、状态同步、插值补偿……代码越写越厚,逻辑越埋越深…...
Alibaba组件选型与架构设计
Alibaba组件选型与架构设计 前言 本文将总结Spring Cloud Alibaba各组件的特点,并根据不同业务场景提供选型建议和架构设计指导。 一、组件对比与选型 1.1 注册中心对比 特性NacosEurekaConsulCAP模型CP/AP可切换APCP多语言支持HTTP/DNSHTTPHTTP/DNS配置管理原生支持…...
语音“下一首“控制车载音乐播放!
V1.0一个android apk,这个app可以监听手机的语音,然后我可以发语音来控制播放下一首歌曲,给语音指令,下一个,就会在酷狗音乐上播放下一首歌曲。节省点击的操作,因为在车上手去点击,影响开车。V1…...
数据类型与变量-Part3-输入输出格式化艺术
C语言输入输出格式化艺术系列导航 ✅ Part 1: C语言数据类型与变量(基础篇)✅ Part 2: C语言内存探秘(进阶篇)📍 Part 3: C语言输入输出格式化艺术 ← 你在这里上一篇我们深入了内存底层,这篇我们来聊聊你和…...
QMCDecode:基于Swift的QQ音乐加密格式解析与转换方案
QMCDecode:基于Swift的QQ音乐加密格式解析与转换方案 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录,默认转…...
深度学习的缺失数据革命:使用MIDAS实现高效多重插补
深度学习的缺失数据革命:使用MIDAS实现高效多重插补 【免费下载链接】MIDAS Multiple imputation utilising denoising autoencoder for approximate Bayesian inference 项目地址: https://gitcode.com/gh_mirrors/midas3/MIDAS 在数据科学和机器学习领域&a…...
基于DSP与SC1083 ADC的光纤远程数据采集系统设计实战
1. 项目概述:当DSP遇上高速光缆,如何构建一个“快、准、稳”的远程数据采集系统在工业自动化、电力监测、超声无损检测这些领域,我们经常需要面对一个头疼的问题:如何把现场传感器采集到的大量、高速、有时甚至是微弱的模拟信号&a…...
