From 6a03b7740967d8bce2e38e99a7c3df685042ca99 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Klinkovsk=C3=BD?= <klinkjak@fjfi.cvut.cz>
Date: Wed, 7 Aug 2019 11:50:23 +0200
Subject: [PATCH] Added documentation of Communicators to the core concepts
 page

---
 Documentation/Pages/core-concepts.md | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/Documentation/Pages/core-concepts.md b/Documentation/Pages/core-concepts.md
index 1450ada792..8e151191ea 100644
--- a/Documentation/Pages/core-concepts.md
+++ b/Documentation/Pages/core-concepts.md
@@ -11,15 +11,24 @@ 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::Containers::Algorithms "Algorithms"
+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"
    - Basic (container-free) algorithms specialized by `Device`/`Executor`.
    - `ParallelFor`, `Reduction`, `MultiReduction`, `ArrayOperations`, ...
-4. \ref TNL::Containers "Containers"
+5. \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`, ...
-5. Views
+6. 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.
-- 
GitLab