Hi Alexander
If we would envision defining subsets in such a way that
a machine with limited memory per node and un-fancy OS can clearly document what
its MPI offers, maybe it is not a huge addition to complexity. For example if an
MPI implementation could say it offers subsets:
MPI
1.2
MPI-IO
MPI-Intercomm Collectives
and nothing else and the meaning
would be well defined that may not be too bad.
If you are expecting such
a machine to have all or most of MPI-3 available and each user would select only
the parts he wants at job launch time it seems to me the complexity for
implementation and testing will be prohibitive. In particular if you hope
subsets will give better performance because of what they leave out and really
be compact because they leave out most unneeded bytes of code the number of
permutations seem to me to make that a vain hope.
I have been ambivalent
about whether my assertions proposal really has much connection to the subsets
concept mostly because I think to be useful assertions must be fairly simple.
The only assertion I am 100% sure will pay off and be used is
MPI_NO_EAGER_THROTTLE. There are MPI implementations today that act as if the
assertion MPI_NO_EAGER_THROTTLE were present on all applications but that is not
an option for a vendor MPI because if somebody contacts service and says "Your
MPI violates the standard" a vendor like IBM must "fix" it. IBM MPI supports
MPI_CANCEL on MPI_ISEND but at least one MPI does not because it is "too
expensive". In effect they act like every application has the assertion
MPI_NO_SEND_CANCELS. IBM MPI could make use of MPI_NO_REQUEST_MIX if it was
available.
Dick
Dick Treumann - MPI Team/TCEM
IBM Systems
& Technology Group
Dept 0lva / MS P963 -- 2455 South Road --
Poughkeepsie, NY 12601
Tele (845) 433-7846 Fax (845) 433-8363"Supalov, Alexander"
<alexander.supalov@intel.com>
Sent by: mpi-22-bounces@lists.mpi-forum.org 05/08/2008 05:52 PM
|
|
Can somebody help me understand this "smaller memory footprint"
issue that is part f the subsetting goal better. What systems does it affect?
What does "memory footprint" really mean? In the 64 bit address space, virtual
address range is not a problem.
On systems I am most familiar with (AIX
and I have been told Linux too), if you have a library that contains 1000
subroutines and you run a program than only calls 6 then only the pages that are
touched by code for those 6 functions must get placed in real memory. The rest
of the object code stays on disk. Program and library text is demand paged. The
loading is on page boundries, not subroutine boundries.
With a shared
library, if I run a program on a node and touch 6 subroutines and you run a
different program that touches those 6 and 10 more then code for all 16
subroutines may be kept in memory but the rest of the library will stay on disk.
You and I will share the object code for the 6 subroutines we are both
calling.
Someone who wanted to
make a libmpi that has MPI-1sided or MPI-IO well isolated in the library
structure so simple MPI jobs would not force this extra code into memory could
do that today. The user does not need to promise not to call MPI-IO subroutines
for them not to to take real memory. The "subsets" would need to be devised by
the MPI implementor but would be transparent to the MPI user and not dictated by
the standard. The "subsets" the user did not call would remain paged
out.
Perhaps all static data defined by the library will come into real
memory for each process but is there much reduction from being able to somehow
not bring in the static data MPI-IO would require because somebody had promised
not to use it?
Dick
Dick Treumann - MPI
Team/TCEM
IBM Systems & Technology Group
Dept 0lva / MS P963 -- 2455
South Road -- Poughkeepsie, NY 12601
Tele (845) 433-7846 Fax (845)
433-8363
---------------------------------------------------------------------
Intel
GmbH
Dornacher Strasse 1
85622 Feldkirchen/Muenchen Germany
Sitz der
Gesellschaft: Feldkirchen bei Muenchen
Geschaeftsfuehrer: Douglas Lusk, Peter
Gleissner, Hannes Schwaderer
Registergericht: Muenchen HRB 47456
Ust.-IdNr.
VAT Registration No.: DE129385895
Citibank Frankfurt (BLZ 502
109 00) 600119052
This e-mail and any attachments may contain
confidential material for
the sole use of the intended recipient(s). Any
review or distribution
by others is strictly prohibited. If you are not the
intended
recipient, please contact the sender and delete all
copies.
_______________________________________________
mpi-22
mailing list
mpi-22@lists.mpi-forum.org
http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-22
--------------------------------------------------------------------- Intel GmbH Dornacher Strasse 1 85622 Feldkirchen/Muenchen Germany Sitz der Gesellschaft: Feldkirchen bei Muenchen Geschaeftsfuehrer: Douglas Lusk, Peter Gleissner, Hannes Schwaderer Registergericht: Muenchen HRB 47456 Ust.-IdNr. VAT Registration No.: DE129385895 Citibank Frankfurt (BLZ 502 109 00) 600119052 This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.