kilin> CPU MUSEUM

CPU MUSEUM

(2016.1.22)


このページの最後に掲載した, 四則演算と関数計算を含んだ FORTRAN/C プログラムを n=1000000 で,コンパイラで最適化せずに様々な機種で実行して, 実行時間を計測しました.(2007年以降はn=100000000で実行して時間を1/100にした)

機種 year CPU,Clock OS   時間(sec) MIPS値
(PC9801)
EPSON PC286L 1987 i286 10MHz MS-DOS FOR 8000 .04
NEC PC9801NS 1990 i386SX 12MHz MS-DOS FOR 5000 .06
NEC PC9801RX 1988 i286 12MHz MS-DOS FOR 3700 .08
EPSON PC-386GS+486SLC 1991 i386DX 20MHz MS-DOS FOR 2700 .10
NEC PC9801BX 486SX 1993 i486SX 20MHz MS-DOS FOR 1500 .19
NEC PC9801NS/T+387 1992 386SL(98)20MHz+387 MS-DOS FOR 90 3
NEC PC9801RX+486GTR+S87R 1988 MS-DOS FOR 60 4
(DOS/V)
IBM PS/V 486DX2 1993 i486DX2 66MHz MS-DOS FOR  12 22
Idexon 486/66VLB 1993 i486DX2 66MHz Win95 VC4 11 26
Fujitsu FMV-499D2 1994 i486DX4 99MHz MS-DOS FOR 9 31
Toshiba PV3000 5100 1995 Pentium 100MHz Win95 VC4 3 94
Fujitsu FMV-5120NU2/W 1996 Pentium 120MHz Win95 VC4 2 .6  108
Toshiba PV3000 5100 1997 PentiumODP MMX166MHz Win95 VC4 1 .9  148
Fujitsu FMV-6200D7 1997 PentiumPro 200MHz WinNT4.0 VC4 1 .3 217
Fujitsu FMV-6300T7 1998 Pentium2 300MHz Win95 VC5   .6 469
AOpen AX6BC ProII 2000 Pentium3 450MHz Win2000 VC6   .39 722
AOpen AX6BC ProII 2001 (FSB 100->133MHz) Win2000 VC6   .29 957
SONY PCG-SR9M/K 2001 Pentium3 750MHz Win2000 VC6   .24 1180
AOPEN AX3S PRO 2001 Celeron 800MHz Win2000 VC6   .22 1272
Intel D850MD(FSB400MHz) 2001 Pentium4 1.7GHz Win2000 VC6   .20 1406
Panasonic CF-R3 2008 PentiumM 1.1GHz WinXPSP3 VC8   .196 1438
Panasonic CF-R7 2008 Core2 Duo 1.06GHz U7500 WinXPSP3 VC8   .196 1439
AOPEN AX4B PRO-533 2002 Pentium4 2.0AGHz Win2000 VC7   .17 1684
ASUS P4P800SE 2008 Pentium4 3.0GHz WinXPSP3 VC8   .127 2214
ASUS N4L-VM-DH 2007 Core Duo 1.83GHz WinXP VC8   .118 2397
FOXCONN G31MX-K 2008 Core2 Duo 3.16GHz E8500 WinXPSP3 VC8   .056 5020
FOXCONN G31MX-K*1 2009 Core2 Duo 3.16GHz E8500 CentOS5.3 gcc   .042 6673
FOXCONN G31MX-K*1 2010 Core2 Duo 3.16GHz E8500 CentOS5.4x64 gcc   .063 4456
FOXCONN G31MX-K 2008 Core2 Duo 3.33GHz E8600 WinXPSP3 VC8   .052 5412
Dospara Monarch 2010 Core i7-920 2.67GHz WinXPSP3 VC8   .051 5528
Dospara Monarch 2011 Core i7-2600 3.40GHz Win7SP1x64 VC10   .040 6987
NEC LZ750HS 2012 Core i7-3517U 1.90GHz Win7SP1x64 VC10   .050 5613
Dospara Galleria 2013 Core i7-4771 3.50GHz Win7SP1x64 VC10   .038 7452
        VC14x64   .040 7026  
Dospara Monarch LK 2016 Core i7-6700K 4.00GHz CentOS7.2x64 gcc   .036 7736  
         
自作Gigabyte990FXA-UD3# 2014 AMD FX-8320 4.4GHz Win7SP1x64 VC10   .042 6704  
SONY VJP1111 2014 Core i5-4210U 1.70GHz Win7SP1x64 VC10   .056 5070  
自作GigabyteGA-X99## 2015 Core i7-5820K 4.2GHz Win8.1x64 VC10   .033 8356  
自作GigabyteGA-X99## 2015 Core i7-5820K 3.3GHz Win8.1x64 VC10   .042 6664  
Dospara MagnateGE 2015 Core i7-4790K 4.0GHz  Win7SP1x64 VC10   .033 8557  
DG-M01IW 2015 Atom Z3735F 1.33GHz Win10 VC10   .147 1913  
 (MAC)
MacPlus$$ 1986 68000 7.83MHz Sys6.0.7 MPW 17956   .02
PowerMac 7100/66AV 1997 PowerPC601 66MHz MacOS7.5.5$   3 .7 77
iMac(Rev.B)$$ 1998 PowerPC750 233MHz LinuxPPC gcc 1 .4 201
iMac(Rev.B)$$ 1998 PowerPC750 233MHz MacOS8.5 MPW   .46 603
MacBook Air# 2012 Core i7-3667U 2GHz OSX 10.9.2 64bit LLVM   .049 5637  
(kilin)
DELL PowerEdge T300 2009 Xeon E3113 3.00GHz CentOS5.2 gcc .044 6342
DELL PowerEdge T320 2014 Xeon E5-2440 2.40GHz CentOS6.5x64 gcc .054 5186
(WS)
SUN 4/1+ 1991   SunOS cc 12 .8 22
SUN Sparc Classic 1992   SunOS cc 8 .7 32
SUN Sparc5     SunOS cc 3 94
Toshiba AS4035 1995 Sparc 110MHz SunOS gcc 4 .9 57
Fujitsu S-7/7000U 300  1997 UltraSparc 167MHz Sola2.5.1 gcc 2 .2? 128
DELL PowerEdge T105 2007 Opteron 1210 1.8GHz CentOS5.3 gcc .078 3606
DELL PowerEdge1950 2008 Xeon E5335 2.00GHz CentOS5.2 gcc .073 3873
(大型汎用機)
FACOM M760/8 1991   UNIX  cc 6 47
FACOM M1700(Shizuoka) 1994 (RAM128MB, HDD32GB) UNIX  cc 5 56
FACOM M1800(RIKEN) 1990   UNIX  cc 1 280
Cray-f(Livermore) 1991   UNIX  cc .003 90800
  1. 機種名が斜体のものはノート(ラップトップ)型。
  2. OSの右の欄はコンパイラ。FORは,MS-FORTRAN Ver4。VC4は,Visual C++4.0. VC5は,Visual C++5.0.VC6は,Visual C++6.0SP4.VC7は,Visual Sudio.NET。
  3. UNIXでのコンパイルは,cc -lm -O0 cpu.c。そして,time ./a.out とやると,実行時間が正確に測れます。
  4. Linuxでのコンパイルは,gcc -lm -O0 cpu.c。そして,time ./a.out とやると,実行時間が正確に測れます。gccがインストールされていない場合はCentOSならyum install gcc。
  5. MS-DOS,WIN95/NTなどで,timeに相当するやり方はあるんでしょうか? どなたかご存知でしたら教えて下さい。
  6. MIPS値とは,Million Instructions per Secondsの頭文字で,1秒間に実行できる命令数(100万単位).岩波情報科学辞典より.表のMIPS値は,SUN4/1+の22MIPSを既知として単純に比例計算したもので, あくまでも参考。
  7. *1 32ビットOSと64ビットOSでは,実行時間が1.5倍違う事がわかる。
  8. ?WorkStationでこのプログラムを実行する時間は, nには比例しないようです???
  9. $ Kozeki様 National Research Institute of Fire and Disaster)より。 コンパイラはSYMANTECH C++ Ver8.02。メールありがとうございました(97/6/2)。
  10. $$ 中西様(卒業生)より.MPW=Apple 純正の開発環境。メールありがとうございました(99/6/23)。
  11. # 千葉様(北里1年生)より。LLVM=Apple LLVM version 5.1 (clang-503.0.40)。(2014/4/23)
  12. ## 山本様(北里大学一般教育部情報科学単位TA)より。4.2GHzはオーバークロック。(2015/2/7)

FORTRAN
      implicit real*8(a-h,o-z)
write(6,*) 'n ?'
read(5,*) n
do 10 i=1,n
x=i
y=sin(x)/x+x
10 continue
write(*,*) 'y=', y
end

C
#include "stdio.h"
#include "math.h"
#include "time.h"
void main()
{
int i,n; double x,y,t;
clock_t start,finish;
printf("n ?\n");
scanf("%d",&n);
start=clock();
for(i=1;i<=n;i++){
x=i;
y=sin(x)/x+x;
}
finish=clock();
t=(double)(finish-start)/CLOCKS_PER_SEC;
printf("y=%f\n", y);
printf("cpu time=%lfsec, about %lfMIPS\n",t,22*12.8/t*n/1000000);
getchar(); getchar();
}

この博物館に展示できる情報を, へお寄せ下さい。以下は上のソースをコンパイルしたWindows95/98/NT/2000/XP/Vista/7/8/10用実行ファイルです。
コンパイラ オプション 実行ファイルx86 x64
Visual Studio 2015 (VC14) /Od/GS- cpu.2015.32.exe cpu.2015.64.exe
Visual Studio 2010 (VC10)   cpu.2010.32.exe   
Visual Studio 2008 (VC9)   cpu.2008.exe   
Visual Studio 2005 (VC8)   cpu.2005.exe  
Visual Studio.NET 2002 (VC7)   cpu.exe  
Visual C++ 6.0Sp4 (VC6)   cpu.vc6.exe