GPU version 1.1 of FREALIGN v8.06

Features:
1) GPU enabled. All the functions of FREALIGN can be carrided out on NVIDIA GPU(s).
2) Multithread embedded. The total number of available GPUs is detected automatically, 
   and then the corresponding CPU threads are created to use all the available GPUs.

System requirements:
1) At least two NVIDIA GPUs (required by the reconstruction). NVIDIA GeForce 
   GTX295 or better is recommended.
2) Linux operating system.  
3) CUDA driver v190.* or newer, CUDA toolkit v2.3 or newer. For CUDA installation
   package and documents, please visit NVIDIA CUDA website:
       http://www.nvidia.com/cuda

Compile:
1) Uncompress the GeFREALIGNv8.tar package.
2) Make sure that g77, CUDA toolkit and gcc have been installed. The current 
   CUDA toolkit v2.3 doesn't support gcc 4.4 or newer version. If your gcc 
   version is higher than 4.3, you need to install a lower version (gcc 3.4 is
   recommended), and specify the gcc path by adding the nvcc compiling option
   into "Makefile" in both src_ref and src_rec folders: 
       "--compiler-bindir gccpath/bin " .
3) run "make" in both src_ref and src_rec folders, respectively. The binary executable
   files will be output to ../bin .

Important Notes:
1) It is strongly recommended that the graphic card used for GPU computing by FREALIGN
   does not connect to any monitor. CUDA has a 5 sec executing time limit and the GPU 
   connected to a monitor may be unstable.
2) The box size of particle images should be smaller than 500 pixels.
3) The original FREALIGN integrates both alignment and reconstruction into a single 
   executable file. In this GPU version these two functions are separated and compiled 
   into two executable files. The source codes are kept separately in src_ref and src_rec 
   folders. Otherwise, the usage of the GPU enhanced FREALIGN is exactly same as the 
   original FREALIGN.
4) Because the multithread processing has been embedded, a single FREALIGN process will 
   occupy all the available GPU resources in a computer. So each computer or cluster node 
   can run only one FREALIGN job.


The GPU enable version of FREALIGN was written by Xueming Li at Yifan Cheng Laboratory at UCSF.
It is based on the Fortran code of original FREALIGN, which was developed by Niko Grigorieff
Laboratory. For details of original FREALIGN, please read related documentation. Both original 
and GPU version of FREALIGN are licensed under the terms of the GNU
Public License version 3 (GPLv3).


Update log
#############################################################
2010-06-30:
	1) Replaced the MRC library with a simple C++ class. This change stabilized the read 
           of large image stack files.
	2) In reconstruction, FFT that was running on CPU is now moved to GPU. This change 
           accelerated the reconstruction.
	3) The updated version recognizes the Fermi class GPU, tested with Nvidia GTX 480.
	4) Fixed bugs in global memory management, which cause program crash when using CUDA 3. 
           The updated version works now with CUDA 3.
	

