AbinitioRelax using multiple cores on a single machine without mpi?

Member Site Forums Rosetta 3 Rosetta 3 – General AbinitioRelax using multiple cores on a single machine without mpi?

Viewing 6 reply threads
  • Author
    Posts
    • #1066
      Anonymous

        How would I use multiple cores on a single machine in an effective way without mpi?

      • #6177
        Anonymous

          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.

        • #6301
          Anonymous

            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?

          • #6325
            Anonymous

              Thank you for your explanations.

            • #6363
              Anonymous

                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?

              • #6364
                Anonymous

                  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…

                • #6365
                  Anonymous

                    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.

                  • #6302
                    Anonymous

                      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.

                  Viewing 6 reply threads
                  • You must be logged in to reply to this topic.