Slaton Lipscomb
Last updated November 21, 2005
Comments/corrections welcome.
SPIDER contains directives which can be used by OpenMP parallelizing Fortran compilers
available on SGI, DEC, Linux, and NT multiprocessor machines.
SPIDER was developed at the Resource for the Visualization of Biological complexity (RVBC) located in the
Wadsworth Laboratories, Albany, New York.
SPIDER contains directives which can be used by OpenMP parallelizing Fortran compilers available on SGI, DEC, Linux, and NT multiprocessor machines. The MD operation with 'SET MP' can be used to limit the number of processors used during SPIDER execution on such machines.
On the Linux platform, The Portland Group's pgf90 is the supported Fortran compiler. For these instructions, it is assumed that pgf90 is already installed and its environment loaded.
The Linux SPIDER binaries currently distributed by Albany are not portable, as they statically link to the PGI threads library. They also use the -byteswapio compile option, which makes the binaries use non-native byte-ordering for file I/O. This is perhaps useful if you have a lab with a mixture of SGI and Linux workstations, but probably not if you primarily use Linux on Intel hardware. The Makefiles I use and provide for download do not use byteswapped I/O.
SPIDER also supports the use of FFTW ("Fastest Fourier Transform in the West") on the Linux platform. FFTW is "a C subroutine library for computing the discrete Fourier transform (DFT) in one or more dimensions, of both real and complex data, and of arbitrary input size." It is recommended that you use FFTW, as its routines are faster than SPIDER's. These instructions are for a FFTW-based SPIDER installation.
It is assumed that the Modules system is used for environment management. While the installation and configuration of Modules is beyond the scope of this document, such information can be obtained from the project's SourceForge page, and from NERSC.
See this document for complete instructions.
You will need a Makefile that specifies the required compiler and linker flags for pgf90. It's fine to use the makefiles included with the SPIDER distribution, but I prefer to make a few customizations. If you are following the instructions on this page, you'll want to use my makefiles as well. You can download the most up-to-date versions of them here:
« download SPIDER Linux/pgi Makefiles » (updated 11/17/2005)
Select the most appropriate Makefile for your planned installation, and copy it to your SPIDER source directory.
Makefile
Makefile_linux_p4_pgi
Makefile_linux_p4_fftw_pgi
Makefile_linux_p4_mp_pgi
Makefile_linux_p4_mp_fftw_pgi
Makefile_linux_amd64_pgi
Makefile_linux_amd64_fftw_pgi
Makefile_linux_amd64_mp_pgi
Makefile_linux_amd64_mp_fftw_pgi
Description
serial version (P4/Xeon)
serial version with FFTW (P4/Xeon)
OpenMP version (P4/Xeon)
OpenMP version with FFTW (P4/Xeon)
serial version (AMD64)
serial version with FFTW (AMD64)
OpenMP version (AMD64)
OpenMP version with FFTW (AMD64)
For a non-root install, you will have to modify your Makefile(s) and change LIBDIR to point to the location you installed the FFTW libraries.
Make sure your pgi environment is loaded. Change to the SPIDER source directory, and enter the following commands:
$ rm -f *.o *.a *.mod $ make -f Makefile_linux_p4_fftw_pgi
Use the Makefile name you selected in the previous step, instead of
Makefile_linux_p4_fftw_pgi.
The compilation process will take 5 to 20 minutes depending on how fast your machine is. If compilation and linking are successful, then the executables will be built in the spider/bin directory. The executables' names depend on which Makefile you used, as follows:
Makefile
Makefile_linux_p4_pgi
Makefile_linux_p4_fftw_pgi
Makefile_linux_p4_mp_pgi
Makefile_linux_p4_mp_fftw_pgi
Executable
spider_linux_p4
spider_linux_p4_fftw
spider_linux_p4_mp
spider_linux_p4_mp_fftw
If you run into any compilation errors, double-check that FFTW is indeed installed in the correct
location (/usr/local/fftw/pgi for a root install), that your SPIDER source as been patched as
explained in step #3, and that your pgi environment is properly set up.
Create a modulefile for setting up your new SPIDER version's environment variables. The following SPIDER environment variables should be defined:
setenv SPMAN_DIR /usr/local/spiderweb-12.01/spider/man/ setenv SPPROC_DIR /usr/local/spiderweb-12.01/spider/proc/ setenv SPRGB_DIR /usr/local/spiderweb-12.01/web/rgb/ setenv WEBMAN_DIR /usr/local/spiderweb-12.01/web/docs/
The following items are added to the PATH and LD_LIBRARY_PATH environment variables.
append-path PATH /usr/local/spiderweb-12.01/spider/bin append-path PATH /usr/local/spiderweb-12.01/web/src prepend-path LD_LIBRARY_PATH /usr/local/fftw/pgi/lib
Load the SPIDER module you created above in step 6, and then run the tests described on this page:
« http://www.wadsworth.org/spider_doc/spider/docs/testing.html »