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.