Installing GPU blast

Error message: install: Permission denied.

Work around

chmod +x install

Error message: which: no nvcc

./install ncbi-blast-2.2.25+-src
which: no nvcc in (/usr/lib64/qt-3.3/bin:/usr/kerberos/bin:/opt/ucl/bin:/usr/sbin:/sbin:/usr/bin:/bin:/usr/bin/X11:/opt/UCLCSdefunct/bin:/cs/research/crest/home0/ucacbbl/bin.intel:/cs/research/crest/home0/ucacbbl/bin:.)

Error: nvcc cannot be found. Exiting...

Work around

Firstly ensure you are installing GPU blast on the computer on which you have already installed CUDA.

Secondly ensure the CUDA nvcc C/C++ compiler is in your path.
Locate nvcc. In the following example it is /usr/local/cuda/bin/nvcc The example uses unix Tea shell. In other Linux shell command line languages the syntax for changing the PATH environment variable may be slightly different.

echo $PATH
/usr/lib64/qt-3.3/bin:/usr/kerberos/bin:/opt/ucl/bin:/usr/sbin:/sbin:/usr/bin:/bin:/usr/bin/X11:/opt/UCLCSdefunct/bin:/cs/research/crest/home0/ucacbbl/bin.intel:/cs/research/crest/home0/ucacbbl/bin:.

setenv PATH /usr/lib64/qt-3.3/bin:/usr/kerberos/bin:/opt/ucl/bin:/usr/sbin:/sbin:/usr/bin:/bin:/usr/bin/X11:/opt/UCLCSdefunct/bin:/cs/research/crest/home0/ucacbbl/bin.intel:/cs/research/crest/home0/ucacbbl/bin:.:/usr/local/cuda/bin
Double check nvcc is now in your path. Eg using
which nvcc
/usr/local/cuda/bin/nvcc

Still running .....

Work around

Wait (assuming you asked install to download and install "ncbi-blast-2.2.25+-src").

On an unladen networked Centos PC, with a fast link (approx 1MB/second) to NCBI, it took about 56 minutes. Almost all the time being spent on building NCBI BLAST.

Still running makeblast

Work around

Wait:-( The README suggests
./makeblastdb -in ../../../../database/env_nr -out ../../../../database/sorted_env_nr -sort_volumes -max_file_sz 500MB
it will take about 5 minutes. On a 2.66GHz PC with a networked drive it takes about 70 minutes.
It is unclear why there is a fourteen fold difference.

Argument "query". File is not accessible: sequence_length_03000.txt

Command:
./blastp -db ../../../../database/sorted_env_nr -query ../../../../queries/sequence_length_03000.txt -gpu t -method 2
fails producing error message:
Command line argument error: Argument "query". File is not accessible:  `../../../../queries/sequence_length_03000.txt'

Work around

Trying file name SequenceLength_00003000.txt instead of sequence_length_03000.txt

Errors from install when modifying GPU BLAST

Your build tree appears to be out of date relative to the C++ Toolkit's configuration script;

Makefile generates the following NCBI error message:
Your build tree appears to be out of date relative to the C++ Toolkit's
configuration script; to correct this, please run

    ./reconfigure.sh reconf

from your top build directory
(.../gpu_blast/ncbi-blast-2.2.25+-src/c++/GCC412-ReleaseMT64/build)
after ensuring that all relevant environment variables (particularly PATH)
are set correctly.
make: *** [.../gpu_blast/ncbi-blast-2.2.25+-src/c++/GCC412-ReleaseMT64/status/config.status] Error 1

Work around

Error caused by buggy script running make -f Makefile in wrong directory.

Errors when using blastp -gpu t

env_nr 500MB database does not fit onto your GPU

WARNING: Not enough GPU global memory to process volume No. 00 of the
database. Continuing without the CPU...
         Consider splitting the input database in volumes with smaller size by using the option "-max_file_size " (e.g. -max_file_sz 500MB).
         Consider using fewer GPU blocks and then fewer GPU thread when formating the database with (e.g. "-gpu_blocks 256" and/or "-gpu_threads 32") to reduce the GPU global memory requiremenets.

Work around

Rerun makeblastdb with -max_file_sz 256MB (as described in GPU_BLAST's README file).

No real large change in run time despite blastp having more, but smaller, database volumes to search.

GPU_BLAST nVidia GeForce GTX 295

Although you can reduce the databases to fit into an GTX 295 it appears that the code assumes Fermi (i.e. compute level 2.0) and will not run on a GeForce 295 GTX.

Errors When Modifying GPU_BLAST

Unix Makefile dependencies

Despite its huge complexity the ncbi-blast-2.2.25+-src make system does not work. In the sense that if you modify a file you cannot simply run the makefile for blastp. It will scroll lots of message across your screen but not recompile anything.

Work around

Find directory ncbi-blast-2.2.25+-src/c++ and run
make all
but that takes 5 minutes.

Make at the top level also produces a huge number of informational and warnings that it is impossible to check it has worked as expected. Use > to save make's output into a file.


If all else fails rtfm

The NCBI C++ Toolkit Book


W.B.Langdon 8 June 2011 (last update 19 July)