找回密码
 新注册用户
搜索
楼主: holyluna

[求助] 求助双路E5 2696V4 在win系统下负载问题

[复制链接]
发表于 2017-11-27 17:01:48 | 显示全部楼层
本帖最后由 vincentdark 于 2017-11-27 18:04 编辑
holyluna 发表于 2017-11-27 15:27
对的,之前用的是Win10 Pro,然后更换了Enterprise / Pro for Workstations / Winserver 2016,均没有办 ...

那到底是解决了还是没解决呢?
我们都在为线程不够而烦恼,没想到线程多了也有烦恼
回复

使用道具 举报

 楼主| 发表于 2017-11-27 21:22:14 | 显示全部楼层
vincentdark 发表于 2017-11-27 17:01
那到底是解决了还是没解决呢?
我们都在为线程不够而烦恼,没想到线程多了也有烦恼
...

没解决,就当此事没有发生过……
事实上,对于那些线程之间完全独立的程序(比如某些测试软件,VRAY,以及某些python程序),Processor Groups完全不影响使用,可以直接用完所有线程;而对于那些线程之间有相互联系的程序,Win会安排只使用一个Processor Group中的逻辑处理器——虽然限制了使用的总核心数量,但这样的安排也可以避免不同物理处理器之间传输效率的影响。

PS:这似乎也是限制单一用户的计算程序的CPU占用的有效手段。

回复

使用道具 举报

发表于 2017-11-28 23:14:33 | 显示全部楼层
holyluna 发表于 2017-11-27 21:22
没解决,就当此事没有发生过……
事实上,对于那些线程之间完全独立的程序(比如某些测试软件,VRAY,以 ...

Windows下面的程序是可以使用超过64个线程(多个processor group)的,但程序编写时必须做一些特殊处理。一些老版本的软件肯定不支持,可以试试最新的版本,也许能跑满所有线程。

Applications for which performance is critical and that can scale efficiently beyond 64 logical processors must be modified to run on such systems. For example, database applications might benefit from modifications.
An application that requires the use of multiple groups so that it can run on more than 64 processors must explicitly determine where to run its threads and is responsible for setting the threads' processor affinities to the desired groups. The INHERIT_PARENT_AFFINITY flag can be used to specify a parent process (which can be different than the current process) from which to generate the affinity for a new process. If the process is running in a single group, it can read and modify its affinity using GetProcessAffinityMask and SetProcessAffinityMask while remaining in the same group; if the process affinity is modified, the new affinity is applied to its threads.

回复

使用道具 举报

发表于 2017-11-29 09:18:11 来自手机 | 显示全部楼层
折中的办法就是关掉HT吧  性能损失可以接受
回复

使用道具 举报

发表于 2017-12-8 09:46:30 | 显示全部楼层
gongyz 发表于 2017-11-29 09:18
折中的办法就是关掉HT吧  性能损失可以接受

如果是跑boinc可以通过修改cc_config.xml文件跑满全部线程吧?
比如跑WCG刷时间牌子开HT必需的啊
@vardrag
  1. <options>
  2.         
  3.         <ncpus>88</ncpus>
  4.    
  5.     </options>
复制代码
回复

使用道具 举报

发表于 2018-5-12 21:39:11 | 显示全部楼层
金鹏 发表于 2017-12-8 09:46
如果是跑boinc可以通过修改cc_config.xml文件跑满全部线程吧?
比如跑WCG刷时间牌子开HT必需的啊
@vardrag ...

我来挖个坟,金版这个思路我实测了一下,平台是E7 4870 ,4路40核80线程,系统是Windows server 2012R2系统自动把处理器平均分成了两个处理器组。ncpus默认情况下(值为-1,也就是不模拟核心数,按照识别数量计算),在日志中看到boincmgr正确地认出了80线程,设置可用cpu核心百分百,可用cpu时间百分百,此时就是一个处理器组(四十线程)跑八十个包,相当于一个线程塞了俩,然后另一组在旁边吃瓜。。
设置ncpus为80,效果一样,只是在boincmgr启动日志中显示的是simulate 80 cores


目前查到的最好办法就是vincentdark说的设置相关性。。但是这东西。。首先是要一次性设置四十次计算程序的相关性,然后其中一个包算完以后,后台新开一个计算程序的进程的时候,还是会分配到他最喜欢的那个CPU分组里,不及时修改相关性,总体CPU使用率就会又慢慢回到50%。。。

回复

使用道具 举报

发表于 2018-5-12 21:44:30 | 显示全部楼层
我想了个歪招。。非要用Windows的话,开两个虚拟机,手动设置两个虚拟机的相关性。。不知道对效率影响有多大。。
回复

使用道具 举报

发表于 2018-5-13 19:58:17 | 显示全部楼层
本帖最后由 金鹏 于 2018-5-13 19:59 编辑
昂宿星团人 发表于 2018-5-12 21:39
我来挖个坟,金版这个思路我实测了一下,平台是E7 4870 ,4路40核80线程,系统是Windows server 2012R2系统 ...

那目前兄弟是如何解决另一组吃瓜CPU的问题呢?
如果关闭HT对于那些不刷计算时间的项目还是不错解决办法


回复

使用道具 举报

发表于 2018-5-13 20:43:32 | 显示全部楼层
金鹏 发表于 2018-5-13 19:58
那目前兄弟是如何解决另一组吃瓜CPU的问题呢?
如果关闭HT对于那些不刷计算时间的项目还是不错解决办法

到今天上午为止一直是采取关掉HT的方法,因为目前主要是为了跑竞赛
然后中午的时候,这边电线过载了。。计划等转移完阵地以后直接换Linux
回复

使用道具 举报

发表于 2018-5-13 22:37:47 | 显示全部楼层
昂宿星团人 发表于 2018-5-13 20:43
到今天上午为止一直是采取关掉HT的方法,因为目前主要是为了跑竞赛
然后中午的时候,这边电线过载了。。 ...

期待兄弟能找出WIN下解决之道,便于我今年升级80线程机器参考
回复

使用道具 举报

发表于 2018-5-14 08:34:20 | 显示全部楼层
金鹏 发表于 2018-5-13 22:37
期待兄弟能找出WIN下解决之道,便于我今年升级80线程机器参考

哈哈哈哈责任重大!那我好好研究研究!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 新注册用户

本版积分规则

论坛官方淘宝店开业啦~
欢迎大家多多支持基金会~

Archiver|手机版|小黑屋|中国分布式计算总站 ( 沪ICP备05042587号 )

GMT+8, 2024-3-28 17:20

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表