Changes between Version 2 and Version 3 of Building/RunningNoFib


Ignore:
Timestamp:
Nov 13, 2006 4:27:18 PM (7 years ago)
Author:
simonmar
Comment:

update

Legend:

Unmodified
Added
Removed
Modified
  • Building/RunningNoFib

    v2 v3  
    1 = Running the `NoFib` benchmark suite = 
     1= The !NoFib Benchmark Suite = 
    22 
    3 This is the root directory of the "NoFib Haskell benchmark suite"; 
    4 version 2.05 (to match our other Glasgow functional-programming 
    5 tools). 
     3The !NoFib benchmark suite is a collection of (mostly old) Haskell programs that we use for benchmarking GHC.  The !NoFib suite is kept in a separate darcs repository (see DarcsRepositories), and it should be checked out at the top level of a GHC source tree, i.e. at the same level as `compiler` and `libraries`. 
    64 
    7 The main change between version 2.01 and 2.05 is that the programs 
    8 have been converted to Haskell 1.4. 
     5To run the tests: 
    96 
    10 We have yet to release the NoFib stuff as we intended -- everything 
    11 tidied up -- because it's a lot of work for very few brownie points. 
    12 Probably we never will.  As it is, however, it is quite useful as a 
    13 Haskell-compiler test suite, so we are not keeping it to ourselves. 
     7{{{ 
     8  $ cd nofib 
     9  $ make clean 
     10  $ make boot 
     11  $ make 2>&1 | tee nofib-log 
     12}}} 
    1413 
    15 This version has *MANY* shortcomings, some of which I hope you will 
    16 report, so we can get something "real" out the door. 
     14will put the results in the file `nofib-log`. 
    1715 
    18 There are some restrictions on the use of this software.  First of 
    19 all, the copyright for the individual programs remains with their 
    20 authors (unless they have explicitly said otherwise).  Second, we (the 
    21 Glasgow Haskell project at University of Glasgow) retain the copyright 
    22 to any changes made to the programs *and* to the collection of 
    23 programs itself.  Third, for 2.05, it would be dishonest to suggest 
    24 that any results are related to the still-in-the-future "NoFib 
    25 benchmark suite".  So please do not make any such claims. 
     16To compare the results of multiple runs, use the program in 
     17[[GhcFile(utils/nofib-analyse)]].  Something like this: 
    2618 
    27 A position paper about the suite is in docs/paper/paper.dvi, and it 
    28 includes more than enough indication as to how we intend this suite to 
    29 be used.  Of course, we positively *welcome* honest and creative uses 
    30 of this suite. 
     19{{{ 
     20  $ nofib-analyse nofib-log-6.4.2 nofib-log-6.6 
     21}}} 
    3122 
    32 The file BUILDING provides some direction about setting up the suite, 
    33 in order to run it. [NOTE: doesn't exist yet; see sketchy notes below] 
     23to generate a comparison of the runs in captured in `nofib-log-6.4.2` 
     24and `nofib-log-6.6`.  When making comparisons, be careful to ensure 
     25that the things that changed between the builds are only the things 
     26that you ''wanted'' to change.  There are lots of variables: machine, 
     27GHC version, GCC version, C libraries, static vs. dynamic GMP library, 
     28build options, run options, and probably lots more.  To be on the safe 
     29side, make both runs on the same unloaded machine. 
    3430 
    35 You may sent comments or bug reports about this suite either to the 
    36 Glasgow Haskell bugs list <glasgow-haskell-bugs@dcs.gla.ac.uk>. 
    37 They will be most welcome. 
     31To get instruction counts, memory reads/writes, and "cache misses", 
     32you'll need to get hold of Cachegrind, which is part of  
     33[http://valgrind.org Valgrind]. 
    3834 
    39 == SKETCHY NOTES ================================================== 
    40  
    41 Quick and dirty 
    42 ~~~~~~~~~~~~~~~ 
    43  
    44 Find a program you are interested in, make up a "makefile" by hand, 
    45 and try it :-) 
    46  
    47  
    48 Doing things properly 
    49 ~~~~~~~~~~~~~~~~~~~~~ 
    50  
    51 * This version of nofib only supports ghc-2.05, so if you try to use 
    52   other versions of GHC or different Haskell systems, you're going to 
    53   run into some obstacles. 
    54  
    55 * Plop the nofib distribution inside the Glasgow fptools suite, i.e., 
    56   unpack nofib at the toplevel at the same level as directories such as 
    57   ghc/ and glafp-utils/. 
    58  
    59 * Have a look in mk/config.mk.in to see what variables control the nofib setup. 
    60   If you want to change these, put the new settings for them in the build-specific 
    61   setup file, mk/build.mk 
    62  
    63 * Run ./configure 
    64  
    65 * Assuming you haven't built the compiler, you will need to do that first. 
    66   Type "make boot" (or whatever make is called on your system) 
    67   followed by "make all".  
    68  
    69 * cd nofib/ 
    70  
    71 * Ready the nofib suite for some use, by running `make boot', which 
    72   takes care of creating Makefile dependendencies. 
    73  
    74 * If all that worked -- and you'll know if it did -- then do: 
    75  
    76     % make -k >& make.log # to compile everything; save log for study 
    77     % make -k runtests >& runtests.log  # also for study 
     35There are some options you might want to tweak; search for nofib in 
     36[[GhcFile(mk/config.mk)]], and override settings in `mk/build.mk` as usual.