自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 探究多个MPI进程共享同一个文件的行为

使用该接口,可以将一个共享文件划分为多个不相重叠的区域,每个进程有一个rank,根据每个进程的rank计算出该进程负责哪个区域,这样,即使各个进程写文件的时间可能是乱序的不受控制的,但是每个进程写的位置却是固定的,因此最终得到的文件,其内容会符合预期。在MPI程序中,进程的秩是一个基本的概念,它贯穿于程序的整个执行过程中,对于程序的正确运行和性能优化都至关重要。:在某些情况下,进程的秩可以用于优化性能,例如,在数据划分时,可以选择将相邻的数据分配给相邻的进程,以减少通信开销。(2)为什么文件创建失败?

2024-07-30 14:04:13 815

原创 mmap v.s. Buferred I/O

将文件example.txt映射到内存中。

2024-07-16 14:11:07 148

原创 Direct I/O and Buffered I/O

直接I/O(Direct I/O)和缓冲I/O(Buffered I/O)是计算机系统中处理输入/输出操作两种不同的方法。它们在数据传输的方式、效率以及使用缓冲区的方式上有所区别。

2024-07-16 14:01:11 265

原创 GKFS源码阅读笔记:系统调用实现流程说明

在钩子函数中,判断文件路径是否为内部的,只是把路径和挂载目录作比对,如果路径名落在挂载目录下,那就判断为内部文件,然而,虽然这是一个合法的内部路径,但是它未必存在,所以还要调用adafs_metadata()从服务器上获取它的元数据,如果元数据存在,说明以前确实创建过这个路径,如果不存在,那么根据Linux-open()的语义,检查打开文件的时候指定的标志flags,看是否设置了O_CREATE,如果设置了,说明用户的意思是“如果文件不存在就创建这个文件”,所以,下一步调用adafs_mk_node()。

2024-07-02 16:43:25 252

原创 GKFS源码阅读笔记:客户端说明

应用程序运行前,先将环境变量LD_PRELOAD配置为客户端拦截库的路径,把拦截库预加载进内存,这样,程序运行过程中调用库时,首先调用的是拦截库里面的函数(是吗?每个客户端进程都有一个独立的预加载上下文PreloadContext,预加载上下文为单例模式,一个客户端从始至终只有一个,CTX就是定义的一个宏,用来获取预加载上下文的唯一实例。

2024-07-02 16:36:57 540

原创 GKFS源码阅读笔记:服务器说明

而trim_chunk_space()响应的是客户端的truncate()调用,这个调用的语义是截断一个文件的尾部,文件的尾部可能是多个块,分散在多个服务器上,使用哈希函数定位到这些目标服务器后,目标服务器执行trim_chunk_space(),因为文件的头部是要保留的,而一个目标服务器上的块,可能是头部块也可能是尾部块,所以不能像destroy_chunk_sapce()那样简单的无差别地删除,还需要做一个判断,遍历一个服务器上的所有块,看它是否落在尾部区间,是的话才删除,否的话则跳过。

2024-07-02 16:28:19 843

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除