schrodinger.tasks.hosts module

schrodinger.tasks.hosts.get_GPGPUs(hostname)
class schrodinger.tasks.hosts.Host(name, processors=0, num_gpus=0, gpulist=None)

Bases: schrodinger.models.json.JsonableClassMixin, schrodinger.job.jobcontrol.Host

Extension of jobcontrol.Host class with GPUs.

CPUTYPE = 'cpu'
GPUTYPE = 'gpu'
__init__(name, processors=0, num_gpus=0, gpulist=None)

Initialize self. See help(type(self)) for accurate signature.

toJsonImplementation()

Abstract method that must be defined by all derived classes. Converts an instance of the derived class into a jsonifiable object.

Returns:A dict made up of JSON native datatypes or Jsonable objects. See the link below for a table of such types. https://docs.python.org/2/library/json.html#encoders-and-decoders
classmethod fromJsonImplementation(json_dict)

Abstract method that must be defined by all derived classes. Takes in a dictionary and constructs an instance of the derived class.

Parameters:json_dict (dict) – A dictionary loaded from a JSON string or file.
Returns:An instance of the derived class.

:rtype : cls

classmethod fromJobControlHost(jchost, ncpus)
setGpuList(gpulist)
autoSetGpuList()
hostType()

Used to determine what type of host this is.

label()

Returns the string to show in controls, etc.

units()

Return the unit string for the type of processors provided by this host.

maxNum()

Returns the number of processors for the type of host - for GPU host, return the number of GPUs, for non-GPU hosts, return the number of CPUs.

classmethod fromJson(json_obj)

A factory method which constructs a new object from a given dict loaded from a json string or file.

Parameters:json_obj (dict) – A json-loaded dictionary to create an object from.
Returns:An instance of this class.

:rtype : cls

getHost()

Return the name of the host, which defaults to ‘name’ if a separate ‘host’ attribute wasn’t specified.

get_version()

Method to get the version of a particular object. Defaults to the current version of mmshare. This class can be overridden for custom versioning behavior.

host

Return the name of the host, which defaults to ‘name’ if a separate ‘host’ attribute wasn’t specified.

isQueue()

Check to see whether the host represents a batch queue. Returns True if the host is a traditional queue or a grid host.

setHost(host)

Store host as _host to allow us to use a property for the ‘host’ attr.

toJson(_mark_version=True)

Create and returns a data structure made up of jsonable items.

Return type:An instance of one the classes from NATIVE_JSON_DATATYPES
to_hostentry()

Return a string representation of the Host object suitable for including in a hosts file.

class schrodinger.tasks.hosts.Gpu(index, desc)

Bases: schrodinger.models.json.JsonableClassMixin

__init__(index, desc)

Initialize self. See help(type(self)) for accurate signature.

toJsonImplementation()

Abstract method that must be defined by all derived classes. Converts an instance of the derived class into a jsonifiable object.

Returns:A dict made up of JSON native datatypes or Jsonable objects. See the link below for a table of such types. https://docs.python.org/2/library/json.html#encoders-and-decoders
classmethod fromJsonImplementation(json_dict)

Abstract method that must be defined by all derived classes. Takes in a dictionary and constructs an instance of the derived class.

Parameters:json_dict (dict) – A dictionary loaded from a JSON string or file.
Returns:An instance of the derived class.

:rtype : cls

classmethod fromJson(json_obj)

A factory method which constructs a new object from a given dict loaded from a json string or file.

Parameters:json_obj (dict) – A json-loaded dictionary to create an object from.
Returns:An instance of this class.

:rtype : cls

get_version()

Method to get the version of a particular object. Defaults to the current version of mmshare. This class can be overridden for custom versioning behavior.

toJson(_mark_version=True)

Create and returns a data structure made up of jsonable items.

Return type:An instance of one the classes from NATIVE_JSON_DATATYPES
schrodinger.tasks.hosts.get_hosts(ncpus=True, excludeGPGPUs=True)

Return a list of Host objects for use in config dialogs. Note these are a subclass of jobcontrol.Host which has additional features for text labels and accounting for GPUs. If schrodinger.hosts file is missing, only localhost will be returned. If it is unreadable, then jobcontrol.UnreadableHostsFileException will be raised.

Parameters:
  • ncpus (bool) – whether host text labels should include number of processors
  • excludeGPGPUs (bool) – whether to exclude GPU hosts from the list
Returns:

a list of Host objects

Return type:

list

Raises:

jobcontrol.UnreadableHostsFileException – If host file cannot be read

schrodinger.tasks.hosts.get_host_by_name(name)

Get the Host object from the hosts list that matches the specified hostname.