POPPUR爱换

标题: 现在cpu的速度真恐怖 [打印本页]

作者: xing83    时间: 2007-7-1 23:28
标题: 现在cpu的速度真恐怖
新装机E2140 oc 3G,暂时不能上网下测试软件烤机不知道可稳定,又看手头上有VS2005的光盘。就想写个能让cpu长时间跑到100%的东西。用C#这种不算高效的语言,开两个线程分别生成300,000个随机数各自冒泡排序。重复以上过程100,000遍。居然冲个凉出来就已经完成了。虽然计算操作不多,光循环就跑了300000*100000*150000*2(9千万亿?)下啊.

[ 本帖最后由 xing83 于 2007-7-1 23:54 编辑 ]
作者: zzzi    时间: 2007-7-1 23:37
还好你没用GPU跑,那个叫傻快……
作者: 想吃猫的鱼    时间: 2007-7-1 23:37
不是很懂 ,是不是因为双核的缘故
作者: ljlxl    时间: 2007-7-1 23:54
:funk: :funk:
作者: sd-iori    时间: 2007-7-1 23:57
原帖由 suvin 于 2007-7-1 23:38 发表
楼主好强啊,楼主对C#了解不错哦。
想想以前俺的第一台电脑,MMX133的处理器,估计很多人没用过。

:shifty: MMX最低主频是166吧,,,,

P133是奔腾时代最高主频吧
66X2
作者: meijielove    时间: 2007-7-1 23:58
是挺块的..不过偶还是希望有更块的 U..
作者: shadewither    时间: 2007-7-2 00:03
lz程序写错了吧
作者: ssoltek    时间: 2007-7-2 00:06
E2140就抱怨快了:funk: ,w00t) 那QX6700超频起来玩不就是飞起来了?小心玩游戏被认为是用了外挂被封号:loveliness:
作者: xing83    时间: 2007-7-2 00:37
俺怀疑什么地方写错了,否则怎么能这么快...
作者: 口口口乐    时间: 2007-7-2 00:43
把程序放出来共享,我这里还有台c4 1.7的,一跑便知
作者: xing83    时间: 2007-7-2 00:53
怀疑是产生随机数的函数我调用方法有错,一知半解就用了。产生出来的数字可能本身就有序,或者0特别多,排序很省事。

刚才写了个更简单的,两个线程。
for (i=1;i<100000;i++){
for (l=1;l<300000;l++){
   x=sqrl(i*i)
}
}
现在正跑着呢,不知道要多久...

后记: 发现只要循环数是这么多,里面不管开根号也好,加上个sin运算也好,总共运行时间都差不多,10.01-10.04秒之间。真是搞不懂为什么了。

[ 本帖最后由 xing83 于 2007-7-2 01:27 编辑 ]
作者: carlsheng    时间: 2007-7-2 08:22
p133不用散热片的话,夏天会死机。。。

看来发热也不是可以完全无视
作者: DIHCRO    时间: 2007-7-2 09:21
prime95....
作者: samhrc    时间: 2007-7-2 09:33
原帖由 carlsheng 于 2007-7-2 08:22 发表
p133不用散热片的话,夏天会死机。。。

看来发热也不是可以完全无视


以前IBM PC300 GL 台式机 就没有风扇, P100的。
作者: shike_cuke    时间: 2007-7-2 09:49
现在的U运算能力是蛮强悍的啊!
作者: delphi5-10    时间: 2007-7-2 09:52
原帖由 samhrc 于 2007-7-2 09:33 发表


以前IBM PC300 GL 台式机 就没有风扇, P100的。


我以前见过一台 IBM 的机器,用的是 C566,照样不用风扇,直接通过风道散热
作者: ultraboy    时间: 2007-7-2 10:07
这种简单程序就想cpu占用100%?那平时电脑不要用了,没法用~30万个整数,连cpu的缓存都填不满。。
作者: boy3d    时间: 2007-7-2 10:10
提示: 作者被禁止或删除 内容自动屏蔽
作者: Tanknet    时间: 2007-7-2 10:18
MS .NET的编译器有一种机制你知道吗?
它辨认出不影响运行结果的东西根本不写进MSIL代码。

比如
Function foo() as Int32
    dim a as integer =2, b as integer=3
    For a=0 To 10000
        b=b+1
    Next a
    foo=36
End Function

编译结果是什么? 就是直接返回一个36的int32值,中间的a,b啥的都没了。
大概就是接近这样的,可能里面还有点代码没去掉。

[ 本帖最后由 Tanknet 于 2007-7-2 10:22 编辑 ]
作者: 拳头    时间: 2007-7-2 10:29
快肯定是快,而且是成倍的
作者: 梁爽128    时间: 2007-7-2 10:47
还有抱怨快的…………
作者: ljlxl    时间: 2007-7-2 11:03
楼主编程的??
作者: enmaai    时间: 2007-7-2 11:15
:wacko: 帖出来的也不是冒泡排序啊。。。
作者: xing83    时间: 2007-7-2 11:16
如果是 专业的编程,水平怎么会有我这么菜
作者: Tanknet    时间: 2007-7-2 11:17
标题: 回复 #24 cinlo 的帖子
对,根本不运行,或者只运行一小部分。
作者: star_wrx    时间: 2007-7-2 11:33
近来晕一下
闪人~~
作者: chaos_t    时间: 2007-7-2 11:45
原帖由 Tanknet 于 2007-7-2 10:18 发表
MS .NET的编译器有一种机制你知道吗?
它辨认出不影响运行结果的东西根本不写进MSIL代码。

比如
Function foo() as Int32
    dim a as integer =2, b as integer=3
    For a=0 To 10000
        b=b ...


最后foo=常数 自然是直接返回拉。
Sub的话还是会循环的
作者: FENG950    时间: 2007-7-2 11:51
a,b你也没叫它返回,它当然不会输出啦。但是运行还是要的。

你让中间的过程再复杂一点,看看输出结果的时间是不是一样?
作者: FENG950    时间: 2007-7-2 11:52
原帖由 Tanknet 于 2007-7-2 10:18 发表
MS .NET的编译器有一种机制你知道吗?
它辨认出不影响运行结果的东西根本不写进MSIL代码。

比如
Function foo() as Int32
    dim a as integer =2, b as integer=3
    For a=0 To 10000
        b=b ...

a,b你也没叫它返回,它当然不会输出啦。但是运行还是要的。

你让中间的过程再复杂一点,看看输出结果的时间是不是一样?
作者: zxjike    时间: 2007-7-2 12:21
提示: 作者被禁止或删除 内容自动屏蔽
作者: zxjike    时间: 2007-7-2 12:27
提示: 作者被禁止或删除 内容自动屏蔽
作者: zxjike    时间: 2007-7-2 12:29
提示: 作者被禁止或删除 内容自动屏蔽
作者: FENG950    时间: 2007-7-2 15:18
原帖由 zxjike 于 2007-7-2 12:29 发表

和返不返回无关,只有Debug模式才运行,生成EXE或者Release模式循环就不跑了。

有许多刚学编程的,都喜欢像这样用一些无意义的循环来做延时。

你的意思是编译器会篡改编写者的意图,略过一些编写者有意使用的空循环?
作者: bessel    时间: 2007-7-2 15:40
多数编译器都是这么干的,
这个程序你只要最后输出这几十万个数,他就不会忽略了,
然后这个程序就怎么也跑不玩了。
9千万亿=9百万 G,大概要多少时间可以很容易的估计处来了。

原帖由 FENG950 于 2007-7-2 15:18 发表

有许多刚学编程的,都喜欢像这样用一些无意义的循环来做延时。

你的意思是编译器会篡改编写者的意图,略过一些编写者有意使用的空循环?

作者: FENG950    时间: 2007-7-2 15:44
原帖由 bessel 于 2007-7-2 15:40 发表
多数编译器都是这么干的,
这个程序你只要最后输出这几十万个数,他就不会忽略了,
然后这个程序就怎么也跑不玩了。
9千万亿=9百万 G,大概要多少时间可以很容易的估计处来了。

我所知道没有什么编译器会这样篡改编写者的意图,其实这种事试一下就知道了,VS2003下编译,release模式

using System;
namespace ConsoleApplication1
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Test
{
  public static void Main(string[] args)
  {
   Test test = new Test();
   Console.WriteLine(test.xun());
   Console.ReadLine();
  }
  public int xun()
  {
   int a = 0;
   int b = 9;
   for(long i = 0;i < 1000000000;i++)
   {
    a++;
   }
   return b;
  }
}
}

试试看有无延时?
作者: ifu    时间: 2007-7-2 15:51
lz试试:
for (i=1;i<100000;i++){v/u7Y"B
v
作者: lxjlan    时间: 2007-7-2 15:58
提示: 作者被禁止或删除 内容自动屏蔽
作者: bessel    时间: 2007-7-2 16:44
俺以前用那个visual fortran的时候遇到过这样的情况,当时另一个编译器也是这样,不过ifort还好。

楼主的问题如果只排一次序的话要大概几分钟,10w次很快算完一定是有偷工减料的地方。


原帖由 FENG950 于 2007-7-2 15:44 发表

我所知道没有什么编译器会这样篡改编写者的意图,其实这种事试一下就知道了,VS2003下编译,release模式

using System;
namespace ConsoleApplication1
{
///
/// Class1 的摘要说明。
///
cl ...

作者: FENG950    时间: 2007-7-2 16:57
原帖由 bessel 于 2007-7-2 16:44 发表
俺以前用那个visual fortran的时候遇到过这样的情况,当时另一个编译器也是这样,不过ifort还好。

楼主的问题如果只排一次序的话要大概几分钟,10w次很快算完一定是有偷工减料的地方。

LZ的源码也没看见,不能说是编译器偷工减料吧?编译器偷工减料就是很严重的问题了。或许是他的算法捏?

前面有人说.net的编译忽略部分代码,我估计他们是不是搞成JIT部分了?JIT是有可能运行中没用到的代码是不编成本机码的(不过这里讨论的也算不上“用不到的代码”),但是源码编成IL或是字节码的过程不会。

[ 本帖最后由 FENG950 于 2007-7-2 18:44 编辑 ]
作者: bessel    时间: 2007-7-2 18:16
对于无用代码的清除也是优化的一种。
有的时候编译器太聪明了。
原帖由 FENG950 于 2007-7-2 16:57 发表

LZ的源码也没看见,不能说是编译器偷工减料吧?编译器偷工减料就是很严重的问题了。或许是他的算法捏?

前面有人说.net的编译忽略部分代码,我估计他们是不是搞成JIT部分了?JIT是有可能运行中没用到的代码 ...

作者: FENG950    时间: 2007-7-2 18:34
的确,有时候是有很多多余的代码需要清除,一般编译器是会使用等价的替换代码来优化那些罗嗦的代码,但像这些不直接使用结果的应该不在此列,因为编译器不能替程序员作出结论,不能说结果没有使用就一定无用,或许别人有别的目的呢?比如C#里定义一些变量但不使用,编译器会给出警告,提示对象没有使用,但不至于自作主张不分配内存。
作者: xing83    时间: 2007-7-2 18:37
明天安上网络就可以贴代码了
作者: viewlg    时间: 2007-7-2 18:50
用嵌入汇编 绝对不会被缩减掉
作者: 补天士    时间: 2007-7-2 18:59
:huh: 性能严重过剩
作者: clawhammer    时间: 2007-7-2 18:59
用汇编写
强行把参与运算的数字全部放到内存里去,看它还快:shifty::shifty:
CPU不用cache就是残废:devil::devil::shifty:
作者: zhx_gd    时间: 2007-7-2 19:04
提示: 作者被禁止或删除 内容自动屏蔽
作者: xiongnuhanzi    时间: 2007-7-2 19:20
lz的程序显然不够强,鉴定完毕。
作者: roii    时间: 2007-7-2 19:45
提示: 作者被禁止或删除 内容自动屏蔽
作者: 林青豪    时间: 2007-7-2 20:12
提示: 作者被禁止或删除 内容自动屏蔽
作者: xing83    时间: 2007-7-2 21:24
发现了,编译器果然把中间那个开根号的计算给忽略了

while (i<100000){
i++;
while (k<300000){
k++;
x=math.sqrt(i*k);
y=y+x;
}
}

执行起来就特别快,几乎跟空循环一样速度。

while (i<100000){
i++;
while (k<300000){
k++;
x=math.sqrt(i*k);
y=y+x;
}
}
console.writeLine(y.ToString);

只是在末尾加了个输出就慢了很多很多。现在可以把双核占满100%好几分钟了。具体时间等运行完了再说。
作者: xing83    时间: 2007-7-2 21:27
我打这么多字的时间,才运行了15%呢。
新的烤机测试程序诞生了,因为以开根号为主,我决定称呼它为---双线super老根。不知道在单核上运行是如何感受。
作者: zxjike    时间: 2007-7-2 21:40
提示: 作者被禁止或删除 内容自动屏蔽
作者: FENG950    时间: 2007-7-2 21:50
原帖由 xing83 于 2007-7-2 21:24 发表
发现了,编译器果然把中间那个开根号的计算给忽略了

while (i

在我的AM2 3000+ 1G内存上运行两者一样慢。

LZ,其实你的程序根本不拷机,只是循环多而已。CPU负荷量是很小的。你可以试一下改写下循环,做同样的运算试试。

using System;
namespace ConsoleApplication1
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Test
{
  public static void Main(string[] args)
  {
   /*
   Test test = new Test();
   int b = test.xun();
   Console.WriteLine(b);
   Console.ReadLine();
   */
      
   double x = 0;
   long sta = Environment.TickCount;
   for (int i=1;i<1000;i++){
    for (long l=1;l<300000;l+=4)
    {
     x=Math.Sqrt(l*l);
     x=Math.Sqrt((l+1)*(l+1));
     x=Math.Sqrt((l+2)*(l+2));
     x=Math.Sqrt((l+3)*(l+3));
    }
   }
   Console.WriteLine(Environment.TickCount - sta);
   Console.ReadLine();
   
  }
  public int xun()
  {
   int a = 0;
   int b = 9;
   for(long i = 0;i < 1000000000;i++)
   {
    a++;
   }
   return b;
  }
}
}

[ 本帖最后由 FENG950 于 2007-7-2 23:52 编辑 ]
作者: bessel    时间: 2007-7-2 21:52
往上看,
楼主自己也发现代码被忽略了,呵呵。

原帖由 FENG950 于 2007-7-2 18:34 发表
的确,有时候是有很多多余的代码需要清除,一般编译器是会使用等价的替换代码来优化那些罗嗦的代码,但像这些不直接使用结果的应该不在此列,因为编译器不能替程序员作出结论,不能说结果没有使用就一定无用,或 ...

作者: FENG950    时间: 2007-7-2 21:54
原帖由 bessel 于 2007-7-2 21:52 发表
往下看,
楼主自己也发现代码被忽略了,呵呵。

我刚运行了,一样的死慢,结果现在都没出来,没有WriteLine的。
作者: FENG950    时间: 2007-7-2 21:56
原帖由 bessel 于 2007-7-2 21:52 发表
往上看,
楼主自己也发现代码被忽略了,呵呵。

其实用不着输出什么,你什么也不输出,就单步调试一下就知道有没有执行了。
作者: bessel    时间: 2007-7-2 22:00
调试的时候当然执行了,优化 release的时候才作弊。


原帖由 FENG950 于 2007-7-2 21:56 发表

其实用不着输出什么,你什么也不输出,就单步调试一下就知道有没有执行了。

作者: zxjike    时间: 2007-7-2 22:02
提示: 作者被禁止或删除 内容自动屏蔽
作者: bessel    时间: 2007-7-2 22:02
和楼主联系一下编译选项。

原帖由 FENG950 于 2007-7-2 21:54 发表

我刚运行了,一样的死慢,结果现在都没出来,没有WriteLine的。

作者: bessel    时间: 2007-7-2 22:03
怎么说人家都不信。
:(
原帖由 zxjike 于 2007-7-2 22:02 发表
Debug模式什么都执行,Release模式编译器会去优化。生成EXE和Release模式一样。

作者: FENG950    时间: 2007-7-2 22:06
原帖由 bessel 于 2007-7-2 22:00 发表
调试的时候当然执行了,优化 release的时候才作弊。

我的现在还这样.......
再说了release只是发布模式,只是不检查代码而已,有不是什么优化。
作者: FENG950    时间: 2007-7-2 22:08
你们自己怎么不运行一下呢?
作者: bessel    时间: 2007-7-2 22:09
或许楼主的release打开了一些优化选项才这样的。

原帖由 FENG950 于 2007-7-2 22:06 发表

我的现在还这样.......
再说了release只是发布模式,只是不检查代码而已,有不是什么优化。

作者: FENG950    时间: 2007-7-2 22:13
他的程序只是不断循环其实就算不做任何运算空着也挺慢。我估计是缓存的缘故才导致CPU慢的,其实CPU核心占用是很小的。我刚才有个展开的循环,可以试下时间少了多少。
我的机子展开前后时间是15:3(秒)
作者: bessel    时间: 2007-7-2 22:13
欧手头没有.net。

只是很有以前遇到过类似的故事,那时候我们测试了一个矩阵乘法的小程序。
想知道自己写的比mkl,atlas或者lib-goto会差多少,另外想演示一下对于矩阵行和列不同顺序
读取的速度差异。


原帖由 FENG950 于 2007-7-2 22:08 发表
你们自己怎么不运行一下呢?

作者: FENG950    时间: 2007-7-2 22:16
我的那个release下的既没有WriteLine()也没有ReadLine()的到现在还在跑......
作者: zxjike    时间: 2007-7-2 22:16
提示: 作者被禁止或删除 内容自动屏蔽
作者: FENG950    时间: 2007-7-2 22:18
原帖由 zxjike 于 2007-7-2 22:16 发表
呵呵,看看LZ的程序,比较一下你自己的,你的程序这样写死活都要跑到头的,编译器想优化都不行。:)

我就是照着他的贴上去的,自己写的3秒搞定。

图上面也贴着呢,代码依稀也看得见吧?就是LZ贴的那些。模式也是release了

[ 本帖最后由 FENG950 于 2007-7-2 22:20 编辑 ]
作者: zxjike    时间: 2007-7-2 22:24
提示: 作者被禁止或删除 内容自动屏蔽
作者: FENG950    时间: 2007-7-2 22:25
原帖由 zxjike 于 2007-7-2 22:24 发表
你少最后一句赋值吧?:unsure: 我没有看见最后一句赋值。

y = y + x不是在那吗?要是我写的就直接 y += x了,我连这个也照抄了啊。
作者: zxjike    时间: 2007-7-2 22:35
提示: 作者被禁止或删除 内容自动屏蔽
作者: FENG950    时间: 2007-7-2 22:38
好了,知道慢的原因了,漏抄了一句i++;
这回是release模式,有Console.WriteLine()输出的,屏幕最后一行是时间:16ms。
作者: zxjike    时间: 2007-7-2 22:38
提示: 作者被禁止或删除 内容自动屏蔽
作者: FENG950    时间: 2007-7-2 22:45
原帖由 zxjike 于 2007-7-2 22:35 发表
晕了,原来我看得不是LZ的程序。
Sorry!FENG950 的程序肯定会跑到底的,LZ后来贴的也不存在略过的问题。
是第一页那个最后直接赋值的那个程序中间的循环会略过。
网络慢,现在才看到LZ的程序。

你说的那个和我这个等价么?

using System;
namespace ConsoleApplication1
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Test
{
  public static void Main(string[] args)
  {
   Test test = new Test();
   Console.WriteLine(test.xun());
   Console.ReadLine();
  }
  public int xun()
  {
   int a = 0;
   int b = 9;
   for(long i = 0;i < 1000000000;i++)
   {
    a++;
   }
   return b;
  }
}
}
作者: bessel    时间: 2007-7-2 22:49
瀑布汗。
16ms这个延时好像也挺短,结论?


原帖由 FENG950 于 2007-7-2 22:38 发表
好了,知道慢的原因了,漏抄了一句i++;
这回是release模式,有Console.WriteLine()输出的,屏幕最后一行是时间:16ms。

作者: zxjike    时间: 2007-7-2 22:51
提示: 作者被禁止或删除 内容自动屏蔽
作者: xing83    时间: 2007-7-2 23:07
标题: 回复 #58 FENG950 的帖子
运行的时候温度从37上到55,风扇转速从1500变成2240,应该起到了烤机效果吧。
作者: FENG950    时间: 2007-7-2 23:10
原帖由 zxjike 于 2007-7-2 22:51 发表
你的 public int xun()执行的时候也会被优化掉For循环吧,费时间的是那两句输出吧。

你试一下就知道了,如果会被优化掉的话输出基本是没有延时的。输出只是为了停住屏幕而已。
作者: FENG950    时间: 2007-7-2 23:12
原帖由 xing83 于 2007-7-2 23:07 发表
运行的时候温度从37上到55,风扇转速从1500变成2240,应该起到了烤机效果吧。

烤机的话,不光是缓存运行就行了。其它的CPU部件其实没有过多的动作。检查下运行状态,其实核心占用并不大。你可以试一下展开循环嘛,同样的运算量,一下就搞定了。
作者: zxjike    时间: 2007-7-2 23:13
提示: 作者被禁止或删除 内容自动屏蔽
作者: FENG950    时间: 2007-7-2 23:13
原帖由 bessel 于 2007-7-2 22:49 发表
瀑布汗。
16ms这个延时好像也挺短,结论?

哈哈,本来就短啊,漏抄了i++就变成恒真循环了。:a)
作者: zxjike    时间: 2007-7-2 23:18
提示: 作者被禁止或删除 内容自动屏蔽
作者: bessel    时间: 2007-7-2 23:18
16ms是哪部分的时间?

原帖由 zxjike 于 2007-7-2 23:13 发表

16MS是跑到了头,没有i++是死循环。

[ 本帖最后由 bessel 于 2007-7-2 23:25 编辑 ]
作者: zxjike    时间: 2007-7-2 23:22
提示: 作者被禁止或删除 内容自动屏蔽
作者: zxjike    时间: 2007-7-2 23:24
提示: 作者被禁止或删除 内容自动屏蔽
作者: FENG950    时间: 2007-7-2 23:27
原帖由 zxjike 于 2007-7-2 23:22 发表
以前我的组有个家伙写程序风格老是这样。
Release模式一跑就乱套,Debug还查不到,几万行原来都是if ... endif中间调用的函数,因为if空的都不执行....

就是说if();这样的?
作者: zxjike    时间: 2007-7-2 23:30
提示: 作者被禁止或删除 内容自动屏蔽
作者: zxjike    时间: 2007-7-2 23:34
提示: 作者被禁止或删除 内容自动屏蔽
作者: bessel    时间: 2007-7-2 23:35
30000*1000个浮点如果是双精度的话,时间是绝对不够的.
time =   3.150000      0.0000000E+00
   3464101623798.05  
俺的机器还不是太挫.
ifort -O3别的暂时没开.

program test
implicit none
real,dimension(2) :: t1,t2
real              :: t0,etime
integer:: i
real*8 :: x
t0=ETIME(t1)
i=1
x=0.0_8
do while(i<=300000*1000)
  x=dsqrt(dfloat(i))+x

  i=i+1
end do
t0=ETIME(t2)
print*,"time =",t2(1)-t1(1),t2(2)-t1(2)
print*,x
end program test
原帖由 zxjike 于 2007-7-2 23:30 发表

我没有跑,但是我觉得应该是全部。

作者: FENG950    时间: 2007-7-2 23:37
原帖由 bessel 于 2007-7-2 23:18 发表
16ms是哪部分的时间?

其实LZ那个程序有问题,内循环只执行一次(从0到300000),因为K没有复位,因此外循环第一次以后再进入时K都不会小于300000,所以时间其实很短,只有第一次0到300000是真正在做计算。
作者: FENG950    时间: 2007-7-2 23:37
原帖由 zxjike 于 2007-7-2 23:34 发表

这样的
if Test()=False Then
中间原来有Exit sub,注释掉了就什么都没有了。
EndIF

Private function Test() as boolean
...
...
End Function

然后Debug下Test能执行,Release下就不执行。

是VB吗?哈哈,VB完全不懂啊。
作者: bessel    时间: 2007-7-2 23:39
看到你的图了,只算了300000个用了16ms。


原帖由 FENG950 于 2007-7-2 23:37 发表

其实LZ那个程序有问题,内循环只执行一次(从0到300000),因为K没有复位,因此外循环第一次以后再进入时K都不会小于300000,所以时间其实很短,只有第一次0到300000是真正在做计算。

[ 本帖最后由 bessel 于 2007-7-2 23:42 编辑 ]
作者: FENG950    时间: 2007-7-2 23:41
原帖由 bessel 于 2007-7-2 23:39 发表
你算的是不是300000*1000个浮点,16ms那个?

就是LZ最后贴出那个,我那个你不要开玩笑了,16ms我就爽死了。
作者: bessel    时间: 2007-7-2 23:43
你的要多久?
30,000*1000试试看.
原帖由 FENG950 于 2007-7-2 23:41 发表

就是LZ最后贴出那个,我那个你不要开玩笑了,16ms我就爽死了。

作者: FENG950    时间: 2007-7-2 23:46
浮动挺大的,不展开15到11秒都有,展开试了是三秒左右。
刚刚又跑了有五秒多的。
AM2 3000+ 1G DDR2 667。

[ 本帖最后由 FENG950 于 2007-7-2 23:55 编辑 ]
作者: bessel    时间: 2007-7-3 00:03
算这个吧,
然后输出一下最后的x.
俺在linux下,如果不输出x编辑器就直接跳过了。

x=0.0_8
do while(i<=300000*1000)
    x=dsqrt(dfloat(i)*dfloat(i+1))+x
    i=i+1
end do


原帖由 FENG950 于 2007-7-2 23:46 发表
浮动挺大的,不展开15到11秒都有,展开试了是三秒左右。
刚刚又跑了有五秒多的。
AM2 3000+ 1G DDR2 667。

作者: FENG950    时间: 2007-7-3 00:19
原帖由 bessel 于 2007-7-3 00:03 发表
算这个吧,
然后输出一下最后的x.
俺在linux下,如果不输出x编辑器就直接跳过了。

x=0.0_8
do while(i

输不输出都是15秒不到,最后结果是4.50000003E+16吗?你的什么环境呢?IDE?编译器版本?

[ 本帖最后由 FENG950 于 2007-7-3 00:33 编辑 ]
作者: 动力音熊II    时间: 2007-7-3 00:56
开6个prime。。。。看你S不S。。
作者: bessel    时间: 2007-7-3 02:09
suse liux, ifort 9.1 20060519
ifort -O3 -tpp7 -xW
AMD Opteron(tm) Processor 285 2.6G
3.5秒以下。
x=4.500000030000000E+016

原帖由 FENG950 于 2007-7-3 00:19 发表

输不输出都是15秒不到,最后结果是4.50000003E+16吗?你的什么环境呢?IDE?编译器版本?

作者: zqmars    时间: 2007-7-3 03:47
原帖由 sd-iori 于 2007-7-1 23:57 发表

:shifty: MMX最低主频是166吧,,,,

P133是奔腾时代最高主频吧
66X2


零售版有166的奔腾..记得最后还有200的奔腾(很多人可以将166的超到200)不过那时候已经是MMX166/200/233都出了..我最早用过的是APPLEII和8086




欢迎光临 POPPUR爱换 (https://we.poppur.com/) Powered by Discuz! X3.4