We parallelize the implementation of the Neighbor-Joning (NJ) algorithm based on QuickTree.
Distance matrix with size 1K, 5K, and 10K are available within the data folder in the repository. Distance matrix in 20K size is available on Google Drive. Please download and move it within the data folder.
The following dependencies are required:
- C++ compiler (GCC / Clang)
- CMake
- CUDA Toolkit
Create a build directory and compile the project:
mkdir -p build
cd build
cmake ..
make -j4This will generate the executable:
quicktreeRun the program using a distance matrix in PHILIP format as input (output will be printed to the console):
./quicktree -m ../data/matrix_10k.phyRun the program using a distance matrix in PHILIP format as input (output will be written to the file):
./quicktree -m ../data/matrix_10k.phy -o tree.nwkThe program arguments are as follows:
| Argument | Description |
|---|---|
-m |
input distance matrix (must in PHILIP format) |
-o |
output phylogenetic tree in Newick format |
-
Clone the project repository in HOME directory, and decompress the data files
git clone https://github.com/wangly7/quicktree-parallelism.git cd quicktree-parallelism/data unzip matrix_10k.phy.zip cd ..
-
Run the code
/opt/launch-sh/bin/launch.sh -v a30 -c 8 -g 1 -m 8 -i yatisht/ece213-wi26:latest -f ./quicktree-parallelism/run-commands.sh