mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-17 18:33:58 +00:00
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.
3 lines
27 B
Tcsh
Executable File
3 lines
27 B
Tcsh
Executable File
#!/usr/bin/tcsh -f
|
|
time $*
|