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

308 Коммитов

Автор SHA1 Сообщение Дата
Edgar Gabriel
c253c2eec6 fix the condition for the lazy open of shared filepointers.
This commit was SVN r29850.
2013-12-09 19:37:21 +00:00
Nathan Hjelm
231ebb09c9 Update romio configury to remove a warning message.
cmr=v1.7.4:ticket=3158

This commit was SVN r29811.

The following Trac tickets were found above:
  Ticket 3158 --> https://svn.open-mpi.org/trac/ompi/ticket/3158
2013-12-06 00:12:35 +00:00
Nathan Hjelm
6b3cf0c1ba Merge branch 'romio_refresh'
This commit was SVN r29695.
2013-11-13 21:02:55 +00:00
Vishwanath Venkatesan
d37a5faa20 Need not do aggregator selection for one process case
So adding a check for this corner case!

This commit was SVN r29622.
2013-11-06 21:05:26 +00:00
Edgar Gabriel
f7391eca23 Lazy open does not work for the addproc sharedfp component since it starts by
spawning a process using MPI_Comm_spawn. For this, the first operation has to
be collective which we can not guarantuee outside of the MPI_File_open
operation.

This commit was SVN r29008.
2013-08-06 20:48:20 +00:00
Edgar Gabriel
8ffc1aac89 update the _component.c files in ompio to use the explicit assignment of the
mca_register_component_params element of the structure.

This commit was SVN r28914.
2013-07-22 21:11:05 +00:00
Edgar Gabriel
ac694b7056 in preparation for the new shared file pointer components to be committed
soon:
 - add a new abstraction layer to be used internally for some operations
 - add a new mca parameter to control lazy intialization of shared file
 pointer structures

This commit was SVN r28826.
2013-07-17 21:30:50 +00:00
George Bosilca
5fae72b9aa Add the MPI 2.2 MPI_Dist_graph functionality.
This patch reshape the way we deal with topologies completely. Where
our topologies were mainly storage components (they were not capable
of creating the new communicator), the new version is built around a
[possibly] common representation (in mca/topo/topo.h), but the functions
to attach and retrieve the topological information are specific to each
component. As a result the ompi_create_cart and ompi_create_graph functions
become useless and have been removed.

In addition to adding the internal infrastructure to manage the topology
information, it updates the MPI interface, and the debuggers support and
provides all Fortran interfaces.

This commit was SVN r28687.
2013-07-01 12:40:08 +00:00
Edgar Gabriel
2d4655a05a Logic has been revised compared to the previous implementation.
This commit was SVN r28594.
2013-06-05 23:47:42 +00:00
Edgar Gabriel
03c1db7a3a fix the calculation of the UNIFORM flag.
This commit was SVN r28593.
2013-06-05 23:18:50 +00:00
Edgar Gabriel
87b3782b7f arghh, copy-and-paste error, status->_ucount has to be set to 0 not max_data for count=0.
This commit was SVN r28576.
2013-05-30 22:00:29 +00:00
Edgar Gabriel
9daec82f17 - make a fileview of 0 bytes work in ompio
- fixes the bug reported in ticket 3619 (which is already closed) also for ompio

This commit was SVN r28575.
2013-05-30 21:33:13 +00:00
Edgar Gabriel
1b1051da6c fix a bug in the calculation of the explicit offset. Use the opportunity to
clean up the code a bit.

This commit was SVN r28537.
2013-05-17 20:22:00 +00:00
Vishwanath Venkatesan
74c418b860 Adding typecasting with intptr_t to remove warnings.
This commit was SVN r28278.
2013-04-03 17:07:43 +00:00
George Bosilca
9c6374b515 Swap the open and register.
This commit was SVN r28253.
2013-03-27 22:19:57 +00:00
Nathan Hjelm
9d4a26f47d Update OMPI frameworks to use the MCA framework system.
Notes:
  - This commit also eliminates the need for an available components list in use
    in several frameworks. None of the code in question was making use of the
    priority field of the priority component list item so these extra lists were
    removed.
  - Cleaned up selection code in several frameworks to sort lists using opal_list_sort.
  - Cleans up the ompi/orte-info functions. Expose the functions that construct the
    list of params so they can be used elsewhere.

patches for mtl/portals4 from brian

missed a few output variables in openib

This commit was SVN r28241.
2013-03-27 21:17:31 +00:00
Nathan Hjelm
cf377db823 MCA/base: Add new MCA variable system
Features:
 - Support for an override parameter file (openmpi-mca-param-override.conf).
   Variable values in this file can not be overridden by any file or environment
   value.
 - Support for boolean, unsigned, and unsigned long long variables.
 - Support for true/false values.
 - Support for enumerations on integer variables.
 - Support for MPIT scope, verbosity, and binding.
 - Support for command line source.
 - Support for setting variable source via the environment using
   OMPI_MCA_SOURCE_<var name>=source (either command or file:filename)
 - Cleaner API.
 - Support for variable groups (equivalent to MPIT categories).

Notes:
 - Variables must be created with a backing store (char **, int *, or bool *)
   that must live at least as long as the variable.
 - Creating a variable with the MCA_BASE_VAR_FLAG_SETTABLE enables the use of
   mca_base_var_set_value() to change the value.
 - String values are duplicated when the variable is registered. It is up to
   the caller to free the original value if necessary. The new value will be
   freed by the mca_base_var system and must not be freed by the user.
 - Variables with constant scope may not be settable.
 - Variable groups (and all associated variables) are deregistered when the
   component is closed or the component repository item is freed. This
   prevents a segmentation fault from accessing a variable after its component
   is unloaded.
 - After some discussion we decided we should remove the automatic registration
   of component priority variables. Few component actually made use of this
   feature.
 - The enumerator interface was updated to be general enough to handle
   future uses of the interface.
 - The code to generate ompi_info output has been moved into the MCA variable
   system. See mca_base_var_dump().

opal: update core and components to mca_base_var system
orte: update core and components to mca_base_var system
ompi: update core and components to mca_base_var system

This commit also modifies the rmaps framework. The following variables were
moved from ppr and lama: rmaps_base_pernode, rmaps_base_n_pernode,
rmaps_base_n_persocket. Both lama and ppr create synonyms for these variables.

This commit was SVN r28236.
2013-03-27 21:09:41 +00:00
Jeff Squyres
7ac02fb9d4 Two fixes for the ROMIO io module:
* Don't call PMPI_* anything from our module code; that's terribly
   bad form (and disallowed!).  Instead, do the proper back-end stuff
   to reset the error handler on the file handle.
 * If we've already started to MPI_Finalize, then just give up and
   don't actually perform all the file closing actions (because
   ROMIO's file close calls MPI_Barrier, which will obviously fail if
   MPI_Finalize has already been invoked).  Bad user behavior should
   be punished (by leaking resources, not closing the file properly,
   etc.).

This commit was SVN r28177.
2013-03-18 20:11:20 +00:00
Brian Barrett
b8442ba505 Revamp the handling of wrapper compiler flags. The user flags, main configure
flags, and mca flags are kept seperate until the very end.  The main configure
wrapper flags should now be modified by using the OPAL_WRAPPER_FLAGS_ADD
macro.  MCA components should either let <framework>_<component>_{LIBS,LDFLAGS}
be copied over OR set <framework>_<component>_WRAPPER_EXTRA_{LIBS,LDFLAGS}.
The situations in which WRAPPER CPPFLAGS can be set by MCA components was
made very small to match the one use case where it makes sense.

This commit was SVN r27950.
2013-01-29 00:00:43 +00:00
Jeff Squyres
b2d5d1e348 Along with the Automake 1.13.x changes in r27790, rename these third
party configure.in scripts to be configure.ac so that Automake stops
complaining about them.

This commit was SVN r27791.

The following SVN revision numbers were found above:
  r27790 --> open-mpi/ompi@675a2f5c48
2013-01-11 20:26:19 +00:00
Jeff Squyres
675a2f5c48 Updates for Automake 1.13.x. Without these changes, Automake 1.13.x
will error out, due to use of the
previously-deprecated-and-now-removed AM_CONFIG_HEADER macro.

This commit was SVN r27790.
2013-01-11 20:20:02 +00:00
Nathan Hjelm
bdedd8b0d3 Per RFC modify the behavior of mca_base_components_close to NOT close the output. Modify frameworks to always close their output and set to -1.
Reasoning: The old behavior was a little confusing. mca_base_components_open does not open an output stream so it is a little unexpected that mca_base_components_close does. To add to this several frameworks (that don't use mca_base_components_close) failed to close their output in the framework close function and others closed their output a second time. This change is an improvement to the symantics of mca_base_components_open/close as they are now symetric in their functionality.

This commit was SVN r27570.
2012-11-06 19:09:26 +00:00
Brian Barrett
25ccfe1bdd Add autogen.sh to list of files to be distributed, so autogen works off a
tarball

This commit was SVN r27548.
2012-11-01 02:26:28 +00:00
Vishwanath Venkatesan
2922fa28a6 Changes to the interface for extracting timing information,
to avoid accessing datastructures across frameworks.

This commit was SVN r27543.
2012-10-31 22:03:05 +00:00
Edgar Gabriel
3291e3abe3 make ROMIO operational with OpenMPI for PVFS2 file systems.
This commit was SVN r27501.
2012-10-26 18:43:59 +00:00
Vishwanath Venkatesan
6e3c9754a9 Initialization issue + fixing error in determining minimum value.
This commit was SVN r27443.
2012-10-11 23:41:25 +00:00
Vishwanath Venkatesan
9eeb3b5d50 # Extracting timing information for individual components of collective algorithm using a generic queue.
# This is triggered based on a mca-paramater and can be used with all collective modules.
# Individual queues maintained for read and write.
# The additional communication to combine data is done at file-close so that the 
  actual timing of collective-operations will not get affected. 
# The queues are initialized in file-open

This commit was SVN r27439.
2012-10-11 21:14:07 +00:00
Vishwanath Venkatesan
c89c9e40be Code to extract neigbhouing offsets information from OMPIO into a file. Driven by an MCA parameter,
turned-off by default.

This commit was SVN r27407.
2012-10-04 21:53:26 +00:00
Vishwanath Venkatesan
640aca6654 Modifying the file view generation to remove the merging of offset-length pair.
Its no longer needed as the default file view makes sure the chunks are large enough.

This commit was SVN r27246.
2012-09-05 21:00:47 +00:00
Vishwanath Venkatesan
960c47f604 Changes to io_ompio.c to support data-seiving in two-phase I/O.
This commit was SVN r27151.
2012-08-27 21:09:08 +00:00
Jeff Squyres
7390ab8a23 Many updates and bug fixes for the Fortran bindings. Sorry these
aren't separated out into individual commits; they represent a few
months of work in the Mercurial branch, and it seemed error-prone to
try to break them up into multiple SVN commits.

 * Remove 2nd overloaded interfaces for MPI_TESTALL, MPI_TESTSOME,
   MPI_WAITALL, and MPI_WAITSOME in the "mpi" module implementations
   (because we're not allowed to have them, anyway -- it causes
   complications in the profiling interface).  This forced an MPI-2.2
   errata in the MPI Forum; we applied the errata here (the array of
   statuses parameter could not have a specific dimension specified in
   the dummy argument).  Fixes trac:3166.
 * Similarly, fix type for MPI_ARGVS_NULL in Fortran
 * Add MPI_3.0 function MPI_F_SYNC_REG (Fortran interfaces only).
 * Add MPI-3.0 MPI_MESSAGE_NO_PROC in the mpi_f08 module.
 * Added mpi_f08 handle comparison operators, per MPI-3.0 addendum to
   the F08 proposal at the last Forum meeting.  
 * Added missing type(MPI_File) and type(Message) in mpi_f08 module.
 * Fix --disable-mpi-io configure switch with all Fortran interfaces
 * Re-factor the Fortran header files to be fundamentally simpler and
   easier to maintain.  Fortran constant values in the header files
   are now generated by a script named mpif-values.pl during
   autogen.pl (they were previously generated by mpif-common.pl, but
   it was quite a bit more subtle/complex).  A second commit will
   follow this one to update svn:ignore values (just to ensure we
   don't muck up the first commit with the SVN client getting confused
   by the changed ignore values and new/changed files).
 * Fix some dependencies for compile ordering in
   ompi/mpi/fortran/use-mpi-ignore-tkr/Makefile.am. 
 * Fix bad wording in several places (.m4 file name, ompi_info output,
   etc.): we previoulsy said "F08 assumed shape" when we really meant
   "F08 assumed rank" (for Fortran gurus, those are very different
   things). 
 * Removed the GREEK/SVN version string from mpif.h.  It really had no
   purpose being there.

Still to be done:

 * Handling of 2D array of strings in MPI_COMM_SPAWN_MULTIPLE still
   isn't right yet.  Not sure how many people really care about this
   :-), but it is still broken.

This commit was SVN r26997.

The following Trac tickets were found above:
  Ticket 3166 --> https://svn.open-mpi.org/trac/ompi/ticket/3166
2012-08-10 21:19:47 +00:00
Ralph Castain
05845214b8 Add missing include file
This commit was SVN r26934.
2012-08-01 04:08:47 +00:00
Vishwanath Venkatesan
dccfd18481 1. Removing two-phase support functions
2. Moving nbc headers to a seperate header file and modifying
io_ompio_nbc.c accordingly.

This commit was SVN r26921.
2012-07-31 04:39:13 +00:00
Edgar Gabriel
fb64322dc3 this code section was supposed to be commented out...
This commit was SVN r26918.
2012-07-30 20:46:07 +00:00
Edgar Gabriel
91c8577d9d fix in the offset calculation for explicit offset operations.
This commit was SVN r26915.
2012-07-30 20:08:00 +00:00
Edgar Gabriel
66c5a80dfd - get rid of a warning about an unused variable
- return MPI_ERR_OTHER instead of MPI_SUCCESS for the functions that are not
  yet implemented 
- add another field to the mca_io_ompio_file_t structure to point back to the
  ompi_file_t structure.

This commit was SVN r26908.
2012-07-30 15:29:59 +00:00
Ralph Castain
44bd855717 Silence warnings
This commit was SVN r26808.
2012-07-19 14:29:32 +00:00
Edgar Gabriel
92271c571d set the status field for collective read and write operations.
This commit was SVN r26786.
2012-07-12 10:26:27 +00:00
Edgar Gabriel
d18dad7109 remove the file io_ompio_coll_offset. These routines were the predecessors of
the routines in io_ompio_coll_array. No need to keep both versions around.

This commit was SVN r26766.
2012-07-09 17:12:46 +00:00
Edgar Gabriel
8ae22cacc1 - remove two functions that were not used anymore
- change the location where we mark the file view as contiguous and the
  condition on how it is determined to be contiguous
- remove the unnecessary include statements

This commit was SVN r26763.
2012-07-08 12:57:17 +00:00
Edgar Gabriel
b0954a6a3e set the internal OMPIO file pointer to the end of the file if file has been
opened using the APPEND mode.

This commit was SVN r26692.
2012-06-28 15:15:47 +00:00
Edgar Gabriel
32b0dfed31 * set the status _ucount field correctly for individual read and write
operations
* removing a lingering reference to the ylib fcoll component, which will not
be part of the 1.7 branch.

This commit was SVN r26691.
2012-06-28 14:43:56 +00:00
Edgar Gabriel
be6ea52bb4 some further cleanup of resources in case of an error.
This commit was SVN r26690.
2012-06-28 13:58:23 +00:00
Edgar Gabriel
b7a72feb1d minor code cleanup and make the MPI_MODE_DELETE_ON_CLOSE work
This commit was SVN r26685.
2012-06-27 20:54:58 +00:00
Josh Hursey
28681deffa Backout the ORCA commit. :(
There is a linking issue on Mac OSX that needs to be addressed before this is able to come back into the trunk.

This commit was SVN r26676.
2012-06-27 01:28:28 +00:00
Josh Hursey
542330e3a7 Commit of ORCA: Open MPI Runtime Collaborative Abstraction
This is a runtime interposition project that sits between the OMPI and ORTE layers in Open MPI.

The project is described on the wiki:
  https://svn.open-mpi.org/trac/ompi/wiki/Runtime_Interposition

And on this email thread:
  http://www.open-mpi.org/community/lists/devel/2012/06/11109.php

This commit was SVN r26670.
2012-06-26 21:42:16 +00:00
Edgar Gabriel
288d044097 get rid of the fcache framework. It was not being used as originally intended.
This commit was SVN r26668.
2012-06-26 19:53:26 +00:00
Edgar Gabriel
3ccd286de1 silence a compiler warning for optimized builds.
This commit was SVN r26528.
2012-05-31 13:32:10 +00:00
Vishwanath Venkatesan
8d4bb65bd4 Modifying the explicit operations to make it absolute
This commit was SVN r26451.
2012-05-18 21:43:34 +00:00
Vishwanath Venkatesan
1e95d8b1e2 remove the MPI functions used in these files by the OMPI internal corresponding functionality and also add error checking in these for functions which did not have them'
This commit was SVN r25723.
2012-01-13 17:21:51 +00:00
Edgar Gabriel
fb4d1a7099 remove the MPI functions used in this file by the OMPI internal corresponding functionality.
This commit was SVN r25703.
2012-01-10 19:55:05 +00:00
Vishwanath Venkatesan
37c8470e3d modified implementation for two-phase write_all incorporating romio style domain partitioning
This commit was SVN r25680.
2011-12-22 00:16:29 +00:00
Vishwanath Venkatesan
738a67b704 Removing duplicate code while setting default file view and using internal file-set-view for setting the default file view
This commit was SVN r25679.
2011-12-21 21:50:47 +00:00
Vishwanath Venkatesan
8f6b29e95b Fixing the default file view issue and merging contiguous lengths and offsets
for explicit offset case.

This commit was SVN r25281.
2011-10-13 19:50:45 +00:00
George Bosilca
649af6c925 Enumerated mixed with another type (int) is tolerated but
easily fixable.

This commit was SVN r25241.
2011-10-09 03:54:52 +00:00
Edgar Gabriel
196c3819e2 - revamp the configure logic to detect pvfs2 and lustre
- slight change in the selection logic of the fs module, which makes
   the ompio independent of the file system type (otherwise ompio 
   would also have required a configure script).

This commit was SVN r25118.
2011-09-07 10:39:47 +00:00
Ralph Castain
71e74990de Add missing includes so this compiles under Mac OSX
This commit was SVN r25084.
2011-08-25 23:04:24 +00:00
Edgar Gabriel
52063267df commit of the OMPIO modules and frameworks.
This commit was SVN r25079.
2011-08-25 20:08:17 +00:00
Edgar Gabriel
0173a00f6b replace the switch-case statement on the basic datatypes by a series of
if-elseif statements to make it compile with OpenMPi again.

Fixes trac:2808

This commit was SVN r24768.

The following Trac tickets were found above:
  Ticket 2808 --> https://svn.open-mpi.org/trac/ompi/ticket/2808
2011-06-09 15:35:35 +00:00
Eugene Loh
cd5c2e794f Some minor changes to help the openib BTL build and run on Solaris:
- poll() can return POLLRDNORM even if not requested (Solaris bug)
- MIN macro not defined in btl_openib.c
  and while we're at it, we clean up the MIN definition in ad_bgl_pset.h
- btl_openib_connect_rdmacm.c was calling rdma_destroy_id() twice
  leading to undefined behavior (a hang on Solaris)

This commit was SVN r24356.
2011-02-03 23:53:21 +00:00
Jeff Squyres
30e164e246 Fix all the problems with "make distcheck" caused by the new ROMIO import so that we can finally get a trunk nightly tarball\!
This commit was SVN r24292.
2011-01-24 21:10:14 +00:00
Jeff Squyres
89fb26eb1c Add missing line continuation character to prevent a Makefile syntax
error

This commit was SVN r24285.
2011-01-22 11:13:28 +00:00
Sylvain Jeaugey
46b711e164 Fixes trac:1888 introduced by r24264 : make Romio autogen.sh executable.
This commit was SVN r24272.

The following SVN revision numbers were found above:
  r24264 --> open-mpi/ompi@0e921bba7f

The following Trac tickets were found above:
  Ticket 1888 --> https://svn.open-mpi.org/trac/ompi/ticket/1888
2011-01-20 09:20:34 +00:00
Sylvain Jeaugey
0e921bba7f Romio Refresh from mpich2-1.3.1. Work by Pascal Deveze, tested through bitbucket by Jeff Squyres (https://bitbucket.org/devezep/new-romio-for-openmpi).
This commit was SVN r24264.
2011-01-19 15:55:10 +00:00
Jeff Squyres
e4744b4ed5 Per http://www.open-mpi.org/community/lists/devel/2010/11/8671.php,
change a bunch of OMPI_<foo> names to OPAL_<foo>.

This commit was SVN r24046.
2010-11-12 23:22:11 +00:00
Jeff Squyres
73bcc4a36b Fix mistake that came in via the ompi-agen tree in r23764. The mistake wasn't part of the core autogen upgrade; it was an additional 'bonus' cleanup. Oops. The mistake will always create a set of directories under installdir, even if you do not --with-devel-headers. The set of directories will be empty, but still -- they should not be there at all. This commit fixes that -- the directories are not created at all if you do not --with-devel-headers
This commit was SVN r23801.

The following SVN revision numbers were found above:
  r23764 --> open-mpi/ompi@40a2bfa238
2010-09-24 22:53:28 +00:00
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
George Bosilca
c0ff44b9fe Don't let ROMIO mishandle the displacement for contiguous data with a non-zero
true_lb. Thanks to Pascal Deveze for the patch.

This commit was SVN r22864.
2010-03-23 01:23:45 +00:00
Brian Barrett
50e3a5c349 AC_CHECK_FUNCS. Removes an annoying warning during application link on
Catamount.

Should go to both cmr:v1.4:reviewer=jsquyres and cmr:v1.5:reviewer=jsquyres

This commit was SVN r22547.
2010-02-04 04:42:36 +00:00
Edgar Gabriel
99e4ef3c86 path to make ROMIO compile over PVFS2 version > 2.7
Taken from the MPICH version of ROMIO.

This commit was SVN r22413.
2010-01-14 21:25:53 +00:00
Brian Barrett
b57b8c5b3f Clean up request handling in the I/O framework to be more consistent with
other request-using frameworks.

 - Rather than having mpi/c/* functions allocate requests explicitly,
   pass the MPI_Request* down to the I/O component and have it 
   perform the allocation.
 - While the I/O base provides a base request which can be used,
   it is not required and all request management occurs within
   the component.
 - Push progress management into the component, rather than having it
   happen in the base.  Progress functions are now easily registered,
   and not all (ie, the one existing) components use progress functions
   in any rational way.

ROMIO switched to generalized requests instead of MPIO_Requests many
moons ago, and Open MPI now uses ROMIO's generalized requests, so there
is no reason to wrap those requests (which are OMPI requests) in another
level of request.

Now the file function passes the MPI_Request* to the ROMIO component,
which passes it to the underlying ROMIO function, which calls 
MPI_Grequest_start to create an OMPI request, which is what gets set
as the request to the user.  Much cleaner.

This patch has two motivations.  One, a whole heck of a lot of code
just got removed, and request handling is now much cleaner for I/O
components.  Two, by adding support for Argonne's proposed generalized
request extensions, we can allow ROMIO to provide async I/O through
generalized requests, which we couldn't rationally do in the old
setup due to the crazy request completion rules.

This commit was SVN r22235.
2009-11-26 05:13:43 +00:00
Brian Barrett
8075640ef1 The tests are MPI programs and are built using mpicc, so including
OMPI headers won't work

This commit was SVN r22233.
2009-11-25 18:06:15 +00:00
Jeff Squyres
ab00aea1ff Per http://www.open-mpi.org/community/lists/devel/2009/10/7025.php,
use the new Automake "silent rules" if available.

If you are using an Automake prior to v1.11, you won't see the new 
silent rules -- it will automatically default back to the "verbose" 
rules.

Note, too, that even with these changes, you can enable the verbose 
"make all" output in one of two ways:

1. Add "V=1" to your "make" command line

{{{
shell$ make all V=1
}}}

2. Add "--disable-silent-rules" to your "configure" command line:

{{{
shell$ ./configure --disable-silent-rules ...
}}}

The one down side of using the silent rules by default is that we'll 
get less diagnostic information when users send their build logs.  I 
think we should update the web page to request that users send build 
logs of "make V=1", but I'm guessing that not everyone will do it.

Note that I did ''not'' silent-ize the libltdl build (which is a dozen
or so files in the beginning of the build) because we wholly import
libltdl at autogen time.  I therefore didn't want to patch libltdl
(further) after importing it a) to remain as forward- compatible as
possible, and b) patching the imported libltdl build system might be
tricky in terms of timestamps / dependencies.  So those dozen-or-so
files will still be "verbose", but the rest of the files in OMPI will
be "silent".

This commit was SVN r22189.
2009-11-04 02:07:02 +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
Rainer Keller
6c5532072a - Split the datatype engine into two parts: an MPI specific part in
OMPI
   and a language agnostic part in OPAL. The convertor is completely
   moved into OPAL.  This offers several benefits as described in RFC
   http://www.open-mpi.org/community/lists/devel/2009/07/6387.php
   namely:
    - Fewer basic types (int* and float* types, boolean and wchar
    - Fixing naming scheme to ompi-nomenclature.
    - Usability outside of the ompi-layer.
 - Due to the fixed nature of simple opal types, their information is
   completely
   known at compile time and therefore constified
 - With fewer datatypes (22), the actual sizes of bit-field types may be
   reduced
   from 64 to 32 bits, allowing reorganizing the opal_datatype
   structure, eliminating holes and keeping data required in convertor
   (upon send/recv) in one cacheline...
   This has implications to the convertor-datastructure and other parts
   of the code.
 - Several performance tests have been run, the netpipe latency does not
   change with
   this patch on Linux/x86-64 on the smoky cluster.
 - Extensive tests have been done to verify correctness (no new
   regressions) using:
   1. mpi_test_suite on linux/x86-64 using clean ompi-trunk and
    ompi-ddt:
    a. running both trunk and ompi-ddt resulted in no differences
       (except for MPI_SHORT_INT and MPI_TYPE_MIX_LB_UB do now run
       correctly).
    b. with --enable-memchecker and running under valgrind (one buglet
       when run with static found in test-suite, commited)
   2. ibm testsuite on linux/x86-64 using clean ompi-trunk and ompi-ddt:
      all passed (except for the dynamic/ tests failed!! as trunk/MTT)
   3. compilation and usage of HDF5 tests on Jaguar using PGI and
      PathScale compilers.
   4. compilation and usage on Scicortex.
 - Please note, that for the heterogeneous case, (-m32 compiled
   binaries/ompi), neither
   ompi-trunk, nor ompi-ddt branch would successfully launch.

This commit was SVN r21641.
2009-07-13 04:56:31 +00:00
Rainer Keller
9ef87898e0 (originally, did not want to do this during business hours, but
well..)
 - As Jeff suggested, for m4 macros, dont use _ OPAL, but
   rather OPAL_ prefix
 - Set the variable before AC_SUBST, so that replacement happens
   in f77 header-file, too.

This commit was SVN r21316.
2009-05-28 20:28:43 +00:00
George Bosilca
2f9765926e This is the real commit, the previous one was just a test ... to make
sure Jeff is reading all commits ;)

This commit was SVN r21308.
2009-05-28 00:49:40 +00:00
George Bosilca
63118c9beb Do not allow redefinition of MPI_MAX_DATAREP_STRING.
This commit was SVN r21307.
2009-05-28 00:37:19 +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
Rainer Keller
fd28b392bf - An intrusive commit yet again (sorry): with the separation we
get bitten by header depending on having already included
   the corresponding [opal|orte|ompi]_config.h header.
   When separating, things like [OPAL|ORTE|OMPI]_DECLSPEC
   are missed.

   Script to add the corresponding header in front of all following
   (taking care of possible #ifdef HAVE_...)

 - Including some minor cleanups to
   - ompi/group/group.h -- include _after_ #ifndef OMPI_GROUP_H
   - ompi/mca/btl/btl.h -- nclude _after_ #ifndef MCA_BTL_H
   - ompi/mca/crcp/bkmrk/crcp_bkmrk_btl.c -- still no need for
     orte/util/output.h
   - ompi/mca/pml/dr/pml_dr_recvreq.c -- no need for mpool.h
   - ompi/mca/btl/btl.h -- reorder to fit
   - ompi/mca/bml/bml.h -- reorder to fit
   - ompi/runtime/ompi_mpi_finalize.c -- reorder to fit
   - ompi/request/request.h -- additionally need ompi/constants.h

 - Tested on linux/x86-64

This commit was SVN r20720.
2009-03-04 15:35:54 +00:00
Rainer Keller
d81443cc5a - On the way to get the BTLs split out and lessen dependency on orte:
Often, orte/util/show_help.h is included, although no functionality
   is required -- instead, most often opal_output.h, or               
   orte/mca/rml/rml_types.h                                           
   Please see orte_show_help_replacement.sh commited next.            

 - Local compilation (Linux/x86_64) w/ -Wimplicit-function-declaration
   actually showed two *missing* #include "orte/util/show_help.h"     
   in orte/mca/odls/base/odls_base_default_fns.c and                  
   in orte/tools/orte-top/orte-top.c                                  
   Manually added these.                                              

   Let's have MTT the last word.

This commit was SVN r20557.
2009-02-14 02:26:12 +00:00
Jeff Squyres
d1c6f3f89a * Fix a truckload of Cisco copyrights to be the same as the rest of
the code base.
 * Fix a few misspellings in other copyrights.

This commit was SVN r20241.
2009-01-11 02:30:00 +00:00
Jeff Squyres
ec6cffcd71 Patch originally from George to improve ROMIO's performance when
checking for contiguous datatypes by using our native DDT engine
(rather than several MPI_* calls).  The majority of the work is in the
IO ROMIO module.c file, but there's a small part in
adio/common/iscontig.c that we're also submitting upstream.

This commit was SVN r19509.
2008-09-06 09:50:12 +00:00
Jeff Squyres
f09dc4be31 Fix one item missed by r19175.
This commit was SVN r19216.

The following SVN revision numbers were found above:
  r19175 --> open-mpi/ompi@e105b3f254
2008-08-07 14:49:27 +00:00
Rolf vandeVaart
e105b3f254 Finish work related to ticket #1392 where the versions
were bumped from v1.0.0 to v2.0.0.  

This change fixed #1439.

This commit was SVN r19175.
2008-08-06 12:16:54 +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
a7c79558ad Remove an errant printf that was causing non-fatal errors to be
displayed (e.g., when deleting files that should have been silently
ignored if they didn't exist).

This commit was SVN r19071.
2008-07-28 22:11:31 +00:00
Jeff Squyres
c93f1d8c5e Fixes trac:1419: got a patch from upstream to fix the "OS X doesn't
have/need lseek64" issue.  This fix is also included in MPICH2 after
v1.0.7.

This commit was SVN r19070.

The following Trac tickets were found above:
  Ticket 1419 --> https://svn.open-mpi.org/trac/ompi/ticket/1419
2008-07-28 17:02:53 +00:00
Jeff Squyres
7c4d46a8d9 Grrr: I ''did'' remove these files on the initial commit of the new
SVN version (r19045), but I also edited the svn:ignore to ignore these
files in the same SVN commit -- I suspect that SVN got confused and
did not actually delete them.

This commit was SVN r19048.

The following SVN revision numbers were found above:
  r19045 --> open-mpi/ompi@63b63d48c3
2008-07-26 13:00:24 +00:00
Jeff Squyres
6dac4706ea Somehow this file got missed in the SVN import.
This commit was SVN r19047.
2008-07-26 12:54:15 +00:00
Jeff Squyres
63b63d48c3 Fixes trac:1370, #1147
Update the version of ROMIO to that which was contained in
MPICH2-1.0.7, plus a few patches from the upstream ROMIO maintainers
(because OMPI uses a few code paths in ROMIO that MPICH2 does not;
there were a few compile bugs in the ROMIO from MPICH2-1.0.7).

Added an info MCA param to be able to tell which version of ROMIO is
contained in OMPI: io_romio_version.

Many, many thanks to romio-maint@mcs.anl.gov for all their help in
integrating this new version of ROMIO into Open MPI.

This commit was SVN r19045.

The following Trac tickets were found above:
  Ticket 1370 --> https://svn.open-mpi.org/trac/ompi/ticket/1370
2008-07-26 12:23:30 +00:00
Jeff Squyres
83987fea75 Next step: Back out r17543 (ficxing a bunch of ROMIO warnings). Let's
see how the next gen panasas stuff does in terms of warnings; we can
always re-merge this later if we want to.  It's just easier if we have
as little OMPI-specific code as possible (particularly when we know
that the panasas code has some big changes coming).

This commit was SVN r18823.

The following SVN revision numbers were found above:
  r17543 --> open-mpi/ompi@b4ec81a9fd
2008-07-07 23:22:26 +00:00
Jeff Squyres
09ff80ff06 Back out r16691 and r16693 because the meat of them are upstream
already, and we're just about to do a ROMIO version refresh -- so the
less OMPI-specific code we have (e.g., indenting and whatnot), the
better. 

Refs trac:1370.

This commit was SVN r18821.

The following SVN revision numbers were found above:
  r16691 --> open-mpi/ompi@8dca19cb3b
  r16693 --> open-mpi/ompi@037a533752

The following Trac tickets were found above:
  Ticket 1370 --> https://svn.open-mpi.org/trac/ompi/ticket/1370
2008-07-07 22:33:49 +00:00
Jeff Squyres
a6cfe0c574 Remove LANL-specific Panasas patches. This is step 1 in upgrading the
ROMIO in Open MPI (the new version of ROMIO will make this patch
defunct, and David Daniel has confirmed that no one at LANL is using
this functionality, anyway).

Refs trac:1370.

This commit was SVN r18819.

The following Trac tickets were found above:
  Ticket 1370 --> https://svn.open-mpi.org/trac/ompi/ticket/1370
2008-07-07 22:08:26 +00:00
Ralph Castain
9613b3176c Effectively revert the orte_output system and return to direct use of opal_output at all levels. Retain the orte_show_help subsystem to allow aggregation of show_help messages at the HNP.
After much work by Jeff and myself, and quite a lot of discussion, it has become clear that we simply cannot resolve the infinite loops caused by RML-involved subsystems calling orte_output. The original rationale for the change to orte_output has also been reduced by shifting the output of XML-formatted vs human readable messages to an alternative approach.

I have globally replaced the orte_output/ORTE_OUTPUT calls in the code base, as well as the corresponding .h file name. I have test compiled and run this on the various environments within my reach, so hopefully this will prove minimally disruptive.

This commit was SVN r18619.
2008-06-09 14:53:58 +00:00
Ralph Castain
c992e99035 Remove the tags from orte_output_open and the filtering operation from orte_output - this will be handled differently to improve the XML output interface
This commit was SVN r18557.
2008-06-03 14:24:01 +00:00
George Bosilca
e361bcb64c Send optimizations.
1. The send path get shorter. The BTL is allowed to return > 0 to specify that the
   descriptor was pushed to the networks, and that the memory attached to it is 
   available again for the upper layer. The MCA_BTL_DES_SEND_ALWAYS_CALLBACK flag
   can be used by the PML to force the BTL to always trigger the callback.
   Unmodified BTL will continue to work as expected, as they will return OMPI_SUCCESS
   which force the PML to have exactly the same behavior as before. Some BTLs have
   been modified: self, sm, tcp, mx.
2. Add send immediate interface to BTL.
   The idea is to have a mechanism of allowing the BTL to take advantage of
   send optimizations such as the ability to deliver data "inline". Some
   network APIs such as Portals allow data to be sent using a "thin" event
   without packing data into a memory descriptor. This interface change
   allows the BTL to use such capabilities and allows for other optimizations
   in the future. All existing BTLs except for Portals and sm have this interface
   set to NULL.

This commit was SVN r18551.
2008-05-30 03:58:39 +00:00
Jeff Squyres
e7ecd56bd2 This commit represents a bunch of work on a Mercurial side branch. As
such, the commit message back to the master SVN repository is fairly
long.

= ORTE Job-Level Output Messages =

Add two new interfaces that should be used for all new code throughout
the ORTE and OMPI layers (we already make the search-and-replace on
the existing ORTE / OMPI layers):

 * orte_output(): (and corresponding friends ORTE_OUTPUT,
   orte_output_verbose, etc.)  This function sends the output directly
   to the HNP for processing as part of a job-specific output
   channel.  It supports all the same outputs as opal_output()
   (syslog, file, stdout, stderr), but for stdout/stderr, the output
   is sent to the HNP for processing and output.  More on this below.
 * orte_show_help(): This function is a drop-in-replacement for
   opal_show_help(), with two differences in functionality:
   1. the rendered text help message output is sent to the HNP for
      display (rather than outputting directly into the process' stderr
      stream)
   1. the HNP detects duplicate help messages and does not display them
      (so that you don't see the same error message N times, once from
      each of your N MPI processes); instead, it counts "new" instances
      of the help message and displays a message every ~5 seconds when
      there are new ones ("I got X new copies of the help message...")

opal_show_help and opal_output still exist, but they only output in
the current process.  The intent for the new orte_* functions is that
they can apply job-level intelligence to the output.  As such, we
recommend that all new ORTE and OMPI code use the new orte_*
functions, not thei opal_* functions.

=== New code ===

For ORTE and OMPI programmers, here's what you need to do differently
in new code:

 * Do not include opal/util/show_help.h or opal/util/output.h.
   Instead, include orte/util/output.h (this one header file has
   declarations for both the orte_output() series of functions and
   orte_show_help()).
 * Effectively s/opal_output/orte_output/gi throughout your code.
   Note that orte_output_open() takes a slightly different argument
   list (as a way to pass data to the filtering stream -- see below),
   so you if explicitly call opal_output_open(), you'll need to
   slightly adapt to the new signature of orte_output_open().
 * Literally s/opal_show_help/orte_show_help/.  The function signature
   is identical.

=== Notes ===

 * orte_output'ing to stream 0 will do similar to what
   opal_output'ing did, so leaving a hard-coded "0" as the first
   argument is safe.
 * For systems that do not use ORTE's RML or the HNP, the effect of
   orte_output_* and orte_show_help will be identical to their opal
   counterparts (the additional information passed to
   orte_output_open() will be lost!).  Indeed, the orte_* functions
   simply become trivial wrappers to their opal_* counterparts.  Note
   that we have not tested this; the code is simple but it is quite
   possible that we mucked something up.

= Filter Framework =

Messages sent view the new orte_* functions described above and
messages output via the IOF on the HNP will now optionally be passed
through a new "filter" framework before being output to
stdout/stderr.  The "filter" OPAL MCA framework is intended to allow
preprocessing to messages before they are sent to their final
destinations.  The first component that was written in the filter
framework was to create an XML stream, segregating all the messages
into different XML tags, etc.  This will allow 3rd party tools to read
the stdout/stderr from the HNP and be able to know exactly what each
text message is (e.g., a help message, another OMPI infrastructure
message, stdout from the user process, stderr from the user process,
etc.).

Filtering is not active by default.  Filter components must be
specifically requested, such as:

{{{
$ mpirun --mca filter xml ...
}}}

There can only be one filter component active.

= New MCA Parameters =

The new functionality described above introduces two new MCA
parameters:

 * '''orte_base_help_aggregate''': Defaults to 1 (true), meaning that
   help messages will be aggregated, as described above.  If set to 0,
   all help messages will be displayed, even if they are duplicates
   (i.e., the original behavior).
 * '''orte_base_show_output_recursions''': An MCA parameter to help
   debug one of the known issues, described below.  It is likely that
   this MCA parameter will disappear before v1.3 final.

= Known Issues =

 * The XML filter component is not complete.  The current output from
   this component is preliminary and not real XML.  A bit more work
   needs to be done to configure.m4 search for an appropriate XML
   library/link it in/use it at run time.
 * There are possible recursion loops in the orte_output() and
   orte_show_help() functions -- e.g., if RML send calls orte_output()
   or orte_show_help().  We have some ideas how to fix these, but
   figured that it was ok to commit before feature freeze with known
   issues.  The code currently contains sub-optimal workarounds so
   that this will not be a problem, but it would be good to actually
   solve the problem rather than have hackish workarounds before v1.3 final.

This commit was SVN r18434.
2008-05-13 20:00:55 +00:00
Ralph Castain
48e5840c50 Restore a placeholder to make non-SVN SCM's happy.
This commit was SVN r17648.
2008-02-28 20:19:22 +00:00
George Bosilca
678e6c7f0d This is a Mercurial file.
This commit was SVN r17635.
2008-02-28 05:18:06 +00:00
Ralph Castain
d70e2e8c2b Merge the ORTE devel branch into the main trunk. Details of what this means will be circulated separately.
Remains to be tested to ensure everything came over cleanly, so please continue to withhold commits a little longer

This commit was SVN r17632.
2008-02-28 01:57:57 +00:00
Ralph Castain
b4ec81a9fd Fix the Panasas support in ROMIO so it builds without complaints. Required a patch from Brian, plus a few edits by me to remove warnings.
NOTE: the code provided by PANASAS includes a "switch" that they left incomplete - it doesn't cover all possibilities. Since the value being switched is an enum, this causes problems for the compiler. I added the missing values, but - since Panasas felt they could be ignored - had the switch generate an error if those cases ever occurred.

This commit was SVN r17543.
2008-02-21 20:35:34 +00:00
Jeff Squyres
5bb1e5151f Suggestions/patches from Brian to make stuff better:
* Include all the stuff that is necessary for running autogen.sh in a
   distribution tarball.
 * Remove from config/Makefile.am's EXTRA_DIST that which is
   automatically included in the tarball in recent versions of
   Automake (i.e., all the m4 files that are acincluded).
 * Make ROMIO's configure script look for something that is actually
   included in the tarball.

Fixes trac:1025.

This commit was SVN r17505.

The following Trac tickets were found above:
  Ticket 1025 --> https://svn.open-mpi.org/trac/ompi/ticket/1025
2008-02-19 01:49:52 +00:00
Jeff Squyres
17ede97ef8 Two fixes to revert some long-ago decisions that seemed like a good
idea at the time, but led to logistical difficulties in importing new
versions of ROMIO: 

* We are effectively eliminating the ROMIO file prefix rule hacks in
  the ROMIO component, which create symlinks from foo.c to
  io_romio_foo.c.  In reality, the file name conflict potential will
  be small.
* Additionally, we are effectively eliminating the ROMIO function
  prefix rule in the ROMIO component.  This is another place where
  there are generally problems with the merge up new versions of ROMIO
  and/or patches from the user community (for their own local builds).
  In reality, since other major MPI implementations provides the same
  exact symbols, it won't cause any practical problems for users.

In return, we make it ''much'' simpler to apply ROMIO patches to Open
MPI.  The problem right now is that any patch will have filenames such
as ad_panfs.c, but Open MPI will only have io_romio_ad_panfs.c, making
things extremely difficult for users.  I believe, for example, that
this would make it possible for LANL to have applied their patches
without too much hassle on either their part or our part.  It will
also make things easier for OMPI when we/they want to do the next
ROMIO upgrade (this was one of the sources of problems on each
upgrade).

This commit was SVN r17436.
2008-02-12 18:55:17 +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
Adrian Knoth
037a533752 Reformatted r16691 to OMPI style. Re #733
This commit was SVN r16693.

The following SVN revision numbers were found above:
  r16691 --> open-mpi/ompi@8dca19cb3b
2007-11-08 12:54:48 +00:00
Adrian Knoth
8dca19cb3b upstream patch, provided by Jiri Polach. Re #733
This commit was SVN r16691.
2007-11-08 12:44:10 +00:00
Rich Graham
27a748e7eb change all instances of ompi_free_list_init to ompi_free_list_init_new. Header
and payload data are specified separately at this stage.

This commit was SVN r16633.
2007-11-01 23:38:50 +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
Brian Barrett
9184db7239 Update ROMIO release to the one included with MPICH2-1.0.5p4, tagged in
vendor/romio as mpich2-1.0.5p4.

This commit was SVN r15544.
2007-07-21 22:08:27 +00:00
Brian Barrett
872623a527 Fix situation where we were not propogating error codes from ROMIO
into non-blocking request status fields, so it was never being
relayed to the user

This commit was SVN r15296.
2007-07-05 22:30:42 +00:00
Brian Barrett
b71b2b4b0d Make the aio detection work with cross compiling. The tests no longer
even look at the status code and basically guarantee that the aio
function was never called, so there's really no point in AC_TRY_RUN
over AC_COMPILE_IFELSE...

This commit was SVN r15033.
2007-06-13 03:16:32 +00:00
Brian Barrett
84d1512fba Add the potential for doing some basic error checking on mutexes during
single threaded builds.  In its default configuration, all this does
is ensure that there's at least a good chance of threads building
based on non-threaded development (since the variable names will be
checked).  There is also code to make sure that a "mutex" is never
"double locked" when using the conditional macro mutex operations.
This is off by default because there are a number of places in both
ORTE and OMPI where this alarm spews mega bytes of errors on a
simple test.  So we have some work to do on our path towards
thread support.

Also removed the macro versions of the non-conditional thread locks,
as the only places they were used, the author of the code intended
to use the conditional thread locks.  So now you have upper-case
macros for conditional thread locks and lowercase functions for
non-conditional locks.  Simple, right? :).

This commit was SVN r15011.
2007-06-12 16:25:26 +00:00
Brian Barrett
21e00f6f0c Clean up a couple of configure things:
* Require Autoconf 2.60 or higher and remove some cruft
    required for AC 2.59 or the AC 2.59 / AC 2.60 mix
  * Remove a bunch of now unnecessary AC_SUBST calls
  * Use the libtool-provided variables for the -I and
    library to use when compiling against ltdl

Fixes trac:1000

This commit was SVN r14652.

The following Trac tickets were found above:
  Ticket 1000 --> https://svn.open-mpi.org/trac/ompi/ticket/1000
2007-05-15 04:23:48 +00:00
Sven Stork
a04c8eb39a - Bring over the visibility feature, for a finer symbol export control
via the visibility feature that is provided by some compilers.

  Per default this feature is disabled, to enable it you need to
  configure with --enable-visibility and obviously you need a compiler
  with visibility support. Please refer to the wiki for more information.
  https://svn.open-mpi.org/trac/ompi/wiki/Visibility

This commit was SVN r14582.
2007-05-04 09:03:37 +00:00
Jeff Squyres
82caceda08 A minor change to ROMIO's configure script: make it use exactly the
same "restrict" check as the top-level OMPI configure.ac script so
that it will guarantee to always get the same result.  Therefore, the
#define for restrict will always have the same value in both
opal_config.h and romioconf.h, and we get 7 less warnings (6 in the IO
ROMIO component, 1 in ROMIO itself) when compiling with icc on Linux
(because PAC_C_RESTRICT and AC_C_RESTRICT would get different values
for the "restrict" #define in this case).

This commit was SVN r14387.
2007-04-17 03:10:06 +00:00
Jeff Squyres
51f286d737 Just like r14289 on the ORTE trunk:
Per discussions with Brian and Ralph, make a slight correction in
where components are installed. Use $pkglibdir, not $libdir/openmpi,
so that when compiled in the orte trunk, components are installed to
the right directory (because the component search patch is checking
$pkglibdir).

This commit was SVN r14345.

The following SVN revisions from the original message are invalid or
inconsistent and therefore were not cross-referenced:
  r14289
2007-04-12 11:19:42 +00:00
Galen Shipman
ebca0bb34e fix for aggregated writes
This commit was SVN r14314.
2007-04-11 22:07:19 +00:00
Jeff Squyres
85d7678350 Revert r14286; it worked for icc, but not for gcc. #$%@#$%
Sorry for configure changes during the day; I totally forgot about
that.  :-(

This commit was SVN r14288.

The following SVN revision numbers were found above:
  r14286 --> open-mpi/ompi@0083eba18e
2007-04-10 15:42:59 +00:00
Jeff Squyres
0083eba18e Comment out the PAC_C_RESTRICT test from ROMIO's configure.in script.
The top-level OMPI configure script already checks for "restrict" and
will issue a #define for it.  PAC_C_RESTRICT would also check for
restrict, but sometimes come up with a different answer than the
top-level OMPI configure script, thereby resulting in conflicting
#define's for "restrict" (e.g., icc 9.0/9.1 on linux x86-64).

So it's easiest just to remove this test from ROMIO's configure.in
script.

This commit was SVN r14286.
2007-04-10 14:50:47 +00:00
Josh Hursey
dadca7da88 Merging in the jjhursey-ft-cr-stable branch (r13912 : HEAD).
This merge adds Checkpoint/Restart support to Open MPI. The initial
frameworks and components support a LAM/MPI-like implementation.

This commit follows the risk assessment presented to the Open MPI core
development group on Feb. 22, 2007.

This commit closes trac:158

More details to follow.

This commit was SVN r14051.

The following SVN revisions from the original message are invalid or
inconsistent and therefore were not cross-referenced:
  r13912

The following Trac tickets were found above:
  Ticket 158 --> https://svn.open-mpi.org/trac/ompi/ticket/158
2007-03-16 23:11:45 +00:00
Brian Barrett
9660bb6ccc These symbols aren't actually created in ROMIO with Open MPI's configure, so
no need to have them in here.

This commit was SVN r13933.
2007-03-05 22:55:17 +00:00
Rainer Keller
0889ebd59f - Eliminate warnings, that PGI-6.2.5 issues with -Minform=inform
This commit was SVN r13840.
2007-02-28 08:36:34 +00:00
Sven Stork
d8a369936e - Fix more symbols that should be exported.
This commit was SVN r13824.
2007-02-27 15:17:17 +00:00
Brian Barrett
a34e67d743 Remove unneeded PARAM_INIT_FILE variable in configure.params files used by
components that use configure.m4 for configuration or are always built. 
The macro has not been needed since moving to configure types other than
configure.stub

Fixes trac:590

This commit was SVN r13031.

The following Trac tickets were found above:
  Ticket 590 --> https://svn.open-mpi.org/trac/ompi/ticket/590
2007-01-08 03:44:22 +00:00
Brian Barrett
6f8b366acb Rename liborte to libopen-rte and libopal to libopen-pal per telecon today
and bug #632.

Refs trac:632

This commit was SVN r12762.

The following Trac tickets were found above:
  Ticket 632 --> https://svn.open-mpi.org/trac/ompi/ticket/632
2006-12-05 18:27:24 +00:00
Jeff Squyres
e02114dcf3 Fixes trac:529.
* Create a new request type: NOOP (described below)
 * For all MPI_*_INIT functions, OBJ_NEW an ompi_request_t and set its
   type to NOOP
 * Ensure that the NOOP requests are OBJ_RELEASE'd when they are done
 * MPI_START looks at the request type; if NOOP, just return success. If
   not, call the PML start() function
 * MPI_STARTALL always pass the entire array of requests back to the PML
   (see next point)
 * Make the PMLs only process PML requests (i.e., ignore/skip anything
   that isn't of type PML -- such as the NOOP requests)
 * Add a little more param error checking in STARTALL

This commit was SVN r12338.

The following Trac tickets were found above:
  Ticket 529 --> https://svn.open-mpi.org/trac/ompi/ticket/529
2006-10-27 12:32:36 +00:00
Jeff Squyres
9ccbab464d Remove unused variable.
This commit was SVN r11918.
2006-10-01 11:51:41 +00:00
Brian Barrett
a546b6834b Only add the ROMIO source directory into DIST_SUBDIRS and SUBDIRS if
the component is configured successfully.  Otherwise, we can end up 
trying to run make in the romio directory without any Makefiles.  This
really only happens on the targets that recurse into DIST_SUBDIRS - ie
dist, maintainer-clean, and distclean

refs trac:411

This commit was SVN r11807.

The following Trac tickets were found above:
  Ticket 411 --> https://svn.open-mpi.org/trac/ompi/ticket/411
2006-09-25 23:51:13 +00:00
Brian Barrett
ddffc8748f * remove unneeded files that were included in the mpich2 tarball
This commit was SVN r11726.
2006-09-20 18:27:28 +00:00
Brian Barrett
d1402cf8f5 * Update ROMIO release to the one included with MPICH2-1.0.4p1, tagged in
vendor/romio as mpich2-1.0.4p1.

This commit was SVN r11715.
2006-09-19 16:13:46 +00:00
Rainer Keller
611f3ba408 - Fix buglet found by Feng Sheng's IO tests;
Correctly initialize the status for non-blocking io.

This commit was SVN r11672.
2006-09-15 12:37:29 +00:00
Jeff Squyres
6173e952a2 Remove these files from SVN; they should not be committed.
This will force everyone to re-autogen.  Sorry!

This commit was SVN r11616.
2006-09-11 22:43:20 +00:00
George Bosilca
3f0a7cad9e The last patch for Windows support. Mostly casting and conversion to C++ friendly headers.
This commit was SVN r11400.
2006-08-24 16:38:08 +00:00
Brian Barrett
df9273587f * romio_cb_write should also be forced to enable when optimizations are
requested

This commit was SVN r10584.
2006-06-30 15:06:10 +00:00
Brian Barrett
0031e39d72 * fix for dumb memory bug introduced in romio performance fixup code
This commit was SVN r10528.
2006-06-27 19:58:18 +00:00
Brian Barrett
9a65a7ca97 * re-add -Is necessary for VPATH builds.
This commit was SVN r10524.
2006-06-27 14:10:34 +00:00
Brian Barrett
970d858f30 * Add performance code requested by LANL, per ticket #128. Must be
explicitly enabled at run-time with the mca parameter
  io_romio_enable_parallel_optimizations set to something non-zero.
  This will enable some magic flags in Panasas if the user didn't
  set them (either on or off) and do some slightly better things
  with strided collective writes.

This commit was SVN r10516.
2006-06-26 22:26:36 +00:00
Galen Shipman
218a438509 finished the ompi_free_list_t class nightmare..
This commit was SVN r10314.
2006-06-12 22:09:03 +00:00
Galen Shipman
18dda70fd0 make ompi_free_list_item_t a class..
This will go to the 1.1 branch but will probably require a few changes as
ompi_free_list_t is different in the branch.. 

This commit was SVN r10306.
2006-06-12 16:44:00 +00:00
Brian Barrett
cc99a63169 * fix issue with PANFS not building properly - we didn't add PANFS_LIB to the
list of libraries

This commit was SVN r10279.
2006-06-09 20:41:12 +00:00
Galen Shipman
83ff3201b5 don't use rank or nprocs in error messages when we don't have them..
This should hit 1.1 and 1.0 branches.. 
Reviewed by Brian

This commit was SVN r10164.
2006-06-01 14:24:11 +00:00
Brian Barrett
4904e34a52 set datarootdir, necessary for Autoconf-2.60 which will define some variables
based upon this value (e.g., datadir, docdir).

Submitted by: Ralf Wildenhues
Reviewed by: Brian Barrett

This commit was SVN r10133.
2006-05-31 03:43:55 +00:00
Brian Barrett
6026fc98f6 * Fix M4 quoting so that AC 2.60 won't complain
Submitted by: Ralf Wildenhues
Reviewed by: Brian Barrett

This commit was SVN r10129.
2006-05-31 03:39:18 +00:00
Jeff Squyres
15758d5f29 Fix AC_DEFINE to match what it's supposed to be defining
This commit was SVN r9952.
2006-05-17 03:26:43 +00:00
Brian Barrett
f2a6e63d82 Fix for the double iWrite problem Edgar found with ROMIO, plus some other
things I found:
  - Locking should prevent it from happening (I think), but there was a 
    race condition in the component progress -- a callback could be
    triggered that would free the request before it was off the outstanding
    requests list.
  - When pulling a request off the component free list, make sure to
    reinitialize the free_called state on the IO request.  This was
    what was causing Edgar's failures
  - In the request cleanup code, pull the request out of the per-
    component free list before returning to the free list.  This
    probably would cause asserts to fire, although it looks like
    I wrote the loops such that it would have been memory safe if
    the asserts didn't fire.  Not really sure why I did that, but
    let's try it again...

This should go to the v1.0 and v1.1 branches.

This commit was SVN r9913.
2006-05-13 02:30:40 +00:00
Jeff Squyres
a6d52ceed1 Minor correction in use of mca param API; otherwise the param is not found.
This commit was SVN r9903.
2006-05-11 22:12:29 +00:00
Brian Barrett
1d337831d0 Fixes for more issues found by Dries Kimpe:
- We had a bad conditional choice, such that asking for pvfs2 would
    result in pvfs trying to build as well, which was going to fail.
  - We didn't try to link in the libray for PVFS2's adio component.
  - We were clobbering romio_flags, so it was impossible to pass
    flags to romio (like the selection of filesystems)

This commit was SVN r9854.
2006-05-09 09:30:09 +00:00
Brian Barrett
7dddc6d54c Define the constants needed by ROMIO to activate support code for
DARRAY / SUBARRAY.

This commit was SVN r9851.
2006-05-08 16:33:31 +00:00