sstsimulator / sst-macro

SST Macro Element Library
http://sst-simulator.org/
Other
34 stars 41 forks source link

Trouble reading MPI parameters #618

Closed afranques closed 3 years ago

afranques commented 3 years ago

Hello!

I was trying to see the impact of the mpi parameters (including mpi.queue) mentioned in Section 8.4 of the user's manual, but I wasn't able to get the simulator to read them, since it kept using the default values. After some digging in the code I found out that the mpi parameters are actually part of the node.appN namespace, and therefore they should be put in there. Moreover, I suggest putting the mpi.queue parameters mentioned in Section 8.4.1 of the user's manual outside of the queue subsection (e.g., instead of node.appN.mpi.queue.post_rdma_delay I suggest you have node.appN.mpi.post_rdma_delay), otherwise they are not being read. I thought it would be worth sharing it here, just in case someone runs into the same trouble as me in the future, or so that it can be adapted in the user's manual and examples. And please correct me if I'm getting something terribly wrong here!

Also, heads-up, I believe the test_delay parameter is not actually 0 by default (as mentioned in Section 8.4 of the user's manual), but 1us instead. If you want to make it 0 you can either put it in the parameters file like node.appN.mpi.test_delay = 0, or of course you can modify mpi_api.cc and replace the line: double test_delay_s = params.find<SST::UnitAlgebra>("test_delay", "1us").getValue().toDouble(); for double test_delay_s = params.find<SST::UnitAlgebra>("test_delay", "0").getValue().toDouble();

Maybe everything I just described here only applies to using SST-Macro with the integrated SST-Core (which is what I am using), and not to using it in standalone mode, I haven't tested that.

EDIT: I later found bin/uq/exampleTemplate.ini which shows the right place to put the mpi parameters.

Cheers, Antonio