monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Monotone-devel] could we get away with requiring perl during the bu


From: Markus Schiltknecht
Subject: Re: [Monotone-devel] could we get away with requiring perl during the build, for botan's sake?
Date: Tue, 16 Oct 2007 16:15:05 +0200
User-agent: Icedove 1.5.0.10 (X11/20070328)

Markus Schiltknecht wrote:
I'm currently trying to measure potential gains on my Core2Duo CPU with manually configured and added amd64 (ia64) optimizations.

Okay, the benchmark run through. I ran the commit example benchmark from n.v.m.contrib.bench, as that supposedly runs enough SHA-1 calculations. That's the exact script I've run:

#!/bin/sh
rm -rf myscratch
python2.4 benchmark.py \
    -m ref=/home/markus/projects/monotone/nvm.botan/mtn \
    -m perf=/home/markus/projects/monotone/nvm.botan/mtn.ref \
    --cache mycache \
    -b 
commit-5MBtxt="InitialImportCommit(SimpleRandomTree(total_size=5000000))" \
    -b commit-5MBrand="InitialImportCommit(SimpleRandomTree(total_size=5000000, 
binary_file_fraction=1,binary_file_randompart_fraction=1))" \
    -b 
commit-50MBtxt="InitialImportCommit(SimpleRandomTree(total_size=50000000))" \
    -b commit-50MBrand="InitialImportCommit(SimpleRandomTree(total_size=50000000, 
binary_file_fraction=1,binary_file_randompart_fraction=1))" \
    -b commit-500MBtxt="InitialImportCommit(SimpleRandomTree(total_size=500000000, 
filesize_logmean=11, filesize_logsd=2.5))" \
    -b commit-500MBrand="InitialImportCommit(SimpleRandomTree(total_size=500000000, 
filesize_logmean=11, filesize_logsd=2.5, 
binary_file_fraction=1,binary_file_randompart_fraction=1))" \
    -i memtime="MemTimingInstrumenter(repeats=5)" \
myscratch myresults

The reference binary is from the current head of n.v.m.botan (i.e. with botan 1.7.2, but no assembler or other botan modules activated). I've compared that against a manually configured botan build for amd64 (compatible with ia64 and my Core2Duo), with the following botan modules enabled:

  alg_amd64, alloc_mmap, es_egd, es_ftw, es_unix, ml_unix,
  mp_amd64, tm_hard, tm_posix, tm_unix

Both binaries were compiled with default CFLAGS (i.e. -O2) and got stripped after the build. Only the botan parts of the optimized variant were compiled with botan's proposed CFLAGS (i.e. -finline-functions -march=nocona -momit-leaf-frame-pointer -fPIC).

Here are my results:

address@hidden:/home/markus/projects/monotone/nvm.cbench/myresults# ../compare.py commit-5MBtxt-{ref,perf}-memtime/stats.csv commit-5MBtxt-ref-memtime/stats.csv commit-5MBtxt-perf-memtime/stats.csv p
commit-avg-resident-MiB                                3.70                     
            3.76  0.84
    commit-avg-size-MiB                               18.81                     
           18.70  0.92
commit-max-resident-MiB                                6.19                     
            6.11  0.03
    commit-max-size-MiB                               22.22                     
           22.08  0.02
     commit-num-samples                               66.38                     
           73.25  0.36
     commit-system-time                                0.02                     
            0.02  0.63
       commit-user-time                                0.23                     
            0.35  0.00
       commit-wall-time                                0.88                     
            0.97  0.31
address@hidden:/home/markus/projects/monotone/nvm.cbench/myresults# 
../compare.py commit-5MBrand-{ref,perf}-memtime/stats.csv
                        commit-5MBrand-ref-memtime/stats.csv 
commit-5MBrand-perf-memtime/stats.csv     p
commit-avg-resident-MiB                                 3.81                    
              3.19  0.04
    commit-avg-size-MiB                                19.86                    
             17.41  0.03
commit-max-resident-MiB                                 6.18                    
              6.18  0.97
    commit-max-size-MiB                                22.15                    
             22.15  0.98
     commit-num-samples                                63.38                    
             73.62  0.06
     commit-system-time                                 0.02                    
              0.02  0.88
       commit-user-time                                 0.22                    
              0.34  0.00
       commit-wall-time                                 0.89                    
              0.98  0.13
address@hidden:/home/markus/projects/monotone/nvm.cbench/myresults# 
../compare.py commit-50MBtxt-{ref,perf}-memtime/stats.csv
                        commit-50MBtxt-ref-memtime/stats.csv 
commit-50MBtxt-perf-memtime/stats.csv     p
commit-avg-resident-MiB                                 3.84                    
              3.85  0.99
    commit-avg-size-MiB                                19.75                    
             20.38  0.45
commit-max-resident-MiB                                 5.58                    
              5.51  0.00
    commit-max-size-MiB                                21.45                    
             21.40  0.00
     commit-num-samples                                85.40                    
             53.40  0.04
     commit-system-time                                 0.01                    
              0.01  0.74
       commit-user-time                                 0.20                    
              0.32  0.00
       commit-wall-time                                 1.23                    
              0.75  0.08
address@hidden:/home/markus/projects/monotone/nvm.cbench/myresults# 
../compare.py commit-50MBrand-{ref,perf}-memtime/stats.csv
                        commit-50MBrand-ref-memtime/stats.csv 
commit-50MBrand-perf-memtime/stats.csv     p
commit-avg-resident-MiB                                  4.04                   
                3.58  0.00
    commit-avg-size-MiB                                 20.60                   
               19.81  0.05
commit-max-resident-MiB                                  5.61                   
                5.54  0.00
    commit-max-size-MiB                                 21.47                   
               21.43  0.19
     commit-num-samples                                 67.00                   
               53.20  0.06
     commit-system-time                                  0.02                   
                0.01  0.13
       commit-user-time                                  0.19                   
                0.31  0.00
       commit-wall-time                                  0.92                   
                0.74  0.03
address@hidden:/home/markus/projects/monotone/nvm.cbench/myresults# 
../compare.py commit-500MBtxt-{ref,perf}-memtime/stats.csv
                        commit-500MBtxt-ref-memtime/stats.csv 
commit-500MBtxt-perf-memtime/stats.csv     p
commit-avg-resident-MiB                                 16.71                   
               16.08  0.20
    commit-avg-size-MiB                                 32.41                   
               31.34  0.06
commit-max-resident-MiB                                 28.90                   
               29.60  0.09
    commit-max-size-MiB                                 45.18                   
               45.63  0.29
     commit-num-samples                                210.80                   
              162.60  0.01
     commit-system-time                                  0.13                   
                0.07  0.00
       commit-user-time                                  1.16                   
                1.29  0.00
       commit-wall-time                                  2.62                   
                2.07  0.01
address@hidden:/home/markus/projects/monotone/nvm.cbench/myresults# 
../compare.py commit-500MBrand-{ref,perf}-memtime/stats.csv
                        commit-500MBrand-ref-memtime/stats.csv 
commit-500MBrand-perf-memtime/stats.csv     p
commit-avg-resident-MiB                                  17.58                  
                 16.93  0.17
    commit-avg-size-MiB                                  33.44                  
                 33.03  0.47
commit-max-resident-MiB                                  30.70                  
                 31.41  0.17
    commit-max-size-MiB                                  46.72                  
                 47.43  0.17
     commit-num-samples                                 211.20                  
                165.60  0.02
     commit-system-time                                   0.16                  
                  0.08  0.00
       commit-user-time                                   1.11                  
                  1.23  0.00
       commit-wall-time                                   2.60                  
                  2.07  0.02

From here, the CPU specific botan code even hurts the 5MB test case (?!?). Only the 50 and 500 MB tests show a significant improvement.

Regards

Markus




reply via email to

[Prev in Thread] Current Thread [Next in Thread]