免费注册 查看新帖 |

Chinaunix

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

如何使代码在多CPU环境下运行得更有效率 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-05-06 17:26 |只看该作者 |倒序浏览
最好是能够充分利用系统的资源

希望有经验的各位高手指点。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2003-05-06 17:38 |只看该作者

如何使代码在多CPU环境下运行得更有效率

系统资源在多cpu环境中是由OS来均衡调度的。

代码最终是一些指令,一般不能够在代码中指定让那个cpu来执行。

代码可以做一些优化,但是这种优化也不是分配cpu资源。

论坛徽章:
0
3 [报告]
发表于 2003-05-06 17:54 |只看该作者

如何使代码在多CPU环境下运行得更有效率

使用多线程

这样系统调度时可以同时执行两个线程

单线程的话系统没有办法实现分配到多CPU

论坛徽章:
0
4 [报告]
发表于 2003-05-06 18:14 |只看该作者

如何使代码在多CPU环境下运行得更有效率

谢谢二位斑竹。
有很多软件产品都有提供一个配置文件,可以配置其对应的CPU个数,以充分利用系统资源。我还想问一下,除了多线程还有其他的办法么?  
我曾经做过一个项目,系统配置了10个CPU,项目的组织考虑到了并发操作的重要性,也使用了多线程技术,但根据观察,程序运行时,只有三、四个CPU在跑,其他的都在休眠状态,(注:系统保证绝对没问题),所以我很困惑

论坛徽章:
0
5 [报告]
发表于 2003-05-06 18:22 |只看该作者

如何使代码在多CPU环境下运行得更有效率

你说的可配置的东西,那是一些大型的产品能做到的,不如说tuxedo的负载均衡等等。

让哪个CPU去工作,我们写的一般的代码我觉得无法实现。这个是有OS决定的。

再说了,2,3个CPU能完成的工作,为什么要让10个CPU去完成呢?

你可以做一个终极的测试,在你OS允许的范围内并发很多进程,也许那些休眠的CPU会work的。

论坛徽章:
0
6 [报告]
发表于 2003-05-06 18:23 |只看该作者

如何使代码在多CPU环境下运行得更有效率

是在什么系统上
solaris上吗

许多平台都有线程并发度限制
如solaris的pthread_setconcurrency

另外也可能还有其它方面原因
我等会找找看

论坛徽章:
0
7 [报告]
发表于 2003-05-06 18:27 |只看该作者

如何使代码在多CPU环境下运行得更有效率

另外看看编译选项上有没有什么可以设置的

找了资料
但是没有找到什么有用的

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
8 [报告]
发表于 2003-05-06 18:47 |只看该作者

如何使代码在多CPU环境下运行得更有效率

编译选项上面好像没有什么特殊的选项,但是有一些指示行的选项,例如让某个局部变量成为寄存器变量。
如果是多cpu,但是在系统运行的时候,仍然存在idle的话,要么是系统没有达到启动另外一个cpu执行的程度,要么程序没有实现的很均衡。

不知道哪位知道informix中对于虚拟cpu的负载均衡是怎么实现的?

论坛徽章:
0
9 [报告]
发表于 2003-05-07 13:01 |只看该作者

如何使代码在多CPU环境下运行得更有效率

不能使用多线程,而应该使用多进程。
因为线程之间需要内存的共享,所以任何一个精神正常的人在设计操作系统的时候,都不会把同一个进程的多个线程分布到多个CPU中实现,否则线程间的数据共享会让总线效率剧烈下降。
一般来说,操作系统是以进程为单位进行CPU分配的。

论坛徽章:
0
10 [报告]
发表于 2003-05-07 13:10 |只看该作者

如何使代码在多CPU环境下运行得更有效率

对楼上看法有点疑问
就是操作系统
在同一时刻只保存一个进程的映像在运行
而不是多个进程的映象运行

这是以前看minix系统原理时看到的
我想就是多CPU的话
管理方法也一样吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP