Skip to content
  • David E. DeMarle's avatar
    Add extended memory space via memkind · 9df08a7e
    David E. DeMarle authored
    With this change a select few vtkObjects, including vtkBuffers,
    vtkDataArrays, and common vtkDataSets can optionally be
    constructed within in a potentially large memory space
    provided by Memkind.
    
    Memkind provides memory mapped buffers over any file system,
    but ideally one mounted -o dax and backed by fast non-volatile
    memory hardware like Optane. Applications set the specific
    location early on via vtkObjectBase::SetMemkindDirectoryi().
    
    To try it, turn on the new VTK_USE_MEMKIND cmake configuration
    option and provide a path to link libmemkind. The option
    turns on the new and very experimental code paths. Memkind, and
    thus the option are only available under Linux.
    
    In user code, to create vtkObjects in the extended space call
    the ::ExtendedNew() function rather than the typical
    ::New() function. The TestMemkind test demonstrates and
    exercises the feature. The implementation is that ExtendedNew()
    turns on a static flag vtkObjectBase::UsingMemkind, that
    forces construc...
    9df08a7e