Replication Package - Genetic Improvement of Data Gives Division free Division
This is the replication package for Genetic Improvement of Data gives Division free Division (author copy - GI_Data_Gives_Divsion_Free_Division.pdf).
The package contains the source code as described in section IV of the publication and aims to enable the reproduction of section IV b - Automatic changes to data table using CMA-ES and section IV c - Testing the evolved drcp function.
Content of the Repository
- Publication.pdf author copy of the submission
- gi_cbrt.tar.gz contains the source code the paper was written on, as described in Section IV Evolving DRCP From Free GNU PowerPC SQRT
- dependencies contains libraries needed for replication
- GNU C Library (glibc) - Download from: https://www.gnu.org/software/libc/. Contained file is the exact version that the submission was conducted with.
- scripts contains various scripts that are supposed to make the replication easier for the user. If there are issues with them, please consult the README.txt in gi_cbrt.tar.gz, the scripts themselves (maybe you are missing packages on linux), or open an issue in
- results contains logs of the executions the publication was based on
Preconditions
- Linux OS - As this work depends on glibc.
- Installation of the following linux packages (intentionally not provided as script, as it would have to be run with root privileges):
- gunzip
sudo apt-get install gzip
- tar
sudo apt-get install tar
- csh
sudo apt-get install csh
- sed
sudo apt-get install sed
- gunzip
Replication
Replicate using the following steps:
- (optional) scripts you may need to make scripts executable with
chmod +x *.sh
- unpack.sh will unpack to an execution folder (warning execution folder WILL be deleted by unpack), and build glibc
- replicate.sh runs the compilation, CMA-ES execution, and tests of the lookup table
- replicate per default replicates divide you can also replicate other functions by adding an optional parameter
- crbt replicates cube root
- divide replicates division
- invsqrt replicates root^-1, and also the quake invsqrt comparison
- log2 replicates log2
- replicate_all.sh will replicate everything and copy the results to different subfolders (results_function)
- You'll know if the replication succeeded when the folder "replication_results" is created and contains:
- the generated lookup table (t_cbrt.c)
- the outputs of the test scripts (*.out)
Performance testing
Additional preconditions
- Installation of the following linux packages (intentionally not provided as script, as it would have to be run with root privileges):
- rcs
sudo apt-get install rcs
- rcs
Conducting performance test
Test (not replicate due to different hardware!) using the following steps:
- performance.sh executes the benchmark
- You'll know if the benchmakr succeeded when the folder "performance_results" is created and contains:
- The outputs of the tests (*.out)
- benchmarking info of your pc (system_info.txt)