You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When trying to use the "sa" placement method it is unclear whether the placer is either hanging in
some way or is very slow. For a graph with ~350 devices it is not completing within ~20 minutes. A
microlog is created, but the location of the microlog is not echoed to the console, and no information
is ever put in it. Top shows "root" and "logserver" at 100%, but that is pretty normal, so it isn't clear
if it is working on anything or just spinning.
I read user_guide.md and placement.md, and as far as I can tell no specific parameters for
"sa" are needed by default.
I tried both forms of the placement command from the docs, i.e.:
place /sa = *
placement /sa = *
The same behaviour is seen for the "gc" method - externally it appears to hang.
It's possible it is working in the background, but it isn't clear whether progress is
being made, or how long it might take.
I also tried with the smallest graph I had to hand with 64 nodes, and the same
behaviour is seen - microlog is created, nothing printed to console, and no
result within 10 minutes.
The sa algorithm (simulated annealing) and the gradient climber algorithm are both quite naive - their stopping condition is based off iteration count (which is currently 1e8, defined in SimulatedAnnealing.h).
This is (obviously) not good, unless you're placing something overnight, and are looking to reuse that placement configuation later. More practical/useful would be:
The ability to define a "configuration option" that defines the number of iterations to perform.
The ability to define a "configuration option" that stops annealing after a certain amount of time has passed.
From a documentation/user point of view it would be good to add some guidance on this
around the "sa" part of the user guide.
For example, extend this part:
placement /sa: Given a typelinked application graph (or multiple), places it using simulated
annealing (with a random initial condition). The number of iterations can be defined at compile
time (and will later be more easily configurable).
with something like: "Note: with the current iteration count this placement method is mainly intended
for offline generation of placements. Typical run-time for a graph with X devices might be
around Y hours."
When trying to use the "sa" placement method it is unclear whether the placer is either hanging in
some way or is very slow. For a graph with ~350 devices it is not completing within ~20 minutes. A
microlog is created, but the location of the microlog is not echoed to the console, and no information
is ever put in it. Top shows "root" and "logserver" at 100%, but that is pretty normal, so it isn't clear
if it is working on anything or just spinning.
I read user_guide.md and placement.md, and as far as I can tell no specific parameters for
"sa" are needed by default.
I tried both forms of the placement command from the docs, i.e.:
The same behaviour is seen for the "gc" method - externally it appears to hang.
It's possible it is working in the background, but it isn't clear whether progress is
being made, or how long it might take.
I also tried with the smallest graph I had to hand with 64 nodes, and the same
behaviour is seen - microlog is created, nothing printed to console, and no
result within 10 minutes.
Context
The text was updated successfully, but these errors were encountered: