CPUSET Proposal

From: Simon Derr <Simon.Derr_at_bull.net>
Date: 2003-09-25 01:59:01

We have developped a new feature in the Linux kernel, controlling CPU
placements, which are useful on large SMP machines, especially NUMA ones.
We call it CPUSETS, and we would highly appreciate to know about anyone
who would be interested in such a feature. This has been somewhat inspired
by the pset or cpumemset patches existing for Linux 2.4.

CPUSETs are lightweight objects in the linux kernel that enable users to
partition their multiprocessor machine by creating execution areas. A
virtualization layer has been added so it becomes possible to split a
machine in terms of CPUs.

Furthermore, HPC applications often need to bind their processes to a
specific CPU, and can achieve this by calling sched_setaffinity() in the
recent Linux kernels. But running several HPC applications on a large
system will result in several processes running on the same processor.
This problem is addressed by the CPUSET mechanism.

CPUSETS allow to:
1/ create sets of CPUs on the system, and bind applications to them

2/ translate the masks of CPUs given to sched_setaffinity() so they stay
   inside the set of CPUs. With this mechanism, processors are virtualized,
   for the use of sched_setaffinity() and /proc information. Thus, any former
   application using this syscall to bind processes to processors will
   work with virtual CPUs without any change.

3/ provide a way to create sets of cpus *inside* a set of cpus : hence a
   system administrator can partition a system among users, and users can
   partition their partition among their applications.

4/ Change on the fly the execution area of a whole set of processes (to
   give more resources to a critical application, for example).

5/ In the future, probably associate a memory allocation policy (such as
local node, or round robin) to a set of cpus.

These features have been implemented as a kernel patch for Linux 2.6 and a
suite of userland tools.

You can find the associated manpages and a slightly more detailed
explanation here: http://www.bullopensource.org/cpuset/

Any feedback, comment or opinion is welcome:


	Simon and Sylvain.

To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Received on Wed Sep 24 12:01:09 2003

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:17 EST