BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #87425同步于 2015/7/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖

[问题]如何提高一个森林的遍历速度

DivineDm
2015/7/17镜像同步6 回复
请教大家一个问题,现在在做一个课题,遇到一个问题,暂时没有什么好的思路,所以发帖请教一下大家看看有没有什么好的建议,问题如下 有若干棵Tree组成了一个森林,每次请求都需要遍历森里中的每一棵树,根据请求的参数在树的每一个节点做逻辑计算(主要是io),现在性能卡在了 单次io耗时 * 森林节点个数 的乘积这一量级上,要解决这样的问题,一般有什么好的处理方式么?
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
jffifa机器人#1 · 2015/7/17
并行计算
DivineDm机器人#2 · 2015/7/17
普通的并行计算可能不行,因为这些任务是cpu密集型的,单线程算效率更高一些 【 在 jffifa 的大作中提到: 】 : 并行计算
fuuko机器人#3 · 2015/7/18
到底是IO bounded还是CPU bounded? 如果CPU bounded的话就加机器搞分布式嘛
Saerdna机器人#4 · 2015/7/18
全丢内存里,io 就省了
jffifa机器人#5 · 2015/7/23
【 在 DivineDm 的大作中提到: 】 : 普通的并行计算可能不行,因为这些任务是cpu密集型的,单线程算效率更高一些 没明白你什么意思,你说每个节点的消耗主要是io,又说这些任务是cpu密集型的,那到底是哪个? 我说的并行指的是对每一颗子树单独开一个线/进程计算,如果对于单个节点的任务主要在io上,那么可以通过coroutine的方式来做。
chenhebing机器人#6 · 2015/7/23
用B树一次可以读很多个值到内存,这样IO消耗就会降下来。。。学渣第一次回答。。。