Source code for schrodinger.infra.gpgpu_utils

from schrodinger import gpgpu
from schrodinger.infra import mm
from schrodinger.infra import mmjob


[docs]def get_local_gpgpus(): """ Detect local GPUs via schrodinger.gpgpu :return: list of tuple of local gpgpu device number and description :rtype: list(tuple(dev_num, desc)) """ local_gpulist = [] for device in gpgpu.get_available_devices(): num, desc = device.description().split(": ", 1) local_gpulist.append((num, desc)) return local_gpulist
[docs]def get_remote_gpgpus(host): """ Return a list of GPGPUs belonging to the specified host. :param host: name of host matching a name from the host file :type host: str :return: list of tuple of gpgpu device number and description :rtype: list(tuple(dev_num, desc)) """ gpgpu_list = [] try: gpgpu_count = mmjob.mmjob_host_gpgpu_length(host) except mm.MmException: return [] for card_idx in range(1, gpgpu_count + 1): gpgpu_list.append(mmjob.mmjob_host_gpgpu_item(host, card_idx)) return gpgpu_list