1 of 1 people found this helpful
(I suppose you use the the first RCKMPI version and its MPB channel device)
it should be possible (I haven't tested it), if you take care not to call any other RCCE function except of the Power Management (PM) related ones. Otherwise you are going to destroy internal data structures in the MPB that are used by the RCKMPI CH3 channel and make your application crash. Additionally, I think it is safe to init RCCE first and then MPI in your application. The reverse applies to finalization. Initiating MPI first and RCCE second will cause the problem stated above, as RCCE PM init function calls RCCE_comm_split which will finally results in a call to RCCE_barrier which writes to the MPB.
A small problem might be the startup procedure of your application: As RCCE applications expect some additional command line parameters (particiapting UEs, reference clock, e.g.), you have to pass them to mpiexec as well. In your application you have to call RCCE_Init which "eats" the additional parameters and then call MPI_Init. To find out the correct parameters, you can use the rccerun script which shows the command line used when starting RCCE programs.
As there is little to no communication to be done in RCCE's PM, you could streamline these functions to your needs, get rid of RCCE and thereby avoid any interference of the to libraries. The real functionality of the power management is simply writing data to some registers.
Thanks for your reply. It is working now, I am initialising MPI first and then RCCE but it is not showing any problems. Only thing that needs to be taken care of is the extra parameters being passed to the RCCE init function as you mentioned.
no problem. Our question seems to be about power savings in MPI applications, which sounds very interesting. Please let the community know about the outcome of your experiments.