chapel-lang / chapel

a Productive Parallel Programming Language
https://chapel-lang.org
Other
1.79k stars 421 forks source link

Revamp intro to multi-locale execution documentation #12819

Open ronawho opened 5 years ago

ronawho commented 5 years ago

Our current multi-locale execution docs are geared towards how to run distributed across multiple nodes, but most users (especially those just getting started) will be running/debugging on a single node that's emulating multiple locales. We should make that common case easier to find.

ronawho commented 5 years ago

udp defaults to segment everything, which doesn't support pshm. We might want to recommend smp (which defaults to segment fast and has pshm support) since that can be much faster -- https://gitter.im/chapel-lang/chapel?at=5cc38cdd97dcb371d81cabd7

pshm info:

      This feature uses shared memory communication among the processes (aka
      GASNet nodes) within a single compute node (where the other alternatives
      are multi-threading via a PAR or PARSYNC build; or use of the conduit's
      API to perform the communication).
      Note that not all conduits and operating systems support this feature.
      For more information, see the section below entitled "GASNet inter-Process
      SHared Memory (PSHM)".
LouisJenkinsCS commented 5 years ago

Definitely need to make CHPL_GASNET_SEGMENT=fast the default, its a night and day difference!

NumLocales SMP/UDP-Fast UDP-Everything (Default)
1 0.009726 009726
2 0.016445 0.570676
4 0.025065 0.984162
8 0.051521 1.2397
16 0.099913 3.57597
32 0.17136 7.76913
64 0.261266 11.4257