I am trying to generate 5 conformers for each of 2 million (ZINC-like) compounds with the following command line:
cxcalc conformers -l 60 -d 1 -m 5 input.sdf > output.sdf
We have an 8-core machine and I can see all 8 cores being utilized initially. I keep getting warnings such as
"43925 conformers: chemaxon.marvin.plugin.PluginException: Timelimit exceeded or calculation aborted by user."
"Timelimit exceeded. Try to increase timelimit with option [timelimit]"
which is fine as molecules too complex to compute within 60s can be skipped.
However, after about 1.5 hours into the run, only 1 core seems to be active and the last outputs I see are
"Timelimit exceeded. Try to increase timelimit with option [timelimit]
Timelimit exceeded. Try to increase timelimit with option [timelimit]
Timelimit exceeded. Try to increase timelimit with option [timelimit]"
(this seems to occur after about 45,000 molecules).
After this, the output file is not growing any further, despite the 1 cpu being active. The output file size has reached about 1GB in size (out of 15G expected) by this time.
Do you have any advice what to try to get cxcalc to finish the calculation on all 2 million compounds?
A quick follow-up:
I have tried to run the same conformer workload but this time with diversity 0.5 (instead of 1). Now it keeps running until about 910,000 molecules when it hangs (again with 1 cpu/core active).
The last output I see is:
907279 conformers: chemaxon.marvin.plugin.PluginException: Timelimit exceeded or calculation aborted by user.
(but there are many of those before, so this may be a red herring)
Could you provide a stack trace from the state where the execution hangs? Here is how you can generate the stack trace:
On UNIX platforms you can send a signal to a program by using the kill command. This is the quit signal, which is handled by the JVM. For example, on Solaris you can use the command kill -QUIT process_id, where process_id is the process number of your Java program.
Alternatively you can enter the key sequence <ctrl>\ in the window where the Java program was started. Sending this signal instructs a signal handler in the JVM, to recursively print out all the information on the threads and monitors inside the JVM.
To generate a stack trace on Windows 95, or Windows NT platforms, enter the key sequence <ctrl><break> in the window where the Java program is running, or click the Close button on the window.
For more see http://java.sun.com/developer/technicalArticles/Programming/Stacktrace/
0.5 and 1 diversity limits are quite high; the default is 0.1.