Commit 1d4fdb93 authored by Julien Jerphanion's avatar Julien Jerphanion

Revert "Add queue to workers randomly"

This reverts commit 39363f1c.

Reverting to experiment with the original runtime again,
to see if removing the logging helps.
parent 08b9c06d
...@@ -104,6 +104,7 @@ cdef cypclass Scheduler: ...@@ -104,6 +104,7 @@ cdef cypclass Scheduler:
pthread_barrier_t barrier pthread_barrier_t barrier
sem_t num_free_queues sem_t num_free_queues
atomic[int] num_pending_queues atomic[int] num_pending_queues
int next_worker
int num_workers int num_workers
sem_t done sem_t done
volatile bint is_done volatile bint is_done
...@@ -112,6 +113,7 @@ cdef cypclass Scheduler: ...@@ -112,6 +113,7 @@ cdef cypclass Scheduler:
self = <lock Scheduler> consume alloc() self = <lock Scheduler> consume alloc()
if num_workers == 0: num_workers = sysconf(_SC_NPROCESSORS_ONLN) if num_workers == 0: num_workers = sysconf(_SC_NPROCESSORS_ONLN)
self.num_workers = num_workers self.num_workers = num_workers
self.next_worker = 0
sem_init(&self.num_free_queues, 0, 0) sem_init(&self.num_free_queues, 0, 0)
sem_init(&self.done, 0, 0) sem_init(&self.done, 0, 0)
self.num_pending_queues.store(0) self.num_pending_queues.store(0)
...@@ -139,8 +141,9 @@ cdef cypclass Scheduler: ...@@ -139,8 +141,9 @@ cdef cypclass Scheduler:
sem_destroy(&self.done) sem_destroy(&self.done)
void post_queue(self, lock SequentialMailBox queue): void post_queue(self, lock SequentialMailBox queue):
# Add a queue to workers randomly # Add a queue to workers in round robin
worker = self.workers[<int> rand() % self.num_workers] worker = self.workers[<int> self.next_worker]
self.next_worker = (self.next_worker + 1) % self.num_workers
with wlocked worker: with wlocked worker:
queue.has_worker = True queue.has_worker = True
worker.queues.push_back(queue) worker.queues.push_back(queue)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment