GPU-Omega¶
GPU-Omega refers to the CUDA-enabled GPU implementation of Omega TK. GPU-Omega takes advantage of a GPU during torsion driving for accelerated conformer generation. To make use of GPU-Omega conformer generation please follow the guidelines below.
Attention
GPU-Omega is not available in the C# version of the toolkit.
Usage¶
GPU-Omega accelerates the torsion driving component of conformer generation in Omega TK and is available through the OEOmega and OETorDriver classes.
For all torsion driving sampling modes except
densemodes, if a GPU is detected at runtime, torsion driving will be carried out on the GPU by default. To turn this feature off useOETorDriveOptions::SetUseGPU.The following code shows how to turn off GPU-omega prior to conformer generation using
sparsemode:Example of turning off GPU-Omega
OEOmegaOptions omegaOpts; omegaOpts.GetTorDriveOptions().SetUseGPU(False); OEOmega omega(omegaOpts); omega(mol);
GPU-Omega uses the default
OEMMFFSheffieldFFType::MMFF94Smod_NOESTATforcefield. If attempting to use an alternative forcefield conformer generation will fall back to the CPU. GPU-Omega is also incompitable withhydrogen sampling, which is turned off in the default sampling mode. As a result of these, GPU-Omega is not compatible with default settings ofOEOmegaSampling::Densesampling mode. To take advantage of a GPU withdensesampling mode setOETorDriveOptions::SetForceFieldtoOEMMFFSheffieldFFType::MMFF94Smod_NOESTAT, and setOEMolBuilderOptions::SetSampleHydrogenstoFalse.The
OEOmegaIsGPUReadyutility function is provided for detecting available GPUs on a system.The following code demonstrates how to query the system for an available GPU and then set the force field to default in order to use the GPU for
densemode conformer generation:Example of detecting a GPU and changing the force field for dense mode conformer generation
OEOmegaOptions omegaOpts; if (OEOmegaIsGPUReady()) { omegaOpts.GetTorDriveOptions().SetForceField(OEMMFFSheffieldFFType::MMFF94Smod_NOESTAT); omegaOpts.GetMolBuilderOptions().SetSampleHydrogens(false); } OEOmega omega(omegaOpts); omega(mol);
GPU-Omega does not support the distance geometry method of torsion driving and therefore is incompatible with
OEMacrocycleOmega.