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

49 Коммитов

Автор SHA1 Сообщение Дата
Jeff Squyres
fd61d78599 Add two MCA parameters to the MPI level to control behavior during
MPI_ABORT.  From the ompi_info output:

       MCA mpi: parameter "mpi_abort_delay" (current value: "0")
                If nonzero, print out an identifying message when
                MPI_ABORT is invoked (hostname, PID of the process
                that called MPI_ABORT) and delay for that many seconds
                before exiting (a negative delay value means to never
                abort).  This allows attaching of a debugger before
                quitting the job.
       MCA mpi: parameter "mpi_abort_print_stack" (current value: "0")
                If nonzero, print out a stack trace when MPI_ABORT is
                invoked

This commit was SVN r9487.
2006-03-31 00:31:15 +00:00
Brian Barrett
566a050c23 Next step in the project split, mainly source code re-arranging
- move files out of toplevel include/ and etc/, moving it into the
    sub-projects
  - rather than including config headers with <project>/include, 
    have them as <project>
  - require all headers to be included with a project prefix, with
    the exception of the config headers ({opal,orte,ompi}_config.h
    mpi.h, and mpif.h)

This commit was SVN r8985.
2006-02-12 01:33:29 +00:00
Brian Barrett
b1d2424013 Merge in present work on the MPI-2 onesided chapter. The current code is not
complete, but stable enough that it will have no impact on general development,
so into the trunk it goes.  Changes in this commit include:

 - Remove the --with option for disabling MPI-2 onesided support.  It
   complicated code, and has no real reason for existing
 - add a framework osc (OneSided Communication) for encapsulating
   all the MPI-2 onesided functionality
 - Modify the MPI interface functions for the MPI-2 onesided chapter
   to properly call the underlying framework and do the required
   error checking
 - Created an osc component pt2pt, which is layered over the BML/BTL
   for communication (although it also uses the PML for long message
   transfers).  Currently, all support functions, all communication
   functions (Put, Get, Accumulate), and the Fence synchronization
   function are implemented.  The PWSC active synchronization
   functions and Lock/Unlock passive synchronization functions are
   still not implemented

This commit was SVN r8836.
2006-01-28 15:38:37 +00:00
Brian Barrett
60ac1cb5f4 print stack traces (when available) for opal and orte processes, as well as
ompi processes.  Also add SIGABRT to the list of signals that are intercepted
to print out pretty messages.

This commit was SVN r8672.
2006-01-11 04:36:39 +00:00
Tim Woodall
7eade5b856 added SIGFPE to default list of signals that generate a backtrace (where supported)
This commit was SVN r8632.
2006-01-04 16:02:45 +00:00
Brian Barrett
45a3eccec6 re-enable the stack-trace functionality (it had been inadvertently disabled
in a merge a long time ago).  Set default signals to print a stack trace from
none to SIGBUS,SIGSEGV.

This commit was SVN r8603.
2005-12-22 19:39:50 +00:00
George Bosilca
53235eb34d The Windows protection is called __WINDOWS__ (and it's a mix between WIN32 and _WIN32).
This commit was SVN r8440.
2005-12-10 22:10:39 +00:00
George Bosilca
58ba8f033d Handle the case when there is no F77 support available for us.
This commit was SVN r8238.
2005-11-22 21:52:14 +00:00
Jeff Squyres
9812694227 Ensure to instantiate MPI_F_STATUS_IGNORE and MPI_F_STATUSES_IGNORE.
Thanks to Anthony Chan for pointing this out.

Note that these will only work for the Fortran compiler that Open MPI
was configured with -- since these values, are, by definition,
single-value, they cannot support all 4 values that Open MPI may
generate for the different Fortran name-mangling schemes.  A lengthy
comment in ompi_mpi_init.c explains this in more detail.  Added to the
README to explain this situation, as well as the forthcoming
.TRUE. Fortran fixes.

This commit was SVN r8231.
2005-11-22 15:24:39 +00:00
Jeff Squyres
ebd97afdac - Make the types of the MCA param variables be "int", not "int32_t"
- Separate out the registration of the MCA params into a standalong
  function that is invoked by ompi_mpi_init() (so that ompi_info can
  see these params)
- Rename the params to "mpi_ddt_*" instead of "datatype_*" so that
  they fit into the common naming scheme

This commit was SVN r8196.
2005-11-18 22:51:11 +00:00
George Bosilca
932c67aeb3 MPI_COMM_WORLD should be the first communicator who get created even before MPI_COMM_SELF and MPI_COMM_NULL.
This commit was SVN r8132.
2005-11-12 03:47:17 +00:00
Jeff Squyres
42ec26e640 Update the copyright notices for IU and UTK.
This commit was SVN r7999.
2005-11-05 19:57:48 +00:00
Edgar Gabriel
3633605010 moving op_init further up in ompi_mpi_init, since it is required when
quering some of the collective components. Up to now, it just worked
somehow, but now with correct reference counting for ops in place, it
refused :-)

This commit was SVN r7866.
2005-10-25 18:33:48 +00:00
Jeff Squyres
a459659a33 Print the string name of the return code
This commit was SVN r7789.
2005-10-17 20:47:44 +00:00
Brian Barrett
1302cb4072 The next in a long line of crazed build system changes from Brian. This was
originally suggested by Ralf Wildenhues, to try to speed autogen, configure,
and make (and possibly even make install).  Use automake's include directive
to drastically reduce the number of Makefile files (although the number of
Makefile.am files is the same - most are just included in a top-level
Makefile.am).  Also use an Automake SUBDIRs feature to eliminate the
dynamic-mca tree, which was no longer really needed.  This makes adding
a framework easier (since you don't have to remember the dynamic-mca
tree) and makes building faster (as make doesn't have to recurse through
the dynamic-mca tree)

This commit was SVN r7777.
2005-10-17 00:21:10 +00:00
Jeff Squyres
fcef1774d5 Per advice from Ralf W., change the pkgdata declarations in
Makefile.am's to be a *slightly* more correct (and, more importantly,
less error-prone) construct.

This commit was SVN r7554.
2005-09-30 13:32:39 +00:00
Jeff Squyres
285ded5655 - Ensure to have !initialized || finalized test *first*
- If we have an NS error, don't return an error -- this function's
  purpose is to abort :-)
- s/abort()/exit(1)/ so that we don't drop massive corefiles

This commit was SVN r7524.
2005-09-27 20:26:38 +00:00
David Daniel
e4985c2a07 Moving totalview spin to the very end of mpi_init
This commit was SVN r7444.
2005-09-20 15:22:15 +00:00
Galen Shipman
d932cfd342 merge of rcache work into the trunk.. lotsa fun ;-)..
I regression tested before the merge, I will regression test tonight and
correct issues that might have crept in. 

This commit was SVN r7329.
2005-09-12 22:28:23 +00:00
George Bosilca
948683215b And more fixes ...
This commit was SVN r7321.
2005-09-12 20:25:01 +00:00
Brian Barrett
ed56e743b7 * update configure.ac to use the modern version of AC_INIT and
AM_INIT_AUTOMAKE, instead of the deprecated version.
* Work around dumbness in modern AC_INIT that requires the version
  number to be set at autoconf time (instead of at configure time, as
  it was before).  Set the version number, minus the subversion r number,
  at autoconf time.  Override the internal variables to include the r
  number (if needed) at configure time.  Basically, the right thing
  should always happen.  The only place it might not is the version
  reported as part of configure --help will not have an r number.
* Since AM_INIT_AUTOMAKE taks a list of options, no need to specify
  them in all the Makefile.am files.
* Addes support for subdir-objects, meaning that object files are put
  in the directory containing source files, even if the Makefile.am is
  in another directory.  This should start making it feasible to
  reduce the number of Makefile.am files we have in the tree, which
  will greatly reduce the time to run autogen and configure.

This commit was SVN r7211.
2005-09-07 05:54:53 +00:00
Jeff Squyres
3bf265eeee Minor fix
This commit was SVN r7124.
2005-09-01 09:50:19 +00:00
Ralph Castain
96f4bb7a63 Hey, sports fans!! Guess what??
Here's the huge registry check-in you've all been waiting for with baited breath. The revised version sends a single message to all processes at the various stage gates, thus making the startup much more scalable. I could provide you with all the tawdry details, but won't for now - you are welcome to ask, though, and I'll merrily bore your ears to tears.

In addition, the commit contains the following:

1. set the ignore properties on ompi/debuggers and orte/mca/pls/poe

2. Added simplified subscribe and put functions to the registry's API. I have also converted all of the ompi functions that registered subscriptions to the new API, and caught their associated put's as well.

In a follow-on commit, I'll be adding support for George's hetero arch registry subscription (wanted to get this one in first).

This commit was SVN r7118.
2005-09-01 01:07:30 +00:00
David Daniel
227947fc51 Moving MPI-side TotalView support into a separate directory
ompi/debuggers/

so that compilation options can be more easily controlled.

This commit was SVN r7113.
2005-08-31 20:35:15 +00:00
David Daniel
995641c1e6 Don't initialize proctable more than once (since the stage gate 1 trigger
seems to get fired at least twice).

This commit was SVN r7101.
2005-08-31 00:21:55 +00:00
David Daniel
a5d9199e7f Adding a simple hook for TotalView that is activated if a particular MCA
parameter is set.

orterun/MPI integration still not quite working.

This commit was SVN r7097.
2005-08-30 17:34:23 +00:00
Jeff Squyres
c9cdb36b0b Finally get this right: move orte_sys_info.[ch] back into the orte
tree.
- fix up #include's throughout the tree (yay contrib/search_replace.pl!)
- remove a few extraneous #include's
- remove orte_sys_info*() from opal_init()/opal_finalize() (it's
  already in orte_init_stage1() and orte_system_finalize())
- remove dependencies in opal on orte_system_info -- util/os_path.c
  and util/os_create_dirpath.c (they only used path_sep, anyway --
  easily changed to #defines)

This commit was SVN r7059.
2005-08-26 21:03:41 +00:00
Josh Hursey
4eefb33182 Some param changes:
- Change orte_base_infrastructre to orte_infrastructre to conform with 
  ompi_info's needs
- Move MCA Param registration in ORTE to a centralized function that is 
  called first in orte_init_stage1
- Set the infrastructre flag as an argument to orte_init
- Adjust initalization functions to properly pass down the infrastructre
  flag.

This commit was SVN r7053.
2005-08-26 20:13:35 +00:00
Jeff Squyres
900631e9f9 - Add a first cut of the memory affinity (maffinity) framework. It's
API is still a bit unstable and may change.
- Add a primitive "first use" component that simply has each process
  "touch" the pages that they want to use, thereby [hopefully] locking
  them locally to a specific processor
- Add hooks in ompi_mpi_init to enable memory affinity when processor
  affinity is used.
- Added hooks in ompi_mpi_finalize to shut down memory affinity when
  it was initialized during ompi_mpi_init.
- Added right hooks in ompi_info to display maffinity components.

This commit was SVN r7044.
2005-08-26 10:56:39 +00:00
Jeff Squyres
626389254e Fix typo
This commit was SVN r7040.
2005-08-25 20:24:22 +00:00
Brian Barrett
dfdb5dc12a * high resolution, low latency timers for a number of platforms, plus mods
to opal_progress() to use the timers instead of a tick count for deciding
  whether to call the event loop or not.  Currently supported platforms are:

     - solaris (x86 / sparc)
     - Linux (x86 / x86_64 / IA64)
     - Mac OS X (x86 / Power PC)

This commit was SVN r6922.
2005-08-18 05:34:22 +00:00
Jeff Squyres
a7058bbe43 Be friendly -- if paffinity is requested and we are unable to set it
(for any reason), print a friendly warning message.

This commit was SVN r6907.
2005-08-16 17:18:56 +00:00
Jeff Squyres
409b9e73b2 Remove debugging printf. Doh!
This commit was SVN r6905.
2005-08-16 16:20:55 +00:00
Jeff Squyres
f5cc86fa07 - Add MCA param mpi_paffinity_alone, which, when nonzero, will assume
that this ORTE job is the only one on the nodes involved, and if
  told what processors to assign the processes to, will bind MPI
  processes to specific processors.
- Convert #include's to new style
- Convert some <tab>'s to spaces

This commit was SVN r6904.
2005-08-16 16:17:52 +00:00
Jeff Squyres
c465eb8567 Rename opal/threads/thread.h -> opal/threads/threads.h to avoid a
naming conflict with Solaris' <thread.h>

This commit was SVN r6879.
2005-08-15 11:02:01 +00:00
Jeff Squyres
cf16a521c8 Ensure to get ompi/include/constants.h
This commit was SVN r6845.
2005-08-12 21:42:07 +00:00
George Bosilca
8b93cb7661 Rename all the functions starting with mca_base_modex to mca_pml_base_modex.
Change all the places where they are used to fit the new name.

Remove the code to check the remote arch from the PML. We will have a GPR mechanism
in ompi_mpi_initialize to do that.

This commit was SVN r6750.
2005-08-05 18:03:30 +00:00
Jeff Squyres
4c1dd716c7 Change and add new features to the MCA parameter system:
- new preferred API calls for registering MCA parameters are
  mca_base_param_reg_{int|string} and
  mca_base_param_reg_{int|string}_name.
- See opal/mca/base/mca_base_param.h for docs on new calls.  
- Can now register and lookup a value at the same time.
- Can now mark a parameter "read only" at registration time
- Can now mark a parameter "internal" at registration time
- Can now associate a help message with the parameter at registration
  time; displayed in the ompi_info output.

The old API calls are still available for backwards compatibility
(mca_base_param_register_{int|string}.  They will eventually be
removed -- all developers are encouraged to use the new APIs from here
on out and replace any old calls with the new API.

Some params were also renamed -- the previous convention of using
"base_" as a prefix for any param that was not associated with a
component is henceforth deprecated.  Instead, use one of the following
prefixes:

mca: for anything in the MCA base itself
opal: for anything in OPAL
orte: for anything in ORTE
mpi: for anything in OMPI

This commit was SVN r6698.
2005-08-01 22:38:17 +00:00
Ralph Castain
4e79a51395 Add a job_info segment to the system that holds a container for each job. Within each container is a keyval indicating the job state (i.e., all procs at stage1, finalized, etc.). This provides a rough state-of-health for the job.
This required a little fiddling with a number of areas. Biggest problem was that it uncovered a potential for an infinite loop to be created in the registry. If a callback function modified the registry, the registry checked the triggers to see if anything had fired. Well, if the original callback was due to a trigger firing, that condition hadn't changed - so the trigger fired again....which caused the callback to be called, which modified the registry, which checked the triggers, etc. etc.

Triggers are now checked and then "flagged" as being "in process" so that the registry will NOT recheck that trigger until all callbacks have been processed. Tried doing this with subscriptions as well, but that caused a problem - when we release processes from a stagegate, they (at the moment) immediately place data on the registry that should cause a subscription to fire. Unfortunately, the system will just hang if that subscription doesn't get processed. So, I have left the subscription system alone - any callback function that modifies the registry in a fashion that will fire a subscription will indeed fire that subscription. We'll have to see if this causes problems - it shouldn't, but a careless user could lock things up if the callback generates a callback to itself.

Also fixed the code that placed a process' RML contact info on the registry to eliminate the leading '/' from the string.

This commit was SVN r6684.
2005-07-29 14:11:19 +00:00
George Bosilca
8e0d8a0e99 The datatype should be initialized as soon as possible. Inside we detect the local architecture and
create the local convertor. They will get used on the ompi_proc_init.

This commit was SVN r6680.
2005-07-29 00:15:26 +00:00
George Bosilca
3b52a31e1f Make some compilers quiet. Otherwise they complain about uninitialized variables even if
the logic inside prevent an execution path where they can be used uninitialized.

This commit was SVN r6560.
2005-07-20 06:47:10 +00:00
George Bosilca
6aa956241f Solve the issues when several PML are available. The main problem here come from the fact that an PML
is a lot more difficult than a PTL, and it can adapt it's behavior to the level of threading required
by the user. In this case the behavior is the priorit of the PML. Therefore this information is never
availale before the init function (of the PML) is called. So I try to keep nearly the same structure
as it was before, with one change. When a PML get initialized it does not necessarily means it has been
selected, so it does not means it has to create all it's internal structures (and select the PTL and
all this stuff). They can all be done later, when a PML knows that it definitively get selected
(when the enable function is called with the argument set to true). Thus, in the case of a PML close
one have to check if the PML has been selected or not before trying to clean up the internals.

I had to change the MPI_Init function to allow the PML to be enabled before we start adding procs inside.

This commit was SVN r6434.
2005-07-12 05:40:56 +00:00
Josh Hursey
de5e0d4f2c (Re-)Added two MCA Parameters that must have been lost in the merge way back when:
* mpi_show_mca_params
   If set to true, this turns on the dumping of all MCA parameters when MPI_INIT is called. 
   Only the 'rank 0' processes will print the parameters.

* mpi_show_mca_params_file
   (This value is only used if the first argument is set to true) If this value is non-NULL 
   it specifies the file to put the dump into. This file can then be used as input to mpirun 
   for debugging purposes. If this value is not set (and mpi_show_mca_params is set) then 
   the parameters are dumped to stdout.

This commit was SVN r6401.
2005-07-08 21:01:37 +00:00
Brian Barrett
170ef8af1f * rename ompi_show_help to opal_show_help
* rename ompi_stacktrace to opal_stacktrace
* rename ompi_strncpy to opal_strncpy

This commit was SVN r6336.
2005-07-04 02:38:44 +00:00
Brian Barrett
a13166b500 * rename ompi_output to opal_output
This commit was SVN r6329.
2005-07-03 23:31:27 +00:00
Brian Barrett
23b687b0f4 * rename ompi_event to opal_event
This commit was SVN r6328.
2005-07-03 23:09:55 +00:00
Brian Barrett
39dbeeedfb * rename locking code from ompi to opal
This commit was SVN r6327.
2005-07-03 22:45:48 +00:00
Brian Barrett
ccd2624e3f * rename ompi_progress to opal_progress
This commit was SVN r6326.
2005-07-03 21:57:43 +00:00
Jeff Squyres
35c141aef6 While we're moving directories around, move ompi/mpi/runtime ->
ompi/runtime, for consistency and parallel-ness will orte/runtime.
Also remove a few useless #includes along the way.

This commit was SVN r6317.
2005-07-03 12:07:29 +00:00