Mailing List Archive


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[tlug] dedicating program to a particular core through the OS



Gernot Hassenpflug writes:

 > 1) is the above useful (I am under the impression that multi-core is
 > another way to say "SMP").

No and not quite.  If you are a parallel processing hacker doing
extremely compute-intensive stuff with some asymmetry in the subtasks,
then, yes, assigning processors can be useful in theory.  In practice,
some schedulers are broken and you can improve system performance by
hand tuning---but with Linux you may as well upgrade/downgrade the
kernel to get a different scheduler (or simply choose a different one
in the configuration or by loading the appropriate module).

As for SMP, that stands for *symmetric* multiprocessor architecture.
In fact many multicore systems are also multi-CPU systems (eg, the
system I'm typing this one has a Mac with a core Duo, ie, one CPU, two
cores as keyboard, while the actual processing is done on a Tyan
system with 2 CPUs x 2 cores each).

Now, in all multicore CPU architectures I know anything about (ie, the
Opteron ;-), the multiple cores are identical, share various busses
and bridges, and thus have uniform access to memory and other
resources.  They are *symmetric*.  But in the Tyan architecture, each
CPU has its own bank of memory but can access the other bank, and thus
cores in different CPUs have nonuniform access to the other's memory
bank (aka NonUniform Memory Access -- NUMA -- architecture) -- they
are asymmetric.

In practice, this is a difference without a distinction; the NUMA
architectures are so common, and simple (the *a*symmetry is actually
*anti*symmetry) that an SMP scheduler must handle them.

Finally, it's possible for the cores to be non-identical.  A common
example is the FPU (which we no longer even think of as a separate
core).  You could imagine pairing a CISC core with a RISC core (but
that would be dumb ;-).  However, a lot of discussion (about 1-2 years
ago, I only follow it when it hits CACM and not always then) has been
about asymmetric cores, with a standard CPU as one core, and an array
processor (typically a slightly generalized graphics array) as the
other core or cores.

 > 2) if so, can this be done under linux as well? And if so, would it be
 > useful or would it be better to let linux decide "load-sharing" by
 > itself---I understand that tuning an SMP system is a full-time job!

Yes, no, and yes.  I have nothing to add to Edward's reply, so see his
reply for details.


Home | Main Index | Thread Index

Home Page Mailing List Linux and Japan TLUG Members Links