dadv: (chuck)
[personal profile] dadv

Повторил старый тест на сегодняшней FreeBSD 8.2-STABLE/UFS.

На двухъядерной домашней системе создал /dev/md0 в 2G размером, смонтировал (async) в /mnt/tmp, скопировал туда /usr/src, создал там же obj и tmp и запустил:

# cd /mnt/tmp/src; time env TMPDIR=/mnt/tmp/tmp MAKEOBJDIRPREFIX=/mnt/tmp/obj make -j3 MODULES_WITH_WORLD=yes buildworld
...
real 61m8.607s
user 99m57.180s
sys 11m30.844s

Эффективность распараллеливания на два ядра более 91%.
Затем то же самое сделал без md:

real    62m21.302s
user    100m22.833s
sys     12m6.297s

Разница — 1 минута и 12.7 секунды. Как и на 7.0, морочиться с созданием RAM-диска нет смысла, FreeBSD достаточно хорошо кеширует UFS.

Date: 2011-06-14 07:04 (UTC)
From: [identity profile] tigerby.livejournal.com
гм. и действительно.
%uname -rms
FreeBSD 8.2-RELEASE amd64
%sysctl hw.model
hw.model: Intel(R) Core(TM) i7 CPU 870 @ 2.93GHz
%sysctl hw.physmem
hw.physmem: 17130713088

% df -h /mnt/
Filesystem Size Used Avail Capacity Mounted on
tmpfs 29G 4.0K 29G 0% /mnt

master1# cd /mnt/
master1# mkdir obj tmp
master1# cd /mnt/src
master1# \time env TMPDIR=/mnt/tmp MAKEOBJDIRPREFIX=/mnt/obj make -j9 buildworld

>>> World build completed on Tue Jun 14 14:43:16 MSD 2011
--------------------------------------------------------------
830.04 real 4134.20 user 536.89 sys

master1# \time make -j9 buildworld

>>> World build completed on Tue Jun 14 15:01:25 MSD 2011
--------------------------------------------------------------
850.91 real 4138.17 user 582.85 sys

одного только не понял.. откуда следует "Эффективность распараллеливания на два ядра более 91%."

Date: 2011-06-14 07:41 (UTC)
From: [identity profile] dadv.livejournal.com
По определению, ускорение работы на N процессорах по отношению к одному равно отношению времени работы на одном процессоре ко времени на N процессорах.

Опять же по определению, эффективность есть ускорение, поделенное на N.

На одном я не проверял и поэтому вместо времени работы на одном процессоре взял
сумму user+sys, в первом прогоне это 99m57.180s + 11m30.844s = 111m28.024s, поделив это время на real 61m8.607s, получил "ускорение" в 1.82 раза, а поделив его на N=2, получил "эффективность" 0.91152 или чуть больше 91%.

Date: 2011-06-14 07:44 (UTC)
From: [identity profile] dadv.livejournal.com
У тебя ускорение в 5.62 раза. 8 "ядер" с учетом гипертредовых? Тогда эффективность у тебя 70%, что тоже неплохо - эффективность обычно падает при росте количества ядер.

Date: 2011-06-14 07:47 (UTC)
From: [identity profile] tigerby.livejournal.com
да я больше замерял ради того чтобы убедиться что сборка с использованием hdd (не)значительно медленнее чем при использовании md/tmpfs, нужно будет еще как-нибудь попробовать на портах:)

Profile

dadv: (Default)
Choose your future

July 2024

M T W T F S S
12 34567
891011121314
15161718192021
22232425262728
293031    

Tags

Style Credit

Powered by Dreamwidth Studios