2 Replies Latest reply on Feb 1, 2011 12:58 AM by devendra.rai

    RCCE: Binding Process to unique core?




      Is there a way to bind a process to a pre-determined core? For example, in my RCCE app, I have three processes (like MPI processes), and I want to bind process2 to rck47, process 0 to rck00 and so on.


      In OpenMPI(1.4.x), we do it by using either rankfiles, or by using --bycore options.


      Is there anything similar possible here? I tried changing the order of cores in rc.hosts, hoping that processes will be assiged to cores in round-robin fashion. However, I find that that the rc.hosts is somehow sorted, and it leads to process0 getting rck00 always. I did three runs with rc.hosts:

      (a). rck00-> rck01-> rck02

      (b) rck02 -> rck01 -> rck00

      (c) rck01 -> rck00 -> rck02


      where '->' is a newline.


      Any ideas will be helpful.



      Devendra Rai

        • 1. Re: RCCE: Binding Process to unique core?

          The RCCE host file lists the cores to be used by their IDs. If your rc.hosts contains the lines




          rccerun will try to run your program on these cores.


          Ranks in RCCE are assigned based on the sorted core IDs. So here in this example, core 1 will get rank 0, core 2 will get rank 1, and core 47 will get rank 2. If you want to preserve the order in the host file, just remove the RCCE_qsort() in RCCE_init() in file RCCE_admin.c. Then rank 0 will be assigned to core 2, rank 1 to core 1, and rank 2 to core 47.


          I hope I'm not missing the point of your question. Is this what you wanted to know?

          • 2. Re: RCCE: Binding Process to unique core?

            Hey Andreas,


            Bull's eye! Thanks a lot!


            Devendra Rai