The rings algorithms are used to reach an agreement between different processes which participate to a same execution.
For example, in some cases, we need to know if all processes have terminated their work to execute another part of the program.
How it works? This is simple, most of the time, you have a coordinator which initiate the ring algorithm, the coordinator sends a message to the upper/lower "RANK" processus, after that each processus which receives the messages sends a message to the upper/lower "RANK" processus, until the message arrive again to the coordinator.
You can check one of my publication called "A Communication Schema for Parallel and Distributed Multi-Agent Systems Based on MPI". In this paper I use a bi-directional ring to reach an agreement between processes in order to execute the next timestep of a MAS simulation.
Regards,
Conference Paper A Communication Schema for Parallel and Distributed Multi-Ag...