Towards the profiling of scientific software for accuracy
Bibliographic record
Abstract
For scientific computational software, accuracy is a constant concern. While existing tools and techniques can estimate the output accuracy, they do not attempt to locate where these errors come from and which parts of the code are most responsible for their amplification. In the related problem of software performance optimization, the Pareto principle, also known as the 80/20 rule, is used to great effect. Because the performance of software is typically dependent on only a few critical sections of code, efforts in optimization can be focused on locating these sections with the help of a profiler and then optimizing only the functions that will have the greatest effect on overall performance. Does the Pareto principle also apply in the case of software accuracy? To study this problem, we develop a novel approach for determining accuracy degradation at the function level using a combination of interval analysis and derivative techniques. We use the model to analyze a piece of scientific computational software from the field of nuclear engineering. Our results suggest that the Pareto principle does in fact apply for accuracy degradation: 88% of the analyzed functions had less than 2% average relative errors in their output, and error amplification only occurred on 19% of functions. These results imply that tools focused on locating the critical sections of code where accuracy degradation is high could be useful in helping scientific developers understand and improve the accuracy characteristics of their software.
Fetched live from OpenAlex and de-inverted. Abstracts are not stored in this database: the inverted indexes are 8.6 GB of the frame’s 9.3 GB of text, and the host has 13 GB free.
How this classification was reachedexpand
Full frame machine prediction
Teacher imitationNot calibrated prevalence, not ground truth. Human validation pending. The Gemma side is a direct model label for every work in the frame, read from the title-only record. The Codex side is a classifier learned from the 10,348 direct Codex labels and calibrated to design-weighted sample rates; fields without enough sample support carry no Codex call. Candidate is the union of the two sides; consensus is their intersection. These outputs are machine_predicted_unvalidated and are not human labels.
Distilled classifier scores by category (both heads)
| Category | Codex | Gemma |
|---|---|---|
| Metaresearch | 0.011 | 0.065 |
| Meta-epidemiology (narrow) | 0.002 | 0.002 |
| Meta-epidemiology (broad) | 0.002 | 0.002 |
| Bibliometrics | 0.004 | 0.003 |
| Science and technology studies | 0.001 | 0.004 |
| Scholarly communication | 0.006 | 0.008 |
| Open science | 0.003 | 0.004 |
| Research integrity | 0.003 | 0.004 |
| Insufficient payload (model declined to judge) | 0.001 | 0.001 |
Machine scores (provisional)
The two teacher heads of the student model, read on this work. A score orders the frame for review; it never asserts a category, and the validation status ships verbatim with every row.
Baseline scores from an immature model (maturity gate not passed, 7 training rounds). Scores rank; they never assert a category.
score_only:v0-immature-baseline · verbatim from the scoring run: score_only means the number may rank works, and no category label ships from itClassification
machine, unvalidatedMachine predicted; a candidate call from one source (direct Gemma or distilled Codex), not a consensus.
How this classification was reached, model by model and score by score, is at the end of the page under "How this classification was reached".