The Huffman coding algorithm is a lossless data compression algorithm. It works by assigning variable-length codes to each symbol based on their frequency of occurrence in the input text. More frequent symbols get shorter codes, while less frequent ones get longer ones, so the resulting compressed text is a more efficient representation of the input text.
The build.sh script is used to compile the source code of all attached source code files. The executable file without optimization is compiled without the compiler optimization flag, so it uses the -O0 default optimization flag.
The run.sh script is used to run all executables. It takes as arguments the input file and the name of the output file without the extension, because it assigns the extension depending on which executable is launched:
- .out - no optimization
- .cuda - CUDA
- .omp - OpenMP
- .cuda_omp - a combination of CUDA and OpenMP.