1. 06 Oct, 2017 1 commit
    • Swann Perarnau's avatar
      [refactor] Implement new API, based on jemalloc · 66564c2f
      Swann Perarnau authored
      This is a redesign of the library, as a hierarchy of core objects
      implementing its various features. The idea is to create an API that is
      as flexible and customizable as possible, by exposing as much as
      possible of its internals, so that users can create customs versions
      easily.
      
      We also move away from memkind as a possible backend, opting instead to
      vendor the jemalloc interface and implement everything ourselves on top
      of that.
      
      We expect to start building the low-level pieces using hwloc as a
      backend soon, at least in terms of accessing available devices.
      66564c2f
  2. 22 Aug, 2017 1 commit
    • Swann Perarnau's avatar
      [refactor] Rework code for better abstractions · a41b0412
      Swann Perarnau authored
      This is a rewrite of the existing code into a memory library exposing
      more of its internal abstractions. This refactoring is required to:
      - make progress faster by focusing on the core new features
      - abstract more of the underlying components and expose those
      abstractions
      - build upon existing libraries (memkind) for the internal stuff.
      
      Memkind is used as a crutch here, we do not intend to use it in the long
      term, as some of its internal are opposed to what we want (topology
      management in particular).
      
      Nevertheless, it currently provides a good allocator internally, and
      decent access to deep memory, for now.
      
      Over time, we figured out that the best way to build this API was to
      create several layers of APIs, each with more abstractions over the
      devices. At the same time, we want each layer to expose its internal
      mechanisms, so that a user can customize any of them.
      
      This is why we end up with areas and dma engines, and we will add in the
      future other stuff, like data decomposition and distribution methods, as
      well as direct support for "pipelining".
      a41b0412
  3. 30 Jun, 2016 1 commit
    • Swann Perarnau's avatar
      Add first working version: limit numa allocs · 80669c37
      Swann Perarnau authored
      This is the first working version of the library. It does very little:
      - only numa support
      - one allocation per node only
      - limited tests
      - limited set of functions
      
      Nevertheless, this gives a good idea of what the API should look like, and the
      kind of benchmarks we can write with it.
      80669c37