Simulating circuit switching
Is there a way to simulate circuit switching on SimGrid?
As an example, consider we have 4 nodes: A, B, C and D. The four are connected through a single link, that is circuit switched among them, so when a communication is occurring, no other can occur, e.g. when A is communicating with B, there can not be a communication between C and D. If C wants to communicate with D, they will have to wait A to stop communicating with B.
I am using a 4 processes MPI ping pong application to test this behavior, where rank 0 communicates with rank 1 (A and B) and rank 2 communicates with rank 3 (C and D). The route between them are all using a single link with sharing policy = "Shared". With this configuration, both communications (A<->B, C<->D) share the bandwidth from the link, but the latency is counted only once. If the link has high enough bandwidth, it is like if both connections had the entire link for themselves, and no sharing was occuring.
I tested running with the flag --cfg=maxmin/concurrency-limit:1 . It results on having no bandwidth sharing between the connections, both have full bandwidth when calculation the communication time, but the latency is still counted only once.
I want to include the "switching time" of the circuit switch on the latency of the link, so the behavior I need would be similar to the result I got with the flag --cfg=maxmin/concurrency-limit:1, but that it would also count the latency for both communications.
To be clear on how I check on what timings are being counted, I am checking the "time_delta" variable from "surf_c_bindings.cpp" at line 134, and I am also using "smpi/simulate-computation:no". I am using SimGrid 3.27.