*Some results are obtained manually and hence can not be put in the script. Therefore, script.sh will compile all files and give instructions on how to run them. More detailed instructions to replicate everything are given below.
- Please ensure you have root access before running the files
- For Part 1, generate the executable using: g++ -O3 run.cpp -o run
- To execute: ./run [-r|-w] <block_size> <block_count>
- To reproduce result, create a file size of 2.00 GiB using: ./run test -w 1024 1048576
- To check reasonable time, ./run test -r 1024 1048576
- For Part 2, generate the executable using: g++ -O3 run2.cpp -o run2
- To check the block count, ./run2 <block_size>
- For Part 3, generate the executable using: g++ -O3 raw_performance.cpp -o raw_performance
- To generate the results in the report, for each block size run: ./raw_performance <block_size>
- For Part 4, generate the executable using: g++ -O3 caching.cpp -o caching
- To generate all the results at once (all block_sizes have been coded already), run: ./caching
- For Part 5, four executables need to be generated - syscall_normal, syscall_lseek, syscall_pid, syscall_hostid
- Generate the executables using: g++ -O3 syscall*.cpp -o syscall*
- Run the executables using (everything else has been coded): ./syscall_
- For Part 6, generate the executables using: g++ -O3 -pthread fast.cpp -o fast
- To get the XOR value (with optimal settings): ./fast
- To reproduce report results, uncomment line 69 and comment line 70, compile and run again.
- End, thank you! (Graphs have been generated using a Graphs.ipynb which will be included)