Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • ParaView ParaView
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 2k
    • Issues 2k
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 85
    • Merge requests 85
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • ParaViewParaView
  • ParaViewParaView
  • Issues
  • #19857
Closed
Open
Issue created Apr 20, 2020 by Boonthanome Nouanesengsy@boonthDeveloper

default Piece Distribution method

@patchett2002 @cory.quammen

Currently, when loading a multiblock dataset in parallel, the default Piece Distribution is set to Block. The other option is Interleave. I've noticed that for our large datasets, Interleave is a better option, and I was wondering if the default could be changed to Interleave.

The datasets we produce for Flag and xRage is a multiblock dataset, with the first block always being the entire mesh. The other blocks are considerably smaller, containing tracers, subsets of materials, etc.

So if the Block strategy is used, the first pieces are of the mesh, and are the largest pieces. Since they are assigned to continuous procs, the largest pieces will probably sit on the same node. Likewise, the smaller pieces in the later blocks will also sit in the same nodes, and memory usage across nodes will not be very balanced.

Of course you can change this in the gui before loading the data, but I'm worried about users not knowing this and having issues since the default is Block.

A concrete example: let's say we have a multiblock dataset with two blocks, and each block is divided into 32 pieces. So 64 pieces total. The first block is the mesh, and it's quite large. The second block is tracers, and it's much smaller.

We load this dataset over two nodes with 16 procs each. With the Block method, the first 16 procs will load the entire first block, and they all sit on the same node. Then all the procs on the second node will load the second block. The memory usage is not evenly balanced over the two nodes. With the Interleave method, the two nodes will have an equal number of pieces from the first block and second block, so memory usage should be much more balanced.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking