src/
: source code (Uses the top-level CMake build system)experiments/
: standalone experimentsreceiver
: receiver applicationmain.cpp
receiver application entry point
timing-consistency
: timing consistency benchmarkmain.cpp
timing consistency benchmark entry point
transmitter/
: transmitter applicationmain.cpp
transmitter application entry point
lib/
: library source codecontention_generator.cpp
: contention generator implementationcontention_generator.hpp
: contention generator definitionprecise_sleep.cpp
: precise sleep implementationprecise_sleep.hpp
: precise sleep definition
scripts/
: Experiments and Data analysis (runs transmitter/receiver for experiments and analyzes the traces)buffer_size_experiment.py
Changes the buffer size on both transmitter and receiver and runs combinations of experimentstransmit_rate_experiments.py
Changes the frequency of data rate and runs experimentsanalysis.py
Calculates the accuracy of experimentsprint_bandwidth.py
Prints only bandwidthsemc_values.py
Calculates average/max EMC values
- Build everything:
cmake -S . -B build
cmake --build build --parallel
- Copy and compile the GPU code. We basically modified the bandwidthTest.cu sample from CUDA samples and used it as GPU receiver. Note (1st command): Paths may not match. In this case, just copy samples in cuda under ~/cuda_samples Note (2nd command): Paths may not match. In this case, just the bandwidthTest.cu in our repo to cuda samples (replace it)
cp -r /usr/local/cuda/samples ~/cuda_samples
cp src/GPU_samples/bandwidthTest.cu ~/cuda_samples/1_Utilities/bandwidthTest/bandwidthTest.cu
cd ~/cuda_samples/1_Utilities/bandwidthTest
make
- Run experiments for cpu (tranmistter) to gpu (receiver):
This experiment evaluates receiver buffer size. (sensitivity analysis of receiver). More parameters can be modified to perform more experiments, some of which are left under comments as suggestions.
mkdir -p logs/cpu_to_gpu_receiver_buffer_size
python3 scripts/cpu_gpu.py --log_dir=logs/cpu_to_gpu_receiver_buffer_size
python3 scripts/analysis_microsecond.py --log_dir=logs/cpu_to_gpu_receiver_buffer_size --calculateAccuracy=History --threshold=0.05 --mergeFile=True