If you want your soft to behave differently, you have to parallelise it
somehow to share its load on both cpus. That means you'll have to
rewrite your code.
> If you want your soft to behave differently, you have to parallelise it
> somehow to share its load on both cpus. That means you'll have to
> rewrite your code.
>>If you want your soft to behave differently, you have to parallelise it
>>somehow to share its load on both cpus. That means you'll have to
>>rewrite your code.
> Is there a way yet of running a command on a specific CPU in Linux? (as
> 'runon' did on SGI hardware). I believe that a while back it wasn't there
> but was being thought about, not sure if it's availabe yet though.
>>>Right, it uses 1 cpu. That's the way smp does it.
>>>If you want your soft to behave differently, you have to parallelise it
>>>somehow to share its load on both cpus. That means you'll have to
>>>rewrite your code.
>> Is there a way yet of running a command on a specific CPU in Linux? (as
>> 'runon' did on SGI hardware). I believe that a while back it wasn't there
>> but was being thought about, not sure if it's availabe yet though.
>I don't understand your question. SMP means symmetric, i.e. all cpus are
>equal, and the os loads automatically the processor when your program
>starts.
>So it doesn't matter on "which cpu" your software runs.
>You are referring maybe to a different hardware than smp. I'm not sure
>it is considered anymore nowadays.
Where CPU affinity matters are tasks where the CPU processes such data set
that conveniently fits into the CPU cache. As long as the cache is not
clobbered by another application, and especially as long as the process
is not shifted to another CPU, the process will get the full benefit of
the cache. If, however, the process is continuously bounced between different
CPUs, the system must all the time store and load the working set between
the CPUs and the main memory (unless there is some faster transfer method
directly between CPU caches, but I think in Intel hardware there isn't).
I've seen this happen in practice on HP PA-RISC hardware (though I forget
which application was the culprit); we had recently upgraded from
a single-processor machine to a dual-processor system (with higher CPU
clock rate than with the previous single-CPU), and the application slowed
down. While investigating, I paid attention to the huge number of CPU
switches accumulated for this application, and as an experiment bound
it to just one CPU, and the processing speeded up pretty much as could
be expected from the clock rate differences. This application wasn't
multi-threaded, so the main process couldn't use both the CPUs, but
at least now we had one CPU for the main process alone, and another for
the not so CPU-hungry auxiliary processes; all in all a significant
speedup. Later on, HP released a kernel patch (so the OS here was HP-UX)
which changed the CPU scheduling so that processes had by default
a tighter binding to the previous CPU on whih they'd been running.
The problem apparently was that the OS was trying to make the
overall load equal for the two CPUs, and as we only had load for perhaps
1.2 CPUs, the OS ended up switching the executing CPU for the "hungry"
process on each context switch.
--
Wolf a.k.a. Juha Laiho Espoo, Finland
PS(+) PE Y+ PGP(+) t- 5 !X R !tv b+ !DI D G e+ h---- r+++ y++++
"...cancel my subscription to the resurrection!" (Jim Morrison)
The 'culprit' in Juha's post was the software that he was working with.Quote:> -- what is a culprit ? would it do in my case ?
No. PVM won't automatically parallellise your software. You need toQuote:> --Actually my software is already paralellised with PVM, can I select
> which CPU to run my process on or is it just for remote host stations?
>> Hi everybody,
>> I want to run a job on both processors of a bi-processor xeon
>> (2x1.7Go).
>> when I simply run the job like this:
>> prompt>./myjob
>> it runs only on one processor of 1.7Ghz. This takes a long time untill
>> the job is done!
>> Is there any simple bash command to do so ? or do I need an additional
>> parallelisation software like PVM, OpenMP or MPI ?
> Right, it uses 1 cpu. That's the way smp does it.
> If you want your soft to behave differently, you have to parallelise it
> somehow to share its load on both cpus. That means you'll have to
> rewrite your code.
--
Jose Maria Lopez Hernandez
Director Tecnico de bgSEC
bgSEC Seguridad y Consultoria de Sistemas Informaticos
http://www.bgsec.com
ESPA?A
The only people for me are the mad ones -- the ones who are mad to live,
mad to talk, mad to be saved, desirous of everything at the same time,
the ones who never yawn or say a commonplace thing, but burn, burn, burn
like fabulous yellow Roman candles.
-- Jack Kerouac, "On the Road"
1. run a job on both processors of a bi-processor xeon
Hi everybody,
I want to run a job on both processors of a bi-processor xeon
(2x1.7Go).
when I simply run the job like this:
prompt>./myjob
it runs only on one processor of 1.7Ghz. This takes a long time untill
the job is done!
Is there any simple bash command to do so ? or do I need an additional
parallelisation software like PVM, OpenMP or MPI ?
thanx
2. Multipath routing weird problem
3. Maximum priority on a 44P 270 bi-processor
4. how?
5. problem on openserver 5.05 wilth telnet access en bi-processor server
6. SNMP on Wireless Access Point Linksys WRT54G
7. Kernel Panic on a bi-processor
9. Q:Is there a linux on P-Pro 200 Bi-processor Box?
10. Help required to run application on a single processor on a multi processor machine
11. restricting a process/job to run on a specific processor..
12. Q: 1 processor vs. 2 processors