Changes between Version 2 and Version 3 of Building/RunningNoFib

Nov 13, 2006 4:27:18 PM (11 years ago)



  • Building/RunningNoFib

    v2 v3  
    1 = Running the `NoFib` benchmark suite =
     1= The !NoFib Benchmark Suite =
    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`.
    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:
    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.
     8  $ cd nofib
     9  $ make clean
     10  $ make boot
     11  $ make 2>&1 | tee nofib-log
    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`.
    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:
    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.
     20  $ nofib-analyse nofib-log-6.4.2 nofib-log-6.6
    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.
    35 You may sent comments or bug reports about this suite either to the
    36 Glasgow Haskell bugs list <>.
    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[ Valgrind].
    39 == SKETCHY NOTES ==================================================
    41 Quick and dirty
    42 ~~~~~~~~~~~~~~~
    44 Find a program you are interested in, make up a "makefile" by hand,
    45 and try it :-)
    48 Doing things properly
    49 ~~~~~~~~~~~~~~~~~~~~~
    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.
    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/.
    59 * Have a look in mk/ 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/
    63 * Run ./configure
    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".
    69 * cd nofib/
    71 * Ready the nofib suite for some use, by running `make boot', which
    72   takes care of creating Makefile dependendencies.
    74 * If all that worked -- and you'll know if it did -- then do:
    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/]], and override settings in `mk/` as usual.