Software performance characterization and scaling analysis
Curated, evidence-grounded skill and software-tool collections for scientific AI agents, generated by the AgenticScienceBuilder
npx -y skills add HolobiomicsLab/asb-skill-collections --skill software-performance-characterization-and-scaling-analysisAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 14 stars14 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use when when a tool claims to be 'scalable' or 'performance-conscious' but lacks published performance benchmarks, or when you need to confirm that runtime and memory scale linearly (or predictably) with sample count before deploying the tool on large LC-MS datasets (e.g., >100 samples).
The file declares its own license as CC-BY-4.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
8.2 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it
Software Performance Characterization and Scaling Analysis
Summary
Empirically measure and verify how a computational tool (wall-clock time, peak resident memory) scales with increasing input size, validating performance claims and identifying bottlenecks. Essential for confirming scalability assertions in software designed for high-throughput metabolomics data processing.
When to use
When a tool claims to be 'scalable' or 'performance-conscious' but lacks published performance benchmarks, or when you need to confirm that runtime and memory scale linearly (or predictably) with sample count before deploying the tool on large LC-MS datasets (e.g., >100 samples). Use this skill to validate whether a tool meets stated performance thresholds (e.g., laptop-class hardware with ≤16 GB RAM, single CPU core) under realistic conditions.
When NOT to use
- The software has already been thoroughly benchmarked in peer-reviewed publications with multiple hardware configurations; repeating characterization adds no new evidence.
- You are profiling a single sample or a fixed small batch size; scaling analysis requires ≥3 distinct cohort sizes to detect growth patterns.
- Input data are not representative of production use (e.g., tiny toy datasets or synthetic data with atypical m/z density); benchmark results must reflect real-world data characteristics.
Inputs
- Public mzML datasets (centroid format) from LC-MS metabolomics repositories (MetaboLights, MassIVE, or project-specific sources)
- Cohorts of test samples stratified by count (e.g., 10, 50, 100+ samples)
- Software installed with known version and default or specified parameters (e.g., asari v1.10+, 5 ppm m/z tolerance, positive ionization mode)
Outputs
- Tabular summary of runtime (seconds) and peak resident memory (MB or GB) by cohort size
- Plots of wall-clock time vs. sample count and memory usage vs. sample count
- Computed throughput metric (samples/hour) and per-sample memory footprint (MB/sample)
- Scaling assessment (linear, near-linear, superlinear, or polynomial growth)
How to apply
Execute the software on cohorts of increasing sample counts (e.g., 10, 50, 100+ mzML files) while recording wall-clock runtime and peak resident memory using system profiling tools (e.g., Unix time command, Python psutil module, or top). Repeat each run 2–3 times to establish mean and standard deviation. Tabulate results and plot wall-clock time and memory versus sample number to verify linear or near-linear scaling. Compare observed throughput (samples/hour) and memory per sample to the claimed benchmark threshold. If scaling is superlinear or memory grows polynomially, investigate which workflow steps are the bottleneck (e.g., mass track alignment, peak detection on composite map, or data structure indexing).
Related tools
- asari (Target software for performance measurement; installed from pip (v1.10+) with specified parameters (5 ppm m/z tolerance, positive ionization mode); executed via
asari processcommand) — https://github.com/shuzhao-li/asari - Python psutil (System profiling library to record peak resident memory and CPU time programmatically during tool execution)
- Unix time command (Lightweight shell utility to measure wall-clock runtime and system resource usage for subprocess invocation)
- pymzml (Dependency used by asari to parse centroid mzML files; performance depends on parsing efficiency)
Examples
for n in 10 50 100; do /usr/bin/time -v asari process --mode pos --input test_cohort_${n}samples 2>&1 | grep -E 'Elapsed|Maximum resident'; done
Evaluation signals
- Mean runtime and memory metrics per cohort differ by <10% across 2–3 repeated runs (low variance indicates stable, reproducible measurement).
- Throughput (samples/hour) remains constant or increases slightly with cohort size (indicating true linear or near-linear scaling; severe degradation suggests O(n²) behavior).
- Observed per-sample memory footprint aligns with or is better than the claimed threshold (e.g., ≤16 GB peak memory for 100+ samples on single-core hardware).
- Scaling plot shows R² > 0.95 for linear regression on log-log axes if superlinear growth is suspected; a power law exponent close to 1.0 confirms linear behavior.
- No out-of-memory errors or process crashes occur during any cohort run; tool gracefully handles all tested sample counts.
Limitations
- Performance is hardware-dependent (CPU core count, RAM speed, SSD vs. HDD, network I/O for remote data); benchmarks must specify host configuration and may not transfer to different machines.
- Scaling may differ across operating systems and Python versions; results are specific to the tested environment.
- Intermediate files (pickles, temporary JSON) can inflate I/O overhead and memory use; caching behavior and filesystem contention are not always predictable in shared computing environments.
- mzML file size and spectral density vary by instrument and ionization mode; cohorts must be representative of intended production workflows to avoid overfitting benchmarks to atypical datasets.
Evidence
- [other] How does asari's computational performance (wall-clock time and peak memory usage) scale with increasing numbers of LC-MS samples?: "How does asari's computational performance (wall-clock time and peak memory usage) scale with increasing numbers of LC-MS samples?"
- [other] For each cohort, execute asari process command and record wall-clock runtime and peak resident memory usage using system profiling tools (e.g., time command, psutil, or top).: "For each cohort, execute asari process command and record wall-clock runtime and peak resident memory usage using system profiling tools (e.g., time command, psutil, or top)."
- [other] Tabulate results by sample count and plot wall-clock time and memory versus sample number to verify linear or near-linear scaling.: "Tabulate results by sample count and plot wall-clock time and memory versus sample number to verify linear or near-linear scaling."
- [other] Compare observed throughput (samples/hour) and memory per sample to the claimed benchmark threshold for laptop-class hardware (≤16 GB RAM, single CPU core).: "Compare observed throughput (samples/hour) and memory per sample to the claimed benchmark threshold for laptop-class hardware (≤16 GB RAM, single CPU core)."
- [other] Asari is designed as a scalable program with performance-conscious implementation prioritizing disciplined use of memory and CPU resources.: "Asari is designed as a scalable program with performance-conscious implementation prioritizing disciplined use of memory and CPU resources."
- [readme] Scalable, performance conscious, disciplined use of memory and CPU: "Scalable, performance conscious, disciplined use of memory and CPU"
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.