Projections: Particle Exercise (Extension)
For this exercise, continue by building upon your work for the previous exercise. You will now work to enable dynamic migration so Charm++ balancers can actually move work around.
-
Implement
PUP
serialization for your chare array as documented. -
At appropriate intervals, call
AtSync()
so the runtime knows the chare is ready for potential migration. -
Select a load-balancing strategy. For this exercise we will use
GreedyRefineLB
(use option-balancer GreedyRefineLB
). - Re-run the application as in Part 1 and compare how the program behaves differently.