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

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

目录

一、显式偏移的并行文件读写

1、阻塞方式

1.1 MPI_FILE_READ_AT

1.2 MPI_FILE_WRITE_AT

1.3 MPI_FILE_READ_AT_ALL

1.4 MPI_FILE_WRITE_AT_ALL

2、非阻塞方式

2.1 MPI_FILE_IREAD_AT

2.2 MPI_FILE_IWRITE_AT

3、两步非阻塞组调用

3.1 MPI_FILE_READ_AT_ALL_BEGIN

3.2 MPI_FILE_READ_AT_ALL_END

3.3 MPI_FILE_WRITE_AT_ALL_BEGIN

3.4 MPI_FILE_WRITE_AT_ALL_END


        上一节我们介绍了MPI-2中新增加的特性“并行I/O”中的并行文件管理基本操作,本节我们继续对其余内容进行学习。

一、显式偏移的并行文件读写

        一种并行文件读写的方法是每一个进程都清楚地知道它将要处理的数据在文件中的准确位置,从而所有的进程可以同时对文件的不同部分进行读写,实现文件的并行操作。在显式偏移方式下,读取位置是作为一个参数传递给读写调用的,不需要文件指针,当然也不需要文件指针的更新。在这种方式下,是没有文件指针的概念的,当然也不需要文件指针的移动操作SEEK,它可以直接从任意指定的位置开始读写。

1、阻塞方式

1.1 MPI_FILE_READ_AT

        MPI_FILE_READ_AT从文件fh中的指定偏移位置offset开始,读取count个数据类型为datatype的数据,存放到数据缓冲区buf之中,status是该读写操作完成后返回的状态参数。

MPI_FILE_READ_AT(fh, offset, buf, count, datatype, status)
IN    fh            文件句柄
IN    offset        读取位置相对于文件头的偏移
OUT   buf           读取数据存放的缓冲区
IN    count         读取数据个数
IN    datatype      读取数据的数据类型
OUT   status        返回的状态参数//c语言的说明
int MPI_File_read_at(MPI_File fh, MPI_Offset offset, void *buf, int count, MPI_Datatype datatype, MPI_Status *status)
//Fortran语言的说明
MPI_FILE_READ_AT(FH, OFFSET, BUF, COUNT, DATATYPE, STATUS, IERROR)
<type>  BUF(*)
INTEGER  FH, COUNT, DATATYPE, STATUS(MPI_STATUS_SIZE), IERROR
INTEGER(KIND=MPI_OFFSET_KIND) OFFSET

1.2 MPI_FILE_WRITE_AT

        MPI_FILE_WRITE_AT与MPI_FILE_READ_AT相对应,它从文件句柄fh对应的指定位置offset开始,将数据缓冲区buf中count个类型为datatype的数据写入到该文件中,其它status是返回的状态参数。

MPI_FILE_WRITE_AT(fh, offset, buf, count, datatype, status)
INOUT    fh            文件句柄
IN       offset        写入文件数据的起始偏移地址
IN       buf           将写入数据存放缓冲区的起始地址
IN       count         写入数据的个数
IN       datatype      写入数据的数据类型
OUT      status        写入操作完成后返回的状态信息//c语言的说明
int MPI_File_write_at(MPI_File fh, MPI_Offset offset, void *buf, int count, MPI_Datatype datatype, MPI_Status *status)
//Fortran语言的说明
MPI_FILE_WRITE_AT(FH, OFFSET, BUF, COUNT, DATATYPE, STATUS, IERROR)
<type>  BUF(*)
INTEGER  FH, COUNT, DATATYPE, STATUS(MPI_STATUS_SIZE), IERROR
INTEGER(KIND=MPI_OFFSET_KIND) OFFSET

相关文章:

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

目录 一、显式偏移的并行文件读写 1、阻塞方式 1.1 MPI_FILE_READ_AT 1.2 MPI_FILE_WRITE_AT 1.3 MPI_FILE_READ_AT_ALL 1.4 MPI_FILE_WRITE_AT_ALL 2、非阻塞方式 2.1 MPI_FILE_IREAD_AT 2.2 MPI_FILE_IWRITE_AT 3、两步非阻塞组调用 3.1 MPI_FILE_READ_AT_ALL_BEG…...

Java三种创建多线程的方法

线程是什么&#xff1a; 进程是程序的一次动态执行的过程&#xff0c;线程是进程中执行运算最小单位&#xff0c;一个进程在其执行过程中可以产生多个线程&#xff0c;而线程必须在某个进程内执行。 如果在一个进程中同时运行了多个线程&#xff08;必须包含一个主线程&#…...

828华为云征文 | 云上私人数据管家,jMalCloud个人网盘在华为云Flexus的Docker化部署实践

华为云服务器Flexus X实例介绍 华为云Flexus云服务器X实例&#xff0c;是由国家科技进步奖获得者、华为公司Fellow、华为云首席架构师顾炯炯牵头研发。它基于擎天QingTian架构、瑶光云脑、盘古大模型等根技术创新&#xff0c;是业界首款应用驱动的柔性算力云服务器&#xff0c;…...

C# 开源教程带你轻松掌握数据结构与算法

目录 前言 项目介绍 项目特点 项目展示 1、内容导图 2、部分目录 3、源码示例 项目地址 最后 前言 在项目开发过程中&#xff0c;理解数据结构和算法如同掌握盖房子的秘诀。算法不仅能帮助我们编写高效、优质的代码&#xff0c;还能解决项目中遇到的各种难题。 给大家…...

由一个 SwiftData “诡异”运行时崩溃而引发的钩深索隐(五)

概述 在 WWDC 24 中,苹果推出了数据库框架 SwiftData 2.0 版本。其新加入的历史记录追踪(History Trace)机制着实让秃头码农们“如痴如醉”了一番。 我们在之前的博文中已经介绍了 History Trace 是如何处理数据新增操作的。而在这里,我们将再接再厉来完成数据删除时的全盘…...

python爬虫基础:了解html

编辑器vscode <!DOCTYPE html> <html><head><title>第一个网页</title></head><body><h1>字体</h1><h2>字体</h2><h3>字体</h3><p>Lorem, ipsum dolor sit amet consectetur adipisicing…...

spring security OAuth2 客户端接入gitee

一、简介 OAuth 是一个开放标准&#xff0c;该标准允许用户让第三方应用访问该用户在某一网站上存储的私密资源(如头像、照片、视频等)&#xff0c;并且在这个过程中无须将用户名和密码提供给第三方应用。通过令牌(token)可以实现这一功能&#xff0c;每一个令牌授权一个特定的…...

阿里云镜像报错 [Errno 14] HTTP Error 302 - Found 问题解决记录

1、问题背景和解决思路 在本地安装 CentOS7 后&#xff0c;网络已调通可正常上网&#xff0c;但切换阿里云镜像后&#xff0c;使用 yum 安装软件时出现 “[Errno 14] HTTPS Error 302 - Found Trying other mirror.” 报错&#xff0c;原因是 yum 源配置问题。给出了详细的解决…...

《Linux运维总结:基于X86_64+ARM64架构CPU使用docker-compose一键离线部署consul 1.18.1容器版分布式ACL集群》

总结&#xff1a;整理不易&#xff0c;如果对你有帮助&#xff0c;可否点赞关注一下&#xff1f; 更多详细内容请参考&#xff1a;《Linux运维篇&#xff1a;Linux系统运维指南》 一、部署背景 由于业务系统的特殊性&#xff0c;我们需要面向不通的客户安装我们的业务系统&…...

深入剖析嵌套调用和链式访问,以及函数的声明和定义(超全面覆盖)

1. 前情提要 在上一篇博客中&#xff0c;我们大致了解了函数的种类&#xff0c;以及自定义函数中形参和实参的具体区别 我们知道实参是需要传递给形参的&#xff0c;但其实形参和实参占据的是完全独立的内存空间 x&#xff0c;y在执行过程中会得到a和b的值&#xff0c;但是x…...

浏览器百科:网页存储篇-IndexedDB介绍(十)

1.引言 在现代网页开发中&#xff0c;数据存储需求日益增多和复杂&#xff0c;传统的客户端存储技术如localStorage和sessionStorage已难以满足大型数据的存储和管理需求。为了解决这一问题&#xff0c;HTML5 引入了 IndexedDB&#xff0c;在本篇《浏览器百科&#xff1a;网页…...

Java语言程序设计基础篇_编程练习题*18.22 (将十进制數转换为十六进制数)

题目&#xff1a;*18.22 (将十进制數转换为十六进制数) 编写一个递归方法&#xff0c;将一个十进制数转换为一个十六进制数的字符串。方法头如下: public static String dec2Hex(int value)编写一个测试程序&#xff0c;提示用户输入一个十进制数&#xff0c;然后显示等价的十…...

蓝桥杯3. 压缩字符串

题目描述 实现一个算法来压缩一个字符串。压缩的要求如下&#xff1a; 需要判断压缩能不能节省空间&#xff0c;仅在压缩后字符串比原字符串长度更短时进行压缩。 压缩的格式是将连续相同字符替换为字符 数字形式&#xff0c;例如 "AAABCCDDDD" 变为 "A3BC2D…...

Java设计模式之责任链模式详细讲解和案例示范

在本文中&#xff0c;我们将详细讲解Java设计模式中的责任链模式&#xff0c;探讨其基本概念、使用场景、常见问题和解决方式。同时&#xff0c;我们还会介绍责任链模式与策略模式的区别&#xff0c;并结合电商交易系统的示例进行说明。此外&#xff0c;我们还会探讨责任链模式…...

ubuntu_如何解决apt install时报错:Waiting for cache lock: Could not get lock

当你在 Ubuntu 上运行 apt 时&#xff0c;遇到类似 Waiting for cache lock: Could not get lock 错误&#xff0c;通常是因为另一个进程正在使用 apt 或者类似的包管理器工具。你可以按照以下步骤来查找并解决这个问题&#xff1a; 1. 查询哪个进程正在使用锁 系统中的锁文件…...

软件测试(D5)

步骤&#xff1a; 设计测试-->发现缺陷-->测试报告 Day1 target 1.复述软件测试的定义 2.7种软件测试分类的区别 3.质量模型的重点5项 4.测试流程的6个步骤 5.测试模板的8个要素 认识软件及测试 软件&#xff1a; 控制硬件的工具 应用软件系统软件&#xff0…...

CSS 圆角渐变边框

<div class"contact-box"><div class"contact-item">联系我们</div> </div>.contact-item{width: 194px;height: 48px;border-radius: 20px 20px 20px 20px;background-color: #000000;color: #BDBDBD;font-weight: 500;font-size…...

骑砍2霸主MOD开发(26)-使用TrfExporterBlender制作TRF文件

一.Blender导入TRF文件 import bpytrf_meshes = []trf_contents = []trf_import_path = D:\pt_ladder.trftrf_export_path = D:\pt_ladder_morph_keys.trfclass TrfMesh:def __init__(self):self.mesh_name = self.mesh_materials = []self.vertex_cnt = 0self.vertex_fvf_cnt…...

Leetcode 最大子数组和

使用“Kadane’s Algorithm”来解决。 Kadane’s Algorithm 在每个步骤中都保持着一个局部最优解&#xff0c;即以当前元素为结尾的最大子数组和(也就是局部最优解)&#xff0c;并通过比较这些局部最优解和当前的全局最优解来找到最终的全局最优解。 Kadane’s Algorithm的核…...

目标检测-YOLOv2

YOLOv2介绍 YOLOv2&#xff08;You Only Look Once version 2&#xff09;是一种用于目标检测的深度学习模型&#xff0c;由Joseph Redmon等人于2016年提出&#xff0c;并详细论述在其论文《YOLO9000: Better, Faster, Stronger》中。YOLOv2在保持高速检测的同时&#xff0c;显…...

用Obsidian+Templater插件打造你的专属日记系统:从脚本编写到自动归档

用ObsidianTemplater打造全自动日记管理系统&#xff1a;从脚本开发到智能归档 在数字时代&#xff0c;个人知识管理已成为现代人的必修课。当大多数日记应用将你的私人记忆锁在云端服务器时&#xff0c;一种更自主、更灵活的选择正在技术爱好者中流行——用Obsidian配合Templa…...

别再乱选预处理器了!ControlNet 1.1 全模型实战指南:从线稿到3D效果,一次讲清

ControlNet 1.1 预处理器终极选择指南&#xff1a;从草图到成片的智能决策树 当你的手绘线稿在ControlNet中生成出扭曲的五官或崩塌的透视时&#xff0c;问题往往出在预处理器与模型的错配上。本文将通过200次实测对比&#xff0c;拆解14种核心预处理器的隐藏特性&#xff0c;…...

【中科院研究所主办、高录用、往届会后4个月检索】第二届人工智能与基础模型国际学术会议(AIFM 2026)

第二届人工智能与基础模型国际学术会议&#xff08;AIFM 2026&#xff09;将于2026 年 6 月 26-28 日在中国乌鲁木齐举办。会议旨在汇聚来自世界各地学术界、产业界及政府机构的专家学者&#xff0c;围绕人工智能与基础模型技术的核心议题展开深度研讨&#xff0c;共同探索领域…...

保姆级教程:在华大HC32L136上驱动SPI屏,用DMA发送提升刷屏效率

华大HC32L136单片机SPI屏DMA驱动实战指南 在物联网设备和智能硬件开发中&#xff0c;流畅的图形界面往往能大幅提升用户体验。而实现这一目标的关键&#xff0c;在于高效稳定的显示驱动设计。本文将深入探讨如何利用华大半导体HC32L136单片机的SPI接口与DMA控制器&#xff0c;构…...

Pydantic序列化避坑大全:从‘按声明类型序列化’到灵活exclude/include的5个常见误区

Pydantic序列化深度避坑指南&#xff1a;从类型陷阱到安全控制的实战解析 深夜调试代码时&#xff0c;你是否遇到过这样的场景&#xff1a;明明在内存中完整的对象&#xff0c;通过API返回给前端时却莫名丢失了关键字段&#xff1f;或者当你在日志中打印包含敏感信息的模型时&a…...

百度季报图解:营收321亿 AI业务占比首次过半 DAA重塑AI价值标准

雷递网 雷建平 5月18日百度集团&#xff08;纳斯达克&#xff1a;BIDU及香港联交所&#xff1a;9888&#xff08;港元柜台&#xff09;及89888&#xff08;人民币柜台&#xff09;&#xff09;今天公布其截至2026年3月31日止第一季度的未经审计财务业绩&#xff0c;财报显示&am…...

可定制尺寸的工业烤盘公司

江苏台烁是专注为大中型食品生产企业提供可定制尺寸全品类工业烤盘的专业厂商&#xff0c;核心竞争优势为全尺寸高精度定制能力搭配智能生产体系&#xff0c;可提供节能耐用、适配产线的工业化烘焙器具解决方案。核心优势与关键数据生产与资质基础&#xff1a;拥有4.8万㎡智能工…...

百度网盘直链解析工具:告别限速,3分钟实现全速下载!

百度网盘直链解析工具&#xff1a;告别限速&#xff0c;3分钟实现全速下载&#xff01; 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 还在为百度网盘那令人抓狂的下载速度而…...

别光看代码!聊聊51单片机做计算器时,那些新手容易踩的坑(键盘消抖、变量溢出、显示刷新)

51单片机计算器开发进阶指南&#xff1a;从功能实现到工程优化的深度解析 第一次在51单片机上实现计算器功能时&#xff0c;那种按下按键能看到数码管显示正确结果的兴奋感至今难忘。但真正投入实际使用后&#xff0c;各种问题接踵而至——按键偶尔失灵、大数运算出错、显示闪烁…...

NotebookLM相似文档推荐不准,深度解析向量维度坍缩、跨域语义漂移与上下文窗口截断三大根源问题

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;NotebookLM相似文档推荐不准的系统性现象观察 在实际使用 NotebookLM 过程中&#xff0c;用户频繁反馈其“相似文档推荐”功能存在显著偏差&#xff1a;高语义相关但低表面重合度的文档常被遗漏&#x…...