The fragment library is now shared across multiple
instances of the OEOmega objects in a
thread-safe manner. This can greatly reduce the amount of memory
needed to run a multi-threaded version of Omega TK. For example, the
memory consumption of Omega TK running across 8-cores dropped from
715MB to 258MB for 14,000 lead-like compounds from MDDR. This can
also lead to a performance improvement since expensive fragment
generation can sometimes be avoided if it has already been completed
by another thread.
The internal fragment library for the Omega TK shared library is
now stored in a more space and time efficient manner. Creating an
OEOmega object and running it on a single
molecule should now be faster. For example, running the
simple_omega.py example on a single benzene now takes 0.25
seconds instead of 0.83 seconds. Your mileage may vary depending
upon operating system and hardware.
The python global interpreter lock will now be released when entering OMEGA toolkit calls.