免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5212 | 回复: 10
打印 上一主题 下一主题

双CPU的机器任务怎么调度? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-21 11:10 |只看该作者 |倒序浏览
第一次来这个版
不知道下面我问的这个问题是否适合发在这个版上

换了个机器,主板上两个cpu,早几年的intel至强cpu,都是单核吧

现在我后台运行几个计算程序,都要算几个小时
但是我用top命令查看cpu,发现使用率就在50%左右
是不是另外一个cpu没有被利用?
我应该怎样提交程序运行才能充分利用两个cpu

好像有个nice的命令来进行进程调度
不明白进程,线程调度这些东西

请大家给我讲讲,谢谢!

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
2 [报告]
发表于 2008-05-21 11:24 |只看该作者
你一个调度单位(进程或者线程)怎么跑两个核?

论坛徽章:
0
3 [报告]
发表于 2008-05-21 11:37 |只看该作者

回复 #1 xiongzm 的帖子

建议LZ注意以下几点:

1.   你的几个计算程序是封闭纯计算还是有跟其它程序和IO的交互的?
2.   你的双CPU的关系是可以同时工做的还是CPU 级HA的?
3.   你的程序的运行环境大概是什么样的?
4.   你的计算程序大致的情况?

论坛徽章:
0
4 [报告]
发表于 2008-05-21 11:49 |只看该作者

回复 #3 system888net 的帖子

多个不同的计算程序可在不同的CPU上并行,当然有IO和无IO的效果又有区别,对与同一个程序,要想利用多CPU,那就要处理好粒度问题了,关键是你的一个任务里是否有可以并行的单元,否则多CPU是帮不上忙的!

论坛徽章:
0
5 [报告]
发表于 2008-05-21 11:55 |只看该作者
我这个机器用来计算的都是串行的程序
并行的计算在机群上通过MPI并行

在这台双cpu的机器上,具体的情况是做一些数据分析什么的,计算时间半个小时到两三个小时

一般是同一个程序,在不同目录下都有拷贝,运行的时候参数不一样,每个程序运行相互独立。
或者不同的程序做不同的数据计算和分析。

论坛徽章:
0
6 [报告]
发表于 2008-05-21 12:13 |只看该作者
原帖由 xiongzm 于 2008-5-21 11:55 发表
我这个机器用来计算的都是串行的程序
并行的计算在机群上通过MPI并行

在这台双cpu的机器上,具体的情况是做一些数据分析什么的,计算时间半个小时到两三个小时

一般是同一个程序,在不同目录下都有拷贝, ...


那应该程序间至少可以并行.  建议观察一下每个CPU在运算过程的波动情况!

论坛徽章:
0
7 [报告]
发表于 2008-05-21 13:21 |只看该作者
原帖由 system888net 于 2008-5-21 12:13 发表


那应该程序间至少可以并行.  建议观察一下每个CPU在运算过程的波动情况!


程序间至少可以并行:
这个怎么理解?是说写成并行代码?这个不好弄,不同的参数,计算时间相差很大,线性,有的是平方时间复杂度。

观察一下每个CPU在运算过程的波动情况
弱问:怎么查看每个CPU的波动情况?
我用top命令,没带任何参数,没看到多个CPU。下面这个链接里面,列出了4个CPU的情况?
http://hi.baidu.com/kyako/blog/item/79e3425425731f54574e0025.html

另外一点不理解:

我在这台机器上后台运行一个程序的时候,cpu显示利用在25%左右
同时运行两个程序的时候,cpu显示利用在50%左右
同时运行三个程序的时候,cpu显示利用在75%左右
同时运行四个程序的时候,cpu显示利用在100%左右
同时运行五个程序的时候,cpu显示利用在100%左右

这似乎是4个cpu一样?

而机群上其它的节点和这台机器硬件一样,任务通过pbs提交上去的,也是串行程序,每个节点2个cpu,
我登录过去, top发现两个计算进程,cpu利用率为100%左右。

pbs提交任务,pbs系统是怎么把两个计算任务分别分配给两个CPU的?

论坛徽章:
0
8 [报告]
发表于 2008-05-21 14:37 |只看该作者

回复 #7 xiongzm 的帖子

不会是有hyperthreading吧。。。

论坛徽章:
0
9 [报告]
发表于 2008-05-21 16:01 |只看该作者
原帖由 xiongzm 于 2008-5-21 13:21 发表


程序间至少可以并行:
这个怎么理解?是说写成并行代码?这个不好弄,不同的参数,计算时间相差很大,线性,有的是平方时间复杂度。

观察一下每个CPU在运算过程的波动情况
弱问:怎么查看每个CPU的波动 ...


程序间至少可以并行是指不同的程序在不同的CPU上RUN以提高并行性.
程序运行时,若CPU占用是25%时,分下列几种情况:
1个CPU:  没有用满
2个CPU:  没有用满
4个CPU:  可能用满了一个CPU

程序运行时,若CPU占用是50%时,分下列几种情况:
1个CPU:  没有用满
2个CPU:  可能用满了一个CPU
4个CPU:  可能用满了两个CPU

程序运行时,若CPU占用是75%时,分下列几种情况:
1个CPU:  没有用满
2个CPU:  可能用满了一个CPU
4个CPU:  可能用满了三个CPU

为简单其间可打开linux 上自带的系统监视器查看CPU的波动.

[ 本帖最后由 system888net 于 2008-5-21 16:08 编辑 ]

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
10 [报告]
发表于 2008-05-22 00:11 |只看该作者
调度单位间同步使得你的CPU可能不能任何时候都在疯狂的计算
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP