Member Site › Forums › Rosetta 3 › Rosetta 3 – General › AbinitioRelax using multiple cores on a single machine without mpi?
- This topic has 7 replies, 4 voices, and was last updated 12 years, 11 months ago by Anonymous.
-
AuthorPosts
-
-
October 25, 2011 at 7:40 am #1066Anonymous
How would I use multiple cores on a single machine in an effective way without mpi?
-
October 25, 2011 at 1:50 pm #6177Anonymous
Make X directories for the X processors and run Rosetta separately in each directory. Remember to use the flag set “-constant_seed -jran ####”, with a different numerical argument to jran each time (this ensures the RNG seeds vary).
Your results will have similar file names; you may want to fiddle with the flags for tagging output to tag each directory separately as the files are generated so the silent files may be more easily recombined later (no I don’t know how to do this). If you use PDB output you can readily rename them with a shell script.
-
November 23, 2011 at 11:45 am #6301Anonymous
Is this the only way to use multiple instances of Rosetta at the same time?
For example, I would like to use Rosetta within multithreaded applications but without using MPI. Is this possible?
-
November 25, 2011 at 11:46 am #6325Anonymous
Thank you for your explanations.
-
December 6, 2011 at 2:40 pm #6363Anonymous
I’m wondering if there is a way to make Rosetta believe that it is running in different directories at the moment of initialization. What I mean is : Is it possible to use options of core::init to run completely separate instances of Rosetta?
-
December 6, 2011 at 3:39 pm #6364Anonymous
We’ve been running instances of rosetta on our desktop by using python’s threading modules, and running rosetta in individual directories (with different seeds) for the apps that don’t use the output options. We have the ram, so it works well enough. If you know python, it shouldn’t be too difficult to get running…
-
December 6, 2011 at 5:16 pm #6365Anonymous
Jared’s solution should work. Also, there are a variety of undocumented and inconsistently supported options for pathing Rosetta’s output. I have no idea which, if any, work with any AbRelax. -out:sf appears to control the output file name; it may let you put a path in instead of a file name.
-
November 23, 2011 at 4:43 pm #6302Anonymous
I’m not clear on what you mean by “use Rosetta within multithreaded applications”. If you mean, use Rosetta as a library, the answer is “maybe”. The code is supposed to be thread-safe, but few if any parts of it are actually multithreaded. Many of the memory-heavy parts are under singleton management that’s supposed to be threadsafe but I don’t know that it’s been tried. The few parts that use MPI in a fashion other than the way I mentioned are still self-contained applications (optE and multistate design).
If you mean, can I make system calls to Rosetta from within some multithreaded application; yes, you can, but it will re-allocate memory separately for each copy of Rosetta that’s running (this is true for MPI too).
Something you should remember here is that Rosetta uses Monte Carlo, which requires many independent trajectories to function as a protocol: try it lots of times and take the best. This lends itself extremely well to only parallelizing at the highest, whole-trajectory level, so that’s what we do. Parallelizing/multithreading within a trajectory is theoretically possible, but we haven’t see any data to suggest the ROI is worth it.
-
-
AuthorPosts
- You must be logged in to reply to this topic.