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)

> Давайте померяемся

Интересная ее особенность в том, что amd-шные процы в ней выглядят очень хорошо.

Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz



Foreman.jpg

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

Ну, лаптоп особенно-то не повыбираешь.

unanimous ★★★★★
() автор топика

она считает только на одном ядре. расходимся ;)

ciiccii
()
Ответ на: комментарий от timur_dav

Ничё ставить не надо. GCC вполне достаточно.

На 10^8 я не замахнулся, но 10 миллионов на Debian Lenny 2.6.26-2-686 + gcc 4.3.2 и AMD Athlon64 3200+ считало 56 секунд

adriano32 ★★★
()
gcc version:	gcc (Gentoo 4.4.5 p1.2, pie-0.4.5) 4.4.5
Architecture:	GenuineIntel
Hardware:	Intel(R) Core(TM)2 Duo CPU     E7400  @ 2.80GHz
No of cores:	2
---------------------------------------------------------------
#terms=7051366, depth=24
sieve   time =  1.600
..................................................

bs      time = 265.170
   gcd  time =  0.000
div     time = 24.380
sqrt    time = 13.610
mul     time =  8.390
total   time = 313.310
   P size=145605885 digits (1.456059)
   Q size=145605879 digits (1.456059)
gcc version:	gcc (Gentoo 4.4.5 p1.2, pie-0.4.5) 4.4.5
Architecture:	AuthenticAMD
Hardware:	AMD Phenom(tm) II X4 965 Processor 3.72GHz
No of cores:	4
---------------------------------------------------------------
#terms=7051366, depth=24
sieve   time =  1.080
..................................................

bs      time = 116.260
   gcd  time =  0.000
div     time = 10.970
sqrt    time =  6.100
mul     time =  3.910
total   time = 138.390
   P size=145605885 digits (1.456059)
   Q size=145605879 digits (1.456059)

неожиданно, т.к. во-первых, это k7, а во-вторых, он всё время занят ч-н

gcc version:    gcc (Gentoo 4.4.5 p1.2, pie-0.4.5) 4.4.5
Architecture:   AuthenticAMD
Hardware:       AMD Athlon(tm) 64 Processor 3500+
No of cores:    1
---------------------------------------------------------------
#terms=7051366, depth=24
sieve   time =  2.780
..................................................

bs      time = 234.250
   gcd  time =  0.000
div     time = 24.430
sqrt    time = 13.510
mul     time =  8.730
total   time = 283.870
   P size=145605885 digits (1.456059)
   Q size=145605879 digits (1.456059)

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

Да, ты прав. Видать она у меня с чем-то вытянулась, а я забыл или не заметил.

adriano32 ★★★
()

Как-то так.

[quote] ./gmp-chudnovsky 100000000
#terms=7051366, depth=24
sieve time = 1.060
..................................................

bs time = 159.390
gcd time = 0.000
div time = 14.184
sqrt time = 9.329
mul time = 6.148
total time = 190.183
P size=145605885 digits (1.456059)
Q size=145605879 digits (1.456059)

gcc version: gcc (Gentoo 4.6.0 p1.2, pie-0.4.5) 4.6.0
Architecture: GenuineIntel
Hardware: Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz
No of cores: 2
[/quote]

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

[соde=plain]сразу текст

ну во-первых, у меня тут много чего запущено и работает, немного в своп ушло =), потом gcc сильно разный...

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

10 миллионов давай ) Я тоже 100 миллионов не стал запускать - жалко стало.

adriano32 ★★★
()
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

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

bs      time = 130.656
   gcd  time =  0.000
div     time = 11.977
sqrt    time =  7.844
mul     time =  5.128
total   time = 157.489
   P size=145605885 digits (1.456059)
   Q size=145605879 digits (1.456059)
gcc version:    gcc (Gentoo 4.5.2 p1.0, pie-0.4.5) 4.5.2
Architecture:   GenuineIntel
Hardware:       Intel(R) Core(TM) Duo CPU      T2450  @ 2.00GHz
No of cores:    2

23:28:56 $ ./gmp-chudnovsky 100000000
#terms=7051366, depth=24
sieve   time =  2.037
...........................^C
23:41:55 $
du_hast
()
Ответ на: комментарий от Eichhorn

для глобала наверное лучший,
у меня так

CFLAGS="-march=core2 -mtune=core2 -O2 -mfpmath=sse -msse4.1 -pipe"
CXXFLAGS="${CFLAGS}"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
вероятно, gcc 4.6 такой шустрый =)

backbone ★★★★★
()

Athlon II x2 250 @ 3.21GHz

cc gmp-chudnovsky.c -O3 -ffast-math -march=native -lm -lgmp -o gmp-chudnovsky

@madoka~/tmp>./gmp-chudnovsky 100000000
#terms=7051366, depth=24
sieve   time =  1.621
..................................................

bs      time = 120.199
   gcd  time =  0.000
div     time = 12.477
sqrt    time =  8.019
mul     time =  4.657
total   time = 147.077
   P size=145605885 digits (1.456059)
   Q size=145605879 digits (1.456059)
GCC 4.5.2, x86-64. Оно жрёт >гига RAM (DDR3, естественно).

x3al ★★★★★
()
Ответ на: Athlon II x2 250 @ 3.21GHz от x3al

AMD рвет всех :))

Да, рамы оно жрет порядка 1 Гб, это верно.

unanimous ★★★★★
() автор топика

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

что-то мне подсказывает, что с этими опциями надо собирать libgmp, а не саму программу, чтобы они как-то повлияли на результат

Harald ★★★★★
()
# gcc -march=amdfam10 -O3 -fomit-frame-pointer -pipe -mfpmath=sse -mmmx -m3dnow -mabm -msse -msse2 -msse3 -msse4a -funroll-all-loops -ffast-math  -lm -lgmp gmp-chudnovsky.c -o gmp-chudnovsky
# ./gmp-chudnovsky 100000000
#terms=7051366, depth=24
sieve   time =  1.394
..................................................

bs      time = 103.556
   gcd  time =  0.000
div     time =  9.109
sqrt    time =  5.951
mul     time =  3.952
total   time = 124.031
   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:   AuthenticAMD
Hardware:       AMD Phenom(tm) II X6 1075T Processor
No of cores:    6
#gcc -march=native -O3 -mmmx -msse -msse2 -msse3 -m3dnow -ftree-vectorize -mfpmath=sse -pipe  -lm -lgmp gmp-chudnovsky.c -o 
mp-chudnovsky
#./gmp-chudnovsky 100000000
#terms=7051366, depth=24
sieve   time =  2.815
..................................................

bs      time = 202.458
   gcd  time =  0.000
div     time = 19.104
sqrt    time = 12.573
mul     time =  8.389
total   time = 245.504
   P size=145605885 digits (1.456059)
   Q size=145605879 digits (1.456059)

gcc version:    gcc (Gentoo 4.5.2 p1.0, pie-0.4.5) 4.5.2
Architecture:   AuthenticAMD
Hardware:       AMD Turion(tm) X2 Ultra Dual-Core Mobile ZM-82
No of cores:    2
LebedevRI
()
$ ./gmp-chudnovsky 100000000
#terms=7051366, depth=24
sieve   time =  1.560
..................................................

bs      time = 157.237
   gcd  time =  0.000
div     time = 14.785
sqrt    time =  8.261
mul     time =  5.268
total   time = 187.187
   P size=145605885 digits (1.456059)
   Q size=145605879 digits (1.456059)

AMD Athlon II X2 240 (2800 MHz), DDR3 4 GB, Debian 6.0 (amd64)

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

>вероятно, gcc 4.6 такой шустрый =)

От версии gmp сильнее зависит. libastral подсказывает, что у него ~5.0.2, а у тебя 4.3.2

madcore ★★★★★
()

Странно, почему у меня около 800.

gcc version:	gcc (Gentoo 4.4.5 p1.2, pie-0.4.5) 4.4.5
Architecture:	GenuineIntel
Hardware:	Intel(R) Core(TM)2 Duo CPU     T6600  @ 2.20GHz
No of cores:	2
vertexua ★★★★★
()
Ответ на: комментарий от pacify

Краткая таблица результатов

    Time     Arch   Vendor Model
----------- -----------------------------------------------------
   1  124.03 ??     AMD    AMD Phenom(tm) II X6 1075T Processor
   2  138.39 ??     AMD    AMD Phenom(tm) II X4 965 Processor 3.72
   3  147.08 x86-64 AMD    Athlon II x2 250 @ 3.21GHz
   4  157.49 ??     AMD    AMD Athlon(tm) II X3 440 Processor @ 3.
   5  180.17 x86_64 Intel  Intel(R) Core(TM) i5-2520M CPU @ 2.50GH
   6  190.18 ??     Intel  Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00
   7  245.50 ??     AMD    AMD Turion(tm) X2 Ultra Dual-Core Mobil
   8  283.87 ??     AMD    AMD Athlon(tm) 64 Processor 3500+
   9  313.31 ??     Intel  Intel(R) Core(TM)2 Duo E7400 CPU @ 2.80
  10  187.19 x86_64 AMD    AMD Athlon II X2 240 (2800 MHz)
unanimous ★★★★★
() автор топика
Ответ на: Краткая таблица результатов от unanimous
   Time    Arch   Vendor Model
-------------------------------------------------------------
  1 124.03 ??     AMD    AMD Phenom(tm) II X6 1075T Processor
  2 138.39 ??     AMD    AMD Phenom(tm) II X4 965 Processor 3.
  3 147.08 x86-64 AMD    Athlon II x2 250 @ 3.21GHz
  4 157.49 ??     AMD    AMD Athlon(tm) II X3 440 Processor @
  5 180.17 x86_64 Intel  Intel(R) Core(TM) i5-2520M CPU @ 2.50
  6 187.19 x86_64 AMD    AMD Athlon II X2 240 (2800 MHz)
  7 190.18 ??     Intel  Intel(R) Core(TM)2 Duo CPU E8400 @ 3.
  8  245.5 ??     AMD    AMD Turion(tm) X2 Ultra Dual-Core Mob
  9 283.87 ??     AMD    AMD Athlon(tm) 64 Processor 3500+
 10 313.31 ??     Intel  Intel(R) Core(TM)2 Duo E7400 CPU @ 2.
unanimous ★★★★★
() автор топика
Ответ на: комментарий от x3al

Еще новые iCore Sandy Bridge круты. Правда, возможно из-за динанического оверклокинга.

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

>что-то мне подсказывает, что с этими опциями надо собирать libgmp, а не саму программу, чтобы они как-то повлияли на результат

Именно так, сама писькомерка ничего не считает, показывает лишь скорость libgmp на одном ядре. Флаги едва-ли чем помогут, ибо много оптимизаций на асме, а вот версия 5 сильно быстрее 4.х

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

> что-то мне подсказывает, что с этими опциями надо собирать libgmp, а не саму программу, чтобы они как-то повлияли на результат

А ты попробуй, чего умничать-то? У мнея разница почти в 20 секунд с оптимизациями и без.

unanimous ★★★★★
() автор топика
 ./gmp-chudnovsky 100000000
#terms=7051366, depth=24
sieve   time =  1.607
..................................................

bs      time = 63.611
   gcd  time =  0.000
div     time =  0.000
sqrt    time =  0.000
mul     time =  0.000
total   time = 65.218
   P size=145605885 digits (1.456059)
   Q size=145605879 digits (1.456059)
gcc version:    gcc (GCC) 4.5.2
Architecture:   i386 (врет же)
Hardware:       AMD Athlon(tm) 64 X2 Dual Core Processor 4800+
No of cores:    2


anonymous_sama ★★★★★
()

devl547@ideapad ~/Projects/pi $ ./gmp-chudnovsky 100000000
#terms=7051366, depth=24
sieve time = 1.191
..................................................

bs time = 242.539
gcd time = 0.000
div time = 21.156
sqrt time = 13.855
mul time = 8.986
total time = 287.798
P size=145605885 digits (1.456059)
Q size=145605879 digits (1.456059)

gcc version:   gcc (Gentoo 4.6.0 p1.2, pie-0.4.5) 4.6.0
Architecture:   GenuineIntel
Hardware:   Intel(R) Core(TM) i5 CPU M 430 @ 2.27GHz
No of cores:   4

devl547 ★★★★★
()

бред какой

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

bs      time = 220.100
   gcd  time =  0.000
div     time = 20.280
sqrt    time = 11.080
mul     time =  6.830
total   time = 259.410
   P size=145605885 digits (1.456059)
   Q size=145605879 digits (1.456059)

model name	: Intel(R) Core(TM) i5 CPU         650  @ 3.20GHz
vsemprivet
()
Ответ на: комментарий от Karapuz

> Почему нельзя дать ссылку на нормальную прогу

Потому что все искали исходник, а не тухлый бинарь.

pacify ★★★★★
()

Своеобразный антирекорд:

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

bs      time = 1494.709
   gcd  time =  0.000
div     time = 393.335
sqrt    time = 72.911
mul     time = 48.754
total   time = 2012.769
   P size=145605885 digits (1.456059)
   Q size=145605879 digits (1.456059)

gcc version:	gcc (GCC) 4.3.2 20081105 (Red Hat 4.3.2-7)
Architecture:	i386
Hardware:	Intel(R) Pentium(R) M processor 1.73GHz
No of cores:	1

Старый лаптоп под Fedora 10

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

тоже об этом подумал... проверим, dev-libs/gmp-5.0.2

gcc version:	gcc (Gentoo 4.4.5 p1.2, pie-0.4.5) 4.4.5
Architecture:	AuthenticAMD
Hardware:	AMD Phenom(tm) II X4 965 Processor
No of cores:	4
-------------------------------------------------------------
#terms=7051366, depth=24
sieve   time =  1.120
..................................................

bs      time = 95.540
   gcd  time =  0.000
div     time =  8.380
sqrt    time =  5.460
mul     time =  3.660
total   time = 114.230
   P size=145605885 digits (1.456059)
   Q size=145605879 digits (1.456059)
114 против 138 на gmp-4.3.2, Ваша правда! =)

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

Ты сам по своей ссылке ходил? Разницу в скорости 4.2, 4.3 и 5.0 видел? Что считает оно на одном ядре видел?

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

И что? У некоторых одноядерных процов есть функция динамического оверклокинга, большие объемы процессорного кэша. Интересно помериться также скоростью на одинаковом железе, но разных дистрибутивах/версиях софта. В конце-концов, меренье пиписьками какраз и подразумевает «у кого самая длинная», а не «у меня маленькая, патаму что софт старый». В конце-концов, какой смысл мерить скорость на синтетике, если важнее скорость на конкрентых задачах?

В частности, вот на этой задаче выяснилось, что хваленая core2 и последователи не такие уж и крутые и у AMD есть еще порох в пороховницах.

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

Я говорил к тому, что изначально интересовлся количеством ядер итп, но игнорировал версию библиотеки, а замер без этого совершенно не то и не с тем сравнивает.

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

>большие объемы процессорного кэша.
В треде не видно особого влияния кэша, кстати. У x3-атлона 512k L2-кэша, у x2-атлонов — 1024k. И x3-атлон @3Ghz между 2.8 и 3.2-гигагерцевыми x2.
Феномы впереди за счёт динамического оверклокинга, да.

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

Я просто поленился писать код для определения версии библиотеки, т.к. как это сделать кроссдистрибутивно я не знаю. Хотя ты совершенно прав, версию надо указывать.

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