Cluster Installation of Schrödinger with OpenMPI and Linux

Schrodinger is one of the more popular licensed computational chemistry suites, offering a range of associated products. Installation is relatively easy, but does require that the sysop pays some attention to the process and makes a handful of modifications as needed for their particular environment, in this case, MPI, PBS, and CentOS Linux.

Firstly, being licensed software, installation requires logon, which will provide access to a tarball of the suite of applications availabile.
Save, and move or copy to an appropriate location (e.g., /usr/local/src/SCHRODINGER. Extract the tarball (e.g., tar xvf Schrodinger_Download), change the name of the directory to something sensible that fits the existing environment module scheme (e.g., 201401) and change to the extracted directory.

The next step is to run the sort script to ensure that the system matches all the requirements (./plaform -sv). Schrodinger "only" supports IBM RS/6k, SGI, HP, Compaq Alpha, Sun, Cray, IA-64 Linux and x86 Linux. The options "-sv" ensure that the test prints out system requirements and is "chatty". Assume this is successful, then the majority of the installation process can be achieved by simply ./INSTALL.

The process will ask for a default install directory (e.g., /usr/local/schrodinger/$version), which modules to install ("all"), which scratch directory (e.g., /tmpexample has previously been posted; obviously the paths will have to be changed.

To make Jaguar work in parallel you will need to create a shell script 'mpirun' in the jaguar-v$ver/bin/Linux-x86 directory. Copy the old script over to the new directory e.g.,


cd /usr/local/schrodinger/201205/jaguar-v79023/bin/Linux-x86_64/mpirun 201401/jaguar-v83013/bin/Linux-x86_64/
cp /usr/local/schrodinger/201303/jaguar-v82012/bin/Linux-x86_64/mpirun .

The Jaguar script simply calls an mpiexec:


#!/bin/bash
echo $*
shift 4
runme="/usr/local/mpiexec/0.83/bin/mpiexec -comm p4 -mpich-p4-no-shmem $*"
echo Running : $runme :
$runme

The install directory requires, for restricted group access, the right ownership structure and a sticky bit.


chown -R root:schrodinger /usr/local/schrodinger/
chmod g+s /usr/local/schrodinger/

The PBS template needs needs to be updated as well.

vim /queues/PBS/template.sh
#PBS -l nodes=1:ppn=%NPROC%
#Enter this line just before the %COMMAND%
module load schrodinger/201401

Create an enviromental module file, based on prior templates.


cd /usr/local/Modules/modulefiles/schrodinger
ln -s .base 201401

The .base file is pretty simple and includes the following:


#%Module1.0#####################################################################
##
## $name modulefile
##
set ver [lrange [split [ module-info name ] / ] 1 1 ]
set name [lrange [split [ module-info name ] / ] 0 0 ]
set loading [module-info mode load]
set desc [join [read [ open "/usr/local/Modules/modulefiles/$name/.desc" ] ] ]
proc ModulesHelp { } {
puts stderr "\tThis module sets the envinronment for $name v$ver"
}
module-whatis "$desc (v$ver)"
prepend-path PATH /usr/local/$name/$ver
setenv SCHRODINGER /usr/local/$name/$ver
# Add FlexLM license server addressr
setenv LM_LICENSE_FILE port@licenseserver
setenv SCHRODINGER_PDF_VIEWER evince
# Test for user rights.
system /usr/local/recluse/scripts/test_group_member $name