LINUX.ORG.RU

Померяемся процессорами? Скорость деления.


0

2
#include <stdio.h>
#define U64 unsigned long long
int main() {
  U64 i;
  // (gcc-4.3) 100 млрд. - 44 минуты (2640 секунд);
  // 10 млрд. - 3 минуты 39 секунд (219 секунд);
  // 10 млрд. - 3 минуты 40 секунд (220 секунд);
  // 1 млрд. - 20.6 секунды;
  // 100 млн. - 1.946 секунды;
  // up to 1.8*10^20 (18 446 744 073 709 551 616)
  U64 N = 1000000000ULL; // 1 млрд.
  U64 k = 0;
  for (i = 0; i < N; i++) {
    k += i%10; // последняя цифра
  }
  printf ("%llu\n", k);
  return 0;
}
gcc-4.3 -Wall -march=athlon64 -O3 -o _${NAME} ${NAME}.c
$ time ./_matrix 
4500000000

real    0m20.608s
user    0m20.609s
sys     0m0.000s

Время выполнения для N = 1 млрд - 20.6 секунды (см. выше).

CPU: Athlon II X2 240, 2800 MHz (L2 2x1024kB), DDR3 1333 MHz 9-9-9-24.

★★★★★
Ответ на: комментарий от anonymous

> Intel Core i5 2500

32-битная система?

pacify ★★★★★
() автор топика
Ответ на: комментарий от anonymous
$ gcc-4.4 -Wall -march=native -o test test.c 
$ time ./test
4500000000

real    0m3.555s
user    0m3.550s
sys     0m0.002s

$ gcc-4.4 -Wall -march=native -O3 -o test test.c 
$ time ./test 
4500000000

real    0m1.899s
user    0m1.897s
sys     0m0.001s

$ gcc-4.4 -Wall -march=native -O2 -funroll-loops -o test test.c 
$ time ./test 
4500000000

real    0m1.723s
user    0m1.721s
sys     0m0.000s
fluorite ★★★★★
()
Ответ на: комментарий от anonymous

Нисколько не медленней, чем 2600K :)

Хотя и в VirtualBox, который запущен в 32bit системе :))))))

// b.

anonymous
()
Ответ на: комментарий от CTAPK

Хех

BYTEmark* Native Mode Benchmark ver. 2 (10/95)
Index-split by Andrew D. Balsa (11/97)
Linux/Unix* port by Uwe F. Mayer (12/96,11/97)

TEST                : Iterations/sec.  : Old Index   : New Index
                    :                  : Pentium 90* : AMD K6/233*
--------------------:------------------:-------------:------------
NUMERIC SORT        :          528.48  :      13.55  :       4.45
STRING SORT         :          43.399  :      19.39  :       3.00
BITFIELD            :       1.212e+08  :      20.79  :       4.34
FP EMULATION        :          103.68  :      49.75  :      11.48
FOURIER             :          4796.6  :       5.46  :       3.06
ASSIGNMENT          :          11.225  :      42.71  :      11.08
IDEA                :            1775  :      27.15  :       8.06
HUFFMAN             :          826.12  :      22.91  :       7.32
NEURAL NET          :          9.4787  :      15.23  :       6.40
LU DECOMPOSITION    :          357.52  :      18.52  :      13.37
==========================ORIGINAL BYTEMARK RESULTS==========================
INTEGER INDEX       : 25.608
FLOATING-POINT INDEX: 11.544
Baseline (MSDOS*)   : Pentium* 90, 256 KB L2-cache, Watcom* compiler 10.0
==============================LINUX DATA BELOW===============================
CPU                 : 
L2 Cache            : 
OS                  : Linux 2.6.38-gentoo
*** buffer overflow detected ***: ./nbench terminated
======= Backtrace: =========
[0x1004f768]
[0x1004f724]
[0x1004ef74]
[0x1003a934]
[0x100612ac]
[0x1004f024]
[0x1004ef54]
[0x10003ac4]
[0x1002505c]
[0x1002518c]
======= Memory map: ========
00100000-00103000 r-xp 00000000 00:00 0          [vdso]
10000000-100d2000 r-xp 00000000 03:06 1055221    /home/madcore/nbench-byte-2.2.3/nbench
100e1000-100e3000 rw-p 000d1000 03:06 1055221    /home/madcore/nbench-byte-2.2.3/nbench
100e3000-10146000 rwxp 00000000 00:00 0          [heap]
48000000-48001000 rw-p 00000000 00:00 0 
bfb61000-bfb82000 rw-p 00000000 00:00 0          [stack]
Аварийный останов

madcore ★★★★★
()
$ time ./a.out
4500000000

real    0m0.937s
user    0m3.663s
sys     0m0.002s
include <stdio.h>                                                                                                                             
#include <omp.h>                                                                                                                               
#define U64 unsigned long long                                                                                                                 
int main() {                                                                                                                                   
  //U64 i;                                                                                                                                     

  U64 N = 1000000000ULL; .                                                                                                           
  U64 k = 0;                                                                                                                                   
#pragma omp parallel for reduction(+:k)                                                                                                        
  for (int i = 0; i < N; i++) {                                                                                                                
    k += i%10;                                                                                                         
  }                                                                                                                                            
  printf ("%llu\n", k);                                                                                                                        
  return 0;                                                                                                                                    
} 
cat /proc/cpuinfo | grep name
model name      : Intel(R) Xeon(R) CPU            5120  @ 1.86GHz
model name      : Intel(R) Xeon(R) CPU            5120  @ 1.86GHz
model name      : Intel(R) Xeon(R) CPU            5120  @ 1.86GHz
model name      : Intel(R) Xeon(R) CPU            5120  @ 1.86GHz
sS ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.