concurrencykit / ck

Concurrency primitives, safe memory reclamation mechanisms and non-blocking (including lock-free) data structures designed to aid in the research, design and implementation of high performance concurrent systems developed in C99+.
http://concurrencykit.org/
Other
2.38k stars 313 forks source link

make check long runtime #126

Closed kev009 closed 6 years ago

kev009 commented 6 years ago

On my Talos, 176 thread make check takes a very long time (over a day). Setting ./configure --cores=32 makes it about the same speed as my 48 thread amd64, and those are all affined on the same package in ppc64 case (using ppc64le Ubuntu on the Talos). I don't have a larger amd64 to compare but wondering what could cause that massive runtime increase and if we should offer a light and heavy weight regression for large systems.

sbahra commented 6 years ago

That's expected. Make sure you use appropriate thread count and don't over-allocate threads to cores. Since things are busy-waiting, live lock and starvation are real.

kev009 commented 6 years ago

@sbahra it seems like something more than that. For instance, running 48 threads on my 48 thread x86 is fully saturated but completes in a fairly quick time. --cores=32 or whatever on the ppc64 results in similar worst case SMT competition as those tests on 176 threads because of affinities. Is there some kind of non-linear increase you are expecting from the competition? Does anyone have access to a massive x86 system?

kev009 commented 6 years ago

@sbahra ck_brlock is the one that takes forever everything else seems alright