锁定老帖子 主题:多核在web环境下,并不需要并行计算
精华帖 (0) :: 良好帖 (0) :: 新手帖 (5) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-04-23
这在处理密集型单任务的情况下,比如压缩某一个大文件,这种情况下,如果使用并行计算的话,会极大提高处理的速度的。或者在处理图像等技术方面。 那么对于做为WEB服务器的多核计算机来说,因为其处理的本来就是多个任务,CPU中的多核也都各司其职,这样的情况下,再把其中的某个任务分解到多核上去计算,这就凭空增加了许多切换、等待的工作。还不如一个核管理一个任务连接这样轻量。 所以用在web上的多核服务器,在没有极特殊的需求的情况下,不用考虑并行计算的问题,这是目前的我的一个观点,希望能和大家一起探讨。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-04-23
最后修改:2009-04-23
你理解似乎有点问题
你怎么知道2个并行的http 的请求到http server,会被并行到2个核处理呢,这个要看 这个http server 实现本身是否对多核情况做了优化 |
|
返回顶楼 | |
发表时间:2009-04-23
多核和高并发服务器根本是两回事……
并发瓶颈不在 cpu,在 IO。 |
|
返回顶楼 | |
发表时间:2009-04-23
bachmozart 写道 你理解似乎有点问题
你怎么知道2个并行的http 的请求到http server,会被并行到2个核处理呢,这个要看 这个http server 实现本身是否对多核情况做了优化 我觉得这个问题应该是操作系统来协调。 作为应用程序这块,不用去管这两个线程被分配到哪个cpu上去了。 在并发量大的情况下,也很可能这两个http请求是使用同一个核来处理的,但其他的请求就被分配到别的核上去了,从总体上看,CPU的工作还是满负荷的。 假设一个http请求当作一个计算任务的话,如果一个WebServer只有这一个访问请求,并且计算量很大的情况下,我们应该考虑并行计算的问题;如果一个WebServer有大量的请求,并且计算量也不是很大的情况下,我们应该让操作系统去平衡这种工作量。 因为WebServer 肯定都是在并发的情况下使用的,所以并行方面的计算就不用太考虑了 |
|
返回顶楼 | |
发表时间:2009-04-23
night_stalker 写道 多核和高并发服务器根本是两回事……
并发瓶颈不在 cpu,在 IO。 其实我们想用并行来计算,主要目的就是充分利用各核心的资源,使之不会被浪费。 对于单机环境来说,可能好多任务就要考虑程序的并行设计了。但对于web应用,CPU总是处于应答状态,每个核心都在忙“自己的事”,这个时候如果用并行算法来处理每个任务,将会增加更多的资源调用。 我现在想的就是高并发的多核服务器,是否适合用并行算法来处理任务。但我觉得任何技术都是有其适应环境的,在高并发的web环境中,并行计算并不适合。 |
|
返回顶楼 | |
发表时间:2009-04-23
yangyiqian 写道 我现在想的就是高并发的多核服务器,是否适合用并行算法来处理任务。但我觉得任何技术都是有其适应环境的,在高并发的web环境中,并行计算并不适合。 同意。不过本来 并行计算 和 高并发 就是两个不同的领域…… |
|
返回顶楼 | |
发表时间:2009-04-23
night_stalker 写道 yangyiqian 写道 我现在想的就是高并发的多核服务器,是否适合用并行算法来处理任务。但我觉得任何技术都是有其适应环境的,在高并发的web环境中,并行计算并不适合。 同意。不过本来 并行计算 和 高并发 就是两个不同的领域…… 如果这个问题能确定的话,那么在多核时代的web编程也就不用管CPU是几核的了,还是按照原来一样的写法就OK,有变化的地方就是在JVM和操作系统去调控,总之程序代码不用管理那么多硬件的事情。 不知道这种想法是否正确? (当然JVM肯定要有考虑并行运算的部分,但这部分内容不一定会大量使用到WEB层面) |
|
返回顶楼 | |
发表时间:2009-04-23
我觉得高并发问题往往在框架层面就解决了,开发者基本不需要管。
如果要写很底层的处理长连接的东西,大概还得注意。 |
|
返回顶楼 | |
发表时间:2009-06-14
大数据搜索可能要用到。
|
|
返回顶楼 | |
发表时间:2009-06-14
yangyiqian 写道 night_stalker 写道 yangyiqian 写道 我现在想的就是高并发的多核服务器,是否适合用并行算法来处理任务。但我觉得任何技术都是有其适应环境的,在高并发的web环境中,并行计算并不适合。 同意。不过本来 并行计算 和 高并发 就是两个不同的领域…… 如果这个问题能确定的话,那么在多核时代的web编程也就不用管CPU是几核的了,还是按照原来一样的写法就OK,有变化的地方就是在JVM和操作系统去调控,总之程序代码不用管理那么多硬件的事情。 不知道这种想法是否正确? (当然JVM肯定要有考虑并行运算的部分,但这部分内容不一定会大量使用到WEB层面) 愿望很美好.但是目前的操作系统虽然可以做到多线程能够启用多核.但是在应付并发的时候,还是设计到task的切换,切换要么有语言提供,如erlang.要不就得自己搞.符合要求的也只有erlang,stackless python这些.erlang相对更完备一些. 但是,知道这些.你才能知道如何去选择. |
|
返回顶楼 | |