Intel 双核超线程是否可能会导致应用软件死机?

sanrex 2006-06-20 11:43:47

我们软件的客户反映在双核或者超线程下软件会不定期的死掉(其他应用没有死掉),而且发现关闭了这个功能就没有问题了。

我们也干脆推荐用户关闭这个功能。不过用户会觉得很不爽。

下来也google查询了一下。还是有不少人提出Intel的cpu双核或者超线程是有问题的。

Intel自己也建议非WinXP用户关闭超线程技术。我想如果仅仅是速度没有明显提升,而没有死机等不良影响的话,Intel没有必要如此郑重的做出这个建议吧?

不知道各位有遇到这个问题没有?是否知道真正的原因是什么?
以及可以利用双核或者超线程技术,有不会有不良影响的解决方案是什么?

附录供参考:

1.英特尔的官方说明.也建议非WinXP用户关闭超线程技术

Operating Systems that Include Optimizations for Hyper-Threading Technology

http://www.intel.com/support/processors/sb/CS-017343.htm

3. 国外的软件也存在类似的问题: 在同一台服务器上运行Citrix和我们的软件时,关闭超线程技术。

事实上,在开启超线程技术时,我从来没有看到服务器软件性能的提高。我们建议客户,在同一台服务器上运行Citrix和我们的软件时,关闭超线程技术。

http://www.cnetnews.com.cn/news/hardwares/story/0,3800055190,39430848,00.htm

4. 新浪报道:英特尔建议:除了WinXP其他系统都关超线程

http://tech.sina.com.cn/h/2004-09-15/0923425357.shtml
...全文
2125 29 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
ahjoe 2007-04-12
  • 打赏
  • 举报
回复
超线程有意义吗?
IntelSupport 2007-04-04
  • 打赏
  • 举报
回复
不会,除非是软件逻辑上存在问题。
roger_77 2007-03-22
  • 打赏
  • 举报
回复
学习
flyingdog 2007-03-22
  • 打赏
  • 举报
回复
主要可能还是软件问题,在多下线程程序中,所使用的库也有对应的多线程版本,否则可能会有问题。


至于utstar(Universal Light)说的问题:
支持HT的操作系统应该也是将HT看作多个CPU的,至少win2003是这样。难道xp有不同吗?
———————————————————————————————————————
支持HT的操作系统是把HT当成多个cpu的,但是进行进程调度时就不同,否则可能反而造成性能降低。

是有文章提到过HT在安全性上有漏洞,其主要问题是由于共享cache,一个进程执行时可以通过特定的内存访问方式以及时间测定,从而大致得到另外一个进程的内存访问范围的情况。但是实际利用起来却不是非常简单,所以一般情况下并不用太担心。
huada115 2007-03-20
  • 打赏
  • 举报
回复
单核肯定比多核稳定和安全,但多核的优势也很明显,我们不能因为这个而放对多核失去信心,但多核的这种冲突主要是由软件引起,要靠软件编程的发展来解决
BlueTrees 2007-03-20
  • 打赏
  • 举报
回复
要测试,必须上到多核上面去,在单核上面调试很难找出问题所在。
BlueTrees 2007-03-20
  • 打赏
  • 举报
回复
会的。程序写的有问题就会导致这样的问题。

通常是对同一资源的访问,单核即使用多线程,如果没有同步访问,一般不会出现问题,出现问题的概率很小,但是,一上到多核、多CPU的机器上面,程序的缺陷就会立刻显现。

我以前写的一个程序,在极少数的客户电脑上运行就会出现访问违例,怎么也调试不出来,后来,我同事家买了一个多核电脑,始终报错,我就去他家调试了一下,就发现了一个未进行同步的访问缺陷。改了,客户电脑哪里就没问题了。
茶禅如水 2007-03-20
  • 打赏
  • 举报
回复
单核上的多线程是串行执行,而多核上很多情况是并行的。
单核上的单线程程序在多核上一般没有什么影响,而多线程
程序则会暴露出许多问题,这主要是软件设计的问题--没有
为多线程程序提供更多的保护。
另一方面,多线程程序的测试工作是很重要的,不仅仅要在单核上,
更应该在多核上进行测试,同时使用相应的工具,如vtune.
当前大多数厂商,如intel、ibm、sun等都推出多核的处理器,并
提供相应的开发工具,这是学习多线程,利用多核技术,改进原有程序的机遇!
netcup 2007-03-02
  • 打赏
  • 举报
回复
我也用的P 4 630,超线程打开的,WINDOWS 2003SERVER的系统,没有出现过死机现象啊
howardzhan 2007-03-02
  • 打赏
  • 举报
回复
我也遇到过此类问题,不知是否是有专门的超线程编译库,我的软件在单核上运行正常,在超线程上运行不定期会出现程序死锁现象,我的程序是多线程的程序,程序本身没有什么问题,我的程序会启动上百个线程,线程间通过事件来同步,这个问题也搞得我很郁闷,这里居然没人谈谈编译库的问题,而是只争论程序访问内存上的问题,失望啊
goldencode 2006-07-17
  • 打赏
  • 举报
回复
多久以前的问题了啊!微软早就出补丁了.我有台DELL的,CPU是630带HT,从来没死过机啊.
扣肉快出来了,那才是飞跃啊.
zhang_langxin 2006-07-17
  • 打赏
  • 举报
回复
胡扯!!!!
胡扯!!!!

胡扯!!!!

胡扯!!!!

胡扯!!!!

胡扯!!!!

双核的实质就是一个多线程处理器
和以前的单线程没有什么很大的改变

这么可能引起死机
至少我的双核是没有 死个机的
swxlion 2006-07-12
  • 打赏
  • 举报
回复
基本上还是因为软件编写的问题。一般大部分的软件,并没有针对多CUP进行考虑,而HT是被认为是多CPU的。这样的话,在非HT机器上不会引发的线程间冲突,可能会在HT的CPU上引发。
如果仅装一个操作系统,之后仅装支持HT的软件。如果这样没有发生以上的问题,再装其他的没有明确表明支持HT的软件。如果这时出现问题了,那不用说,只会是软件的问题。
utstar 2006-07-09
  • 打赏
  • 举报
回复
mathe() ( ) 信誉:120 2006-6-30 17:12:32 得分: 0



应该是软件问题,并行的代码很容易出问题的。
倒是听说过超线程有安全漏洞,但是没听说过会导致正常软件死机的。
Intel建议非XP操作系统(就是旧的操作系统)关闭超线程(HT)是因为那些操作系统没有针对HT做过专门的优化。在那些机器上操作系统估计会误认为HT是多CPU,从而对任务调度有很大影响。
比如双CPU,分别打开HT,那么操作系统会误认为是4个CPU:CPU0,CPU1,CPU2,CPU3,实际上逻辑CPU0,CPU1在一个CPU上,逻辑CPU2,CPU3在一个CPU上。但是操作系统不识别HT的话,有两个任务时,它就很可能将任务调度到CPU0,CPU1,也就是一个CPU上面,而另外一个CPU完全空闲,这样当然会导致性能的降低

--------------------------------------------------------------------

支持HT的操作系统应该也是将HT看作多个CPU的,至少win2003是这样。难道xp有不同吗?
sncp_pluto 2006-07-07
  • 打赏
  • 举报
回复
以前天网防火墙的某个版本,在打开超线程的CPU环境中,常常导致CPU负荷100%假死。
sanrex 2006-07-05
  • 打赏
  • 举报
回复
有没有人遇到过我说的情况?
myan 2006-07-04
  • 打赏
  • 举报
回复
一般情况下不要用超线程。

如果跑在多核上还会死机,那就试试跑在SMP上,还是死机的话那就是软件问题。
fengfan 2006-07-03
  • 打赏
  • 举报
回复
现在也遇到一个相似的问题。我们的软件在一个双核服务器上,2000操作系统,总是在几乎相同的时间段被关闭,同时此服务器还存在不定时的自关机现象,不可怀疑,软件存在并行的内存访问问题。
longjing_g 2006-07-03
  • 打赏
  • 举报
回复
WINXP能良好运行,肯定是操作系统的问题了,估计是多线程方面没有考虑到相关因素,毕竟那时还没这种硬件的思路

如果程序从底层实现,绕过OS,自然没问题.否则,依赖OS恐怕就很难有什么效果了
sanrex 2006-07-03
  • 打赏
  • 举报
回复
感谢各位的回复,再问一下:
假设是软件的问题,操作系统还没有优化的情况下,我的程序修改了有用吗?
加载更多回复(9)

567

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧