Skip to content

FlorealRISSO/Benchmarking-the-Path-to-Energy-Efficiency

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project README

Welcome to the project repository! This repository contains scientific article sources, program source code, and scripts for data analysis related to a specific scientific study. Below is a guide on how to navigate and use the various components of this project.

Table of Contents

Article

The article directory contains the sources for the scientific article. To generate the article PDF, navigate to the article directory and run:

cd article
make

This will generate the article.pdf in the build directory.

Programs

The prog directory contains source code for different programs. To build the binaries, edit the cons.h file to configure parameters, then run:

cd prog
make

This will compile and generate binaries in the build directory.

Scripts

The scripts directory contains various scripts for data analysis. To perform specific tasks, follow the instructions below:

  • To set CPU frequency, run set-frequency.sh.
  • To run benchmarks on all executables, use benchmark-exe.sh.
  • To plot data, run preprocess.sh and then execute plot.py.
  • For a single execution measurement, use audit.sh.
  • To test one binary with varying frequencies, use benchmark-freq.sh.

Usage

Configuring Parameters

To configure the parameters of the program, edit the cons.h file in the prog directory before building the binaries.

Building Executables

Compile the program binaries by navigating to the prog directory and running:

cd prog
make

Setting CPU Frequency

Adjust the CPU frequency by executing the following command:

cd scripts
./set-freq.sh <frequency>

Running Benchmarks

To run benchmarks on all built executables from a folder, use the following command:

cd scripts
./benchmark-exe.sh <folder> <iterations>

Plotting Data

Generate plots from benchmark data by executing the following commands: (The timestamp in juliaM25620231220_105438.log is 20231220_105438)

cd scripts
./preprocess.sh <timestamps>
./plot.py <timestamps>

Single Execution Measurement

Measure the execution time of one binary with the following command:

./audit.sh <path-to-binary>

Frequency-based Benchmark

Test one binary with varying CPU frequencies using the following command:

./scripts/benchmark-freq.sh <path-to-binary>

Dependencies

To ensure the proper functioning of the project and its associated scripts, it is important to have the following dependencies installed on your system.

Python Dependencies

  • sys: Standard Python library. No additional installation required.

  • pandas:

    pip install pandas
  • matplotlib:

    pip install matplotlib

C Dependencies

  • OpenMP: Ensure your C compiler supports OpenMP. For GCC, OpenMP is typically included. For other compilers, please refer to the respective documentation.

Benchmark Dependencies

  • mojitos: The project relies on the Mojitos benchmark tool for performance testing. Follow the installation instructions provided by Mojitos: MojitosRepository

Make sure to install these dependencies before running any scripts or compiling the C programs. If you encounter any issues related to dependencies, consult the documentation or community forums of the respective tools for assistance.

Feel free to explore and contribute to this project! If you encounter any issues or have suggestions, please open an issue or submit a pull request.

About

Benchmarking the environmental impact of algorithm implementations. This analysis explores optimizing Julia set fractal rendering through SIMD vectorization and multi-threading.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published