introducing sandia* openshmem with multi … · introducing sandia* openshmem with multi-fabric...

23
12 th ANNUAL WORKSHOP 2016 INTRODUCING SANDIA* OPENSHMEM WITH MULTI-FABRIC SUPPORT USING LIBFABRIC: Kayla Seager, Software Engineer, Intel Ryan Grant, Senior Member of Technical Staff, SNL Special thanks to Sayantan Sur and Jim Dinan, Intel [ April 5 th , 2016 ]

Upload: vulien

Post on 26-May-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: INTRODUCING SANDIA* OPENSHMEM WITH MULTI … · INTRODUCING SANDIA* OPENSHMEM WITH MULTI-FABRIC SUPPORT USING LIBFABRIC: Kayla Seager, Software Engineer, Intel Ryan Grant, ... NodeA

12th ANNUAL WORKSHOP 2016

INTRODUCING SANDIA* OPENSHMEM WITH MULTI-FABRIC SUPPORT USING

LIBFABRIC: Kayla Seager, Software Engineer, Intel

Ryan Grant, Senior Member of Technical Staff, SNL Special thanks to Sayantan Sur and Jim Dinan, Intel

[ April 5th, 2016 ]

Page 2: INTRODUCING SANDIA* OPENSHMEM WITH MULTI … · INTRODUCING SANDIA* OPENSHMEM WITH MULTI-FABRIC SUPPORT USING LIBFABRIC: Kayla Seager, Software Engineer, Intel Ryan Grant, ... NodeA

OpenFabrics Alliance Workshop 2016

OUTLINE

§ Background • Libfabric and SHMEM co-design • Sandia SHMEM support and software structure § Scalable Design • Elements leveraged from Libfabric § Portability • SOS support for many fabrics § Results • Initial performance results

Page 3: INTRODUCING SANDIA* OPENSHMEM WITH MULTI … · INTRODUCING SANDIA* OPENSHMEM WITH MULTI-FABRIC SUPPORT USING LIBFABRIC: Kayla Seager, Software Engineer, Intel Ryan Grant, ... NodeA

OpenFabrics Alliance Workshop 2016

BACKGROUND

3  

Page 4: INTRODUCING SANDIA* OPENSHMEM WITH MULTI … · INTRODUCING SANDIA* OPENSHMEM WITH MULTI-FABRIC SUPPORT USING LIBFABRIC: Kayla Seager, Software Engineer, Intel Ryan Grant, ... NodeA

OpenFabrics Alliance Workshop 2016

§ OFA’s OFIWG Goals for Libfabric: • “tight semantic map between applications and underlying fabric

services” – OFIWG https://ofiwg.github.io/libfabric/

4  

OFIWG LIBFABRIC DESIGN

Network  Interface  

Applica4ons  

Influence   Leads  to   Thin  Transport  layer  

Libfabric  

Applica4on  

App  Centric  Design  =  Performance,  Scalability,  Portability  

Page 5: INTRODUCING SANDIA* OPENSHMEM WITH MULTI … · INTRODUCING SANDIA* OPENSHMEM WITH MULTI-FABRIC SUPPORT USING LIBFABRIC: Kayla Seager, Software Engineer, Intel Ryan Grant, ... NodeA

OpenFabrics Alliance Workshop 2016

SANDIA-SHMEM-LIBFABRIC METHODOLOGY

Application mapping example embodies Libfabric’s goal:

5  

Libfabric  Framework  

SHMEM  Applica4on  requirements  

Influenced   Lead  to   Thin  SHMEM-­‐OFI  layer  

Libfabric  

SHMEM  Applica4on  

SHMEM-­‐Libfabric  =  Performance,  Scalability,  &  Portability  

Page 6: INTRODUCING SANDIA* OPENSHMEM WITH MULTI … · INTRODUCING SANDIA* OPENSHMEM WITH MULTI-FABRIC SUPPORT USING LIBFABRIC: Kayla Seager, Software Engineer, Intel Ryan Grant, ... NodeA

OpenFabrics Alliance Workshop 2016

WHAT IS OPENSHMEM?

§ HPC Communication Programming Model API • RMA & Atomic Pt-Pt • Distributed shared memory model (symmetric addressing) • Collectives

• barrier, broadcast, reduce, all-to-all, strided all-to-all

SHMEM  RMA  WRITE  (PUT)    

Node  A   Node  B  

Page 7: INTRODUCING SANDIA* OPENSHMEM WITH MULTI … · INTRODUCING SANDIA* OPENSHMEM WITH MULTI-FABRIC SUPPORT USING LIBFABRIC: Kayla Seager, Software Engineer, Intel Ryan Grant, ... NodeA

OpenFabrics Alliance Workshop 2016

SANDIA OPENSHMEM

Sandia  OpenSHMEM    hOps://github.com/Sandia-­‐OpenSHMEM/SOS  

RMA  Collec4ves  

Transport  Layer  

14  

Portals4   Libfabric  

Locking  implementa4on  

Heap  Management  

NEW  

malloc  

op4onal:  PMI  

NEW  

XPMEM  CMA  

SHM  

Page 8: INTRODUCING SANDIA* OPENSHMEM WITH MULTI … · INTRODUCING SANDIA* OPENSHMEM WITH MULTI-FABRIC SUPPORT USING LIBFABRIC: Kayla Seager, Software Engineer, Intel Ryan Grant, ... NodeA

OpenFabrics Alliance Workshop 2016

SANDIA-SHMEM CODEBASE PART 2

§ OpenSHMEM 1.2.0 compliant release § OpenSHMEM 1.3.0 compliant release (1st)

• includes true non-blocking API and all-to-all collectives

§ Open Source BSD license § Vehicle to… •  establish interface between Libfabric and OpenSHMEM •  Drive both specifications

8  

...---...

Page 9: INTRODUCING SANDIA* OPENSHMEM WITH MULTI … · INTRODUCING SANDIA* OPENSHMEM WITH MULTI-FABRIC SUPPORT USING LIBFABRIC: Kayla Seager, Software Engineer, Intel Ryan Grant, ... NodeA

OpenFabrics Alliance Workshop 2016

PR TESTING FRAMEWORK: TRAVIS CI

§ Software Quality • Continuous integration testing • Rich test suite x Multiple interfaces • Supports independent run environments • Easy issue tracking -> bug resolution

Page 10: INTRODUCING SANDIA* OPENSHMEM WITH MULTI … · INTRODUCING SANDIA* OPENSHMEM WITH MULTI-FABRIC SUPPORT USING LIBFABRIC: Kayla Seager, Software Engineer, Intel Ryan Grant, ... NodeA

OpenFabrics Alliance Workshop 2016

PR TESTING FRAMEWORK: TRAVIS CI

10  

Tests  mul4ple  environment  combina4ons  

Tes4ng  for  every  

incoming  PR  

Page 11: INTRODUCING SANDIA* OPENSHMEM WITH MULTI … · INTRODUCING SANDIA* OPENSHMEM WITH MULTI-FABRIC SUPPORT USING LIBFABRIC: Kayla Seager, Software Engineer, Intel Ryan Grant, ... NodeA

OpenFabrics Alliance Workshop 2016

SCALABILITY AND PERFORMANCE

11  

Page 12: INTRODUCING SANDIA* OPENSHMEM WITH MULTI … · INTRODUCING SANDIA* OPENSHMEM WITH MULTI-FABRIC SUPPORT USING LIBFABRIC: Kayla Seager, Software Engineer, Intel Ryan Grant, ... NodeA

OpenFabrics Alliance Workshop 2016

OFIWG’S SHMEM REQUIREMENTS BAKED INTO OFI USED BY SHMEM-OFI

Node  A   Node  B  

Efficient  Remote  CompleAon  for  Put/Get  

Scalable  Endpoint  EnumeraAon  

sync  

enabled  counters  for    lightweight  remote  compleAon  

Reliable  connecAonless  endpoints  with  logical  

addressing  

9  

Page 13: INTRODUCING SANDIA* OPENSHMEM WITH MULTI … · INTRODUCING SANDIA* OPENSHMEM WITH MULTI-FABRIC SUPPORT USING LIBFABRIC: Kayla Seager, Software Engineer, Intel Ryan Grant, ... NodeA

OpenFabrics Alliance Workshop 2016

OFA’S SHMEM REQUIREMENTS REALIZED IN OFI

13  

13  

Reuse  Local  Buffer  

PGAS  ImplementaAon  

Hardware  Fabric  

Fabric  Direct  

       Immediate  local  compleAon:  

“fi_inject”  

Minimize  InstrucAons  

     Accelerated  small  message  

pathway  

10  

OFIWG’S SHMEM REQUIREMENTS BAKED INTO OFI USED BY SHMEM-OFI

Page 14: INTRODUCING SANDIA* OPENSHMEM WITH MULTI … · INTRODUCING SANDIA* OPENSHMEM WITH MULTI-FABRIC SUPPORT USING LIBFABRIC: Kayla Seager, Software Engineer, Intel Ryan Grant, ... NodeA

OpenFabrics Alliance Workshop 2016

OFA’S SHMEM REQUIREMENTS REALIZED IN OFI

14  

Node  A   Node  B  

Rich  Atomic  Set  Scalable,  memory  usage  model  

Full  SHMEM  converge  with  fine  API  granularity  

VA  communicaAon  style,  expose  full  VA  range  

11  

OFIWG’S SHMEM REQUIREMENTS BAKED INTO OFI USED BY SHMEM-OFI

Page 15: INTRODUCING SANDIA* OPENSHMEM WITH MULTI … · INTRODUCING SANDIA* OPENSHMEM WITH MULTI-FABRIC SUPPORT USING LIBFABRIC: Kayla Seager, Software Engineer, Intel Ryan Grant, ... NodeA

OpenFabrics Alliance Workshop 2016

PORTABILITY

15  

Page 16: INTRODUCING SANDIA* OPENSHMEM WITH MULTI … · INTRODUCING SANDIA* OPENSHMEM WITH MULTI-FABRIC SUPPORT USING LIBFABRIC: Kayla Seager, Software Engineer, Intel Ryan Grant, ... NodeA

OpenFabrics Alliance Workshop 2016

PORTABILITY SCOPE

Sandia  OpenSHMEM  

libfabric  Portals  4  

uGNI  Provider  

Sockets  Provider  

PSM/PSM2  Provider  

BG/Q  Provider  

Supports maximum portability Intel® Omni-Path Architecture generations

Under Active Development

14  

So^ware  (IB)  

Hardware  (BXI)  

Page 17: INTRODUCING SANDIA* OPENSHMEM WITH MULTI … · INTRODUCING SANDIA* OPENSHMEM WITH MULTI-FABRIC SUPPORT USING LIBFABRIC: Kayla Seager, Software Engineer, Intel Ryan Grant, ... NodeA

OpenFabrics Alliance Workshop 2016

MEMORY MODEL BEFORE

15  

Libfabric  Seman4c   Remote  Virtual  Addr.    (OS  support)  

MR_SCALABLE    *user  defined  keys    *Full  VA  Space    +no  key  exchange  +single  registra4on  for  full  VA  space  +minimal  footprint  (don’t  track  keys)  

Symmetric  Addressing    (Address  on  Node  A  =  Address  on  Node  B)    +full  VA  space  addressing  +minimal  footprint  (don’t  track  addresses)  

MR_SCALABLE  and  symmetric  VA  =  good  SHMEM  semanAc  match  

Page 18: INTRODUCING SANDIA* OPENSHMEM WITH MULTI … · INTRODUCING SANDIA* OPENSHMEM WITH MULTI-FABRIC SUPPORT USING LIBFABRIC: Kayla Seager, Software Engineer, Intel Ryan Grant, ... NodeA

OpenFabrics Alliance Workshop 2016

MEMORY MODEL AFTER

OFI  Seman4c   Remote  Offset   Remote  Virtual  Addr.    (OS  support)  

MR_SCALABLE    *user  defined  keys    

Offset  addressing,  -­‐track  and  exchange  offset      

Symmetric  addressing  

MR_BASIC    *fabric  defined  keys  

Offset  Addressing  -­‐track  and  exchange  offset  -­‐track  and  exchange  keys  

Symmetric  Addressing  -­‐track  and  exchange  keys  

15  

Adding  MR  Basic  &  offset  enables  broader  provider  support  

Page 19: INTRODUCING SANDIA* OPENSHMEM WITH MULTI … · INTRODUCING SANDIA* OPENSHMEM WITH MULTI-FABRIC SUPPORT USING LIBFABRIC: Kayla Seager, Software Engineer, Intel Ryan Grant, ... NodeA

OpenFabrics Alliance Workshop 2016

ATOMICS MODEL BEFORE

§ Require full atomic fabric support • No current hardware supports long double atomics

16  

fi_ge4nfo  (fabric  discovery)  

Full    Atomics    

SHMEM  Request  

Fabric  1  No  long  double  

atomics  

Fabric  2  Full  So^ware  

Atomics  

Page 20: INTRODUCING SANDIA* OPENSHMEM WITH MULTI … · INTRODUCING SANDIA* OPENSHMEM WITH MULTI-FABRIC SUPPORT USING LIBFABRIC: Kayla Seager, Software Engineer, Intel Ryan Grant, ... NodeA

OpenFabrics Alliance Workshop 2016

ATOMICS MODEL AFTER

§ Enabled “hybrid” atomic support for portability • detect and allow long double (only) limitation

16  

fi_ge4nfo  (fabric  discovery)  

Full    Atomics    

SHMEM  Request  

Fabric  1  No  long  double  

atomics  

Fabric  2  Full  So^ware  

Atomics  

fi_atomic  valid    (fine  grain  support  detec4on)  

So^ware  reduc4on  collec4ve  

Long  Double?  

Enable  

Fabric  1  No  long  double  

atomics  

NEW  

Page 21: INTRODUCING SANDIA* OPENSHMEM WITH MULTI … · INTRODUCING SANDIA* OPENSHMEM WITH MULTI-FABRIC SUPPORT USING LIBFABRIC: Kayla Seager, Software Engineer, Intel Ryan Grant, ... NodeA

OpenFabrics Alliance Workshop 2016

EARLY RESULTS

§ Scalability: • Sandia-SHMEM-OFI-PSM2: scaling to 2,048 PEs (16ppn)

• Using ISx (integer sort) with 134,217,728 keys per PE • Sandia-SHMEM-OFI-Sockets: scaling 512 PEs (14ppn)

• Full OSU* SHMEM test-suite

§ Performance: • Shmem_int_p ->fi_inject_write: 16 instructions • Shmem_fence -> fi_cntr_wait: 11 instructions

12  

Thin  SHMEM-­‐OFI  layer  

Page 22: INTRODUCING SANDIA* OPENSHMEM WITH MULTI … · INTRODUCING SANDIA* OPENSHMEM WITH MULTI-FABRIC SUPPORT USING LIBFABRIC: Kayla Seager, Software Engineer, Intel Ryan Grant, ... NodeA

OpenFabrics Alliance Workshop 2016

SANDIA-SHMEM-LIBFABRIC SUMMARY

§ Performance and Scalability • Enabled by SHMEM requirements baked into libfabric

framework • shmem_int_p: 16 instructions • scaled to 2,048 processes

§ Portability • 4 different fabrics/providers • SHMEM-libfabric changes for portability

• Flexible memory model (compile time choice) • Software long double atomic support

17  

Network  Interface  

Applica4ons  

Influence  

Page 23: INTRODUCING SANDIA* OPENSHMEM WITH MULTI … · INTRODUCING SANDIA* OPENSHMEM WITH MULTI-FABRIC SUPPORT USING LIBFABRIC: Kayla Seager, Software Engineer, Intel Ryan Grant, ... NodeA

12th ANNUAL WORKSHOP 2016

THANK YOU Kayla Seager, Software Engineer, Intel

Ryan Grant, Senior Member of Technical Staff, SNL Special thanks to Sayantan Sur and Jim Dinan

Part  of  this  work  was  funded  through  the  Computa4onal  Systems  and  So^ware  Environment  sub-­‐program  of  the  Advanced  Simula4on  and  Compu4ng  Program  funded  by  the  Na4onal  Nuclear  Security  Administra4on