CarpetInterp tree_search fails when using Carpet with manual topology specified

Issue #2177 new
Yosef Zlochower created an issue

While running a unigrid simulation in Carpet, I ran into an issue with interpolation. The CarpetInterp tree_search algorithm fails when I used Carpet::processor_topology = "manual"

Is this expected? Setting CarpetInterp::tree_search = false seems to make the problem go away.

This is the reported error when tree_search = yes

Inconsistent search result from find_location_tree for interpolation point #1626 at [0.043412,-0.246202,3.0151e-17] of patch #0 is not on any component

I attached a parfile showing the issue.

Keyword: None

Comments (4)

  1. Erik Schnetter
    • removed comment

    This is not expected, but understandable. Apparently, the manual process decomposition does not properly initialize the data structure upon which the tree search relies. Given that a manual specification is rarely used (is it?), and that there is a work-around, this might not be corrected in the near term.

    The tree search speeds up interpolation when there are many processes. Is interpolation a bottleneck in this simulation? How many processes are you using?

  2. Yosef Zlochower reporter
    • removed comment

    I would expect that we wouldn't use more than 512 cores. What would be needed to properly initialize the appropriate data structures?

  3. Erik Schnetter
    • removed comment

    I assume that the process regions are initialized, but the superregions are not initialized. There should be one superregion, defining a tree structure for the actual regions.

    Is interpolation actually a bottleneck in the simulation?

  4. Yosef Zlochower reporter
    • removed comment

    Interpolation is not yet a bottleneck. The code is not yet used in any production setting. I found this issue while debugging an unrelated problem.

  5. Log in to comment