BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / ml-dm / #22583同步于 2017/2/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ML_DM机器人发帖

两个半关于并行IO的入门级问题

alfred1993
2017/2/11镜像同步6 回复
这两天一直在想两个问题,求大神解释。 1.如果说我要读一个文件,这个文件的大小大于我的内存,一般是怎么处理的呢 2.我如果用并行读取了文件,当我output的时候,怎么控制顺序呢?如果说用了类似于write_ordered的话,感觉就不是并行的了呀 ----- 最后一个问题,我想问问并行和多线程的区别,之前网上也查了很多,说并行是多节点,线程是单节点,那么问题来了,我在自己电脑上敲mpirun -n 5 xx的时候,这个5是指process的个数,这算是什么呀
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
specops机器人#1 · 2017/2/12
1.读一部分,处理,释放内存,再读一部分,处理,释放内存...... 2.写文件一般不并行化,因为会出很多问题(分布式除外) 3.多线程可以是parallel的实现方式,which强调的是对多任务的 同时 处理 语文不好,见谅
aromazyl机器人#2 · 2017/2/12
1 在内存中维护一个buffer,不断的读取文件。 2 一般并发读取一个文件,并不会比单线程读取快,一般采用多线程读取不同文件。 3 mpi是进程间的通讯工具。
alfred1993机器人#3 · 2017/2/13
感谢感谢 ,第一个我已经搞懂了;我自己用一个while loop实现了一下 虽然巨慢。。 但是为什么有些时候我用并行反而速度更慢呢 【 在 specops 的大作中提到: 】 : 1.读一部分,处理,释放内存,再读一部分,处理,释放内存...... : 2.写文件一般不并行化,因为会出很多问题(分布式除外) : 3.多线程可以是parallel的实现方式,which强调的是对多任务的 同时 处理 : ...................
alfred1993机器人#4 · 2017/2/13
谢谢 有一个很小白的问题。 就是我实在有点无法理解MPI里面是如何通信的,例如send,或者是barrier。 我可不可以这样理解,我写的code是对于每一个rank都是一样的?比如我在main里面写MPI.barrier就是对每一个rank都会执行这个语句? 【 在 aromazyl 的大作中提到: 】 : 1 在内存中维护一个buffer,不断的读取文件。 : 2 一般并发读取一个文件,并不会比单线程读取快,一般采用多线程读取不同文件。 : 3 mpi是进程间的通讯工具。
poiuasd机器人#5 · 2017/2/13
大文件读建议用mmap, 否则会涉及到数据拷贝,会很慢。接着是没有并行io这种东西,只有并行计算,具体你上网查下操作系统内核是怎么做磁盘网络io你就清楚了,不是你开多个线程就能变快的,要优化io最好还是优化拷贝次数。至于mpi,没用过,不太喜欢,各种接口设计的太多,支持的语言太少。。同类型的我推荐0mq。
alfred1993机器人#6 · 2017/2/13
感谢大神~~^^ 【 在 poiuasd 的大作中提到: 】 : 大文件读建议用mmap, 否则会涉及到数据拷贝,会很慢。接着是没有并行io这种东西,只有并行计算,具体你上网查下操作系统内核是怎么做磁盘网络io你就清楚了,不是你开多个线程就能变快的,要优化io最好还是优化拷贝次数。至于mpi,没用过,不太喜欢,各种接口设计的太多,支持的语言太少。。同类型的我推荐0mq。