@@ -332,6 +332,7 @@ def simulatePrisoners():
332332 currentTime = time .time ()
333333 startTime = currentTime
334334 lastPrintTime = currentTime
335+ lastSaveTime = currentTime
335336 if checkpoint and results :
336337 startSim = checkpoint .get ("last_simulation" ) + 1
337338 rng = random .Random (config ["CONFIG" ].get ("seed" , None ))
@@ -370,14 +371,19 @@ def simulatePrisoners():
370371 for prisoner in prisoners :
371372 results [- 1 ]["prisoners" ].append ({"found" : prisoners [prisoner ][1 ], "checked_boxes" : prisoners [prisoner ][0 ]})
372373
373- # Print progress
374374 currentTime = time .time ()
375- if currentTime - lastPrintTime >= 1 or sim == config ["CONFIG" ]["num_simulations" ] - 1 :
375+ # Print progress
376+ if currentTime - lastPrintTime >= 2 or sim == config ["CONFIG" ]["num_simulations" ] - 1 :
376377 lastPrintTime = currentTime
377378 elapsedTime = currentTime - startTime
378379 task = {"type" : "progress" , "current" : sim + 1 , "total" : config ["CONFIG" ]["num_simulations" ], "start_time" : startTime , "elapsed_time" : elapsedTime }
379380 menu .renderMenu (task )
380381
382+ # Periodically save results and checkpoint
383+ if currentTime - lastSaveTime >= 600 :
384+ lastSaveTime = currentTime
385+ Results_Manager .save (results , {"last_simulation" : sim , "rng_state" : rng .getstate ()})
386+
381387 Results_Manager .save (results , {"last_simulation" : sim , "rng_state" : rng .getstate ()})
382388 log .append (f"All simulations completed in { utils .formatTimeSeconds (elapsedTime )} seconds." )
383389
0 commit comments