Commit 9e576820 authored by Illia Kolesnik's avatar Illia Kolesnik
Browse files

Added README file

parent 484752ab
Loading
Loading
Loading
Loading

README.md

0 → 100644
+82 −0
Original line number Diff line number Diff line

# General information

This repository contains the source code for the diploma thesis "Implementation of data structure for adaptive hierarchical meshes in the TNL library".

# Abstract

This thesis deals with the implementation of the adaptive octree data structure for the TNL library in the C++ programming language. This structure is used for efficient work with three-dimensional objects in fields such as computer graphics and scientific computing. A parallel version of the octree was also implemented using the MPI interface. The thesis explores various methods of implementing octrees, which are then compared. According to the results of the study, the classic octree and the linear octree using a hopscotch hash table show the best efficiency.

# How to run

First, you need to clone dependencies:

```bash
git submodule update --init
```

## Tests

All tests are located in the "Tests" directory. To run the tests, you need to execute the following commands from this directory. Theese tests are available:

1. Run tests for the sequental octree with STD C++ hash table:

```bash
make run
```

2. Run tests for the sequental octree with hopscotch hash table:

```bash
make run-hopscotch
```

3. Run tests for the sequental octree with cuckoo hash table:
    
```bash
make run-cuckoo
```

4. Run differential tests for comparing linear and classic octrees:

```bash
make run-similar
```

5. Run tests for the parallel octree:

```bash
make run-mpi
```

## Benchmarks

All benchmarks are located in the "Benchmark" directory. To run the benchmarks, you need to execute the following commands from this directory. Theese benchmarks are available:

1. Build benchmark for the sequental octree with STD C++ hash table:

```bash
make build
```

2. Build benchmark for the sequental octree with hopscotch hash table:

```bash
make hopscotch
```

3. Build benchmark for the sequental octree with cuckoo hash table:

```bash
make cuckoo
```

4. Build benchmark for the parallel octree:

```bash
make mpi
```

To get instructions for the benchmark binary, is enough to run it without any arguments.

Benchmark directory contains the "gen_seq_instance.py" and "gen_mpi_instance.py" scripts for generating instances for the sequental and parallel octrees, respectively. You can use them to generate instances for your own tests. To get help, run the script without any arguments.
 No newline at end of file