{
"cells": [
{
"cell_type": "markdown",
"id": "9e270e64",
"metadata": {},
"source": [
"# scCS scalability: single-process, in-memory, and no chunking\n",
"\n",
"This notebook benchmarks scCS as complete in-memory problems. It never divides a\n",
"scientific calculation into cell chunks, graph partitions, or out-of-core blocks.\n",
"\n",
"The exact target ladder includes:\n",
"\n",
"- 10 thousand;\n",
"- 100 thousand;\n",
"- 1 million;\n",
"- 10 million;\n",
"- 50 million;\n",
"- 100 million;\n",
"- 200 million cells.\n",
"\n",
"A target is marked `MEASURED` only when the current machine can allocate and run\n",
"the complete problem under the configured memory-safety fraction. Otherwise it\n",
"is recorded as `SKIPPED_INSUFFICIENT_MEMORY`. It is never silently replaced by\n",
"a chunked run.\n",
"\n",
"Two workloads are benchmarked separately:\n",
"\n",
"1. the cellwise DFFP metric transform after fate probabilities are available;\n",
"2. the complete sparse DFFP graph solve.\n",
"\n",
"RNA-velocity preprocessing is outside this benchmark.\n",
"\n",
"To perform the exact complete 200-million-cell graph solve, run this notebook\n",
"on a high-memory host with `SCCS_SCALABILITY_PROFILE=exact_200m`. The scientific\n",
"problem is allocated and solved once; no chunking or partitioned surrogate is\n",
"used.\n"
]
},
{
"cell_type": "markdown",
"id": "5df0aab7",
"metadata": {},
"source": [
"> **Execution provenance.** The displayed outputs were generated with scCS 0.8.0.dev33. Version 0.8.0.dev34 changes documentation and tutorial explanation only; the scientific calculations are unchanged."
]
},
{
"cell_type": "markdown",
"id": "3b010c24",
"metadata": {},
"source": [
"## 1. Imports, hardware, and benchmark configuration"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "74244e1d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Scalability profile: standard\n"
]
},
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" value \n",
" \n",
" \n",
" \n",
" \n",
" python \n",
" 3.12.13 \n",
" \n",
" \n",
" platform \n",
" Linux-6.6.114.1-microsoft-standard-WSL2-x86_64... \n",
" \n",
" \n",
" processor \n",
" x86_64 \n",
" \n",
" \n",
" logical_cpus \n",
" 24 \n",
" \n",
" \n",
" total_memory_gb \n",
" 66.85091 \n",
" \n",
" \n",
" available_memory_gb_at_start \n",
" 62.282527 \n",
" \n",
" \n",
" scCS \n",
" 0.8.0.dev33 \n",
" \n",
" \n",
" no_chunking \n",
" True \n",
" \n",
" \n",
" scalability_profile \n",
" standard \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" value\n",
"python 3.12.13\n",
"platform Linux-6.6.114.1-microsoft-standard-WSL2-x86_64...\n",
"processor x86_64\n",
"logical_cpus 24\n",
"total_memory_gb 66.85091\n",
"available_memory_gb_at_start 62.282527\n",
"scCS 0.8.0.dev33\n",
"no_chunking True\n",
"scalability_profile standard"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from __future__ import annotations\n",
"\n",
"from pathlib import Path\n",
"import gc\n",
"import json\n",
"import os\n",
"import platform\n",
"import sys\n",
"import time\n",
"\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import pandas as pd\n",
"from scipy import sparse\n",
"\n",
"import scCS\n",
"\n",
"OUTPUT_DIR = Path(\"tutorial_outputs/scalability\")\n",
"OUTPUT_DIR.mkdir(parents=True, exist_ok=True)\n",
"\n",
"# ``standard`` measures every complete allocation that is safe on the current\n",
"# host. ``exact_200m`` requires a high-memory machine and fails rather than\n",
"# silently skipping the complete 200-million-cell graph solve.\n",
"SCALABILITY_PROFILE = os.environ.get(\"SCCS_SCALABILITY_PROFILE\", \"standard\")\n",
"if SCALABILITY_PROFILE not in {\"standard\", \"exact_200m\"}:\n",
" raise ValueError(\"SCCS_SCALABILITY_PROFILE must be 'standard' or 'exact_200m'.\")\n",
"\n",
"TARGET_CELLS = [\n",
" 10_000,\n",
" 100_000,\n",
" 1_000_000,\n",
" 10_000_000,\n",
" 50_000_000,\n",
" 100_000_000,\n",
" 200_000_000,\n",
"]\n",
"N_FATES = 4\n",
"GRAPH_DEGREE = 4\n",
"GRAPH_OUTCOMES = 3\n",
"REALISTIC_GRAPH_DEGREE = 30\n",
"REALISTIC_TARGET_CELLS = [100_000, 250_000, 500_000, 1_000_000]\n",
"EFFECTIVE_HORIZON = 64\n",
"MEMORY_SAFETY_FRACTION = 0.80\n",
"RANDOM_SEED = 20260714\n",
"\n",
"if SCALABILITY_PROFILE == \"exact_200m\":\n",
" TARGET_CELLS = [200_000_000]\n",
" MEMORY_SAFETY_FRACTION = 0.97\n",
"\n",
"available_memory = os.sysconf(\"SC_AVPHYS_PAGES\") * os.sysconf(\"SC_PAGE_SIZE\")\n",
"total_memory = os.sysconf(\"SC_PHYS_PAGES\") * os.sysconf(\"SC_PAGE_SIZE\")\n",
"hardware = {\n",
" \"python\": sys.version.split()[0],\n",
" \"platform\": platform.platform(),\n",
" \"processor\": platform.processor(),\n",
" \"logical_cpus\": os.cpu_count(),\n",
" \"total_memory_gb\": total_memory / 1e9,\n",
" \"available_memory_gb_at_start\": available_memory / 1e9,\n",
" \"scCS\": scCS.__version__,\n",
" \"no_chunking\": True,\n",
" \"scalability_profile\": SCALABILITY_PROFILE,\n",
"}\n",
"print(\"Scalability profile:\", SCALABILITY_PROFILE)\n",
"display(pd.Series(hardware, name=\"value\").to_frame())\n"
]
},
{
"cell_type": "markdown",
"id": "99a2fe0d",
"metadata": {},
"source": [
"## 2. Analytic memory estimates\n",
"\n",
"The estimates are intentionally conservative. They include input arrays,\n",
"cell-by-fate outputs, solver work arrays, and sparse CSR storage. They are used\n",
"only as a preflight; measured resident memory is reported separately."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "f6a64dcb",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" n_cells \n",
" metric_transform_estimated_gb \n",
" graph_solve_degree_4_estimated_gb \n",
" graph_degree_30_estimated_gb \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 10000 \n",
" 0.00072 \n",
" 0.0028 \n",
" 0.009664 \n",
" \n",
" \n",
" 1 \n",
" 100000 \n",
" 0.00720 \n",
" 0.0280 \n",
" 0.096640 \n",
" \n",
" \n",
" 2 \n",
" 1000000 \n",
" 0.07200 \n",
" 0.2800 \n",
" 0.966400 \n",
" \n",
" \n",
" 3 \n",
" 10000000 \n",
" 0.72000 \n",
" 2.8000 \n",
" 9.664000 \n",
" \n",
" \n",
" 4 \n",
" 50000000 \n",
" 3.60000 \n",
" 14.0000 \n",
" 48.320000 \n",
" \n",
" \n",
" 5 \n",
" 100000000 \n",
" 7.20000 \n",
" 28.0000 \n",
" 96.640000 \n",
" \n",
" \n",
" 6 \n",
" 200000000 \n",
" 14.40000 \n",
" 56.0000 \n",
" 193.280000 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" n_cells metric_transform_estimated_gb \\\n",
"0 10000 0.00072 \n",
"1 100000 0.00720 \n",
"2 1000000 0.07200 \n",
"3 10000000 0.72000 \n",
"4 50000000 3.60000 \n",
"5 100000000 7.20000 \n",
"6 200000000 14.40000 \n",
"\n",
" graph_solve_degree_4_estimated_gb graph_degree_30_estimated_gb \n",
"0 0.0028 0.009664 \n",
"1 0.0280 0.096640 \n",
"2 0.2800 0.966400 \n",
"3 2.8000 9.664000 \n",
"4 14.0000 48.320000 \n",
"5 28.0000 96.640000 \n",
"6 56.0000 193.280000 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"def metric_transform_bytes(n_cells, n_fates):\n",
" # selected probabilities, normalized affinities, an entropy temporary,\n",
" # and six cellwise vectors, all float32.\n",
" return int(\n",
" 3 * n_cells * n_fates * np.dtype(np.float32).itemsize\n",
" + 6 * n_cells * np.dtype(np.float32).itemsize\n",
" )\n",
"\n",
"\n",
"def graph_solve_bytes(n_cells, degree, n_outcomes):\n",
" n_edges = int(n_cells) * int(degree)\n",
" csr = (\n",
" n_edges * np.dtype(np.float64).itemsize\n",
" + n_edges * np.dtype(np.int32).itemsize\n",
" + (n_cells + 1) * np.dtype(np.int64).itemsize\n",
" )\n",
" # probability, next iterate, anchors/boundary, unresolved, and overhead\n",
" state = (\n",
" 3 * n_cells * n_outcomes * np.dtype(np.float64).itemsize\n",
" + 5 * n_cells * np.dtype(np.float64).itemsize\n",
" )\n",
" # canonicalization and sparse products can temporarily duplicate storage.\n",
" return int(2.2 * csr + 1.4 * state)\n",
"\n",
"\n",
"estimate_rows = []\n",
"for n_cells in TARGET_CELLS:\n",
" estimate_rows.append(\n",
" {\n",
" \"n_cells\": n_cells,\n",
" \"metric_transform_estimated_gb\": metric_transform_bytes(\n",
" n_cells,\n",
" N_FATES,\n",
" )\n",
" / 1e9,\n",
" f\"graph_solve_degree_{GRAPH_DEGREE}_estimated_gb\": graph_solve_bytes(\n",
" n_cells,\n",
" GRAPH_DEGREE,\n",
" GRAPH_OUTCOMES,\n",
" )\n",
" / 1e9,\n",
" \"graph_degree_30_estimated_gb\": graph_solve_bytes(\n",
" n_cells,\n",
" 30,\n",
" GRAPH_OUTCOMES,\n",
" )\n",
" / 1e9,\n",
" }\n",
" )\n",
"memory_estimates = pd.DataFrame(estimate_rows)\n",
"display(memory_estimates)\n",
"memory_estimates.to_csv(OUTPUT_DIR / \"analytic_memory_estimates.csv\", index=False)"
]
},
{
"cell_type": "markdown",
"id": "69e3c0e1",
"metadata": {},
"source": [
"## 3. Exact no-chunk cellwise DFFP metric transform\n",
"\n",
"This benchmark allocates the complete selected-fate probability matrix and\n",
"calculates CFA, DFR, FFS, RC, and UFP in one vectorized operation. No cell\n",
"subsets or blocks are used."
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "ac354d71",
"metadata": {},
"outputs": [],
"source": [
"def current_rss_bytes():\n",
" page_size = os.sysconf(\"SC_PAGE_SIZE\")\n",
" resident_pages = int(Path(\"/proc/self/statm\").read_text().split()[1])\n",
" return resident_pages * page_size\n",
"\n",
"\n",
"def run_metric_transform(n_cells, n_fates, seed):\n",
" rng = np.random.default_rng(seed)\n",
" start_rss = current_rss_bytes()\n",
" started = time.perf_counter()\n",
"\n",
" selected_probability = rng.random(\n",
" (n_cells, n_fates),\n",
" dtype=np.float32,\n",
" )\n",
" target_reach = rng.random(n_cells, dtype=np.float32)\n",
" row_sum = selected_probability.sum(axis=1, dtype=np.float32)\n",
" selected_probability *= (\n",
" target_reach / np.maximum(row_sum, np.finfo(np.float32).tiny)\n",
" )[:, None]\n",
"\n",
" reach = selected_probability.sum(axis=1, dtype=np.float32)\n",
" affinity = np.divide(\n",
" selected_probability,\n",
" np.maximum(reach[:, None], np.finfo(np.float32).tiny),\n",
" dtype=np.float32,\n",
" )\n",
" entropy_terms = affinity * np.log(\n",
" np.maximum(affinity, np.finfo(np.float32).tiny),\n",
" dtype=np.float32,\n",
" )\n",
" entropy = -entropy_terms.sum(axis=1, dtype=np.float32) / np.log(n_fates)\n",
" specificity = 1.0 - entropy\n",
" resolved_commitment = reach * specificity\n",
" unresolved = 1.0 - reach\n",
"\n",
" elapsed = time.perf_counter() - started\n",
" end_rss = current_rss_bytes()\n",
"\n",
" checksum = float(\n",
" reach.mean()\n",
" + specificity.mean()\n",
" + resolved_commitment.mean()\n",
" + unresolved.mean()\n",
" )\n",
" result = {\n",
" \"n_cells\": int(n_cells),\n",
" \"workload\": \"cellwise_DFFP_metrics\",\n",
" \"status\": \"MEASURED\",\n",
" \"elapsed_seconds\": elapsed,\n",
" \"cells_per_second\": n_cells / elapsed,\n",
" \"rss_before_gb\": start_rss / 1e9,\n",
" \"rss_after_gb\": end_rss / 1e9,\n",
" \"estimated_gb\": metric_transform_bytes(n_cells, n_fates) / 1e9,\n",
" \"checksum\": checksum,\n",
" }\n",
"\n",
" del selected_probability\n",
" del target_reach\n",
" del row_sum\n",
" del reach\n",
" del affinity\n",
" del entropy_terms\n",
" del entropy\n",
" del specificity\n",
" del resolved_commitment\n",
" del unresolved\n",
" gc.collect()\n",
" return result"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "9bfb1fc9",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" n_cells \n",
" workload \n",
" status \n",
" elapsed_seconds \n",
" cells_per_second \n",
" rss_before_gb \n",
" rss_after_gb \n",
" estimated_gb \n",
" checksum \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 10000 \n",
" cellwise_DFFP_metrics \n",
" MEASURED \n",
" 0.001513 \n",
" 6.611024e+06 \n",
" 0.199696 \n",
" 0.200380 \n",
" 0.00072 \n",
" 1.186170 \n",
" \n",
" \n",
" 1 \n",
" 100000 \n",
" cellwise_DFFP_metrics \n",
" MEASURED \n",
" 0.009002 \n",
" 1.110884e+07 \n",
" 0.200380 \n",
" 0.207630 \n",
" 0.00720 \n",
" 1.185687 \n",
" \n",
" \n",
" 2 \n",
" 1000000 \n",
" cellwise_DFFP_metrics \n",
" MEASURED \n",
" 0.120542 \n",
" 8.295873e+06 \n",
" 0.202826 \n",
" 0.276038 \n",
" 0.07200 \n",
" 1.185954 \n",
" \n",
" \n",
" 3 \n",
" 10000000 \n",
" cellwise_DFFP_metrics \n",
" MEASURED \n",
" 0.962108 \n",
" 1.039384e+07 \n",
" 0.220025 \n",
" 0.980042 \n",
" 0.72000 \n",
" 1.186078 \n",
" \n",
" \n",
" 4 \n",
" 50000000 \n",
" cellwise_DFFP_metrics \n",
" MEASURED \n",
" 4.570818 \n",
" 1.093896e+07 \n",
" 0.220025 \n",
" 4.020056 \n",
" 3.60000 \n",
" 1.185969 \n",
" \n",
" \n",
" 5 \n",
" 100000000 \n",
" cellwise_DFFP_metrics \n",
" MEASURED \n",
" 9.563170 \n",
" 1.045678e+07 \n",
" 0.220025 \n",
" 7.820202 \n",
" 7.20000 \n",
" 1.186002 \n",
" \n",
" \n",
" 6 \n",
" 200000000 \n",
" cellwise_DFFP_metrics \n",
" MEASURED \n",
" 22.766293 \n",
" 8.784917e+06 \n",
" 0.220168 \n",
" 15.420412 \n",
" 14.40000 \n",
" 1.185999 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" n_cells workload status elapsed_seconds \\\n",
"0 10000 cellwise_DFFP_metrics MEASURED 0.001513 \n",
"1 100000 cellwise_DFFP_metrics MEASURED 0.009002 \n",
"2 1000000 cellwise_DFFP_metrics MEASURED 0.120542 \n",
"3 10000000 cellwise_DFFP_metrics MEASURED 0.962108 \n",
"4 50000000 cellwise_DFFP_metrics MEASURED 4.570818 \n",
"5 100000000 cellwise_DFFP_metrics MEASURED 9.563170 \n",
"6 200000000 cellwise_DFFP_metrics MEASURED 22.766293 \n",
"\n",
" cells_per_second rss_before_gb rss_after_gb estimated_gb checksum \n",
"0 6.611024e+06 0.199696 0.200380 0.00072 1.186170 \n",
"1 1.110884e+07 0.200380 0.207630 0.00720 1.185687 \n",
"2 8.295873e+06 0.202826 0.276038 0.07200 1.185954 \n",
"3 1.039384e+07 0.220025 0.980042 0.72000 1.186078 \n",
"4 1.093896e+07 0.220025 4.020056 3.60000 1.185969 \n",
"5 1.045678e+07 0.220025 7.820202 7.20000 1.186002 \n",
"6 8.784917e+06 0.220168 15.420412 14.40000 1.185999 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"metric_results = []\n",
"for n_cells in TARGET_CELLS:\n",
" required = metric_transform_bytes(n_cells, N_FATES)\n",
" available = os.sysconf(\"SC_AVPHYS_PAGES\") * os.sysconf(\"SC_PAGE_SIZE\")\n",
" if required > MEMORY_SAFETY_FRACTION * available:\n",
" metric_results.append(\n",
" {\n",
" \"n_cells\": int(n_cells),\n",
" \"workload\": \"cellwise_DFFP_metrics\",\n",
" \"status\": \"SKIPPED_INSUFFICIENT_MEMORY\",\n",
" \"elapsed_seconds\": np.nan,\n",
" \"cells_per_second\": np.nan,\n",
" \"rss_before_gb\": current_rss_bytes() / 1e9,\n",
" \"rss_after_gb\": current_rss_bytes() / 1e9,\n",
" \"estimated_gb\": required / 1e9,\n",
" \"checksum\": np.nan,\n",
" }\n",
" )\n",
" continue\n",
" metric_results.append(\n",
" run_metric_transform(\n",
" n_cells,\n",
" N_FATES,\n",
" RANDOM_SEED + int(np.log10(n_cells)),\n",
" )\n",
" )\n",
"\n",
"metric_results = pd.DataFrame(metric_results)\n",
"display(metric_results)\n",
"metric_results.to_csv(OUTPUT_DIR / \"metric_transform_results.csv\", index=False)"
]
},
{
"cell_type": "markdown",
"id": "231a7c4a",
"metadata": {},
"source": [
"## 4. Exact no-chunk sparse DFFP graph solve\n",
"\n",
"The graph is a complete CSR matrix with a fixed number of outgoing edges per\n",
"cell. The full transition matrix, anchor matrix, and solver state are allocated\n",
"at once.\n",
"\n",
"`GRAPH_DEGREE=4` is a minimal synthetic graph used for the measured ladder.\n",
"Analytic estimates for degree 30 are reported separately. Change\n",
"`GRAPH_DEGREE` before running when a different graph density is required."
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "d433f5eb",
"metadata": {},
"outputs": [],
"source": [
"def build_benchmark_transition(n_cells, degree, n_outcomes):\n",
" \"\"\"Build a well-conditioned complete CSR benchmark graph.\n",
"\n",
" Every transient state has one local forward edge and one edge to each\n",
" outcome anchor. Additional degree slots, when requested, are local forward\n",
" edges. This is a performance graph, not a biological trajectory model.\n",
" \"\"\"\n",
" if degree < n_outcomes + 1:\n",
" raise ValueError(\"degree must be at least n_outcomes + 1.\")\n",
"\n",
" row = np.arange(n_cells, dtype=np.int64)\n",
" indices_2d = np.empty((n_cells, degree), dtype=np.int32)\n",
" indices_2d[:, 0] = ((row + 1) % n_cells).astype(np.int32)\n",
" for outcome in range(n_outcomes):\n",
" indices_2d[:, outcome + 1] = np.int32(outcome)\n",
" for column in range(n_outcomes + 1, degree):\n",
" indices_2d[:, column] = ((row + column) % n_cells).astype(np.int32)\n",
"\n",
" # Anchor rows remain self-loops in the source matrix.\n",
" for outcome in range(n_outcomes):\n",
" indices_2d[outcome, :] = np.int32(outcome)\n",
"\n",
" indices = indices_2d.ravel()\n",
" indptr = np.arange(\n",
" 0,\n",
" n_cells * degree + 1,\n",
" degree,\n",
" dtype=np.int64,\n",
" )\n",
" data = np.full(n_cells * degree, 1.0 / degree, dtype=np.float64)\n",
" return sparse.csr_matrix((data, indices, indptr), shape=(n_cells, n_cells))\n",
"\n",
"\n",
"def build_anchor_matrix(n_cells, n_outcomes):\n",
" anchors = np.zeros((n_cells, n_outcomes), dtype=bool)\n",
" for outcome in range(n_outcomes):\n",
" anchors[outcome, outcome] = True\n",
" return anchors\n",
"\n",
"\n",
"def run_graph_solve(n_cells, degree, n_outcomes):\n",
" start_rss = current_rss_bytes()\n",
" started = time.perf_counter()\n",
"\n",
" transition_matrix = build_benchmark_transition(\n",
" n_cells,\n",
" degree,\n",
" n_outcomes,\n",
" )\n",
" anchor_matrix = build_anchor_matrix(n_cells, n_outcomes)\n",
" solution = scCS.solve_discounted_outcomes(\n",
" transition_matrix,\n",
" anchor_matrix,\n",
" tuple(f\"fate_{index + 1}\" for index in range(n_outcomes)),\n",
" effective_horizon=EFFECTIVE_HORIZON,\n",
" solver=\"iterative\",\n",
" tolerance=1e-6,\n",
" max_iter=500,\n",
" )\n",
"\n",
" elapsed = time.perf_counter() - started\n",
" end_rss = current_rss_bytes()\n",
" checksum = float(\n",
" solution.probability.mean()\n",
" + solution.unresolved_probability.mean()\n",
" )\n",
" result = {\n",
" \"n_cells\": int(n_cells),\n",
" \"workload\": \"full_DFFP_graph_solve\",\n",
" \"degree\": int(degree),\n",
" \"n_outcomes\": int(n_outcomes),\n",
" \"status\": \"MEASURED\",\n",
" \"elapsed_seconds\": elapsed,\n",
" \"cells_per_second\": n_cells / elapsed,\n",
" \"rss_before_gb\": start_rss / 1e9,\n",
" \"rss_after_gb\": end_rss / 1e9,\n",
" \"estimated_gb\": graph_solve_bytes(\n",
" n_cells,\n",
" degree,\n",
" n_outcomes,\n",
" )\n",
" / 1e9,\n",
" \"solver_iterations\": solution.iterations,\n",
" \"solver_converged\": solution.converged,\n",
" \"solver_residual\": solution.residual,\n",
" \"checksum\": checksum,\n",
" }\n",
"\n",
" del transition_matrix\n",
" del anchor_matrix\n",
" del solution\n",
" gc.collect()\n",
" return result"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "9a427f67",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" n_cells \n",
" workload \n",
" degree \n",
" n_outcomes \n",
" status \n",
" elapsed_seconds \n",
" cells_per_second \n",
" rss_before_gb \n",
" rss_after_gb \n",
" estimated_gb \n",
" solver_iterations \n",
" solver_converged \n",
" solver_residual \n",
" checksum \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 10000 \n",
" full_DFFP_graph_solve \n",
" 4 \n",
" 3 \n",
" MEASURED \n",
" 0.013242 \n",
" 755180.691477 \n",
" 0.220537 \n",
" 0.223986 \n",
" 0.0028 \n",
" 11.0 \n",
" True \n",
" 9.897135e-08 \n",
" 0.346934 \n",
" \n",
" \n",
" 1 \n",
" 100000 \n",
" full_DFFP_graph_solve \n",
" 4 \n",
" 3 \n",
" MEASURED \n",
" 0.265448 \n",
" 376721.079906 \n",
" 0.222958 \n",
" 0.233599 \n",
" 0.0280 \n",
" 11.0 \n",
" True \n",
" 9.897135e-08 \n",
" 0.346938 \n",
" \n",
" \n",
" 2 \n",
" 1000000 \n",
" full_DFFP_graph_solve \n",
" 4 \n",
" 3 \n",
" MEASURED \n",
" 2.452270 \n",
" 407785.428142 \n",
" 0.233599 \n",
" 0.338399 \n",
" 0.2800 \n",
" 11.0 \n",
" True \n",
" 9.897135e-08 \n",
" 0.346939 \n",
" \n",
" \n",
" 3 \n",
" 10000000 \n",
" full_DFFP_graph_solve \n",
" 4 \n",
" 3 \n",
" MEASURED \n",
" 26.219251 \n",
" 381399.152821 \n",
" 0.233398 \n",
" 1.097040 \n",
" 2.8000 \n",
" 11.0 \n",
" True \n",
" 9.897135e-08 \n",
" 0.346939 \n",
" \n",
" \n",
" 4 \n",
" 50000000 \n",
" full_DFFP_graph_solve \n",
" 4 \n",
" 3 \n",
" MEASURED \n",
" 181.647623 \n",
" 275258.212795 \n",
" 0.255996 \n",
" 4.458222 \n",
" 14.0000 \n",
" 11.0 \n",
" True \n",
" 9.897135e-08 \n",
" 0.346939 \n",
" \n",
" \n",
" 5 \n",
" 100000000 \n",
" full_DFFP_graph_solve \n",
" 4 \n",
" 3 \n",
" MEASURED \n",
" 933.381499 \n",
" 107137.328262 \n",
" 0.257171 \n",
" 8.652685 \n",
" 28.0000 \n",
" 11.0 \n",
" True \n",
" 9.897135e-08 \n",
" 0.346939 \n",
" \n",
" \n",
" 6 \n",
" 200000000 \n",
" full_DFFP_graph_solve \n",
" 4 \n",
" 3 \n",
" SKIPPED_INSUFFICIENT_MEMORY \n",
" NaN \n",
" NaN \n",
" 0.249569 \n",
" 0.249569 \n",
" 56.0000 \n",
" NaN \n",
" False \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" n_cells workload degree n_outcomes \\\n",
"0 10000 full_DFFP_graph_solve 4 3 \n",
"1 100000 full_DFFP_graph_solve 4 3 \n",
"2 1000000 full_DFFP_graph_solve 4 3 \n",
"3 10000000 full_DFFP_graph_solve 4 3 \n",
"4 50000000 full_DFFP_graph_solve 4 3 \n",
"5 100000000 full_DFFP_graph_solve 4 3 \n",
"6 200000000 full_DFFP_graph_solve 4 3 \n",
"\n",
" status elapsed_seconds cells_per_second \\\n",
"0 MEASURED 0.013242 755180.691477 \n",
"1 MEASURED 0.265448 376721.079906 \n",
"2 MEASURED 2.452270 407785.428142 \n",
"3 MEASURED 26.219251 381399.152821 \n",
"4 MEASURED 181.647623 275258.212795 \n",
"5 MEASURED 933.381499 107137.328262 \n",
"6 SKIPPED_INSUFFICIENT_MEMORY NaN NaN \n",
"\n",
" rss_before_gb rss_after_gb estimated_gb solver_iterations \\\n",
"0 0.220537 0.223986 0.0028 11.0 \n",
"1 0.222958 0.233599 0.0280 11.0 \n",
"2 0.233599 0.338399 0.2800 11.0 \n",
"3 0.233398 1.097040 2.8000 11.0 \n",
"4 0.255996 4.458222 14.0000 11.0 \n",
"5 0.257171 8.652685 28.0000 11.0 \n",
"6 0.249569 0.249569 56.0000 NaN \n",
"\n",
" solver_converged solver_residual checksum \n",
"0 True 9.897135e-08 0.346934 \n",
"1 True 9.897135e-08 0.346938 \n",
"2 True 9.897135e-08 0.346939 \n",
"3 True 9.897135e-08 0.346939 \n",
"4 True 9.897135e-08 0.346939 \n",
"5 True 9.897135e-08 0.346939 \n",
"6 False NaN NaN "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"graph_results = []\n",
"for n_cells in TARGET_CELLS:\n",
" required = graph_solve_bytes(\n",
" n_cells,\n",
" GRAPH_DEGREE,\n",
" GRAPH_OUTCOMES,\n",
" )\n",
" available = os.sysconf(\"SC_AVPHYS_PAGES\") * os.sysconf(\"SC_PAGE_SIZE\")\n",
" if required > MEMORY_SAFETY_FRACTION * available:\n",
" if SCALABILITY_PROFILE == \"exact_200m\":\n",
" raise MemoryError(\n",
" \"The exact 200-million-cell no-chunk solve requires more free \"\n",
" f\"memory. Estimated allocation: {required / 1e9:.1f} GB; \"\n",
" f\"available: {available / 1e9:.1f} GB.\"\n",
" )\n",
" graph_results.append(\n",
" {\n",
" \"n_cells\": int(n_cells),\n",
" \"workload\": \"full_DFFP_graph_solve\",\n",
" \"degree\": GRAPH_DEGREE,\n",
" \"n_outcomes\": GRAPH_OUTCOMES,\n",
" \"status\": \"SKIPPED_INSUFFICIENT_MEMORY\",\n",
" \"elapsed_seconds\": np.nan,\n",
" \"cells_per_second\": np.nan,\n",
" \"rss_before_gb\": current_rss_bytes() / 1e9,\n",
" \"rss_after_gb\": current_rss_bytes() / 1e9,\n",
" \"estimated_gb\": required / 1e9,\n",
" \"solver_iterations\": np.nan,\n",
" \"solver_converged\": False,\n",
" \"solver_residual\": np.nan,\n",
" \"checksum\": np.nan,\n",
" }\n",
" )\n",
" continue\n",
" graph_results.append(\n",
" run_graph_solve(\n",
" n_cells,\n",
" GRAPH_DEGREE,\n",
" GRAPH_OUTCOMES,\n",
" )\n",
" )\n",
"\n",
"graph_results = pd.DataFrame(graph_results)\n",
"display(graph_results)\n",
"graph_results.to_csv(OUTPUT_DIR / \"graph_solve_results.csv\", index=False)\n",
"\n",
"if SCALABILITY_PROFILE == \"exact_200m\":\n",
" measured = graph_results.query(\"n_cells == 200_000_000 and status == 'MEASURED'\")\n",
" if len(measured) != 1:\n",
" raise RuntimeError(\"The exact 200M full graph solve did not complete.\")\n"
]
},
{
"cell_type": "markdown",
"id": "72f33476",
"metadata": {},
"source": [
"## Realistic degree-30 graph ladder\n",
"\n",
"The exact 200-million-cell proof uses a minimal degree-4 performance graph so\n",
"that a complete allocation is feasible on a high-memory host. A second, smaller\n",
"no-chunk ladder measures degree 30, which is closer to common single-cell\n",
"neighbor graphs. These results must be reported separately.\n"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "0deae868",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" n_cells \n",
" workload \n",
" degree \n",
" n_outcomes \n",
" status \n",
" elapsed_seconds \n",
" cells_per_second \n",
" rss_before_gb \n",
" rss_after_gb \n",
" estimated_gb \n",
" solver_iterations \n",
" solver_converged \n",
" solver_residual \n",
" checksum \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 100000 \n",
" full_DFFP_graph_solve \n",
" 30 \n",
" 3 \n",
" MEASURED \n",
" 2.916907 \n",
" 34282.886825 \n",
" 0.248865 \n",
" 0.296022 \n",
" 0.09664 \n",
" 88 \n",
" True \n",
" 8.514826e-07 \n",
" 0.423414 \n",
" \n",
" \n",
" 1 \n",
" 250000 \n",
" full_DFFP_graph_solve \n",
" 30 \n",
" 3 \n",
" MEASURED \n",
" 5.553404 \n",
" 45017.432155 \n",
" 0.296022 \n",
" 0.373899 \n",
" 0.24160 \n",
" 88 \n",
" True \n",
" 8.514826e-07 \n",
" 0.423428 \n",
" \n",
" \n",
" 2 \n",
" 500000 \n",
" full_DFFP_graph_solve \n",
" 30 \n",
" 3 \n",
" MEASURED \n",
" 11.650900 \n",
" 42915.138189 \n",
" 0.246030 \n",
" 0.486912 \n",
" 0.48320 \n",
" 88 \n",
" True \n",
" 8.514826e-07 \n",
" 0.423433 \n",
" \n",
" \n",
" 3 \n",
" 1000000 \n",
" full_DFFP_graph_solve \n",
" 30 \n",
" 3 \n",
" MEASURED \n",
" 21.626659 \n",
" 46239.228173 \n",
" 0.306909 \n",
" 0.684069 \n",
" 0.96640 \n",
" 88 \n",
" True \n",
" 8.514826e-07 \n",
" 0.423435 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" n_cells workload degree n_outcomes status \\\n",
"0 100000 full_DFFP_graph_solve 30 3 MEASURED \n",
"1 250000 full_DFFP_graph_solve 30 3 MEASURED \n",
"2 500000 full_DFFP_graph_solve 30 3 MEASURED \n",
"3 1000000 full_DFFP_graph_solve 30 3 MEASURED \n",
"\n",
" elapsed_seconds cells_per_second rss_before_gb rss_after_gb \\\n",
"0 2.916907 34282.886825 0.248865 0.296022 \n",
"1 5.553404 45017.432155 0.296022 0.373899 \n",
"2 11.650900 42915.138189 0.246030 0.486912 \n",
"3 21.626659 46239.228173 0.306909 0.684069 \n",
"\n",
" estimated_gb solver_iterations solver_converged solver_residual \\\n",
"0 0.09664 88 True 8.514826e-07 \n",
"1 0.24160 88 True 8.514826e-07 \n",
"2 0.48320 88 True 8.514826e-07 \n",
"3 0.96640 88 True 8.514826e-07 \n",
"\n",
" checksum \n",
"0 0.423414 \n",
"1 0.423428 \n",
"2 0.423433 \n",
"3 0.423435 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"realistic_graph_results = []\n",
"if SCALABILITY_PROFILE == \"standard\":\n",
" for n_cells in REALISTIC_TARGET_CELLS:\n",
" required = graph_solve_bytes(\n",
" n_cells,\n",
" REALISTIC_GRAPH_DEGREE,\n",
" GRAPH_OUTCOMES,\n",
" )\n",
" available = os.sysconf(\"SC_AVPHYS_PAGES\") * os.sysconf(\"SC_PAGE_SIZE\")\n",
" if required > MEMORY_SAFETY_FRACTION * available:\n",
" break\n",
" realistic_graph_results.append(\n",
" run_graph_solve(\n",
" n_cells,\n",
" REALISTIC_GRAPH_DEGREE,\n",
" GRAPH_OUTCOMES,\n",
" )\n",
" )\n",
"realistic_graph_results = pd.DataFrame(realistic_graph_results)\n",
"display(realistic_graph_results)\n",
"realistic_graph_results.to_csv(\n",
" OUTPUT_DIR / \"graph_solve_degree30_results.csv\",\n",
" index=False,\n",
")\n"
]
},
{
"cell_type": "markdown",
"id": "47729fcb",
"metadata": {},
"source": [
"## 5. Measured runtime and memory plots\n",
"\n",
"Only rows marked `MEASURED` appear as exact observations. Dashed lines to larger\n",
"targets are extrapolations and are labeled as such."
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "c009c0de",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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wq2IiIiIiIiIiIiIg1HhVkRERERERERERMTBqHArIiIiIiIiIiIi4mBUuBURERERERERERFxMCrcioiIiIiIiIiIiDgYFW5FREREREREREREHIwKtyIiIiIiIiIiIiIORoVbEZE7zLRp0wgNDbVsjxo1ikGDBtktHhERERGRitKcVkTuBCrciojcYs6cOcOkSZNo3LgxLi4uBAQE8MADDxAXF2fv0ERERERErKI5rYhI+arZOwAREbFeWloa9913H7Vq1WLOnDmEhIRQWFjIt99+S1RUFCkpKfYOUURERETkujSnFRGxjp64FRG5hUyYMAGDwUBSUhIPPvggzZs3p1WrVkRHR/Pjjz8CkJWVxZgxY/D29sbT05MePXqwa9cuq8+xdOlSQkJCqFGjBnXq1CEyMpK8vLyquiQRERERucNoTisiYh0VbkVEbhHnz59n3bp1REVF4e7uXqa9Vq1aADz00ENkZmaydu1akpOTCQ8Pp2fPnpw/f77cc5w+fZpHHnmExx9/nAMHDhAfH8/gwYMxm82VfTkiIiIicgfSnFZExHpaKkFE5BZx5MgRzGYzd9999zX7bN68maSkJDIzM3FxcQFg7ty5fPXVVyxdupRx48Zd9xynT5+mqKiIwYMHExgYCEBISEjlXYSIiIiI3NE0pxURsZ4KtyIitwhrnhDYtWsXubm51KlTp9T+S5cucfTo0XKPb9OmDT179iQkJIQ+ffrQu3dvhgwZwl133XXDcYuIiIiIXKE5rYiI9VS4FRG5RTRr1gyDwXDdlzXk5ubi5+dHfHx8mbYrXzu7HqPRyIYNG0hMTGT9+vUsWLCAl156iZ9++olGjRrdRPQiIiIiIprTiohUhNa4FRG5RdSuXZs+ffoQGxt71RcrZGVlER4ezpkzZ6hWrRpNmzYt9VO3bl2rzmMwGLjvvvt49dVX+fnnn3F2dmbFihWVfTkiIiIicgfSnFZExHoq3IqI3EJiY2MxmUxERESwbNkyDh8+zIEDB5g/fz6dOnUiMjKSTp06MWjQINavX09aWhqJiYm89NJLbN++vdzxf/rpJ2bOnMn27ds5fvw4y5cv5+zZs7Rs2dIGVyciIiIidwLNaUVErKOlEkREbiGNGzdmx44dzJgxg2effZbTp0/j7e1N27Ztee+99zAYDKxZs4aXXnqJ0aNHc/bsWXx9fenSpQs+Pj7lju/p6UlCQgIxMTHk5OQQGBjIm2++Sb9+/WxwdSIiIiJyJ9CcVkTEOgazNSuDi4iIiIiIiIiIiIjNaKkEEREREREREREREQejwq2IiIiIiIiIiIiIg1HhVkRERERERERERMTBqHArIiIiIiIiIiIi4mBUuBURERERERERERFxMCrcioiIiIiIiIiIiDgYFW5FREREREREREREHIwKtyIiIiIiIiIiIiIORoVbEREREREREREREQejwq2IiIiIiIiIiIiIg1HhVkRERERERERERMTB/H8u6+/5BYx1MAAAAABJRU5ErkJggg==",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"def add_loglog_extrapolation(table, value_column, targets):\n",
" measured = table[\n",
" table[\"status\"].eq(\"MEASURED\")\n",
" & table[value_column].notna()\n",
" & table[\"n_cells\"].gt(0)\n",
" ]\n",
" output = pd.DataFrame({\"n_cells\": targets})\n",
" output[\"predicted\"] = np.nan\n",
" if len(measured) >= 2:\n",
" coefficient = np.polyfit(\n",
" np.log10(measured[\"n_cells\"].to_numpy(float)),\n",
" np.log10(measured[value_column].to_numpy(float)),\n",
" deg=1,\n",
" )\n",
" output[\"predicted\"] = 10 ** np.polyval(\n",
" coefficient,\n",
" np.log10(output[\"n_cells\"].to_numpy(float)),\n",
" )\n",
" output[\"scaling_exponent\"] = coefficient[0]\n",
" return output\n",
"\n",
"\n",
"metric_prediction = add_loglog_extrapolation(\n",
" metric_results,\n",
" \"elapsed_seconds\",\n",
" TARGET_CELLS,\n",
")\n",
"graph_prediction = add_loglog_extrapolation(\n",
" graph_results,\n",
" \"elapsed_seconds\",\n",
" TARGET_CELLS,\n",
")\n",
"\n",
"fig, axes = plt.subplots(1, 2, figsize=(14, 5.2))\n",
"for table, prediction, label in [\n",
" (metric_results, metric_prediction, \"Cellwise DFFP metrics\"),\n",
" (graph_results, graph_prediction, \"Full DFFP graph solve\"),\n",
"]:\n",
" measured = table[table[\"status\"].eq(\"MEASURED\")]\n",
" axes[0].plot(\n",
" measured[\"n_cells\"],\n",
" measured[\"elapsed_seconds\"],\n",
" marker=\"o\",\n",
" linewidth=2,\n",
" label=f\"{label}: measured\",\n",
" )\n",
" if prediction[\"predicted\"].notna().any():\n",
" axes[0].plot(\n",
" prediction[\"n_cells\"],\n",
" prediction[\"predicted\"],\n",
" linestyle=\"--\",\n",
" label=f\"{label}: extrapolated\",\n",
" )\n",
"axes[0].set_xscale(\"log\")\n",
"axes[0].set_yscale(\"log\")\n",
"axes[0].set_xlabel(\"Cells\")\n",
"axes[0].set_ylabel(\"Elapsed seconds\")\n",
"axes[0].set_title(\"Runtime: measured and extrapolated\")\n",
"axes[0].legend(frameon=False)\n",
"\n",
"axes[1].plot(\n",
" memory_estimates[\"n_cells\"],\n",
" memory_estimates[\"metric_transform_estimated_gb\"],\n",
" marker=\"o\",\n",
" label=\"Cellwise DFFP metrics\",\n",
")\n",
"axes[1].plot(\n",
" memory_estimates[\"n_cells\"],\n",
" memory_estimates[f\"graph_solve_degree_{GRAPH_DEGREE}_estimated_gb\"],\n",
" marker=\"o\",\n",
" label=f\"Full DFFP solve, degree {GRAPH_DEGREE}\",\n",
")\n",
"axes[1].plot(\n",
" memory_estimates[\"n_cells\"],\n",
" memory_estimates[\"graph_degree_30_estimated_gb\"],\n",
" marker=\"o\",\n",
" label=\"Full DFFP solve, degree 30\",\n",
")\n",
"axes[1].axhline(\n",
" total_memory / 1e9,\n",
" linestyle=\"--\",\n",
" linewidth=1.5,\n",
" label=\"Host total memory\",\n",
")\n",
"axes[1].set_xscale(\"log\")\n",
"axes[1].set_yscale(\"log\")\n",
"axes[1].set_xlabel(\"Cells\")\n",
"axes[1].set_ylabel(\"Estimated GB\")\n",
"axes[1].set_title(\"Analytic full-problem memory\")\n",
"axes[1].legend(frameon=False)\n",
"fig.tight_layout()\n",
"fig.savefig(OUTPUT_DIR / \"scalability_runtime_memory.png\", dpi=200, bbox_inches=\"tight\")\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "6be28be9",
"metadata": {},
"source": [
"## 6. Exact status at 200 million cells"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "e866ef16",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" workload \n",
" n_cells \n",
" status \n",
" elapsed_seconds \n",
" estimated_gb \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" cellwise_DFFP_metrics \n",
" 200000000 \n",
" MEASURED \n",
" 22.766293 \n",
" 14.4 \n",
" \n",
" \n",
" 1 \n",
" full_DFFP_graph_solve \n",
" 200000000 \n",
" SKIPPED_INSUFFICIENT_MEMORY \n",
" NaN \n",
" 56.0 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" workload n_cells status \\\n",
"0 cellwise_DFFP_metrics 200000000 MEASURED \n",
"1 full_DFFP_graph_solve 200000000 SKIPPED_INSUFFICIENT_MEMORY \n",
"\n",
" elapsed_seconds estimated_gb \n",
"0 22.766293 14.4 \n",
"1 NaN 56.0 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"cellwise_DFFP_metrics: exact 200M run measured in 22.77 seconds.\n",
"full_DFFP_graph_solve: 200M was not measured on this host; the notebook did not substitute a chunked run.\n"
]
}
],
"source": [
"status_200m = pd.concat(\n",
" [\n",
" metric_results.loc[\n",
" metric_results[\"n_cells\"].eq(200_000_000),\n",
" [\"workload\", \"n_cells\", \"status\", \"elapsed_seconds\", \"estimated_gb\"],\n",
" ],\n",
" graph_results.loc[\n",
" graph_results[\"n_cells\"].eq(200_000_000),\n",
" [\"workload\", \"n_cells\", \"status\", \"elapsed_seconds\", \"estimated_gb\"],\n",
" ],\n",
" ],\n",
" ignore_index=True,\n",
")\n",
"display(status_200m)\n",
"\n",
"for row in status_200m.itertuples():\n",
" if row.status == \"MEASURED\":\n",
" print(\n",
" f\"{row.workload}: exact 200M run measured in \"\n",
" f\"{row.elapsed_seconds:.2f} seconds.\"\n",
" )\n",
" else:\n",
" print(\n",
" f\"{row.workload}: 200M was not measured on this host; \"\n",
" \"the notebook did not substitute a chunked run.\"\n",
" )"
]
},
{
"cell_type": "markdown",
"id": "f10d102f",
"metadata": {},
"source": [
"## 7. Export environment and benchmark provenance"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "d95679a5",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Outputs written to /home/emil/notebooks/08-tutorials/tutorial_outputs/scalability\n"
]
}
],
"source": [
"all_results = pd.concat(\n",
" [metric_results, graph_results],\n",
" ignore_index=True,\n",
" sort=False,\n",
")\n",
"all_results.to_csv(OUTPUT_DIR / \"all_scalability_results.csv\", index=False)\n",
"\n",
"provenance = {\n",
" **hardware,\n",
" \"target_cells\": TARGET_CELLS,\n",
" \"n_fates_metric_transform\": N_FATES,\n",
" \"scalability_profile\": SCALABILITY_PROFILE,\n",
" \"graph_degree\": GRAPH_DEGREE,\n",
" \"realistic_graph_degree\": REALISTIC_GRAPH_DEGREE,\n",
" \"graph_outcomes\": GRAPH_OUTCOMES,\n",
" \"effective_horizon\": EFFECTIVE_HORIZON,\n",
" \"memory_safety_fraction\": MEMORY_SAFETY_FRACTION,\n",
" \"scientific_scoring_chunked\": False,\n",
" \"plotting_subsampling_used\": False,\n",
"}\n",
"(OUTPUT_DIR / \"scalability_provenance.json\").write_text(\n",
" json.dumps(provenance, indent=2)\n",
")\n",
"print(\"Outputs written to\", OUTPUT_DIR.resolve())"
]
},
{
"cell_type": "markdown",
"id": "9b40bfeb",
"metadata": {},
"source": [
"## Interpretation checklist\n",
"\n",
"- A 200-million-cell statement requires `status=\"MEASURED\"` for that workload.\n",
"- Extrapolated runtime is not an executed benchmark.\n",
"- Graph degree, number of fates, dtype, solver, tolerance, and hardware must be reported.\n",
"- Cellwise metric calculation and full graph propagation are separate workloads.\n",
"- RNA-velocity preprocessing is excluded and must be benchmarked separately.\n",
"- No scientific calculation in this notebook is chunked.\n",
"- Plotting may be subsampled in ordinary tutorials, but no plotting subsampling\n",
" is used in this benchmark."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3.12 lab-py312",
"language": "python",
"name": "lab-py312"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.13"
}
},
"nbformat": 4,
"nbformat_minor": 5
}