From: Zoltan Menyhart <Zoltan.Menyhart_AT_bull.net@nospam.org>
To: Ulrich Drepper <drepper@redhat.com>, linux-kernel@vger.kernel.org
Subject: Re: NUMA API - wish list
Date: Mon, 03 May 2004 14:48:44 +0200 [thread overview]
Message-ID: <40963FAB.DF49BC3E@nospam.org> (raw)
In-Reply-To: 409201BE.9000909@redhat.com
Can you remember back the "old golden days" when there were no open(),
read(), lseek(), write(), mmap(), etc., and one had to tell explicitly
(job control punched cards) that s/he needed the sectors 123... 145 on
the disk on channel 6 unit 7 ?
Or somewhat more recently, one had to manage by hand the memory and the
overlays.
Now we are going to manage (from applications) the topology, CPU or
memory binding. Moreover, to have the applications resolve resources
management / dependency problems / conflicts among them...
The operating systems should provide for abstractions of the actual
HW platform: file system, virtual memory, shared CPUs, etc.
Why should an application care for the actual physical characteristics ?
Including counting nanoseconds of some HW resource access time ? We'll
end up with some completely un-portable applications.
I think an application should describe what it needs for its optimal run,
e.g.:
- I need 3 * N (where N = 1, 2, 3,...) CPUs "very close"
together and 2.5 Gbytes / N real memory (working set size) for
each CPUs "very very close to" their respective CPUs
- Should not it fit into a "domain", the CPUs have to be
"very very close" to each other 3 by 3
- If no resources for even N == 1, do not start it at all
- Use "gang scheduling" for them, otherwise I'll busy wait :-)
- In addition, I need M CPUs + X Gbytes of memory
"where my previous group is" and I need a disk I/O path of
the capacity of 200 Mbytes / sec "more or less close to" my
memory
- I need "some more" CPUs "somewhere" with some 100 Mbytes of
memory "preferably close to" the CPUs and 10 Mbytes / sec
TCP/IP bandwidth "close to" my memory
- I need 70 % of the CPU time on my CPUs (the scheduler can
select others for the 30 % of the time left)
- O.K. should my request be too much, here is my minimal,
"degraded" configuration:...
The OS reserves the resources for the application (exec time assignment)
and reports the applications what of its needs have been granted.
When the application allocates some memory, it'll say: you know, this
is for the memory pool I've described in the 5th criteria.
When it creates threads, it'll say they are in the 2nd group of threads
mentioned at the 1st line
The work load manager / load balancer can negotiate other resource
assignment at any time with the application.
The work load manager / load balancer is free to move a collection of
resources from some NUMA domains to others, provided the application's
requirements are still met. (No hard binding.)
Billing is done accordingly :-)
As you do not need to know anything about SCSI LUNs, sector IDs, phy-
sical memory maps or the other applications when you compile your kernel,
why should an application care for HW NUMA details ?
Thanks,
Zoltán Menyhárt
next prev parent reply other threads:[~2004-05-03 12:49 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-04-30 7:35 NUMA API Ulrich Drepper
2004-04-30 8:30 ` William Lee Irwin III
2004-05-03 18:37 ` Ulrich Drepper
2004-05-04 10:01 ` Christoph Hellwig
2004-04-30 8:49 ` Paul Jackson
2004-04-30 9:50 ` William Lee Irwin III
2004-05-03 12:48 ` Zoltan Menyhart [this message]
2004-05-03 17:57 ` NUMA API - wish list Paul Jackson
[not found] <1QAMU-4gf-15@gated-at.bofh.it>
[not found] ` <1RLdk-29R-11@gated-at.bofh.it>
2004-05-03 13:17 ` Andi Kleen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=40963FAB.DF49BC3E@nospam.org \
--to=zoltan.menyhart_at_bull.net@nospam.org \
--cc=Zoltan.Menyhart@bull.net \
--cc=drepper@redhat.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox