Call data_gen.py with specific parameters (for multiprocessing).
(args)
| 13 | logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s") |
| 14 | |
| 15 | def generate_trace(args): |
| 16 | """Call data_gen.py with specific parameters (for multiprocessing).""" |
| 17 | m, n, a, output_dir = args |
| 18 | trace_filename = f"{output_dir}/zipf_{a}_{m}_{n}.oracleGeneral" |
| 19 | |
| 20 | if os.path.exists(trace_filename): |
| 21 | logger.info(f"Trace {trace_filename} already exists. Skipping.") |
| 22 | return trace_filename |
| 23 | |
| 24 | cmd = [ |
| 25 | "python3", "data_gen.py", |
| 26 | "-m", str(m), |
| 27 | "-n", str(n), |
| 28 | "--alpha", str(a), |
| 29 | "--bin-output", trace_filename |
| 30 | ] |
| 31 | cmmd = " ".join(cmd) |
| 32 | logger.info(f"Generating trace: {trace_filename}, Command: {cmmd}") |
| 33 | process = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) |
| 34 | |
| 35 | if process.returncode != 0: |
| 36 | logger.warning(f"Failed to generate trace {trace_filename}") |
| 37 | logger.warning(process.stderr.decode("utf-8")) |
| 38 | return None |
| 39 | return trace_filename |
| 40 | |
| 41 | |
| 42 | def generate_synthetic_traces(num_objects, num_requests, alpha): |