Skip to content

node, process and thread count for SGE #627

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
sverhoeven opened this issue Oct 15, 2018 · 3 comments
Closed

node, process and thread count for SGE #627

sverhoeven opened this issue Oct 15, 2018 · 3 comments
Assignees

Comments

@sverhoeven
Copy link
Member

Figure out how to map counts to SGE

Refs #625

@sverhoeven sverhoeven self-assigned this Oct 15, 2018
@sverhoeven
Copy link
Member Author

The pe allocation_rule field (https://man.cx/sge_pe(5)) determines how slots are divided over the available hosts.

Determining which pe should be used when user request

  1. single node and a single core per node ->
    1. no pe needed
  2. single node and multiple cores ->
    1. Ignore pe with allocation_rule=$fill_up or $round_robin as those can not guarantee all slots will be on same host.
    2. Maybe use pe with allocation_rule=$pe_slots, but if requested core count is greater than any host (in the queue) then job will stay queued forever.
    3. Use pe with allocation_rule == number of requested cores
    4. Maybe use pe with allocation_rule > number of requested cores, will claim more slots than requested
  3. multiple nodes and muliple cores per node ->
    1. Ignore pe with allocation_rule=$fill_up or $round_robin as those can not guarantee all slots will be on
      spread evenly among hosts.
    2. Ignore pe with allocation_rule=$pe_slots as that is for single host only
    3. Use pe with allocation_rule == number of requested cores, should use (number of nodes * core per node) as value for -pe
    4. Ignore pe with allocation_rule > number of requested cores, as that does not guarantee all slots will be spread evenly among hosts

When no valid pe can be found an exception should be thrown which tells user to use addSchedulerArgument("-pe", "", "") if they know better.

@sverhoeven
Copy link
Member Author

When queue name is given then must check that pe is allowed in queue.

When queue name is not given then GE will pick a queue which has the requested pe so the best we can do is to check if there is any queue that has that pe

@sverhoeven
Copy link
Member Author

Fixes in #631

sverhoeven added a commit that referenced this issue Nov 1, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant