LINUX.ORG.RU
ФорумTalks

[GMP][Процессоросрач] Давайте померяемся что ли...


0

1

В новости имеется интересная ссылочка на программку расчета числа Pi. Интересная ее особенность в том, что amd-шные процы в ней выглядят очень хорошо. Предлагаю лоровцам померяться длиной проца

Инструкции:

1. Компиляем (флаги выбираем по вкусу)

gcc -O3 -ffast-math -lm -lgmp gmp-chudnovsky.c -o gmp-chudnovsky

2. Запускаем

./gmp-chudnovsky 100000000

3. Постим результат

4. Приводим детали (по вкусу)

echo -en "gcc version:\t"; gcc --version | sed -n '1p'; \
echo -en "Architecture:\t"; uname -i; \
echo -en "Hardware:\t"; cat /proc/cpuinfo | grep 'model name' | tee >(wc -l)  | sed -n '1s/.*:[ ]*\(.*\)/\1/p;$s/\(.*\)/No of cores:\t\1/p'

Вот мои результаты:

$ ./gmp-chudnovsky 100000000
#terms=7051366, depth=24
sieve   time =  0.950
..................................................

bs      time = 154.270
   gcd  time =  0.000
div     time = 13.140
sqrt    time =  7.300
mul     time =  4.460
total   time = 180.170
   P size=145605885 digits (1.456059)
   Q size=145605879 digits (1.456059)

gcc version:	gcc (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2
Architecture:	x86_64
Hardware:	Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
No of cores:	4

★★★★★

Последнее исправление: unanimous (всего исправлений: 1)

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

Я думаю, кэш на интеле может влиять более существенно

unanimous ★★★★★
() автор топика
Ответ на: комментарий от backbone

Я дома еще раз замерю. В первый раз я намерил более 10 секунд на фоне 180

unanimous ★★★★★
() автор топика
Ответ на: комментарий от unanimous

На RHEL/CentOS/Fedora это делается как

rpm -qi gmp | grep 'Version'
unanimous ★★★★★
() автор топика
gcc version:	gcc (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2
Architecture:	x86_64
Hardware:	Intel(R) Pentium(R) 4 CPU 3.00GHz
No of cores:	2 (HyperThreading)


$./gmp-chudnovsky 100000000
#terms=7051366, depth=24
sieve   time =  2.950
..................................................

bs      time = 702.660
   gcd  time =  0.000
div     time = 56.370
sqrt    time = 36.200
mul     time = 23.840
total   time = 822.260
   P size=145605885 digits (1.456059)
   Q size=145605879 digits (1.456059)
mors
()

Есть проблема - под 64-битные платформы оно может компилиться с ошибками.

Кстати, любителям помериться производительностью ЦП советую хороший бенчмарк: http://browse.geekbench.ca/ Объективно, в отличие bogomips-ов и оффтопичных «индексов производительности».

segfault ★★★★★
()
% gcc -march=corei7 -mtune=corei7 -Ofast -ffast-math -lm -lgmp gmp-chudnovsky.c -o gmp-chudnovsky
% ./gmp-chudnovsky 100000000
#terms=7051366, depth=24
sieve   time =  1.573
..................................................

bs      time = 543.678
   gcd  time =  0.000
div     time = 49.986
sqrt    time = 30.948
mul     time = 22.149
total   time = 648.464
   P size=145605885 digits (1.456059)
   Q size=145605879 digits (1.456059)

# пересобрал GMP 5.0.2 с -march=corei7 -mtune=corei7 -O2

% gcc -march=corei7 -mtune=corei7 -Ofast -ffast-math -lm -lgmp gmp-chudnovsky.c -o gmp-chudnovsky
% ./gmp-chudnovsky 100000000
#terms=7051366, depth=24
sieve   time =  1.649
..................................................

bs      time = 415.893
   gcd  time =  0.000
div     time = 21.682
sqrt    time = 14.032
mul     time =  9.163
total   time = 462.506
   P size=145605885 digits (1.456059)
   Q size=145605879 digits (1.456059)

----------

gcc version:	gcc (GCC) 4.6.0 20110429 (prerelease)
Architecture:	GenuineIntel
Hardware:	Intel(R) Core(TM) i3 CPU       M 380  @ 2.53GHz
No of cores:	4



Итого, имеем 40% прирост от пересобранной GMP.

age
()
[ megabaks@desktop ] ~/C++ $ gcc -O2 -march=core2 -mtune=generic -mfpmath=sse -msse4.1 -fomit-frame-pointer -pipe -lm -lgmp gmp-chudnovsky.c -o gmp-chudnovsky
[ megabaks@desktop ] ~/C++ $ ./gmp-chudnovsky 100000000
#terms=7051366, depth=24
sieve   time =  0.972
..................................................

bs      time = 64.560
   gcd  time =  0.000
div     time =  0.000
sqrt    time =  0.000
mul     time =  0.000
total   time = 65.532
   P size=145605885 digits (1.456059)
   Q size=145605879 digits (1.456059)
[ megabaks@desktop ] ~/C++ $ 

E7200 (3.2GHz)
dev-libs/gmp-5.0.1
gcc-4.5.2 (у gmp тоже)

megabaks ★★★★
()
Ответ на: комментарий от megabaks

а теперь с привязкой ко 2-ому ядру и приоритетом -19

[ root@desktop ] C++ # schedtool -a 1 -n -19 -e ./gmp-chudnovsky 100000000
#terms=7051366, depth=24
sieve   time =  0.965
..................................................

bs      time = 63.750
   gcd  time =  0.000
div     time =  0.000
sqrt    time =  0.000
mul     time =  0.000
total   time = 64.715
   P size=145605885 digits (1.456059)
   Q size=145605879 digits (1.456059)
[ root@desktop ] C++ # 
[вброс]
итого:
моя гента на допотопной бюджетной корке порвала фсех! :3
[/вброс]

megabaks ★★★★
()

какие-то странные результаты по ссылке...

megabaks ★★★★
()
Ответ на: комментарий от megabaks

вот и time

[ megabaks@desktop ] ~/C++ $ time schedtool -a 1 -e ./gmp-chudnovsky 100000000
#terms=7051366, depth=24
sieve   time =  0.970
..................................................

bs      time = 63.927
   gcd  time =  0.000
div     time =  0.000
sqrt    time =  0.000
mul     time =  0.000
total   time = 64.897
   P size=145605885 digits (1.456059)
   Q size=145605879 digits (1.456059)

real	7m41.124s
user	1m4.898s
sys	6m32.471s
[ megabaks@desktop ] ~/C++ $ 

megabaks ★★★★
()
$ time schedtool -a 1 -e ./gmp-chudnovsky 100000000
#terms=7051366, depth=24
sieve   time =  1.832
..................................................

bs      time = 130.672
   gcd  time =  0.000
div     time = 11.933
sqrt    time =  7.808
mul     time =  5.156
total   time = 157.493
   P size=145605885 digits (1.456059)
   Q size=145605879 digits (1.456059)

real    2m49.077s
user    2m37.494s
sys     0m2.368s

gcc version:    gcc (Gentoo 4.5.2 p1.0, pie-0.4.5) 4.5.2
Architecture:   AuthenticAMD
Hardware:       AMD Athlon(tm) II X3 440 Processor @ 3.0GHz
No of cores:    3
du_hast
()
Ответ на: комментарий от segfault

>Кстати, любителям помериться производительностью ЦП советую хороший бенчмарк: http://browse.geekbench.ca/ Объективно, в отличие bogomips-ов и оффтопичных «индексов производительности».

Там какие-то бинарники.

madcore ★★★★★
()
Ответ на: комментарий от segfault

Рекомендую деревянную линейку. Обьективно, надежно, универсально и не врет.

devl547 ★★★★★
()
Ответ на: комментарий от megabaks
time ./gmp-chudnovsky 100000000 
#terms=7051366, depth=24
sieve   time =  1.592
..................................................

bs      time = 123.897
   gcd  time =  0.000
div     time = 10.824
sqrt    time =  7.310
mul     time =  5.054
total   time = 148.772
   P size=145605885 digits (1.456059)
   Q size=145605879 digits (1.456059)
./gmp-chudnovsky 100000000  148.77s user 2.92s system 98% cpu 2:33.60 total

Разница — в пределах погрешности. В этот раз залезло в своп, отсюда часть тормозов.

x3al ★★★★★
()
Ответ на: комментарий от segfault

язабан

./geekbench_x86_64
Geekbench 2.1.13 : http://www.primatelabs.ca/geekbench/

Geekbench is in tryout mode.

Your copy of Geekbench is in tryout mode and 64-bit benchmarks are
only available in registered copies of Geekbench.

If you'd like to purchase Geekbench you can do so online:

      http://store.primatelabs.ca/

If you've already purchased Geekbench, enter your license information
with the following command line:

      ./geekbench_x86_64 -r <email> <serial>
madcore ★★★★★
()
Ответ на: язабан от madcore

Писец... не знал, ибо запускал 32-битную, а там все норм.

segfault ★★★★★
()
18 июня 2011 г.
#terms=7051366, depth=24
sieve   time =  1.882
..................................................

bs      time = 261.471
gcd  time =  0.000
div     time = 23.365
sqrt    time = 15.512
mul     time = 10.113
total   time = 312.519
   P size=145605885 digits (1.456059)
   Q size=145605879 digits (1.456059)
gcc version:	gcc (Gentoo 4.5.2 p1.1, pie-0.4.5) 4.5.2
Architecture:	GenuineIntel
Hardware:	Intel(R) Core(TM)2 Duo CPU     E6550  @ 2.33GHz
No of cores:	2

Правда у меня gcc собирается, но это надеюсь ничего.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.