Legion Runtime
Loading...
Searching...
No Matches
Legion::AttachLauncher Struct Reference

#include <launchers.h>

Public Member Functions

 AttachLauncher (ExternalResource resource, LogicalRegion handle, LogicalRegion parent, const bool restricted=true, const bool mapped=true)
 
void initialize_constraints (bool column_major, bool soa, const std::vector< FieldID > &fields, const std::map< FieldID, size_t > *alignments=nullptr)
 
void attach_file (const char *file_name, const std::vector< FieldID > &fields, LegionFileMode mode)
 
void attach_hdf5 (const char *file_name, const std::map< FieldID, const char * > &field_map, LegionFileMode mode)
 
void attach_array_aos (void *base, bool column_major, const std::vector< FieldID > &fields, Memory memory=Memory::NO_MEMORY, const std::map< FieldID, size_t > *alignments=nullptr)
 
void attach_array_soa (void *base, bool column_major, const std::vector< FieldID > &fields, Memory memory=Memory::NO_MEMORY, const std::map< FieldID, size_t > *alignments=nullptr)
 

Public Attributes

ExternalResource resource
 
LogicalRegion parent
 
LogicalRegion handle
 
std::set< FieldID > privilege_fields
 
const Realm::ExternalInstanceResource * external_resource
 
LayoutConstraintSet constraints
 
bool restricted
 
bool mapped
 
bool collective
 
bool deduplicate_across_shards
 
std::string provenance
 
const char * file_name
 
LegionFileMode mode
 
std::vector< FieldID > file_fields
 
std::map< FieldID, const char * > field_files
 
size_t footprint
 
const std::vector< StaticDependence > * static_dependences
 

Detailed Description

Attach launchers are used for attaching existing physical resources outside of a Legion application to a specific logical region. This can include attaching files or arrays from inter-operating programs. We provide a generic attach launcher than can handle all kinds of attachments. Each attach launcher should be used for attaching only one kind of resource. Resources are described using Realm::ExternalInstanceResource descriptors (interface can be found in realm/instance.h). There are many different kinds of external instance resource descriptors including:

  • Realm::ExternalMemoryResource for host pointers (realm/instance.h)
  • Realm::ExternalFileResource for POSIX files (realm/instance.h)
  • Realm::ExternalCudaMemoryResource for CUDA pointers (realm/cuda/cuda_access.h)
  • Realm::ExternalHipMemoryResource for HIP pointers (realm/hip/hip_access.h)
  • Realm::ExternalHDF5Resource for HDF5 files (realm/hdf5/hdf5_access.h) ... Please explore the Realm code base for all the different kinds of external resources that you can attach to logical regions.
    See also
    Runtime

The documentation for this struct was generated from the following file: