Modify ↓
Opened 12 years ago
Closed 12 years ago
#254 closed defect (wontfix)
MPI changes for compatibility with MVAPICH2
Reported by: | ponyisi@utexas.edu | Owned by: | Stefan Hoeche |
---|---|---|---|
Priority: | minor | Milestone: | rel-2.0.0 |
Component: | Unknown | Version: | 1.4.3 |
Keywords: | Cc: |
Description
Hi - I have been trying to get Sherpa 1.4.3 running in MPI mode on our local system (uses MVAPICH2). I found the following changes necessary:
In Sherpa.C, Sherpa::InitializeTheRun:
- accessing the hostname by rpa->gen.Variable("HOSTNAME") needed to be replaced by MPI_Get_processor_name (I see this has already landed in 2.0.0);
- the code doesn't handle the edge case where MPI_COMBINE_PROCS=1 properly (basically because the code assumes it >= 2), fixed with adding
"if (cprocs[host] == ppn) cprocs[host] = 0;" after line 119, and moving "if (cprocs[hosts[tag]]==ppn) cprocs[hosts[tag]]=0;" from line 143 _outside_ the else { }. (Would also be fixed with modular arithmetic.)
In Exception_Handler.C, Exception_Handler::MPISuspend:
- I found it necessary to replace the "MPI_Irsend" by "MPI_Send", or else I got errors about how there was no receive available for the ready send. The blocking send works fine.
Best, Peter Onyisi
Attachments (0)
Change History (2)
comment:1 Changed 12 years ago by
Milestone: | → rel-2.0.0 |
---|---|
Owner: | changed from support@sherpa-mc.de to Stefan Hoeche |
comment:2 Changed 12 years ago by
Resolution: | → wontfix |
---|---|
Status: | new → closed |
Note: See
TracTickets for help on using
tickets.
Hi Peter,
thank you for the suggestions. We will improve MPI support in version 2.0.0. However, the switch MPI_COMBINE_PROCS will be removed, as it is useful only on small, very heterogenous systems. Running more than one thread per MPI node will still be possible by specifying PG_THREADS=<#threads>, but allocation will not be dynamic. At the same time, we will cease to support automatic load balancing (this may be re-implemented at a later stage, if necessary).
Best
Stefan