
CIDentify_mpi and CIDentifyX_mpi allow users to run CIDentify in parallel so  
that the searh time is shortened linearly with the number of processors used. 
Thus, on machines with mpi support, extremely large databases can now be 
efficiently analysed. The database is accessed in parallel - each slave 
process searching its fraction - so the database does not have to be partitioned.

CIDentify_mpi was parallelized by Shuxia Zhang at the University of Minnesota
Supercomputer Institute (szhang@msi.umn.edu) and Alex Taylor using the 
Mesaage Passing Interface (MPI) to take advantage of the inherent scalable nature 
of the search algorithm embedded in CIDentify. This code has been tested under 
SGI, IBM SP and Linux Cluster configurations.

Installation assumes that MPI is installed on the target computer. In addition
to the source code, appropriate makefiles are provided for platforms that have
been tested thus far.

The code compiles readily with the GNU gcc and SGI cc compilers. However, it was
not possible to directly compile and link with the Portland Group or IBM cc compilers.
(The Portland Group C compiler is used on the MSI's Linux cluster.) On the Linux 
cluster, gcc was used to create the object files and pgcc (Portland Group) was used
to link them. On the IBM SP, gcc was also used to create the object files and 
mpcc was used for linking.

On the Linux cluster, to compile the code, please type:

            make -f Makefile_mpi.linux CIDentify_mpi
	    
To run a job under MPI, type:

            mpirun -np <n> CIDentify_mpi -j <query_file> -p <database>

where <n> is the number of processors to be used (e.g. 4, 8, etc.), <query_file>
might be the icluded test case input, BSA-200MKDFVAFVDK, and <database> is a 
FASTA-formatted database to be searched.


On IBM SP, the make command is:

            make -f Makefile_mpi.sp CIDentify_mpi
	    
and the command to run a job is:

            poe CIDentify_mpi -j <query_file> -p <database> -procs <n>


On SGI IRIX, the make command is:

            make -f Makefile_mpi.irix CIDentify_mpi
            
and the command to run a job is:	    

            mpirun -np <n> CIDentify_mpi -j <query_file> -p <database>



Please contact us if you encounter any difficulties in using CIDentify_mpi.
Additionally, if you are successful in compiling and running using other
hardware, please let us know the details so that we can include them in 
future releases.

