Skip to content

Phase 1 General Workflow

Marc Paterno edited this page Oct 1, 2020 · 1 revision

Phase 1 General Workflow

In the first phase of the GPUCuhre Algorithm, we are trying to generate enough sub-regions so that we can launch a sufficiently large amount of processors in Phase 2, where we each processor operates on a single sub-region.

In Phase 1, all the regions are processed in parallel, computing an integral estimate and error estimate. Based on the per-region computed results, we classify them as active (needing additional processing) or inactive ("good sub-region", not requiring additional sub-divisions). Any inactive (good sub-region) will be deleted, and we only retain its integral and error estimate, which contribute to the global integral and error estimates. All the active sub-regions are split at the end of the iteration, but their integral and error estimates are not computed yet, as this step occurs at the beginning of each iteration.

note that in the upcoming Three-phase algorithm, no sub-region will be excluded from being sub-divided further.

Phase 1 has a limit on how many regions it will sample. If that limit is reached and the global accumulated integral and error estimates do not satisfy the relative error constraints set by the user, the remaining sub-regions (which at the end of this iteration have not even been sampled or marked as active or inactive, are forwarded to the Phase 2).

Phase 1 will terminate if

  1. the global accumulated metrics are satisfactory - Program Exits
  2. the sub-region size limit has been reached - Go to Phase 2