Skip to content

Commit 4f8c276

Browse files
committed
Add periodic saving of results and checkpoint
1 parent 6ab3853 commit 4f8c276

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

main.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)