Commit Graph

2 Commits

Author SHA1 Message Date
Samrith Uong
ad35cb9036 Changed the configuration files so that the program will work without
Estimated hours taken: 0.2

Changed the configuration files so that the program will work without
any additional configuration.

mercury/extras/gator/evaluate.conf:
       Instead of using the benchmark programs in the benchmarks
       directory (which the user might not have access to), use
       mercury/samples/hello.m as the benchmark program.

mercury/extras/gator/evolve.conf:
	Since the evaluate.conf file was changed so that there is
	only one benchmark program, we need to change the length of
	the first term.

mercury/extras/gator/gator.conf:
	In the previous revision, the hosts sophie, boadicea, surprise,
	lively and leopard were used.  Rather than use these hosts,
	which are only available to Mercury developers, use `hostname`
	instead.
2006-02-15 04:58:16 +00:00
Samrith Uong
7864c75130 This program implements a genetic algorithm to explore the space of
Estimated hours taken: 150
Branches: main

This program implements a genetic algorithm to explore the space of
compiler optimizations, with the goal of finding a good set of
optimizations to use when compiling a program.

mercury/extras/gator/README:
	An overview of the program and how to configure it.

mercury/extras/gator/gator:
	A shell script containing the main program.  This script
	contains a loop that continuously evaluates all the individuals
	in a generation and evolves the next generation of individuals
	based on how well they performed.

mercury/extras/gator/gator.conf:
	This file contains configuration data for gator, including all
	the hosts which are available for benchmarking.  Benchmarking
	all of the individuals in a population is distributed over a
	number of hosts as this is the slowest part of the process.

mercury/extras/gator/evaluate:
	A shell script that benchmarks the given individuals.  This
	script measures compile times, executable sizes and run times,
	for the programs given in evaluate.conf.

mercury/extras/gator/evaluate.conf:
	Configuration data for evaluate, including all the programs to
	be used for benchmarking.

mercury/extras/gator/evolve.m:
	This program breeds a new population of individuals based on the
	previous generation, and the output of evaluate.

mercury/extras/gator/evolve.conf:
	Configuration data for evolve, containing data used by the
	phenotype.fitness/3 and genotype.mutation/5 predicates.

mercury/extras/gator/genotype.m:
	A genotype is the representation of an individual.  For this
	application it is a set of compiler flags.  This module contains
	predicates related to this data structure.

mercury/extras/gator/phenotype.m:
	A phenotype is the representation of the traits of an
	individual.  For this application it is the set of benchmarks
	produced by the evaluate script.  This module contains the
	definition of the phenotype data structure, and predicates that
	operate on it.

mercury/extras/gator/tausworthe3.m:
	A random number generator (originally taken from
	/home/mercury/rafe/mercury/rnd/tausworthe3.m).  I've also added
	Julien's typeclass definition and an instance declaration.
	This should make using a different random number generator
	a bit easier.

mercury/extras/gator/generations/1/genotypes:
	The initial population of individuals.
2006-02-13 01:42:03 +00:00