Distributed self-replicating programs in Python
Go to file
David Wilson c6d5aa29ba ansible: new multiplexer/workers configuration
Following on from 152effc26c9a5918cb7ead7a97fe7fa7f81b6764,

* Pin mux to CPU 0
* Pin top-level CPU 1
* Pin workers sequentially to CPU 2..n

Nets 19.5% improvement on issue_140__thread_pileup.yml when targetting
64 Docker containers on the same 8 core/16 thread machine.

Before (prior to last scheme, no affinity at all):

    2294528.731458      task-clock (msec)         #    6.443 CPUs utilized
        10,429,745      context-switches          #    0.005 M/sec
         2,049,618      cpu-migrations            #    0.893 K/sec
         8,258,952      page-faults               #    0.004 M/sec
 5,532,719,253,824      cycles                    #    2.411 GHz                      (83.35%)
 3,267,471,616,230      instructions              #    0.59  insn per cycle
                                                  #    1.22  stalled cycles per insn  (83.35%)
   662,006,455,943      branches                  #  288.515 M/sec                    (83.33%)
    39,453,895,977      branch-misses             #    5.96% of all branches          (83.37%)

     356.148064576 seconds time elapsed

After:

    2226463.958975      task-clock (msec)         #    7.784 CPUs utilized
         9,831,466      context-switches          #    0.004 M/sec
           180,065      cpu-migrations            #    0.081 K/sec
         5,082,278      page-faults               #    0.002 M/sec
 5,592,548,587,259      cycles                    #    2.512 GHz                      (83.35%)
 3,135,038,855,414      instructions              #    0.56  insn per cycle
                                                  #    1.32  stalled cycles per insn  (83.32%)
   636,397,509,232      branches                  #  285.833 M/sec                    (83.30%)
    39,135,441,790      branch-misses             #    6.15% of all branches          (83.35%)

     286.036681644 seconds time elapsed
2019-02-09 22:04:18 +00:00
.ci ci: fix incorrect partition/rpartition from 8a4caea84f 2019-01-29 17:39:46 +00:00
.github github: tweak issue template. 2019-01-22 06:31:01 +00:00
ansible_mitogen ansible: new multiplexer/workers configuration 2019-02-09 22:04:18 +00:00
docs docs: update Changelog. 2019-02-09 22:04:18 +00:00
examples core: many docstring updates and an example substitute for Channel 2019-01-20 22:54:15 +00:00
mitogen ansible: new multiplexer/workers configuration 2019-02-09 22:04:18 +00:00
scripts misc: rename to scripts. tab completion!! 2019-01-29 06:01:48 +00:00
tests utils: pad out reset_affinity() and integrate with detach_popen() 2019-02-09 22:04:18 +00:00
.gitignore Add venvs/ to gitignore 2018-10-26 10:23:34 +01:00
.lgtm.yml compat: ignore LGTM checks on third party 2018-03-19 21:58:31 +05:45
.travis.yml issue #477: travis.yml typo. 2019-01-27 05:27:05 +00:00
LICENSE Add license text everywhere. 2018-03-19 21:58:28 +05:45
README.md Motivational shame badges back in README 2019-01-20 19:58:27 +00:00
dev_requirements.txt Split dev_requirements.txt up according to test mode. 2018-11-06 17:00:17 +00:00
preamble_size.py add --dump to preamble_size.py. 2018-08-18 16:44:00 +01:00
run_tests Allow independant control of coverage erase and reporting 2019-02-09 19:49:01 +00:00
setup.cfg Ignore another annoying flake8 message. 2018-05-28 02:33:47 +01:00
setup.py Drop 'alpha' trove classifier 2019-01-25 22:02:56 +00:00
tox.ini Aggregate code coverage data across tox all runs 2019-02-09 20:03:29 +00:00

README.md