由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 调度问题,说个笑话给大家听
相关主题
如何强制thread和cpu绑定?[合集] 怎么样提高自己的multi-thread programming能力?
开始折腾DPDK+mTCP有谁用TBB吗
真正的multi-threading是5个thread要5个cpu?那apache是真正的mwhy do we need to map user threads to kernel threads?
multi threading 还是 multi processingProblem of Thread by Prof. Lee大伙怎么看?
thread, semaphore, 问题。一个multithread的问题(是不是有人觉的很简单?)
python下的expectrand() in multitreading
多线程编程前景如何?thread c++ 问题
c++下如何实现多线程?a question about Nachos in C
相关话题的讨论汇总
话题: 调度话题: thread话题: 问题话题: np话题: cpu
进入Programming版参与讨论
1 (共1页)
g****t
发帖数: 31659
1
调度问题很多都是NP. 例如10个卡车去三个仓库拿货送到20户人家。一个普遍的错觉是
,你propose的最优解,需要卡车都在忙。不然的话,根据连续性直觉,卡车多一点努
力就可以把货更快的送达。聪明人最容易有这种错觉。实际上NP问题的空间往往是非常
ugly的刺猬状不连续形状。多一点努力,会导致约束不满足,例如错过拿货的时间窗口
时有发生。
民营公司小老板觉得手下工人不能闲着,是一样的道理。我做这类问题,也经常用这个
点糊弄人。就说NP算法只能给次优解,但是你看机器都用满了对吧。这就跟咱们大家看
cpu几个核是不是跑满了100%,其实是类似的。
h*i
发帖数: 3446
2
cpu跑满了不说明都在干正事。
当thread pool太小,没有足够thread的时候,你会发现这个时候CPU是100%的,但一切
都停滞了,没有任何进展。因为CPU在100%地作context switching, 但所有thread都
在等IO.
这就是我说的,不要相信作底层的这些人给你的建议:“thread pool size should be
less than the number of cores".
他们关心的问题和你关心的问题可能完全不同。他们关心throughout, 而你可能关心
latency.
如果你关心latency, 要信我基于现实经验得出的结论:thread pool size should be
in the thousands if you are supporting a large number of *human* users.
相信OS,现代的OS调度几千个thread没有任何压力。
在IO很多的应用,context switch的开销与IO的开销比起来可以忽略不计,与thread
pool太小带来的大问题比起来,context switch cost都不算啥。

【在 g****t 的大作中提到】
: 调度问题很多都是NP. 例如10个卡车去三个仓库拿货送到20户人家。一个普遍的错觉是
: ,你propose的最优解,需要卡车都在忙。不然的话,根据连续性直觉,卡车多一点努
: 力就可以把货更快的送达。聪明人最容易有这种错觉。实际上NP问题的空间往往是非常
: ugly的刺猬状不连续形状。多一点努力,会导致约束不满足,例如错过拿货的时间窗口
: 时有发生。
: 民营公司小老板觉得手下工人不能闲着,是一样的道理。我做这类问题,也经常用这个
: 点糊弄人。就说NP算法只能给次优解,但是你看机器都用满了对吧。这就跟咱们大家看
: cpu几个核是不是跑满了100%,其实是类似的。

g****t
发帖数: 31659
3
我其实并不关心具体调度的问题。对此问题有自己思考的java人员到处都是,招一个很
快捷。
每个人都有自己的办法。我举这个例子的意思其实是。假如只看cpu 0%,100%。那是看
不出来调度的区别的。

be
be

【在 h*i 的大作中提到】
: cpu跑满了不说明都在干正事。
: 当thread pool太小,没有足够thread的时候,你会发现这个时候CPU是100%的,但一切
: 都停滞了,没有任何进展。因为CPU在100%地作context switching, 但所有thread都
: 在等IO.
: 这就是我说的,不要相信作底层的这些人给你的建议:“thread pool size should be
: less than the number of cores".
: 他们关心的问题和你关心的问题可能完全不同。他们关心throughout, 而你可能关心
: latency.
: 如果你关心latency, 要信我基于现实经验得出的结论:thread pool size should be
: in the thousands if you are supporting a large number of *human* users.

1 (共1页)
进入Programming版参与讨论
相关主题
用多线程怎么比单线程还慢呢?thread, semaphore, 问题。
来来,讨论一下multithread, multi-core, affinitypython下的expect
multithread app的design要注意哪些问题?多线程编程前景如何?
一直没有很好理解thread join itself,哪位解惑一下 (转载)c++下如何实现多线程?
如何强制thread和cpu绑定?[合集] 怎么样提高自己的multi-thread programming能力?
开始折腾DPDK+mTCP有谁用TBB吗
真正的multi-threading是5个thread要5个cpu?那apache是真正的mwhy do we need to map user threads to kernel threads?
multi threading 还是 multi processingProblem of Thread by Prof. Lee大伙怎么看?
相关话题的讨论汇总
话题: 调度话题: thread话题: 问题话题: np话题: cpu