Dock

From UF HPC Wiki

Jump to: navigation, search

Contents

Overview

Various versions of dock are built and installed in /apps/dock. Jobs should be submitted to the Torque queues.

The main website for Dock is http://dock.compbio.ucsf.edu.

Location

Executables: /apps/dock/62/bin

Sample Script

A sample submission script for dock 6 is included below. Be sure and edit it so that it is appropriate for your particular job and please set the email address correctly so that mail from PBS concerning your jobs goes to you.

The sample PBS script can now be found on the PBS Sample Job Scripts page.

Compile Configuration

Serial Version

Building version 6.2 is quite simple. Go into the install directory and run the following:

$ ./configure gnu
$ make all
$ cd test
$ make all

This will make the serial version of the software, and run tests against it as well to ensure that it is working.

Parallel Version

Modifications had to be made to the gnu.parallel file in order to point to the proper locations for MPI header files, etc.

MPICH_HOME=  /usr/mpi/gcc4/openmpi-1.2.2-1
CC=          mpicc
CXX=         mpiCC
CFLAGS=      -DBUILD_DOCK_WITH_MPI -DMPICH_IGNORE_CXX_SEEK -DMPICH_SKIP_MPICXX -I
$(MPICH_HOME)/include -O2
FC=          mpif77
FFLAGS=      -O2 -fno-automatic -fno-second-underscore
LOAD=        $(MPICH_HOME)/bin/mpicxx
LIBS=        -lm
SFX=         .mpi

After this was done, the compilation occurred as it did in the serial version.

Intel 10 + OpenMPI 1.2.7

Several changes to source code and makefiles were necessary to get the code to build.

1. The config.h for the build is below.

# DOCK configuration file for UF HPC Center 

# REQUIREMENTS - 
# OpenMPI 1.2.7 or MVAPICH 0.9.9
# Intel 10 Compiler Suite
# END REQUIREMENTS

# CC is the C compiler
# CXX is the C++ compiler
# CFLAGS is the flags for the C and C++ compilers
# FC is the Fortran compiler
# FFLAGS is the flags for the Fortran compiler
# LIBS is the flags for the linker
# SFX is the suffix for the executable

CC=          mpicc
CXX=         mpiCC
CFLAGS=      -DBUILD_DOCK_WITH_MPI -O2 -w
FC=          mpif90
FFLAGS=      -O2 -nofor-main
LIBS=        -lm
LOAD=        mpiCC
SFX=         mpi

# Macro definitions for NAB
# AR is the library archiver
# LEX is the lexical analyzer generator
# OCFLAGS is the flags for the C compilers with high optimization
# RANLIB is the library index generator
AR=          ar rvs $(EMPTY)
LEX=         flex
OCFLAGS=     -O3
RANLIB=      /bin/true
DOCKHOME=/apps/dock/60/src/dock6

2. In defreal.h they define the macro DOUBLE_PRECISION. However this conflicts with the same MACRO used in both OpenMPI and MVAPICH header files. Since there was only a handful of files, I renamed the macro to PRECISION_DOUBLE everywhere it occurred in the DOCK 6 source.

3. Line 27 of src/accessories/showsphere.f extended beyond column 72 and -free was not specified. Adding -free seemed to cause the Intel 10 compiler to complain about comments not beginning with a "!". So simply modifying the long line with a continuation so that it looked like...

            WRITE(6,'($,A)')
     &      ' Process cluster 0 (contains ALL spheres) (<N>/Y)? '

was a simple workaround.

4. The Makefiles in the distmap and solvmap directories did not have rules for the distmap and solvmap targets so they tried to use the default .o.c rule which was wrong since the needed to be linked with ifort. Adding explicit rules so that ifort/mpif90 was used for linking fixed the problem.

5. The executables are in /apps/dock/60/src/dock6/bin.