POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
楼主: hunguqi
打印 上一主题 下一主题

我觉得Intel和Amd能够将任何单线程的程序,都可以用多核同时运行加速处理。欢迎探讨。

[复制链接]
41#
发表于 2011-8-31 08:18 | 只看该作者
zhendiy 发表于 2011-8-30 22:50
我真的不明白LZ到底有没有搞清楚双核50%和单核100%的概念。
核心负载程度的计算方式是100%除以核心数,如果 ...

你有没有看到图啊?或者说你看的图与我看到的不一样?

楼主发的图,显示的是2个核心各自的占用率图,2个核心的占用率同时显示的。而且在运行PI的时候,2个核心都是占用一半,而不是其中一个占100%,另一个空闲。
回复 支持 反对

使用道具 举报

42#
发表于 2011-8-31 08:20 | 只看该作者
EDVIN 发表于 2011-8-31 01:54
我举个例子,如果看不懂我也没办法了,假如楼主先买一个水桶,每天都把水倒满,看来是不够盛水,就再买一个 ...

可以把2个桶连起来啊
回复 支持 反对

使用道具 举报

43#
发表于 2011-8-31 08:39 | 只看该作者
LZ想的就是当年他们说的轰轰烈烈的逆反线程技术了,但技术上应该行不通吧,要不然AMD的推土机当初说的就是逆反线程的但现在已经没有那样的说法了。
回复 支持 反对

使用道具 举报

44#
发表于 2011-8-31 09:28 | 只看该作者
楼主最近几天很活跃啊~但不至于就进化到阴谋论的程度吧~
回复 支持 反对

使用道具 举报

45#
发表于 2011-8-31 09:31 | 只看该作者
farter 发表于 2011-8-30 21:42
乱七八糟萝莉把所

在任务管理器里限制SUPERPI只用某一个核心,再跑跑看

听口音是武汉的班子?
回复 支持 反对

使用道具 举报

坏人t 该用户已被删除
46#
发表于 2011-8-31 10:40 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

47#
发表于 2011-8-31 10:46 | 只看该作者
LZ所讨论的东西跟INTEL或AMD无关,是否能用多线程并行计算,取决程序的架构,计算前后的数据依赖性,算法,等等。当我们写某个程序的时候,默认的时候都是单线程的。

每当我们手动创建多一个线程时就要考虑数据同步,线程的阻塞互斥,打个简单的比方:你自己从篮子中拿苹果,是可控的,因为你自己知道总数,并知道自己拿了多少,这样进行下一步运算时,可以期待拿到的数据是正确的,但是一旦多个人加入,那么他从篮子中拿几个苹果,你是不知道的,因为线程间彼此是分离的。

所以为了保证线程的同步,我们根据算法就要手动加入某些规则,某些特殊的运算,每加入一个线程,编程的复杂度就会成倍上升,出错的几率自然上升,DEBUG所花的成本就会上升。而且每当我们写好一个多线程的应用,那具体能跑到什么程度,还取决于编译器,操作系统,并不是说我们在写程序的时候创建了3个线程,那程序在运行时就一定是呈现CPU运行时3个内核100%的占用。假如操作系统有平衡负载的能力,那么就会根据时间片的轮转平衡所有负载,那时我们的3线程程序就很有可能呈现6核心占用50%的样子。

所以您看到的superpi实际上是一个单线程的程序,当它达到100%占用的时候,操作系统将他平衡负载,呈现出2个核心50%的。至于为什么不能2个核心都100%,很简单,一、平衡负载。二、它是单线程程序。假设superpi是个2线程程序,那么它运行时,很可能呈现4核心50%占用,假设处理器只有2个核心,那么此时很可能呈现出2核心100%占用。

多线程计算PI值,请参考wPrime。
回复 支持 反对

使用道具 举报

48#
发表于 2011-8-31 10:49 | 只看该作者
楼主你真的是程序员么?莫非是XML程序员?
回复 支持 反对

使用道具 举报

49#
发表于 2011-8-31 11:02 | 只看该作者
看了笑笑 路過
LZ自稱是程序員,肚子都笑疼了
回复 支持 反对

使用道具 举报

50#
发表于 2011-8-31 11:31 | 只看该作者
楼主既然intel和AMD都没想到你却想到了,那请问怎么样可以让只支持单线程的软件用满2个核心?
回复 支持 反对

使用道具 举报

3332243 该用户已被删除
51#
发表于 2011-8-31 16:47 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

52#
 楼主| 发表于 2011-8-31 18:06 | 只看该作者
太虚公 发表于 2011-8-30 23:04
再次围观秀下限     怀疑是不是被盗号了

应该不是,pcinlife的账号没这么值钱,而且pcinlife又不限制注册,对吧?
回复 支持 反对

使用道具 举报

53#
 楼主| 发表于 2011-8-31 18:12 | 只看该作者
EDVIN 发表于 2011-8-31 01:54
我举个例子,如果看不懂我也没办法了,假如楼主先买一个水桶,每天都把水倒满,看来是不够盛水,就再买一个 ...

你别生气,我倒真是没有看懂,请看懂的兄弟解释下。
回复 支持 反对

使用道具 举报

54#
发表于 2011-8-31 18:27 | 只看该作者
你有兴趣,建议去看看计算机体系结构和操作系统原理的入门书,不然恐怕怎么说你也不明白。。。
回复 支持 反对

使用道具 举报

55#
发表于 2011-8-31 19:10 | 只看该作者
hunguqi 发表于 2011-8-31 18:12
你别生气,我倒真是没有看懂,请看懂的兄弟解释下。

或许这个例子举得不够贴切,不过LZ的理解能力还有待提高。
给你举这么个例子吧:
有一道题目,得出答案得需要100个环环相扣的方程等式推倒出来。
我可以把这100个等式交给几个人完成,也可以交给一个人完成。
但是交给几个人完成并不能提升总体的效率,因为一条等式不能拆分开交给2个人来计算,而下一条等式必须依赖于前一条等式的计算结果。

以上例子我是想说明,单线程性能在以后很长一段时间内都会显得很重要,有很多很多的程序是不可能做到支持多线程的,不管从硬件层面还是软件层面上都做不到。
回复 支持 反对

使用道具 举报

56#
发表于 2011-8-31 19:18 | 只看该作者
xmasjacky 发表于 2011-8-31 19:10
或许这个例子举得不够贴切,不过LZ的理解能力还有待提高。
给你举这么个例子吧:
有一道题目,得出答案 ...

这个例子不错……
回复 支持 反对

使用道具 举报

potomac 该用户已被删除
57#
发表于 2011-8-31 19:48 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

58#
发表于 2011-8-31 19:59 | 只看该作者
< - 我囧了 , 他们要表达的应该是,其实Super PI是只支持1线程1核心的。
假设双核心 Core 1 = 100% Core 2 = 0% (暂用率是可变的),哪里知道Windows任务管理的Graph实在是烂,把最终的图表或数据表示成 100% 除 2

应该是这样吧
回复 支持 反对

使用道具 举报

59#
发表于 2011-8-31 20:18 | 只看该作者
SUPER PI就如本来一卡车能装满的货物,结果分配了两辆卡车,那么就变成两辆卡车就各装一半,又因为两辆卡车速度一致,所以抵达目的地的时间也一致,不会加快速度。

超线程就如一个壮汉干两个人的活

反超线程则如,本来就是一个人的活(不支持多线程的程序),而手头上有雇佣两个人的资金(双核CPU),那么就只雇佣一个人(运行单核心),并给予较高的薪金提高其积极性(提高单核频率 即 睿频)

如果楼主还不懂,那么无语了……
回复 支持 反对

使用道具 举报

60#
发表于 2011-8-31 22:54 | 只看该作者
楼主还是去学学基础知识再来吧,或者等你开发出实质性的程序再来发表你的高见。想想为什么每次发明永动机的都是小学没毕业或者初中没毕业的。说句不好听的,永远不要跟一个纯S B争论,因为他会把你的智商拉到跟他一个水平,然后用他多年当S B的丰富经验打败你
回复 支持 反对

使用道具 举报

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

本版积分规则

广告投放或合作|网站地图|处罚通告|

GMT+8, 2025-8-13 15:45

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

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