All of lore.kernel.org
 help / color / mirror / Atom feed
* [Xenomai-help] Thread scheduling on mult-processor systems
@ 2008-06-16  1:33 Rob Gubler
  2008-06-16  9:40 ` Philippe Gerum
  0 siblings, 1 reply; 2+ messages in thread
From: Rob Gubler @ 2008-06-16  1:33 UTC (permalink / raw)
  To: xenomai

[-- Attachment #1: Type: text/plain, Size: 1305 bytes --]

Hello,

I am trying execute 2 threads on 2 separate processors.  To do this I
created 2 threads, each using the FIFO scheduler where both threads have the
same priority defined by sched_get_priority_max(SCHED_FIFO).  Each thread is
initialized to run on a specific CPU with a call to
pthread_setaffinity_np(...); Thread 1 on CPU 0, and Thread 2 on CPU 1.  I
verified each thread was assigned correctly by calling
pthread_getaffinity_np(...), and also by looking at /proc/xenomai/sched,
while the program was running.

For the purposes of testing, both threads do the same thing:

        for(unsigned long i = 0; i != 9000000; i++)
        {
                if(!(i % 50000))
                {
                        std::cout << "tick" << std::endl;
                }

                sched_yield();
        }

        std::cout << "elapsed time: " << [elapsed time];

My hope was that when these threads would execute simultaneously, they would
truly run in parallel on their respective processor.  But, what I am
noticing is the elapsed time when both threads run is 12 seconds, while when
only one thread runs is 6 seconds.  So, I haven't seem to have bought any
performance improvements by assigning  the thread to run on a specific
processor.

 Where have I gone wrong in my line of thinking?

-Rob

[-- Attachment #2: Type: text/html, Size: 2027 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2008-06-16  9:40 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-06-16  1:33 [Xenomai-help] Thread scheduling on mult-processor systems Rob Gubler
2008-06-16  9:40 ` Philippe Gerum

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.