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.
A multi-threaded Omega TK example has been added omega_omp to
demonstrate how to use Omega TK with OpenMP.
The internal fragment library for the Omega TK static library is
now stored in a more space and time efficient manner. Binaries
linked to the Omega TK library should now be smaller, for
example, the RHEL6 simple_omega example is now 53MB instead
of 77MB. The library load time has also been improved. For
example, running the RHEL6 simple_omega example on a single
benzene will now take 0.20 seconds instead of 0.78 seconds. Your
mileage may vary depending upon operating system and hardware.