dmlc--dgl
bfdd1eaa44
* accelerate gcn_ns. * add timing. * run infer with whole graph. * distributed gcn_ns. * reconstruct gcn_ns. * minor fix. * change graphsage_cv for numa. * fix #OMP threads. * accelerate graphsage_cv. * fix a weird bug. * add profiler in graphsage_cv. * accelerate graphsage_cv. manually aggregate neighbors' embeddings with pull. * load csr directly in gcn_ns_sc. * parallel sort for graph index. * Revert "parallel sort for graph index." This reverts commit 86fe2c7117fe5e56b0d481b39849c258b166945b. * run gcn_ns_sc on GPUs. * acc gcn_cv_sc. * change gcn_cv for numa. * fix gcn_cv to use numa and gpu. * improve graphsage_cv to use numa and gpu. * improve gcn_ns. * improve graphsage_cv. * init shared memory graph store. * fix. * enable init ndata. * improve tests. * add bidirectional communication. * link to rt. * fix compilation error. * fix shared memory init. * use MessageQueue for inter-process communication. * reconstruct immutable graph csr. * fix gcn. * load csr to shared memory. * fix minor bugs. * add comments. * refactor SharedMemory. * fix bugs in ImmutableGraph. * create CSR graph from shared memory. * add more test for loading a csr graph. * terminate graph store properly. * allow initializing ndata in the graph store server. * use RPC for inter-process communication. * a script for loading a graph. * allow customizing port. * list all ndata and edata. * support dtype. * reorganize SharedMemoryGraphStore. * fix ndata shape. * reconstruct gcn_ns. * print info. * set omp in gcn_ns. * reset sampling examples. * fix lint. * fix lint. * reset gcn. * disable shared memory in windows. * fix. * fix. * reset changes. * revert nodeflow changes. * fix cmake. * fix test. * fix test. * fix test. * fix test. * add comments. * fix test. * move vector out. * fix lint. * fix lint. * move SharedMemory. * update cmake. * update comment. * fix comments. * Revert "update cmake." This reverts commit 592445e37077f70a6e3f2e5245f9a3d086b04f3b. * update cmake. * add comments. * rename. * change the comment. * fix a bug. * rename. * add comments. * add comments. * add init_edata. * rewrite memory alloc. * move vector to CSR. * fix. * init data. * Revert "init data." This reverts commit 2b217b9553911b7dd84a9f1d9b68430b5aa18e23. * init data. * init new columns correctly.
74 行
1.9 KiB
C++
74 行
1.9 KiB
C++
/*!
|
|
* Copyright (c) 2017 by Contributors
|
|
* \file dgl/runtime/ndarray.h
|
|
* \brief shared memory management.
|
|
*/
|
|
#ifndef DGL_RUNTIME_SHARED_MEM_H_
|
|
#define DGL_RUNTIME_SHARED_MEM_H_
|
|
|
|
#include <string>
|
|
|
|
namespace dgl {
|
|
namespace runtime {
|
|
|
|
#ifndef _WIN32
|
|
/*
|
|
* \brief This class owns shared memory.
|
|
*
|
|
* When the object is gone, the shared memory will also be destroyed.
|
|
* When the shared memory is destroyed, the file corresponding to
|
|
* the shared memory is removed.
|
|
*/
|
|
class SharedMemory {
|
|
/*
|
|
* \brief whether the shared memory is owned by the object.
|
|
*
|
|
* If shared memory is created in the object, it'll be owned by the object
|
|
* and will be responsible for deleting it when the object is destroyed.
|
|
*/
|
|
bool own;
|
|
/*
|
|
* \brief the name of the object.
|
|
*
|
|
* In Unix, shared memory is identified by a file. Thus, `name` is actually
|
|
* the file name that identifies the shared memory.
|
|
*/
|
|
std::string name;
|
|
/* \brief the file descripter of the shared memory. */
|
|
int fd;
|
|
/* \brief the address of the shared memory. */
|
|
void *ptr;
|
|
/* \brief the size of the shared memory. */
|
|
size_t size;
|
|
|
|
public:
|
|
/*
|
|
* \brief constructor of the shared memory.
|
|
* \param name The file corresponding to the shared memory.
|
|
*/
|
|
explicit SharedMemory(const std::string &name);
|
|
/*
|
|
* \brief destructor of the shared memory.
|
|
* It deallocates the shared memory and removes the corresponding file.
|
|
*/
|
|
~SharedMemory();
|
|
/*
|
|
* \brief create shared memory.
|
|
* It creates the file and shared memory.
|
|
* \param size the size of the shared memory.
|
|
* \return the address of the shared memory
|
|
*/
|
|
void *create_new(size_t size);
|
|
/*
|
|
* \brief allocate shared memory that has been created.
|
|
* \param size the size of the shared memory.
|
|
* \return the address of the shared memory
|
|
*/
|
|
void *open(size_t size);
|
|
};
|
|
#endif // _WIN32
|
|
|
|
} // namespace runtime
|
|
} // namespace dgl
|
|
#endif // DGL_RUNTIME_SHARED_MEM_H_
|