urldate = {2021-02-08}
}
-
@Article{AABB17,
author = {R. Agelek and M. Anderson and W. Bangerth and W. L. Barth},
title = {On orienting edges of unstructured two- and three-dimensional meshes},
year = 2017,
volume = 44,
pages = {5/1--22}}
+
+@article{hoefler2010scalable,
+ title={Scalable communication protocols for dynamic sparse data exchange},
+ author={Hoefler, Torsten and Siebert, Christian and Lumsdaine, Andrew},
+ journal={ACM Sigplan Notices},
+ volume={45},
+ number={5},
+ pages={159--168},
+ year={2010},
+ publisher={ACM New York, NY, USA}
+}
* ConsensusAlgorithms::Interface base class, using only point-to-point
* communications and a single IBarrier.
*
- * @note This class closely follows the paper Hoefler, Siebert, Lumsdaine
- * "Scalable Communication Protocols for Dynamic Sparse Data
- * Exchange". Since the algorithm shown there is not considering
- * payloads, the algorithm has been modified here in such a way that
- * synchronous sends (Issend) have been replaced by equivalent
- * Isend/Irecv, where Irecv receives the answer to a request (with
- * payload).
+ * @note This class closely follows @note hoefler2010scalable. Since the
+ * algorithm shown there is not considering payloads, the algorithm
+ * has been modified here in such a way that synchronous sends
+ * (Issend) have been replaced by equivalent Isend/Irecv, where
+ * Irecv receives the answer to a request (with payload).
*
* @tparam T1 The type of the elements of the vector to be sent.
* @tparam T2 The type of the elements of the vector to be received.
start_communication();
// 2) answer requests and check if all requests of this process have
- // been
- // answered
+ // been answered
while (!check_own_state())
answer_requests();
// 3) signal to all other processes that all requests of this process
- // have
- // been answered
+ // have been answered
signal_finish();
// 4) nevertheless, this process has to keep on answering (potential)