HI,

Thanks everybody but I am really unable to understand your reply. Where is
answer of my questions :(. What should I do?



Best regards,

Mudasar Yasin
Associate Network Administrator
Network Operations Centre
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Jim Klimov
Sent: Wednesday, February 04, 2009 2:27 PM
To: SunRay-Users mailing list
Subject: Re[2]: [SunRay-Users] High CPU

Hello Dave,

Monday, February 2, 2009, 10:43:57 PM, you wrote:

DM> On Feb 2, 2009, at 2:38 PM, Kent Peacock wrote:
>>>   Sorry for jumping in, but I a curious about this.  Is the  
>>> compression being done in a separate thread on the server side?
>>
>> No. The X server is not multithreaded.

DM>    Ok, thanks!  (I can certainly see how that'd be a BIG pain to do)

I got curious about this thesis - why is it a big pain?

We've recently been doing tests concerning parallelized
compression (of files, via pbzip2 and pigz) and these
tasks fan out to multiple CPUs to strands pretty well.
In our case we had a 6core T1 (24 strands) perform over
13 times better than its single strand. But this success
relied on there being no floating-point math.

I believe that compression of screenbuffer can be chopped
to blocks which are compressed independently, JPEG-style
(seeing the artefacts sometimes, it is obvious that this
chopping occurs anyway). These blocks can be compressed
separately by different threads.

>From what I learned in CS, there's this neat OpenMP stuff
which allows programmers to "potentially-parallelize"
certain blocks of their code (like big cycles) with C/C++
pragmas and some well-written code. This is a relatively
unintrusive method to make old linear code work in parallel
in parts where that's needed with no or minor (and already
patterned) rewrites of the logic.

So a single function call from "linear" Xsrv which goes
like CompressImage(buf) would return faster on multi-CPU
machines. No major changes to other code. Did I mention
that this function could also hide in a shared-object
library compiled with optimizations for certain CPUs'
instruction sets which are often aimed at multimedia?

OpenMP works in recent gcc-4.3.x and AFAIK in Sun Studio
compilers as well. I've seen that gcc's libgomp can be
linked in statically so it appears to ldd as only a
standard libpthreads-dependant application.

Am I wrong? How? :)

-- 
Best regards,
 Jim Klimov                            mailto:[email protected]


_______________________________________________
SunRay-Users mailing list
[email protected]
http://www.filibeto.org/mailman/listinfo/sunray-users

_______________________________________________
SunRay-Users mailing list
[email protected]
http://www.filibeto.org/mailman/listinfo/sunray-users

Reply via email to