For an up-to-date version of this implementation and other MCA-perturbed libraries, please go to https://github.com/verificarlo/fuzzy
We are evaluating the pipeline stability by applying noise to mathematical functions using the library call interposition technique. This project aims to study whether the MCA method is truly a good perturbation model for evaluating pipeline stability across the operating systems.
-
Install the last version of Verificarlo
-
Create instrumented shared math library:
git clone https://github.com/big-data-lab-team/MCA-libmath.git /tmp/mca-libmath/
cd /tmp/mca-libmath/src/
make
make test
- Export Linux
LD_PRELOAD
environment variable by running:
export LD_PRELOAD=/tmp/mca-libmath/src/libmath.so
- Set the virtual precision and instrumentation mode of Verificarlo by running:
export VFC_BACKENDS="libinterflop_mca.so --precision-binary32 <p1> --precision-binary64 <p2> --mode <m>"
- Run your pipeline
We created a docker base image, including the steps (1-4) mentioned above. It is available at https://hub.docker.com/r/salari/fuzzy/ubuntu-libmath-base.
Running a simple test script in which calculates the standard deviation of several mca samples of sin() function:
docker pull salari/fuzzy:ubuntu-libmath-base
docker run -w /tmp/mca-libmath/tests/ ubuntu-libmath-base /bin/bash test.sh
- Clone repo and create a new branch:
$ git checkout https://github.com/big-data-lab-team/MCA-libmath -b name_for_new_branch
. - Make changes and test
- Submit Pull Request with comprehensive description of changes
MIT © /bin Lab