Hi Bilge and Kale --

Adding on to Greg's response: Another difference between Chapel targeting Crays via ugni vs. GASnet is that in our ugni runtime we make use of network atomics while our gasnet port does not since neither GASnet nor SMSG support an interface to them. I don't think that we've put any effort into trying to understand how much of our performance deltas are due to atomics vs. more traditional data transfers -- so I can't quantify the impact of this for you here -- but it's another factor to keep in mind.

-Brad


On Thu, 5 Jan 2017, Greg Titus wrote:

Hello Bilge —

We do performance testing nightly using, among other things, 16-node Cray XC 
runs. You can see the results here:
http://chapel.sourceforge.net/perf/16-node-xc/

In the left column you can select the configurations and which tests you want 
to see.  The configurations aren’t fully descriptive, but ‘gnu+ugni-qthreads’ 
and ‘gnu+gasnet-aries’ differ only in the Chapel runtime communication layer 
implementation: the former uses a comm implementation based directly on ugni 
and the latter uses a comm implementation based on GASNet and its ‘aries’ 
conduit.  (Both use a gcc target compiler and Qthreads-based tasking.)  So 
those are the two you want to look at.  Just select a suite or individual tests 
you want to see and then click the ‘Display’ button.  The ‘HPCC (time)’ suite 
might be a good one to start with.

Generally you’ll find that the native ugni-based comm layer outperforms the 
GASNet-based one, as you mentioned.  Which one you’ll want to use depends on a 
performance vs. usability tradeoff, as is so often the case in our business.  
:-)   The Chapel native one uses the ugni RDMA capability which can do both 
GETs and PUTs, but requires us to register with the NIC any memory it will 
reference directly (remote targets for PUTs and both remote sources and local 
targets for GETs).  The GASNet+aries one is based on the ugni SMSG (short 
message) capability which can only do PUTs but doesn’t require registered 
memory.  It’s therefore a better match for GASNet’s communication model.  The 
ugni RDMA capability has better performance, which is why the Chapel native 
ugni comm layer beats the GASNet-based one, but it has a more complicated 
implementation and even user interface because of the need to register memory.  
For simplicity, our expected situation is to pre-register the static data and a 
fixed-size heap, both on hugepages (using a Cray PE hugepages shell module) and 
bounce any (hopefully unlikely) references to unregistered memory through 
trampoline buffers in registered memory.  This in turn requires knowing the 
heap size up front, so we guess at that but allow the user to set an 
environment variable to override our guess.  The GASNet-based layer doesn’t 
have any of this complication with user-visible registration, so it’s 
potentially easier on the users and certainly simpler to implement.

I can fill in more details but this should be enough to get you started on your 
own decision process.  Let me know if you have other questions!

greg


On Jan 5, 2017, at 11:34 AM, Bilge Acun 
<[email protected]<mailto:[email protected]>> wrote:

Hello Chapel team,

I am from the Charm++ team and we would like to learn more about Chapel's 
GasNet port as we are also considering implementing a GasNet communication 
interface for Charm++. I have read your Reddit discussion where David writes 
native ugni performs better than GasNet on Cray systems. Can you share with us 
how much performance difference there is? What are the reasons for this 
performance difference?

For Charm++, we have implementations of native interfaces for ugni, verbs, 
pami, and some others to achieve the best performance. GasNet's portability is 
very appealing, however we do not want to sacrifice from performance. Your 
insights would be valuable for us.

Thanks,

--
Bilge Acun
PhD Candidate, Computer Science Department
University of Illinois at Urbana-Champaign
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org<http://SlashDot.org>! 
http://sdm.link/slashdot_______________________________________________
Chapel-developers mailing list
[email protected]<mailto:[email protected]>
https://lists.sourceforge.net/lists/listinfo/chapel-developers

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Chapel-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/chapel-developers

Reply via email to