MCPcopy
hub / github.com/princeton-vl/infinigen / test_step_memory

Function test_step_memory

tests/integration/manual_integration_check.py:450–493  ·  view source on GitHub ↗
(dir, days)

Source from the content-addressed store, hash-verified

448
449
450def test_step_memory(dir, days):
451 days_since = int(days)
452 sacct_start_date = (datetime.now() - timedelta(days=days_since)).strftime(
453 "%Y-%m-%d"
454 )
455 sacct_command = f"sacct --starttime {sacct_start_date} -u {os.environ['USER']} --noheader -o jobid,jobname%80,AllocTRES%80,ElapsedRaw,stat%30,NodeList,Start,MaxRSS"
456 print(f"Running + {sacct_command}")
457 sacct_output = subprocess.check_output(sacct_command.split()).decode()
458 relevant_started_jobs = []
459 mem_dict = dict(re.findall(r"([0-9]+)\.0 +.* +([0-9]*.?[0-9]*[KMG])", sacct_output))
460
461 completed_seeds = os.path.join(dir, "finished_seeds.txt")
462 seeds = open(completed_seeds).read()
463
464 for sacct_line in sacct_output.splitlines():
465 parsed_job = parse_sacct_line(sacct_line)
466 if parsed_job is None:
467 continue
468 for name in re.findall(f"{Path(dir).stem}_([^ _]+)_.*", parsed_job.name):
469 if name in seeds:
470 if parsed_job.job_id in mem_dict:
471 max_memory = mem_dict[parsed_job.job_id]
472 parsed_job.max_memory_gb = (
473 float(max_memory[:-1]) / MEM_FACTOR[max_memory[-1]]
474 )
475 relevant_started_jobs.append(parsed_job)
476
477 step_mem = {
478 "fineterrain": [],
479 "coarse": [],
480 "populate": [],
481 "rendershort": [],
482 "blendergt": [],
483 }
484
485 for job in relevant_started_jobs:
486 for step in step_mem:
487 if step in job.name:
488 step_mem[step].append(job.max_memory_gb)
489
490 step_mem_df = pd.DataFrame.from_dict(step_mem, orient="index")
491 step_mem_stats = make_stats(step_mem_df)
492 print("\nMemory Usage by Step")
493 print(tabulate(step_mem_stats, headers="keys", tablefmt="fancy_grid"))
494
495
496def test_brightness(dir):

Callers 1

mainFunction · 0.85

Calls 4

splitMethod · 0.80
parse_sacct_lineFunction · 0.70
make_statsFunction · 0.70
appendMethod · 0.45

Tested by

no test coverage detected