Giter Site home page Giter Site logo

Comments (8)

tdd11235813 avatar tdd11235813 commented on September 18, 2024

DASH

DASH
DASH, the C++ Template Library for Distributed Data Structures with Support for Hierarchical Locality for HPC and Data-Driven Science http://www.dash-project.org/
Readme

Choosing a DASH runtime (DART)
DASH provides the following variants:
    MPI: the Message Passing Interface
    CUDA: nNvidia’s Compute Unified Device Architecture (contributor distribution only)
    SHMEM: Symmetric Hierarchical Memory access (contributor distribution only)

DASH already implements a hardware information API with hierarchical levels (nested "domains").

  • illustrating example on domains
  • domain: can be NUMA host domain, MIC domain, unit of MIC cores, ...
    • scopes:
      GLOBAL > GROUP > NETWORK > NODE > MODULE > NUMA > UNIT > PACKAGE > UNCORE > CORE > CPU
  • properties: cache_line_sizes, cache_shared, cache_sizes, cpu_id, max_cpu_mhz, max_threads, min_cpu_mhz, min_threads, num_cores, num_numa, num_sockets, numa_id
  • license: looks like 3-clause BSD

Backend

Conclusion

  • covers performance-relevant properties like caches and affinity => should be part of compass
  • concept of domain and scope provides hierarchical links => should be part of compass as well
  • likwid, papi, numa and hwloc required to gather hardware information => probably would be the same in compass
  • cannot find GPU properties at the moment
  • it seems DASH/DART provides a good code base for compass

from compass.

psteinb avatar psteinb commented on September 18, 2024

from compass.

tdd11235813 avatar tdd11235813 commented on September 18, 2024

talked with a fellow from our institute, he also wants a hardware info tool, but focus is quite I/O low-level.
nevertheless, there are common features and we should talk together, maybe at a GCOE meeting. but first, we should gather more information to find must-haves, nice-to-have and must-not-haves :)

from compass.

tdd11235813 avatar tdd11235813 commented on September 18, 2024

hwloc

hwloc (Open-MPI)

... provides a portable abstraction (across OS, versions, architectures, ...) of the hierarchical topology of modern architectures,

  • information on: NUMA, sockets, caches, processor packages & cores & units, affinities, I/O devices, hierarchy, accelerators
  • C-API, highly portable
  • License: 3-clause BSD

Supported OS

 hwloc supports the following operating systems:
    Linux (including old kernels not having sysfs topology information, with knowledge of cgroups, offline CPUs, ScaleMP vSMP, and NumaScale NumaConnect) on all supported hardware, including Intel Xeon Phi.
    Solaris, AIX, HP-UX and OSF/1 (a.k.a., Tru64)
    NetBSD, FreeBSD and kFreeBSD/GNU
    Darwin / OS X
    Microsoft Windows (either using MinGW or a native Visual Studio solution)
    IBM BlueGene/Q Compute Node Kernel (CNK)

Conclusion

  • most likely we have to rely on it and most parts of compass just might C++-wrap hwloc

from compass.

psteinb avatar psteinb commented on September 18, 2024

from compass.

tdd11235813 avatar tdd11235813 commented on September 18, 2024

yes it does, see updated hwloc post. We still have to check features which are not covered by hwloc et. al.

from compass.

tdd11235813 avatar tdd11235813 commented on September 18, 2024

Boost::Predef

Boost::Predef contains system information which can be retrieved by the compiler.

provides information about:

  • architecture, compiler, language, OS, SIMD type, endianess
  • probably not important: [C] library, platform (mingw, windows [desktop, phone, runtime, store])

First released in Boost 1.55.0.

Conclusion

  • could replace our compile-time stuff, which would introduce dependency of Boost >=1.55.0

from compass.

psteinb avatar psteinb commented on September 18, 2024

and of course we should not forget
cpu_features

from compass.

Related Issues (7)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.