1
1
Граф коммитов

108 Коммитов

Автор SHA1 Сообщение Дата
Ralph Castain
40a2bfa238 WARNING: Work on the temp branch being merged here encountered problems with bugs in subversion. Considerable effort has gone into validating the branch. However, not all conditions can be checked, so users are cautioned that it may be advisable to not update from the trunk for a few days to allow MTT to identify platform-specific issues.
This merges the branch containing the revamped build system based around converting autogen from a bash script to a Perl program. Jeff has provided emails explaining the features contained in the change.

Please note that configure requirements on components HAVE CHANGED. For example. a configure.params file is no longer required in each component directory. See Jeff's emails for an explanation.

This commit was SVN r23764.
2010-09-17 23:04:06 +00:00
Christopher Yeoh
8a3d5d4e1c Adds missing sys/stat.h include needed for more recent versions of glibc
This commit was SVN r23440.
2010-07-20 06:31:16 +00:00
Jeff Squyres
b43288f01e Add missing header file
This commit was SVN r23154.
2010-05-17 21:31:24 +00:00
Jeff Squyres
c7c3de87f5 Add ummunotify support to Open MPI. See
http://marc.info/?l=linux-mm-commits&m=127352503417787&w=2 for more
details.

 * Remove the ptmalloc memory component; replace it with a new "linux"
   memory component.
 * The linux memory component will conditionally compile in support
   for ummunotify.  At run-time, if it has ummunotify support and
   finds run-time support for ummunotify (i.e., /dev/ummunotify), it
   uses it.  If not, it tries to use ptmalloc via the glibc memory
   hooks. 
 * Add some more API functions to the memory framework to accomodate
   the ummunotify model (i.e., poll to see if memory has "changed").
 * Add appropriate calls in the rcache to the new memory APIs to see
   if memory has changed, and to react accordingly.
 * Add a few comments in the openib BTL to indicate why we don't need
   to notify the OPAL memory framework about specific instances of
   registered memory.
 * Add dummy API calls in the solaris malloc component (since it
   doesn't have polling/"did memory change" support).

This commit was SVN r23113.
2010-05-11 21:43:19 +00:00
Jeff Squyres
59126b1e0b Update copyrights.
This commit was SVN r22867.
2010-03-23 12:03:20 +00:00
Jeff Squyres
136f926fd1 Really fixes trac:2104. There is a lengthy discussion about this patch on
#2322.

The short version is that this patch consolidates two pieces of code
that call the back-end munmap and ensures that (if dlsym is used) the
corresponding dlsym is only invoked once and that the variable holding
the result is volatile.

This commit was SVN r22863.

The following Trac tickets were found above:
  Ticket 2104 --> https://svn.open-mpi.org/trac/ompi/ticket/2104
2010-03-23 01:04:25 +00:00
Christopher Yeoh
bccafbb5df Fixes the problem where the rcache and core memory allocation can deadlock itself
This commit fixes trac:2104. Request a cmr:v1.4

This commit was SVN r22675.

The following Trac tickets were found above:
  Ticket 2104 --> https://svn.open-mpi.org/trac/ompi/ticket/2104
2010-02-22 05:12:10 +00:00
Jeff Squyres
d317ce0367 Fix CID 1381: don't bother checking for (NULL == p); it's overkill.
posix_memalign() will either return 0 or not, indicating success.  And
if posix_memalign() fails, it's not always going to be due to
out-of-memory -- just return ERR_IN_ERRNO.

This commit was SVN r22070.
2009-10-07 20:01:50 +00:00
Jeff Squyres
5c1af9c2ba Fix CID 1355: ensure that mca_base_param_reg_int() actually
succeeded.

This commit was SVN r22068.
2009-10-07 19:43:35 +00:00
Jeff Squyres
3b4f695009 MAP_FAILED is more POSIX-ly correct than ((void*)-1).
This commit was SVN r22063.
2009-10-07 14:20:18 +00:00
Jeff Squyres
d7db5f4c32 mmap(2) says that you must call mmap() with either MAP_SHARED or
MAP_PRIVATE.  We didn't catch this because we checked for a NULL
return, not a -1 return.  Doh!  Thanks again to Julian Seward for
continuing to track this down.

This commit was SVN r22062.
2009-10-07 12:39:01 +00:00
Jeff Squyres
932b43be04 Check to ensure that the mmap succeeded. Thanks to Julia Seward for
pointing out the problem and suggesting the fix.

This commit was SVN r22055.
2009-10-06 17:44:14 +00:00
Jeff Squyres
c8c3132605 Also check for posix_memalign.
This commit was SVN r22045.
2009-10-01 23:51:48 +00:00
Jeff Squyres
1886d5a004 Remove the libopenmpi_malloc library; it is only necessary for
backwards compatibility in the v1.3 series.

This commit was SVN r22013.
2009-09-25 17:09:54 +00:00
Rainer Keller
8e1b23779f - Replace combinations of
#if defined (c_plusplus)
          defined (__cplusplus)
   followed by
      extern "C" {
   and the closing counterpart by BEGIN_C_DECLS and END_C_DECLS.

   Notable exceptions are:
    - opal/include/opal_config_bottom.h:
      This is our generated code, that itself defines BEGIN_C_DECL and
      END_C_DECL
    - ompi/mpi/cxx/mpicxx.h:
      Here we do not include opal_config_bottom.h:                                 
    - Belongs to external code:                                                    
      opal/mca/backtrace/darwin/MoreBacktrace/MoreDebugging/MoreBacktrace.c        
      opal/mca/backtrace/darwin/MoreBacktrace/MoreDebugging/MoreBacktrace.h        
    - opal/include/opal/prefetch.h:
      Has C++ specific macros that are protected:                                  

    - Had #if ... } #endif  _and_ END_C_DECLS (aka end up with 2x
      END_C_DECLS)
      ompi/mca/btl/openib/btl_openib.h
    - opal/event/event.h has #ifdef __cplusplus as BEGIN_C_DECLS...
    - opal/win32/ompi_process.h: had extern "C"\n {...
      opal/win32/ompi_process.h: dito
    - ompi/mca/btl/pcie/btl_pcie_lex.l: needed to add *_C_DECLS
      ompi/mpi/f90/test/align_c.c: dito
    - ompi/debuggers/msgq_interface.h: used #ifdef __cplusplus
    - ompi/mpi/f90/xml/common-C.xsl: Amend

   Tested on linux using --with-openib and --with-mx

   The following do not contain either opal_config.h, orte_config.h or
   ompi_config.h
   (but possibly other header files, that include one of the above):
      ompi/mca/bml/r2/bml_r2_ft.h
      ompi/mca/btl/gm/btl_gm_endpoint.h
      ompi/mca/btl/gm/btl_gm_proc.h
      ompi/mca/btl/mx/btl_mx_endpoint.h
      ompi/mca/btl/ofud/btl_ofud_endpoint.h
      ompi/mca/btl/ofud/btl_ofud_frag.h
      ompi/mca/btl/ofud/btl_ofud_proc.h
      ompi/mca/btl/openib/btl_openib_mca.h
      ompi/mca/btl/portals/btl_portals_endpoint.h
      ompi/mca/btl/portals/btl_portals_frag.h
      ompi/mca/btl/sctp/btl_sctp_endpoint.h
      ompi/mca/btl/sctp/btl_sctp_proc.h
      ompi/mca/btl/tcp/btl_tcp_endpoint.h
      ompi/mca/btl/tcp/btl_tcp_ft.h
      ompi/mca/btl/tcp/btl_tcp_proc.h
      ompi/mca/btl/template/btl_template_endpoint.h
      ompi/mca/btl/template/btl_template_proc.h
      ompi/mca/btl/udapl/btl_udapl_eager_rdma.h
      ompi/mca/btl/udapl/btl_udapl_endpoint.h
      ompi/mca/btl/udapl/btl_udapl_mca.h
      ompi/mca/btl/udapl/btl_udapl_proc.h
      ompi/mca/mtl/mx/mtl_mx_endpoint.h
      ompi/mca/mtl/mx/mtl_mx.h
      ompi/mca/mtl/psm/mtl_psm_endpoint.h
      ompi/mca/mtl/psm/mtl_psm.h
      ompi/mca/pml/cm/pml_cm_component.h
      ompi/mca/pml/csum/pml_csum_comm.h
      ompi/mca/pml/dr/pml_dr_comm.h
      ompi/mca/pml/dr/pml_dr_component.h
      ompi/mca/pml/dr/pml_dr_endpoint.h
      ompi/mca/pml/dr/pml_dr_recvfrag.h
      ompi/mca/pml/example/pml_example.h
      ompi/mca/pml/ob1/pml_ob1_comm.h
      ompi/mca/pml/ob1/pml_ob1_component.h
      ompi/mca/pml/ob1/pml_ob1_endpoint.h
      ompi/mca/pml/ob1/pml_ob1_rdmafrag.h
      ompi/mca/pml/ob1/pml_ob1_recvfrag.h
      ompi/mca/pml/v/pml_v_output.h
      opal/include/opal/prefetch.h
      opal/mca/timer/aix/timer_aix.h
      opal/util/qsort.h
      test/support/components.h

This commit was SVN r21855.

The following SVN revision numbers were found above:
  r2 --> open-mpi/ompi@58fdc18855
2009-08-20 11:42:18 +00:00
Jeff Squyres
9455eb804f Oops -- fix the type.
This commit was SVN r21750.
2009-08-03 16:26:15 +00:00
Jeff Squyres
7b1f65095b Update to match the current code and be a bit more explicit (since
others are currently looking at this code).

This commit was SVN r21746.
2009-07-30 12:45:59 +00:00
Jeff Squyres
cb653bc4e8 Change the test memalign() call to use an alignment of 4 so that some
debuggers stop complaining. :-)

This commit was SVN r21744.
2009-07-29 20:33:38 +00:00
Jeff Squyres
69139e4171 Print a warning if someone tries to set opal_ptmalloc2_disable via an
MCA parameter file.

This commit was SVN r21743.
2009-07-29 20:05:56 +00:00
Jeff Squyres
246caafe06 Correct the logic of the check for the env variable
OMPI_MCA_memory_ptmalloc2_disable and also add an explicit check for
FAKEROOTKEY (see http://bugs.debian.org/531522).

This commit was SVN r21489.
2009-06-20 11:22:06 +00:00
Jeff Squyres
f42727707b Per http://bugs.debian.org/531522, add an MCA param/environment
variable to allow the disabling of the ptmalloc2 component at init
time.

This commit was SVN r21479.
2009-06-19 10:50:23 +00:00
Jeff Squyres
6777f01380 Also look for /dev/ipath
This commit was SVN r21410.
2009-06-11 00:35:21 +00:00
Greg Koenig
60485ff95f This is a very large change to rename several #define values from
OMPI_* to OPAL_*.  This allows opal layer to be used more independent
from the whole of ompi.

NOTE: 9 "svn mv" operations immediately follow this commit.

This commit was SVN r21180.
2009-05-06 20:11:28 +00:00
Rainer Keller
221fb9dbca ... Delayed due to notifier commits earlier this day ...
- Delete unnecessary header files using
   contrib/check_unnecessary_headers.sh after applying
   patches, that include headers, being "lost" due to
   inclusion in one of the now deleted headers...

   In total 817 files are touched.
   In ompi/mpi/c/ header files are moved up into the actual c-file,
   where necessary (these are the only additional #include),
   otherwise it is only deletions of #include (apart from the above
   additions required due to notifier...)

 - To get different MCAs (OpenIB, TM, ALPS), an earlier version was
   successfully compiled (yesterday) on:
   Linux locally using intel-11, gcc-4.3.2 and gcc-SVN + warnings enabled
   Smoky cluster (x86-64 running Linux) using PGI-8.0.2 + warnings enabled
   Lens cluster (x86-64 running Linux) using Pathscale-3.2 + warnings enabled

This commit was SVN r21096.
2009-04-29 01:32:14 +00:00
Brian Barrett
2ca0b7fe44 remove some checks which are not needed after the recent ptmalloc2 changes
This commit was SVN r21042.
2009-04-19 18:17:05 +00:00
Jeff Squyres
e90ecb6020 Fix a compiler warning. Put in a good comment explaining why it is
declared the way it is.  Sigh.

This commit was SVN r21040.
2009-04-17 21:59:31 +00:00
Jeff Squyres
35fc9fedd2 MTT is your friend: Cisco tests --enable-static --disable-shared, but
we had already tested this scenario manually to know that it seemed to
be working.  What we ''didn't'' test was --enable-static
--disable-shared --disable-dlopen -- but my MTT '''did.'''  Yay!

This commit fixes that scenario.  Essentially we need to call a dummy
function in hooks.c to ensure that the linker pulls in all those
symbols into the final executable (and therefore pulls in the
malloc_initialize_hook, etc.).  Thanks for the heads-up from Brian in
fixing this one!

This commit was SVN r21022.
2009-04-15 19:09:10 +00:00
Jeff Squyres
a13dfb2140 Add in a proper test for munmap.
This commit was SVN r20936.
2009-04-04 00:43:17 +00:00
Jeff Squyres
52a0e5fe69 Add some checks for more network driver types.
This commit was SVN r20934.
2009-04-02 19:17:21 +00:00
Jeff Squyres
3bf8c7025a Remove compiler warning about function not being prototyped.
This commit was SVN r20929.
2009-04-02 13:06:47 +00:00
Jeff Squyres
0f517c3d3f Gah; some non-final code got merged in by accident. Remove debugging
printf and put in the final test code for malloc.

This commit was SVN r20924.
2009-04-01 18:20:23 +00:00
Jeff Squyres
bf17ce1d3f Doh; forgot to add the OPAL_DECLSPEC to munmap().
This commit was SVN r20923.
2009-04-01 18:09:25 +00:00
Jeff Squyres
7aa431882c Remove the mallopt component (accidentally missed in r20921); refs
#1853.

This commit was SVN r20922.

The following SVN revision numbers were found above:
  r20921 --> open-mpi/ompi@0d52271cd6
2009-04-01 18:02:08 +00:00
Jeff Squyres
0d52271cd6 Per http://www.open-mpi.org/community/lists/announce/2009/03/0029.php
and https://svn.open-mpi.org/trac/ompi/ticket/1853, mallopt() hints do
not always work -- it is possible for memory to be returned to the OS
and therefore OMPI's registration cache becomes invalid.

This commit removes all use of mallopt() and uses a different way to
integrate ptmalloc2 than we have done in the past.  In particular, we
use almost exactly the same technique as MX:

 * Remove all uses of mallopt, to include the opal/memory mallopt
   component.
 * Name-shift all of OMPI's internal ptmalloc2 public symbols (e.g.,
   malloc -> opal_memory_ptmalloc2_malloc).
 * At run-time, use the existing glibc allocator malloc hook function
   pointers to fully hijack the glibc allocator with our own
   name-shifted ptmalloc2.
 * Make the decision whether to hijack the glibc allocator ''at run
   time'' (vs. at link time, as previous ptmalloc2 integration
   attempts have done).  Look at the OMPI_MCA_mpi_leave_pinned
   and OMPI_MCA_mpi_leave_pinned_pipeline environment variables and
   the existence of /sys/class/infiniband to determine if we should
   install the hooks or not.
 * As an added bonus, we can now tell if libopen-pal is linked
   statically or dynamically, and if we're linked statically, we
   assume that munmap intercept support doesn't work.

See the opal/mca/memory/ptmalloc2/README-open-mpi.txt file for all the
gory details about the implementation.

Fixes trac:1853.

This commit was SVN r20921.

The following Trac tickets were found above:
  Ticket 1853 --> https://svn.open-mpi.org/trac/ompi/ticket/1853
2009-04-01 17:52:16 +00:00
Rainer Keller
d8cf4c0fec - Get pgcc on XT to complain less:
In case we use memcmp, strlen, strup and friends include <string.h>
   Also several constants.h are not included directly
 - Let's have mca_topo_base_cart_create  return ompi-errors in
   ompi/mca/topo/base/topo_base_cart_create.c

This commit was SVN r20773.
2009-03-13 02:10:32 +00:00
Jeff Squyres
f3b1432260 Fixes trac:1618: ensure to check to see if the symbol RTLD_NEXT exists
before trying to use it (e.g., it doesn't seem to exist on Cygwin).

This commit was SVN r20343.

The following Trac tickets were found above:
  Ticket 1618 --> https://svn.open-mpi.org/trac/ompi/ticket/1618
2009-01-25 16:38:00 +00:00
Jeff Squyres
357e9ef070 Move AM_CONDITIONAL to its own POST_CONFIG, as it needs to be. Fixes
#1622.

This commit was SVN r19908.
2008-11-03 22:34:38 +00:00
George Bosilca
9a75ed0059 Allow the Solaris malloc component to desect itself.
This commit was SVN r19218.
2008-08-07 17:41:24 +00:00
Donald Kerr
7654e8fdf4 Create new memory component for default solaris allocator.
This commit was SVN r19217.
2008-08-07 15:38:37 +00:00
Jeff Squyres
0af7ac53f2 Fixes trac:1392, #1400
* add "register" function to mca_base_component_t
   * converted coll:basic and paffinity:linux and paffinity:solaris to
     use this function
   * we'll convert the rest over time (I'll file a ticket once all
     this is committed)
 * add 32 bytes of "reserved" space to the end of mca_base_component_t
   and mca_base_component_data_2_0_0_t to make future upgrades
   [slightly] easier
   * new mca_base_component_t size: 196 bytes
   * new mca_base_component_data_2_0_0_t size: 36 bytes
 * MCA base version bumped to v2.0
   * '''We now refuse to load components that are not MCA v2.0.x'''
 * all MCA frameworks versions bumped to v2.0
 * be a little more explicit about version numbers in the MCA base
   * add big comment in mca.h about versioning philosophy

This commit was SVN r19073.

The following Trac tickets were found above:
  Ticket 1392 --> https://svn.open-mpi.org/trac/ompi/ticket/1392
2008-07-28 22:40:57 +00:00
Jeff Squyres
4d034383d9 Apply patch from Ralf W. to remove a non-portable use of ==.
This commit was SVN r19046.
2008-07-26 12:36:24 +00:00
Brian Barrett
79ad6d983e - The ptmalloc2 memory manager component is now by default built as
a standalone library named libopenmpi-malloc.  Users wanting to
  use leave_pinned with ptmalloc2 will now need to link the library
  into their application explicitly.  All other users will use the
  libc-provided allocator instead of Open MPI's ptmalloc2.  This change
  may be overriden with the configure option enable-ptmalloc2-internal
- The leave_pinned options will now default to using mallopt on
  Linux in the cases where ptmalloc2 was not linked in.  mallopt
  will also only be available if munmap can be intercepted (the
  default whenever Open MPI is not compiled with --without-memory-
  manager.
- Open MPI will now complain and refuse to use leave_pinned if
  no memory intercept / mallopt option is available.

This commit was SVN r18654.
2008-06-13 22:32:49 +00:00
Jeff Squyres
3b568d4b14 Remove an old attempt to understand the tradeoffs with using GNU libc's malloc_hooks functionality, which turned out to be totally unusable in practice. I think we just always forgot to remove them.
This commit was SVN r18547.
2008-05-30 00:11:12 +00:00
Jeff Squyres
ed5bc2cd08 Per http://www.open-mpi.org/community/lists/devel/2008/05/4057.php, remove the darwin memory hooks component
This commit was SVN r18531.
2008-05-28 23:50:53 +00:00
Gleb Natapov
09de1da7ee Undefine MORECORE_CANNOT_TRIM. We don't call free() from the callback any more.
This commit was SVN r17065.
2008-01-08 10:08:35 +00:00
Jeff Squyres
213b5d5c6e Per long threads on the mailing list and much confusion discussion
about linkers, have all OPAL, ORTE, and OMPI components '''not'' link
against the OPAL, ORTE, or OMPI libraries.

See ttp://www.open-mpi.org/community/lists/users/2007/10/4220.php for
details (or https://svn.open-mpi.org/trac/ompi/wiki/Linkers for a
better-formatted version of the same info).

This commit was SVN r16968.
2007-12-15 13:32:02 +00:00
Brian Barrett
2b8af283de Add ability to completely turn off MPI one-sided support, so that users
can experiment with using ROMIO directly.

This commit was SVN r15922.
2007-08-18 21:35:51 +00:00
Adrian Knoth
3115816733 Poor off-by-one line error. This now really builds on kFreeBSD.
Re #1105

This commit was SVN r15842.
2007-08-13 19:00:18 +00:00
Adrian Knoth
e6345aeac6 Fixes for building on kFreeBSD. Re #1105
This commit was SVN r15592.
2007-07-24 23:19:45 +00:00
Sven Stork
813d4dc175 - let the mvapi btl and the rest of the world use our posix_memalign function.
This commit was SVN r15202.
2007-06-26 14:45:20 +00:00