FastROCS TK 1.3.0

  • Major performance improvement in how FastROCS scales to multiple GPUs. The NVidia 275, 285, 295 driver introduced a severe performance regression that hampered FastROCS ability to scale across multiple GPUs. The solution was to use a different strategy to transfer data between the host and the device as well as scaling back the number of host threads launching jobs on the GPUs to only 1 per GPU.

  • Many additions to the python interface to allow tweaking how FastROCS is parallelized and memory is moved around in the system: SetNumDevices, SetHostToDeviceStrategy, SetDeviceToHostStrategy, SetNumThreadsPerDevice. The defaults should be reasonable for everyone while using the 295 NVidia driver. They’re left here to allow easy tweaking on future drivers, though they may be removed once a toolkit version is released, so don’t rely on them.

  • Fixed timer restart in OEShapeDatabaseOptions that would cause a reused OEShapeDatabaseOptions object to include time spent on previous searches.

  • Only 4 decimal places are stored in the SD data fields for Shape Tanimoto, Color Tanimoto, and Tanimoto Combo.

  • Made the NVidia driver install portion of the README easier to follow.

  • Removed the restriction to use molecules with less than 3 heavy atoms.