Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: How to get more VPU time.

Author: Manuel J. Petit de Gabriel

Date: 12:37:11 04/09/99

Go up one level in this thread


On April 08, 1999 at 08:12:09, David Blackman wrote:

>On April 07, 1999 at 16:20:29, José de Jesús García Ruvalcaba wrote:
>
>>	I have compiled Faile for my Sparc/Solaris machine, with different compilers
>>and different options. But it uses very little cpu time.
>>	My other engines usually go to 50% cpu (it is a two-processor machine, so they
>>are using a full cpu).
>>	At first Faile used about 22%, compiled with gcc and its standard makefile. The
>>first version compiled wuth cc used even less processor time. I have compiled it
>>again a few times with different options. The best one is consistently using
>>over 30% in the middle-game and has peaked to 40% in the endgame.
>>	Those figures are better than the first ones, but still far from what I
>>consider "good" (that would mean 49% at least).
>>	Any suggestions to increase the cpu usage? BTW, all those figures are without
>>any other process (but the systems ones and xboard) running.
>>	Thanks in advance.
>
>Does the hard disc work very hard while the program is running? Maybe you need
>to set it to use smaller transposition tables.
>
>Do these cpu figures include both user and system cpu time for the program, or
>just user time? If the program is burning lots of system time, maybe you have a
>problem with un-aligned memory accesses being trapped and emulated in the
>kernel.

No unaligned memory access in a sparc box: unaligned accesses are not trapped
into kernel but a SIGBUS is delivered to the program (killing it).

I assume that José is getting statistics for the program using the top utility,
am I right? If so my guess is that Faile is multithreaded: top in solaris
has an annoying behaviour. It only shows the stats for the first LWP in
the proccess.

You can check wether the program is multithreaded by looking at the Makefile
to see if -lthread or -lpthread (or both) are appended to the link command.
Alternatively try:
   ldd faile

if it shows either:

   libpthread.so
   libthread.so

or both, the program is multithreaded.

To check the load share across CPUs you can try vmstat and mpstat.
Vmstat gives summary info (the system as a single). Mpstat gives detailed
info for every CPU (page faults, sys time, user time, interrupts handled
by each CPU and more). Try the command 'mpstat 1' which will put a line
of info for evey CPU every second. Check with 'vmstat 1' the number of
running processes (LWPs in fact).



Hope this helps.

manuel,




This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.