遇见数据集

Fire-front-oriented actor model: benchmark harnesses, domain rasters and measured timings

收藏
Zenodo2026-08-14 更新2026-08-20 收录
官方服务:

资源简介:

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 framework-cost and contention harnesses, the analysis script that derives the paper's analytical results from the measured tables, the exported Eastern Hills fuel raster, and every measured table behind every reported figure, including the per-round and per-replicate records and not only the summaries. What changed in version 2.1.0 This version adds measurements and closes gaps that version 2.0 declared as open. No earlier measurement was retracted; the tables that changed did so because their horizon or their round count grew. The extreme scenario now carries 3 measurement rounds instead of 1. Its speedup moves from 8.97 to 8.46 with a range of 8.42 to 8.61 across rounds, so the departure of the largest scenario from the monotone trend rests on a reproducible measurement rather than on a single observation. The lockstep verification covers the full horizon each domain runs in the benchmark, 1,016 steps to burnout on the El Cable sector and 400 on the Eastern Hills, against the 400 and 200 of version 2.0. The Hamming distance is 0 on the state grid and on the moisture field at every step, so no part of a measured trajectory is left unverified. The counted gain of the algebraic reduction rises accordingly, from 6.74 and 7.08 to 14.65 and 14.66, because the earlier truncation measured the fire only while its front was at its narrowest. The cost of the actor runtime itself is now measured, against a plain driver loop over the same replicates, seeds and horizon, in 3 rounds with rotating branch order. The runtime costs 1.09, 1.01 and 1.00 on the light, medium and heavy scenarios, so adopting it nets 2.97, 6.32 and 8.53. Version 2.0 listed this as an unmeasured limitation. The contention sweep now covers 3 scenarios, medium, heavy and extreme, with the pool limited to 1, 2, 4, 8, 10, 12 and 16 workers and the work hash-verified at every point. No curve shows a discontinuity at the 10th worker, where thread siblings begin to share physical cores on this processor, and the estimated memory traffic stays an order below what the memory system sustains, so core sharing and bandwidth saturation are both excluded as the binding constraint. Bootstrap intervals accompany the per-step cost coefficients and the front-area exponents. An analysis script was added that derives the amortized emission ratio, the front-area exponents and the speedup decomposition purely from the deposited tables, so the paper's analytical results regenerate without simulating anything. What changed in version 2.0 Version 2.0 replaced the measurement protocol and the synthetic scenario definitions of version 1, so its tables superseded those of version 1 rather than extending them. Both arms of every comparison 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 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 repeat 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 work imposes. Either failure aborts the measurement instead of recording it. The synthetic landscape declares its fuel density, 0.80. Version 1 inherited 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. At that density 3 replicates of 6 died 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 4 scenarios form a ladder of per-replicate cost. The core sweep of version 1 was withdrawn, because its measurements came from the earlier protocol and included points above the physical ceiling of the ensemble. 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 15 Python files, 2,802 lines in total. escenarios_banco.py. Declares the geometry, ignitions, wind regime, fuel density and horizon of the 4 synthetic scenarios, and builds the landscape from them. run_synthetic_benchmark.py. Measures the 4 synthetic scenarios in rounds, both arms inside the same actor runtime, asserting state equality and the ceiling per round. run_real_fire_benchmark.py. The same protocol on the 2 real domains, logging times, processor times, iteration counts, state hashes and the Hamming check. 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. run_framework_overhead.py. Times the same replicates as a plain driver loop, inside the runtime with 1 worker and with all workers, which prices the framework itself. run_contention_sweep.py. Runs the ensemble with the pool limited to 1 through 16 workers and records the work inflation at each width. run_complexity_analysis.py. Derives the amortized emission ratio, the front-area exponents with bootstrap intervals and the speedup decomposition from the deposited tables, without simulating. run_vectorized_propagator.py. The algebraic reduction of the propagator and its exact equivalence to the reference formulation, checked step by step over the full horizon, 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. export_real_domain.py. Exports the full Eastern Hills domain from the 30 m fuel layer. make_figures_v2.py, make_vectorized_figure.py, make_arch_figure.py, estilo.py, rutas.py. Figure generation on a shared style module, and path resolution against the record. data/ holds 16 measured tables. p5_real_benchmark.csv, p5_real_rondas.csv. The 2 real domains, as a summary with median and range and as one row per measurement round. p5_synthetic_benchmark.csv, p5_synthetic_rondas.csv. The 4 synthetic scenarios, in the same 2 forms, all with 3 rounds. p5_workload_profile.csv, p5_workload_replicas.csv, p5_workload_steps.csv. The counted workload, per scenario, per replicate and per step. p5_framework_overhead.csv, p5_framework_rondas.csv. The cost of the actor runtime against a plain driver loop. p5_contention_sweep.csv. Work inflation against pool width, 1 to 16 workers, on 3 scenarios. p5_complexity.csv, p5_decomposition.csv. The amortized emission ratio, the front-area exponents with intervals, and the occupancy-inflation decomposition. p5_vectorized_equivalence.csv, p5_vectorized_speedup.csv, p5_vectorized_stats.csv. The step-by-step equivalence over the full horizon, the per-step cost of both formulations, and the uncertainty of their ratio. real_domain_cerros.npz. The exported Eastern Hills domain raster. 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 commodity processor with 16 logical processors on 10 physical cores, 6 performance and 4 efficiency, 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.

提供机构:
Zenodo
创建时间:
2026-08-14
二维码
社区交流群
二维码
科研交流群
商业服务