-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Multiple Processing #20
Comments
I'm also unsure about that feature, but it sounds like a really good idea. Starting each MacroModel job is definitely the bottle neck. It would work as long as every structure in the file needs the same datatypes extracted. We'd have to come up with some way to assign relative energies properly, but other than that, it'd be fairly straight forward. Any ideas on how we do this? Notice anything in their API? |
I have been seeing what macromodel is capable of and it seems we might be able to implement something like this. There are only a few problems:
I'll keep looking into this to see if we can use this because running a minimization followed by energy calculation of 30 structures in a single file takes less than a second to finish. |
Just in case you haven't already, you may want to look into These lists are then used by For example, using options like -me and -meo simultaneously takes a 3 structure input .mae and gives you a 6 structure output q2mm.mae. This leads to
and the ordering in .q2mm.mae goes
|
TL,DR Unless we have multiple licenses to use with MacroModel we really can't take advantage of serial calculations in any meaningful way. So I'm not sure why I have not realized this before and I am not sure if you (Eric) have known this or not. If we want to compare geometric data or charges we can just use one file and the code already handles them well in both loop.py and compare.py. With file1.mae containing struct1, file2.mae containing struct 2, file3.mae containing struct 3 and file4.mae containg struct's 1-3, then you get the following. Submitting this will be slow: python compare.py -c ' -mt file1.mae file2.mae file3.mae' -r ' -jt file1.mae file2.mae file3.mae' While this command will give the same result but 3 times faster: python compare.py -c ' -mt file4.mae' -r ' -jt file4.mae' I think we can do the same thing with energies. Regardless if you do a single energy command (-me) or multiple energy commands (-me and -meo) the code already picks up the correct energies for file4.mae. I think a simple way to use one file would be to use a reference data file (file4.txt with some command X) that contains all of those energies. So it would look like this: python compare.py -c ' -me file4.mae -meo file4.mae' -r ' -Xe file4.txt -Xeo file4.txt' But since there are not too many structures to compare with energies this probably won't save much time. As for eigenvalues and hessian elements we can't do anything about speeding them up from what I gather. The RHHO macromodel command, that does the vibrational analysis, can not be done in a serial manner, or at-least using the BGIN/END or AUTO commands. |
Reference energies don't need to load MacroModel, so that won't help with time savings. That's simply reading a .mae file. You could speed up calculating MacroModel energies by putting them all in one file, but you would need some other file that says how the energies are grouped. Let me know if you need more explanation. |
Datum.type for Gaussian energies were all the same
Obviously we are limited by the number of tokens available and so we can't take advantage of our own form of additional processing power, but is it possible to use MacroModel's queuing system? I could be wrong, but it seems that the MacroModel computations are the rate determining step. Instead of having multiple *q2mm.mae files for each structure we are using as data, could we use one *q2mm.mae file that has all of the structures? From what I have gathered so far, it seems like we can use multiple processors for a single *.mae file while still having only checked out 2 tokens.
The text was updated successfully, but these errors were encountered: