Loading Documentation/Pages/core-concepts.md +4 −13 Original line number Diff line number Diff line Loading @@ -11,24 +11,15 @@ TNL is based on the following core concepts: (TODO: rename to `Executor` or something like that) - Device is responsible for the execution of algorithms in a specific way. - Algorithms can be specialized by the `Device` template parameter. 3. \ref TNL::Communicators "Communicators" - Communicators represent the main abstraction for distributed computations, where multiple programs (or instances of the same program) have to communicate with each other. - At present, there are only two communicators: \ref TNL::Communicators::MpiCommunicator "MpiCommunicator" (uses [MPI](https://en.wikipedia.org/wiki/Message_Passing_Interface)) and \ref TNL::Communicators::NoDistrCommunicator "NoDistrCommunicator" (dummy communicator without any distribution support). 4. \ref TNL::Containers::Algorithms "Algorithms" 3. \ref TNL::Containers::Algorithms "Algorithms" - Basic (container-free) algorithms specialized by `Device`/`Executor`. - `ParallelFor`, `Reduction`, `MultiReduction`, `ArrayOperations`, ... 5. \ref TNL::Containers "Containers" 4. \ref TNL::Containers "Containers" - Classes for general data structures. (TODO: alternatively use "Dense" and "Sparse", because a dense matrix can be an extended alias for 2D array) - `Array`, `Vector` (also `VectorOperations`), `NDArray`, ... 6. Views 5. Views - Views wrap only a raw pointer to data and some metadata (such as the array size), they do not do allocation and deallocation of the data. Hence, views have a fixed size which cannot be changed. Loading @@ -38,7 +29,7 @@ TNL is based on the following core concepts: - Views have a copy-assignment operator which does a deep copy. - Views have all other methods present in the relevant container (data structure). 7. Smart pointers 6. Smart pointers - TODO TODO: formalize the concepts involving lambda functions (e.g. in `Reduction`) Loading Loading
Documentation/Pages/core-concepts.md +4 −13 Original line number Diff line number Diff line Loading @@ -11,24 +11,15 @@ TNL is based on the following core concepts: (TODO: rename to `Executor` or something like that) - Device is responsible for the execution of algorithms in a specific way. - Algorithms can be specialized by the `Device` template parameter. 3. \ref TNL::Communicators "Communicators" - Communicators represent the main abstraction for distributed computations, where multiple programs (or instances of the same program) have to communicate with each other. - At present, there are only two communicators: \ref TNL::Communicators::MpiCommunicator "MpiCommunicator" (uses [MPI](https://en.wikipedia.org/wiki/Message_Passing_Interface)) and \ref TNL::Communicators::NoDistrCommunicator "NoDistrCommunicator" (dummy communicator without any distribution support). 4. \ref TNL::Containers::Algorithms "Algorithms" 3. \ref TNL::Containers::Algorithms "Algorithms" - Basic (container-free) algorithms specialized by `Device`/`Executor`. - `ParallelFor`, `Reduction`, `MultiReduction`, `ArrayOperations`, ... 5. \ref TNL::Containers "Containers" 4. \ref TNL::Containers "Containers" - Classes for general data structures. (TODO: alternatively use "Dense" and "Sparse", because a dense matrix can be an extended alias for 2D array) - `Array`, `Vector` (also `VectorOperations`), `NDArray`, ... 6. Views 5. Views - Views wrap only a raw pointer to data and some metadata (such as the array size), they do not do allocation and deallocation of the data. Hence, views have a fixed size which cannot be changed. Loading @@ -38,7 +29,7 @@ TNL is based on the following core concepts: - Views have a copy-assignment operator which does a deep copy. - Views have all other methods present in the relevant container (data structure). 7. Smart pointers 6. Smart pointers - TODO TODO: formalize the concepts involving lambda functions (e.g. in `Reduction`) Loading