[log in to unmask] said:
> No production Windows or linux has dealt with the possibilities of
> task scheduling on HyperThreaded MPI nodes, or using all the logical
> processors without excessive message passing overhead.
As far as I know, Linux schedules on hyper-threaded Xeon processors in
the later 2.4 kernels. I am not definitely sure from which exact version
it was introduced. In my experience hyper-threading is of limited gain
for most traditional Fortran codes as they typically target the
scientific computing domain with intense utilization of floating point
computations, caches and the memory hierarchy. The limitation of sharing
the same CPU package reduces e.g. the available memory bandwidth and
other important performance parameters when the two logical processors
are both used for the application.
On the other hand, the second logical processor can be ready at hand for
taking care of the asynchronous part of handling the MPI communication.
I would expect, although I have no personal experience, that using N
physical hyper-threaded CPUs would yield a better performance compared
to using N non-hyper-threaded CPUs, in particular when N approaches the
number of available CPUs. Trying to use all logical processors for
numeric intensive applications will likely not be efficient unless the
computations are of such a structure that they are not affected by the
sharing of the common caches.
/Nils
|