Skip to content

HeatStressR 2.1.0 — Multi-core support; prep for CRAN

Choose a tag to compare

@zyf0717 zyf0717 released this 21 Jul 09:50
· 17 commits to master since this release
f77b979

Added

  • wbgt.Liljegren() batch execution accepts an explicit workers count.
    Values above one use cross-platform PSOCK workers while retaining output,
    warning, and diagnostic ordering. Worker count is user-selected within the
    currently permitted worker limit; it is not automatically reduced based on
    workload size except that it is capped at the number of input rows.
  • New internal parallel execution layer (R/wbgt-parallel.R) providing
    max_liljegren_workers(), validate_workers(), split_liljegren_chunks(),
    solve_liljegren_batch_raw_chunk(), and solve_liljegren_parallel().
  • Benchmark harnesses for multicore performance evaluation:
    benchmarks/benchmark-liljegren-workers-1-to-6x87600.R (sweeping worker
    counts with configurable ROWS_PER_WORKER) and
    benchmarks/benchmark-liljegren-parallel.R (annual workload
    profiling). Results recorded on Apple M2 Max.
  • DESCRIPTION now lists parallel as an explicit import.

CRAN preparation

  • Standardised licence metadata and package authorship.
  • Added package and Liljegren-model citations.
  • Added runnable Liljegren examples and expanded installed documentation.
  • Clarified that HeatStressR is an R implementation of the Liljegren method,
    not a claim of improvement over the original Liljegren program.
  • Made worker-limit detection respect CRAN check core limits.
  • Added CRAN submission notes and related regression tests.

Changed

  • wbgt.Liljegren() with engine = "batch" automatically falls back to
    multi-worker PSOCK parallel execution when workers > 1, splitting rows
    across chunks and combining results with preserved diagnostic attributes.
  • Worker count validation enforces finite integer input and caps at the
    currently permitted worker count; no workload-size heuristic is applied
    beyond the row-count cap.

Fixed

  • Batch worker count is now capped at the detected logical CPU limit to
    prevent oversubscription on multi-socket or hyperthreaded systems.