You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@quickstep.apache.org by hbdeshmukh <gi...@git.apache.org> on 2016/11/04 18:24:30 UTC

[GitHub] incubator-quickstep pull request #126: QUICKSTEP-41 Automatically pin worker...

GitHub user hbdeshmukh opened a pull request:

    https://github.com/apache/incubator-quickstep/pull/126

    QUICKSTEP-41 Automatically pin workers to CPU cores

    - Automatically pin worker threads to CPU cores.
    - Use auto pinning when either there are no affinities provided, or the provided affinities are incorrect.
    - Try to balance CPU cores across multiple sockets, when maximum parallelism is not used.
    
    Shown below is a demonstration of this PR in action. 
    ```
    $ numactl --hardware
    available: 2 nodes (0-1)
    node 0 cpus: 0 1 2 3 4 5 12 13 14 15 16 17
    node 1 cpus: 6 7 8 9 10 11 18 19 20 21 22 23
    ```
    
    The machine has 2 NUMA sockets and 24 CPUs, with 12 CPUS on each NUMA socket. Next we run Quickstep without any hints on number of workers and their affinities. 
    
    ```
    $ GLOG_v=1 GLOG_logtostderr=1 ./quickstep_cli_shell
    Quickstep expects at least one worker thread, switching to the default number of worker threads
    Starting Quickstep with 24 worker thread(s) and a 21.97 GB buffer pool
    Empty worker affinities provided, switching to default worker affinities
    Affinities: 0, 6, 1, 7, 2, 8, 3, 9, 4, 10, 5, 11, 12, 18, 13, 19, 14, 20, 15, 21, 16, 22, 17, 23
    ```
    
    ```
    $ GLOG_v=1 GLOG_logtostderr=1 ./quickstep_cli_shell -num_workers=24
    Starting Quickstep with 24 worker thread(s) and a 21.97 GB buffer pool
    Empty worker affinities provided, switching to default worker affinities
    Affinities: 0, 6, 1, 7, 2, 8, 3, 9, 4, 10, 5, 11, 12, 18, 13, 19, 14, 20, 15, 21, 16, 22, 17, 23
    
    $ GLOG_v=1 GLOG_logtostderr=1 ./quickstep_cli_shell -num_workers=2
    Starting Quickstep with 2 worker thread(s) and a 21.97 GB buffer pool
    Empty worker affinities provided, switching to default worker affinities
    Affinities: 0, 6
    
    $ GLOG_v=1 GLOG_logtostderr=1 ./quickstep_cli_shell -num_workers=5
    Starting Quickstep with 5 worker thread(s) and a 21.97 GB buffer pool
    Empty worker affinities provided, switching to default worker affinities
    Affinities: 0, 6, 1, 7, 2
    ```
    
    Right now we don't over-subscribe worker threads to CPU cores. If there are more workers than the affinities (not recommended anyway), extra workers are not affinitized to any CPU core. 
    
    ```
    $ GLOG_v=1 GLOG_logtostderr=1 ./quickstep_cli_shell -num_workers=25
    Starting Quickstep with 25 worker thread(s) and a 21.97 GB buffer pool
    Empty worker affinities provided, switching to default worker affinities
    --num_workers is 25, but only specified 24 CPU affinities with --worker_affinities. 1 workers will be unaffinitized.
    Affinities: 0, 6, 1, 7, 2, 8, 3, 9, 4, 10, 5, 11, 12, 18, 13, 19, 14, 20, 15, 21, 16, 22, 17, 23, -1
    ```

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/apache/incubator-quickstep auto-worker-pinning

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/incubator-quickstep/pull/126.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #126
    
----
commit 248cec27341fa8f19658d0705c1dca3fec0ff550
Author: Harshad Deshmukh <hb...@apache.org>
Date:   2016-11-04T04:34:37Z

    Auto pin workers to CPU cores
    
    - Automatically pin worker threads to CPU cores.
    - Use auto pinning when either there are no affinities provided, or the
      provided affinities are incorrect.
    - Try to balance CPU cores across multiple sockets, when maximum
      paralellism is not used.

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] incubator-quickstep issue #126: QUICKSTEP-41 Automatically pin workers to CP...

Posted by hakanmemisoglu <gi...@git.apache.org>.
Github user hakanmemisoglu commented on the issue:

    https://github.com/apache/incubator-quickstep/pull/126
  
    It is good to me. Let's merge it after Travis turns to green.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] incubator-quickstep issue #126: QUICKSTEP-41 Automatically pin workers to CP...

Posted by hakanmemisoglu <gi...@git.apache.org>.
Github user hakanmemisoglu commented on the issue:

    https://github.com/apache/incubator-quickstep/pull/126
  
    It is merged.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] incubator-quickstep issue #126: QUICKSTEP-41 Automatically pin workers to CP...

Posted by hbdeshmukh <gi...@git.apache.org>.
Github user hbdeshmukh commented on the issue:

    https://github.com/apache/incubator-quickstep/pull/126
  
    Assigned to @hakanmemisoglu 


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] incubator-quickstep pull request #126: QUICKSTEP-41 Automatically pin worker...

Posted by asfgit <gi...@git.apache.org>.
Github user asfgit closed the pull request at:

    https://github.com/apache/incubator-quickstep/pull/126


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---