dash locality hierarchies (padal'16)

20
Tobias Fuchs [email protected] Ludwig-Maximilians Universität (LMU) München DASH Locality Hierarchies An Information System for Hierarchical Locality

Upload: ludwig-maximilians-universitaet-lmu-muenchen

Post on 14-Jan-2017

37 views

Category:

Science


4 download

TRANSCRIPT

Page 1: DASH Locality Hierarchies (PADAL'16)

Tobias Fuchs

[email protected]

Ludwig-Maximilians Universität (LMU) München

DASH Locality Hierarchies

An Information System for Hierarchical Locality

Page 2: DASH Locality Hierarchies (PADAL'16)

Motivation

Motivation:Portable efficiency of ported applications like LULESH and graph applications for heterogeneoussystems

hwloc static hierarchical hardware topology

DASH locality as view from variable run-time configuration

… extended to full distributed topology… supporting heterogeneous systems, esp. Intel MIC… designed for use cases like hierarchical graph partitioning

DASH Locality Hierarchies

Page 3: DASH Locality Hierarchies (PADAL'16)

Trees vs. Reality

We do not model hardware locality as trees

… because many represented systems are anything but trees

DASH Locality Hierarchies

http://frankdenneman.nl/2016/07/11/numa-deep-dive-part-3-cache-coherency/

Page 4: DASH Locality Hierarchies (PADAL'16)

Related Concepts

Combining existing abstractions

- Hierarchical Place Treesabstraction of locality scopes and process mapping

- hwlocnode-level machine topology and hardware capacityfocuses at topology discovery (once, at startup) and provides queries on topology data

Locality Hierarchies

- are specifically designed for user-specified views and modifications of the topology representation

- are specifically designed for hierarchical process structures (teams)

DASH Locality Hierarchies

Page 5: DASH Locality Hierarchies (PADAL'16)

Examples: Xeon PHI

DASH Locality Hierarchies

Compute Node with Xeon Phi Accelerators as seen by hwloc

Page 6: DASH Locality Hierarchies (PADAL'16)

Examples: Xeon PHI

Compute Node with Xeon Phi Accelerators as seen by DASH

DASH Locality Hierarchies

Page 7: DASH Locality Hierarchies (PADAL'16)

Examples: Xeon PHI

DASH Locality Hierarchies

Page 8: DASH Locality Hierarchies (PADAL'16)

Examples: Xeon PHI

DASH Locality Hierarchies

Page 9: DASH Locality Hierarchies (PADAL'16)

Key Functionalities

Why we need locality hierarchies in DART/DASH:

- Locality-optimized grouping of processes into teams

- Load-balancing, requires: topology information

… obviously, to find suitable processes for balancing hardware capacities

… like number of cores/threads and (shared) memory capacitiesavailable to processes

- Dynamic distance measures: variable at run time instead of staticdistance matrix

DASH Locality Hierarchies

Page 10: DASH Locality Hierarchies (PADAL'16)

Locality Domains

DASH Locality Hierarchies

Page 11: DASH Locality Hierarchies (PADAL'16)

Splitting / Grouping

DASH Locality Hierarchies

Page 12: DASH Locality Hierarchies (PADAL'16)

Heterogeneous min_element

DASH Locality Hierarchies

Page 13: DASH Locality Hierarchies (PADAL'16)

Some fundamental operations on locality hierarchies

Basic principle of usage:( (filter/select) (group/split) )*

C API, bindings for Python in development, Fortran bindings feasible

C API

DASH Locality Hierarchies

Page 14: DASH Locality Hierarchies (PADAL'16)

Usage of C++ API

// split into num_groups teams at NUMA locality scopeauto & new_team = dash::Team::All().locality_split(

dash::util::Locality::Scope::NUMA,// optional, defaults to one team per locality scopenum_groups);

// split into two teams: leader team and workersauto & new_team = dash::Team::All().leader_split(

dash::util::Locality::Scope::NODE);

// split into teams by predicateauto & new_team = dash::Team::All().specific_split(

[](dash::util::LocalityDomain ld) {// ...return new_team_id_for_ld;

});

DASH Locality Hierarchies

Page 15: DASH Locality Hierarchies (PADAL'16)

Leader Groups

DASH Locality Hierarchies

Logical vs. physicaltopology

Page 16: DASH Locality Hierarchies (PADAL'16)

Domain Aliasing

DASH Locality Hierarchies

Page 17: DASH Locality Hierarchies (PADAL'16)

Splitting / Grouping

DASH Locality Hierarchies

Page 18: DASH Locality Hierarchies (PADAL'16)

Splitting / Grouping

DASH Locality Hierarchies

Page 19: DASH Locality Hierarchies (PADAL'16)

Basic Distance Model

DASH Locality Hierarchies

Page 20: DASH Locality Hierarchies (PADAL'16)

Links

DASH Locality Hierarchies

www.dash-project.org

www.github.com/dash-project

Stand-alone library of DASH locality hierarchies (libdhloc)available in ~4 weeks