The Hosts File

The Job Control facility obtains information about the hosts on which it will run jobs from the hosts file. The default name for this file is schrodinger.hosts. Maestro also uses the hosts file to set up the menus in the Job Settings dialog box.

This file must contain information on all hosts to which jobs can be submitted, and a copy of this file must be accessible on all hosts from which jobs will be submitted. The copy of the file that is stored in the installation directory provides the default settings for all users and all hosts. To customize job submission for a user, copy schrodinger.hosts to the directory $HOME/.schrodinger on UNIX or Mac, or %USERPROFILE%\Schrodinger on Windows, and edit it. A user copy is necessary if the user has a different user name on any host on which Schrödinger products will be run. You can also copy it to a location of your choice and set the SCHRODINGER_HOSTS environment variable to point to this file.

The hosts file consists of one or more entries, each of which describes a configuration for running jobs on a given host. Each entry consists of a number of settings, one per line. Default values for all hosts are taken from the localhost entry, which defines the settings for the current host. Settings are described in more detail in the topics listed below:

Note: If you are editing this file in your installation directory on Windows, you should start the editor with administrator privilege, for example by right-clicking and choosing Run as Administrator. Otherwise you will not be allowed to save the file.

To add entries to the hosts file:

1. Open the schrodinger.hosts file in a text editor.

When the software is installed, there is a copy of this file in the installation directory.

2. Create or modify an entry for each remote host using the keywords in Table 1.
  • The syntax for the settings is keyword: value.

  • Keywords are case-insensitive.

  • Each entry must begin with a name setting.

  • Comments can be included by beginning a line with a # sign.

  • Multiple entries can be included for a given host with different settings (e.g. different scratch directories).

  • Entries for batch queue submission (including queues on clusters) must specify a temporary directory that is available on all compute nodes, and is writable by all valid users. This directory can be on a common file system shared by the nodes, or it can be identically-named local storage space on each node.

  • Individual nodes in a cluster must be included unless they are only used as part of a properly-configured batch system.

  • If the host has a batch queueing system, you can add settings for the batch queue—see Preparing for Batch Queue Submission for more information.

3. Save and close the file.

You can test the connections to the hosts in the schrodinger.hosts file by using the installation_check command, described in Testing Remote / Queue Job Submissions.

Table 1. Keywords for schrodinger.hosts file settings.

Keyword

Description

base

Name of an entry (the base entry) that is the basis for the current entry. All the keywords from the base entry are inherited by the current entry, and new keywords may be added, in any order. A base entry can include another base entry.

env

Environment variables to be set on the host. The syntax for the environment variables is variable=value, regardless of the shell used. List each environment variable on a separate env line.

gpgpu

Specify a graphics processor (GPU) to use on the host. One instance should be used for each GPU specified. The specification is in the form id, description, where id is the numerical GPU id, usually starting from 0, and description is the description of the GPU, for example Tesla V100.

host

Host name. This entry is only needed if it is different from the name setting or if the queueing software is only available on a particular host.

Not valid in the localhost entry.

serverhost Name of host used to stage job output when the host from which the job was submitted is offline. This might be the head node of a cluster, for example. This setting is ignored if the job submission host does not have offline job management enabled.

include

Name of an auxiliary hosts file to be included in the current hosts file. The inclusion is done by replacing the include line with the contents of the specified file.

knime

Path to an external KNIME installation (i.e. an installation other than the one in the Schrödinger installation).

name

Name of the host entry or batch queue. For a host this is usually the host name. This name is displayed in the Start dialog box. The name must not contain spaces. The value localhost is a special name that means the host on which the job is launched.

nodelist

List of entry names, used to define a multiple-host entry. A name may be followed by a colon and a number of processors. Can be combined with a host setting.

parallel

Specify whether the host supports MPI parallel jobs or not. The value can be specified as yes or no, true or false, 1 or 0.

port

Server port to use when sending jobs to a server (Used by KNIME only).

processors

Number of processors available on the host. If the host is part of a cluster, this number should be the total number of processors available on the cluster. For multicore processors, the number should be the total number of cores available. The default is 1, except for the localhost entry, where the default is the number of available processors (or cores).

processors_per_node

Number of processors (cores) per node available to a batch queue. This setting is used by applications that support threaded parallel execution (OpenMP).

proxyhost

Host on which to run jproxy. This setting should be made when the host from which a job is launched cannot open a socket connection to the host on which the job is actually run. By default, jproxy is run on the host specified by the host keyword, and is only run when using a queuing system. This setting is only needed in cases where using the default is impossible or impractical.

Only valid when the host entry also contains a queue setting.

proxyport

Specify the port or range of ports that jproxy may use. Ports can be specified as comma or colon-separated lists without spaces. Ranges can specified with a dash, for example, 5987:5989-5992:5994.

Only valid when the host entry also contains a queue setting.

qargs

Arguments to be used when submitting jobs to a batch queue. These arguments should specify any parameters that define the queue.

queue

Queuing system name, which is the subdirectory of $SCHRODINGER/queues that contains the support files for the queuing system. PBS10.4, SGE, LSF, Torque, and Slurm are the supported systems.

Not valid in the localhost entry.

schrodinger

The path to the Schrödinger software installation on the host.

Not valid in the localhost entry.

tmpdir

Base directory for temporary or scratch files, also called the scratch directory. The file system on which this directory is mounted should be large enough for the largest temporary files, should be mounted locally, and should be writable by the user.

user

User name to use on the host. This should never be set in the hosts file in the installation directory. It is required if the user has a different user name on the defined host than on the host on which the job is launched.

A sample schrodinger.hosts file is shown below.

# Schrodinger hosts file
#
name:         localhost
tmpdir:       /scr
#
name:        ahost
name:        bhost
#
name:        server
schrodinger: /usr/local/schrodinger2026-1
tmpdir:      /big_scr
processors:  8
#
name:        cluster
host:        manager
queue:       Torque
qargs:       -l walltime=1000:00:00
schrodinger: /sw/schrodinger2026-1
env:         SCHRODINGER_THIRDPARTY=/fast/disk
processors:  16
tmpdir:      /storage/TMPDIR
#
# End of Schrodinger hosts file