@@ -84,8 +84,28 @@ inline std::ostream &operator<<(std::ostream &os, MEMORY_CONSTRAINT_TYPE type) {
8484 * @brief Represents the architecture of a BSP (Bulk Synchronous Parallel) system.
8585 *
8686 * The BspArchitecture class stores information about the number of processors, communication costs,
87- * synchronization costs, and send costs between processors in a BSP system. It provides methods to
88- * set and retrieve these values.
87+ * synchronization costs, the send costs between processors, the types of processors, and the memory
88+ * bounds. It provides methods to set and retrieve these values.
89+ *
90+ * **Processors:**
91+ * The architecture consists of p processors, indexed from 0 to p-1.
92+ *
93+ * **Processor Types:**
94+ * Processors can have different types, which are represented by non-negative integers.
95+ * Processor types are assumed to be consecutive integers starting from 0.
96+ *
97+ * **Communication and Synchronization Costs:**
98+ * - Communication Cost (g): The cost of communicating a unit of data between processors, i.e., the bandwidth.
99+ * - Synchronization Cost (L): The cost of synchronizing all processors at the end of a superstep.
100+ *
101+ * **Send Costs (NUMA):**
102+ * The architecture supports Non-Uniform Memory Access (NUMA) effects via a send cost matrix.
103+ * The cost to send data from processor i to processor j is given by g * sendCosts[i][j].
104+ * By default, send costs are uniform (1 for distinct processors, 0 for self).
105+ *
106+ * **Memory Constraints:**
107+ * Each processor has a memory bound. The `MEMORY_CONSTRAINT_TYPE` determines how these bounds are applied
108+ * (e.g., local per superstep, global per processor).
89109 */
90110template <typename Graph_t>
91111class BspArchitecture {
0 commit comments