Skip to content

AlexArtrip/480FinalProject

Repository files navigation

About

This project is done as a final project for Comp 480.

The project is based on Nosferalatu's simple GPU linear probing hash table and CUDPP's cuckoo hash table. The aim was to compare the two hashing schemes on the GPU, and also explore other hashing schemes.

Read our report here for more information about the project/experiment.

Prerequisites

  • CMake
  • CUDA

This has been tested on Windows with Visual Studio Community 2019 on a machine with an NVIDIA GTX 1060. An easy way to get CMake is to open a Visual Studio command prompt (in Windows, run "x64 Native Tools Command Prompt for VS 2019"; that will put CMake in your path).

This should work on other CUDA-supported platforms, but I have not tested this.

Generating Build Files

Run the following commands to generate .sln and .vcxproj's that can be opened in Visual Studio:

cd ConcurrentHashTables
md build
cd build
cmake ..

You can now open SimpleConcurrentGPUHashTable.sln in Visual Studio.

If CMake fails to find CUDA above, then run a CMake generator for 64 bit builds:

cmake -G "Visual Studio 16 2019 Win64" ..

Building

You can build within Visual Studio, or from the command line with:

cmake --build . --config Release

Testing & Plotting

Then running the text.exe built from the prior command, it will run the tests on the 4 kinds of hash tables each with capacities 2^10, 2^14, 2^18, 2^22, 2^26, and Load Factor 0.1, ..., 0.9.

The generated txt log files can be put into the plotting/data directory, and then the ht_data_plot.py will generate the plots.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published