Hermes
0.9.5-beta
Hierarchical Distributed I/O Buffering System
|
#include <assert.h>
#include <stddef.h>
#include <stdio.h>
#include <atomic>
#include <string>
#include <utility>
#include <vector>
#include "communication.h"
#include "hermes_status.h"
#include "hermes_types.h"
#include "memory_management.h"
Go to the source code of this file.
Classes | |
struct | hermes::Device |
struct | hermes::Target |
union | hermes::BufferID |
struct | hermes::BufferIdHash |
struct | hermes::ShmemClientInfo |
struct | hermes::BufferHeader |
struct | hermes::BufferPool |
struct | hermes::SharedMemoryContext |
struct | hermes::Blob |
struct | hermes::SwapBlob |
Namespaces | |
hermes | |
Enumerations | |
enum | hermes::SwapBlobMembers { SwapBlobMembers_NodeId , SwapBlobMembers_Offset , SwapBlobMembers_Size , SwapBlobMembers_BucketId , SwapBlobMembers_Count } |
Functions | |
bool | hermes::operator== (const BufferID &lhs, const BufferID &rhs) |
size_t | hermes::GetBlobSize (SharedMemoryContext *context, RpcContext *rpc, BufferIdArray *buffer_ids) |
size_t | hermes::GetBlobSizeById (SharedMemoryContext *context, RpcContext *rpc, Arena *arena, BlobID blob_id) |
f32 | hermes::GetBlobImportanceScore (SharedMemoryContext *context, RpcContext *rpc, BlobID blob_id) |
void | hermes::MakeFullShmemName (char *dest, const char *base) |
void | hermes::InitFilesForBuffering (SharedMemoryContext *context, CommunicationContext &comm) |
SharedMemoryContext | hermes::GetSharedMemoryContext (char *shmem_name) |
void | hermes::ReleaseSharedMemoryContext (SharedMemoryContext *context) |
void | hermes::UnmapSharedMemory (SharedMemoryContext *context) |
std::vector< BufferID > | hermes::GetBuffers (SharedMemoryContext *context, const PlacementSchema &schema) |
void | hermes::ReleaseBuffers (SharedMemoryContext *context, RpcContext *rpc, const std::vector< BufferID > &buffer_ids) |
void | hermes::StartBufferPoolRpcServer (SharedMemoryContext *context, const char *addr, i32 num_rpc_threads) |
void | hermes::Finalize (SharedMemoryContext *context, CommunicationContext *comm, RpcContext *rpc, const char *shmem_name, Arena *trans_arena, bool is_application_core, bool force_rpc_shutdown) |
void | hermes::WriteBlobToBuffers (SharedMemoryContext *context, RpcContext *rpc, const Blob &blob, const std::vector< BufferID > &buffer_ids) |
size_t | hermes::ReadBlobFromBuffers (SharedMemoryContext *context, RpcContext *rpc, Blob *blob, BufferIdArray *buffer_ids, u32 *buffer_sizes) |
size_t | hermes::ReadBlobById (SharedMemoryContext *context, RpcContext *rpc, Arena *arena, Blob blob, BlobID blob_id) |
size_t | hermes::ReadBlobById (SharedMemoryContext *context, RpcContext *rpc, Arena *arena, api::Blob &dest, BlobID blob_id) |
size_t | hermes::LocalWriteBufferById (SharedMemoryContext *context, BufferID id, const Blob &blob, size_t offset) |
size_t | hermes::LocalReadBufferById (SharedMemoryContext *context, BufferID id, Blob *blob, size_t read_offset) |
SwapBlob | hermes::PutToSwap (SharedMemoryContext *context, RpcContext *rpc, const std::string &name, BucketID bucket_id, const u8 *data, size_t size) |
template<typename T > | |
std::vector< SwapBlob > | hermes::PutToSwap (SharedMemoryContext *context, RpcContext *rpc, BucketID id, std::vector< std::vector< T >> &blobs, std::vector< std::string > &names) |
SwapBlob | hermes::WriteToSwap (SharedMemoryContext *context, Blob blob, BlobID blob_id, BucketID bucket_id) |
size_t | hermes::ReadFromSwap (SharedMemoryContext *context, Blob blob, SwapBlob swap_blob) |
std::vector< f32 > | hermes::GetBandwidths (SharedMemoryContext *context, const std::vector< TargetID > &targets) |
u32 | hermes::GetNumBuffersAvailable (SharedMemoryContext *context, DeviceID device_id) |
u32 | hermes::GetBufferSize (SharedMemoryContext *context, RpcContext *rpc, BufferID id) |
bool | hermes::BufferIsByteAddressable (SharedMemoryContext *context, BufferID id) |
Status | hermes::PlaceInHierarchy (SharedMemoryContext *context, RpcContext *rpc, SwapBlob swap_blob, const std::string &name, const api::Context &ctx) |
api::Status | hermes::PlaceBlob (SharedMemoryContext *context, RpcContext *rpc, PlacementSchema &schema, Blob blob, const std::string &name, BucketID bucket_id, const api::Context &ctx, bool called_from_buffer_organizer) |
api::Status | hermes::StdIoPersistBucket (SharedMemoryContext *context, RpcContext *rpc, Arena *arena, BucketID bucket_id, const std::string &file_name, const std::string &open_mode) |
api::Status | hermes::StdIoPersistBlob (SharedMemoryContext *context, RpcContext *rpc, Arena *arena, BlobID blob_id, int fd, const i32 &offset) |
Device * | hermes::GetDeviceFromHeader (SharedMemoryContext *context, BufferHeader *header) |
The public structures and functions for interacting with the BufferPool as a client. The interface includes hermes-specific application core intialization, and the API through which the RoundRobin DPE and BufferOrganizer interact with the BufferPool.