Fire-front-oriented actor model: benchmark harnesses, domain rasters and measured timings
收藏资源简介:
Version 2.0.1 corrects the README and the archive of version 2.0.0, whose README text had been carried over from version 1 and described the withdrawn core sweep and the superseded baseline protocol, contradicting the code shipped alongside it. No measurement changed and no table changed. Code and derived data supporting the article "A Fire-Front-Oriented Actor Model for Monte Carlo Wildfire Simulation on Commodity Central Processing Units". The record contains the benchmark harnesses for the synthetic and the real-domain families, the scenario module that declares the landscape parameters, the workload profiler, the exported Eastern Hills fuel raster that the real-domain benchmark consumes, and the measured tables behind every reported figure, including the per-round and per-replicate records and not only the summaries. What changed in version 2 This version replaces the measurement protocol and the synthetic scenario definitions, so its tables supersede those of version 1 rather than extending them. Both arms of every comparison now run inside the same actor runtime and differ only in pool size, one worker against sixteen. In version 1 the reference arm was a plain loop in the driver process while the distributed arm ran in actor workers, and the difference between those two kinds of process, measured here at up to 45 per cent of processor time for identical work, entered the reported ratio as if it were parallel gain. The reference arm runs every replicate and its cost is their measured sum. Version 1 timed two replicates and multiplied the median by the replicate count, which estimates the total rather than measuring it. Measurements are repeated in rounds with the arm order alternating, and the tables carry the median and the range across rounds. Two assertions guard every round. The final state of each replicate must be identical between the two arms, compared by hash, and the measured speedup must not exceed the ceiling that the spread of replicate durations imposes. Either failure aborts the measurement instead of recording it. The synthetic landscape now declares its fuel density, set to 0.80. Version 1 inherited a density of 0.60 from the engine, which sits near the percolation threshold of the lattice, where a fire either crosses the domain or dies at the first gap. Measured over six seeds of the smallest domain, that density left three replicates of six extinguished before the horizon and the most loaded replicate executed 379 times the work of the lightest. The scenario horizons are chosen rather than inherited, at 400, 250, 170 and 125 iterations, so the four scenarios form a ladder of per-replicate cost from about 2 s to about 416 s. A workload profiler was added that counts operations instead of timing them, from which the paper derives the convolution counts, the attainable speedup ceilings and the per-step cost model. The core sweep was withdrawn. Its measurements were produced by the version 1 protocol and included points above the physical ceiling of the ensemble, so its tables and its script are not part of this record. How to run it Unzip the archive and run any script from code/. Paths resolve against the record itself through code/rutas.py, so nothing points at the machine where the work was done. Figures are written to figures/. The environment variables P5_ESCENARIOS, P5_DOMINIOS, P5_RONDAS and P5_SEMILLAS restrict a run to a subset or change the number of measurement rounds. The record is self-contained. It carries the simulation engine under Fire-Automaton/componentes/ and the calibration module under Tesis/implementaciones/, both Apache 2.0, so there is no external repository to fetch first. Licensing, which is split on purpose The source code in code/, together with the vendored modules, is released under the Apache License 2.0, in the file LICENSE. The derived tabular data in data/ are released under Creative Commons Attribution 4.0 International, in the file LICENSE-DATA.txt. The split is deliberate, so that the code can be reused in a downstream product without the attribution obligations of the data travelling with it. Contents code/ holds the scenario module and 9 scripts. escenarios_banco.py. Declares the geometry, ignitions, wind regime, fuel density and horizon of the four synthetic scenarios, and builds the landscape from them. run_synthetic_benchmark.py. Measures the four synthetic scenarios in rounds, with both arms inside the same actor runtime, and asserts state equality and the ceiling per round. run_real_fire_benchmark.py. The same protocol on the two real domains, logging times, processor times, iteration counts, state hashes and the Hamming check against the full-grid reference. run_workload_profile.py. Counts the emitting cells of every step of every replicate without timing anything, and fits the per-step cost against the front size. export_real_domain.py. Exports the full Eastern Hills domain from the 30 m fuel layer. The El Cable sector is traced at run time from a sector image that this record does not redistribute. run_vectorized_propagator.py. The algebraic reduction of the propagator and its exact equivalence to the reference formulation, checked step by step, with the convolutions of each formulation counted. run_vectorized_stats.py. Uncertainty of the cost ratio of the algebraic reduction, with bootstrap interval and Wilcoxon test. Needs pandas, which the engine environment does not carry. make_figures_v2.py, make_vectorized_figure.py, make_arch_figure.py. Regenerate the figures. data/ holds the measured tables. p5_real_benchmark.csv and p5_real_rondas.csv. The two real domains, as a summary with median and range and as one row per measurement round. p5_synthetic_benchmark.csv and p5_synthetic_rondas.csv. The four synthetic scenarios, in the same two forms. p5_workload_profile.csv, p5_workload_replicas.csv and p5_workload_steps.csv. The counted workload, per scenario, per replicate and per step. p5_vectorized_equivalence.csv. Step-by-step Hamming distance between the vectorized and the reference propagator. p5_vectorized_speedup.csv. Per-step time of both formulations across the two domains. p5_vectorized_stats.csv. Median cost ratio with interval, slope against front size, and the Wilcoxon test. real_domain_cerros.npz. The exported Eastern Hills domain raster that the real-domain benchmark consumes. What is not in this record, and why Primary UAECOB incident registry. Not required by anything in this record. El Cable sector image. The Eastern Hills domain rebuilds from the 30 m fuel raster included here. The El Cable sector is traced at run time from a sector image that is not redistributed, so reproducing that one domain requires the image. The record carries the ignition seeds and the domain dimensions that the tracing produces. Environment Python 3.12 with the Ray framework, numpy, scipy and pandas. Measured on a 16-core commodity processor under the default balanced power plan of the operating system. No graphics processing unit is required and no commercial component is used. Random seeds are fixed throughout, and the determinism they provide was verified by comparing state hashes between repeated executions of each scenario. A note on language The scripts carry Spanish-language comments and the tables carry Spanish column names, because Spanish is the working language of the project. The lists above give the English purpose of every file, and the README included in the archive carries a glossary of the recurring column names.



