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

116 Коммитов

Автор SHA1 Сообщение Дата
George Bosilca
b51b87a4aa The correct way to compute the difference between the actual size and the
expected size, based on the comment few lines before.

This commit was SVN r12235.
2006-10-20 19:33:55 +00:00
George Bosilca
d7268557a8 Complete the SM BTL changes. Now all displacements are ptrdiff_t and there is
no warnings about any issue with signed/unsigned.

This commit was SVN r12234.
2006-10-20 19:28:12 +00:00
George Bosilca
06563b5dec Last set of explicit conversions. We are now close to the zero warnings on
all platforms. The only exceptions (and I will not deal with them
anytime soon) are on Windows:
- the write functions which require the length to be an int when it's
  a size_t on all UNIX variants.
- all iovec manipulation functions where the iov_len is again an int
  when it's a size_t on most of the UNIXes.
As these only happens on Windows, so I think we're set for now :)

This commit was SVN r12215.
2006-10-20 03:57:44 +00:00
George Bosilca
e81d38f322 Remove a function that was just a proof of concept. The same approach is
not used by the TotalView support.

This commit was SVN r12214.
2006-10-20 03:34:16 +00:00
George Bosilca
33f300f636 I don't know what it was supposed to do but I'm quite sure it didn't do it correctly.
Just follow inc_num and you will understand. Now _resize will grow the list to match
the required number of elements as described in the comment in the .h file.

This commit was SVN r12074.
2006-10-10 14:47:51 +00:00
Pavel Shamis
e400da01bc Fix of typo error introduced in revision 12053.
Reviewed by: Jeff

This commit was SVN r12071.
2006-10-10 11:58:29 +00:00
Brian Barrett
51b2a0fd3f A couple of changes to improve shared memory behavior when resources get
constrained:

  * Make sure we always have a number of eager fragments available
    that scales with the number of processes communicating with
    a given proc over shared memory
  * Use FREE_LIST_GET instead of FREE_LIST_WAIT to return an
    error to the PML when resource exhaustion occurs
  * Don't dereference the frag during alloc unless we're sure
    it's not NULL

Reviewed by: Galen

Refs trac:413

This commit was SVN r12053.

The following Trac tickets were found above:
  Ticket 413 --> https://svn.open-mpi.org/trac/ompi/ticket/413
2006-10-06 21:13:49 +00:00
George Bosilca
2411ad74e4 Fix the bug #315. If there are multiple threads waiting for a free_list item
then use broadcast in order to wake them up. If there is only one then use signal
(which is supposed to be faster) and of course if there are no threads
waiting then just continue.

This commit was SVN r12049.
2006-10-06 16:17:50 +00:00
George Bosilca
2029284820 Typo.
This commit was SVN r11695.
2006-09-18 17:57:55 +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
David Daniel
59f2d86c36 * Move Gleb's rcache work from the gleb-rcache branch to the trunk
This commit was SVN r11198.
2006-08-15 18:40:08 +00:00
Gleb Natapov
383694c68d Add support to get alignemnt buffers from free_list_t. Convert openib BTL to new interface.
This commit was SVN r10899.
2006-07-20 14:39:05 +00:00
George Bosilca
b2a9d15db6 Broadcast the condition (not signal it) as we add multiple elements to the
free list.

This commit was SVN r10850.
2006-07-17 17:07:20 +00:00
George Bosilca
6b7467ea4d NULL is not an option ...
This commit was SVN r10779.
2006-07-13 07:38:35 +00:00
George Bosilca
7602066c4d The next and prev items cannot be NULL. The limit is the sentinel item.
This commit was SVN r10778.
2006-07-13 07:32:13 +00:00
George Bosilca
a43eb4b43e It's not about how much memory we use, but about how we use it.
Keeping the cache misses as low as possible is always a good approach.
The opal_list_t is widely used, it should be a highly optimized class.
The same functionality can be reached with one one sentinel instead
of 2 currently used.
I don't have anything against the STL version, but so far nothing can
compare with the Knuth algorithm. I replace the current implementation
with a modified version of the Knuth algorithm (the one described in
The Art of Computer Programming). As expected, the latency went down.

This commit was SVN r10776.
2006-07-13 04:56:15 +00:00
Gleb Natapov
012d95d195 If ompi_free_list_grow fails wait until resources are available instead of
spinning without progress.

This commit was SVN r10520.
2006-06-27 09:23:51 +00:00
Galen Shipman
8855e5b73a Fixes for DR as well as better diagnostic..
Successfully passing the intel test suite with/without induced errors/drops. 

This commit was SVN r10518.
2006-06-26 22:29:29 +00:00
George Bosilca
9eb023a5c2 OK my last commit was ... kind of wrong. It only worked if the element_size
was smaller than the CACHE_LINE_SIZE. Here is the version that works.

In fact this works on 2 steps. First we set the element size to something
multiple of the desired alignment. Then when we allocate memory, we compute
the total size, and we will align each of the elements (we allocate
multiple of them every time) to the CACHE_LINE_SIZE.

This commit was SVN r10479.
2006-06-22 14:47:07 +00:00
George Bosilca
c71f6c9765 All elements will be aligned to the CACHE_LINE_SIZE define (currently 128
bytes). The simplest way to make sure they are aligned is to update
the size of the basic element to a multiple of the desired alignment.
It will use a little bit more memory, but the improvements on the SM BTL
seems quite interesting.

This commit was SVN r10478.
2006-06-22 14:07:14 +00:00
George Bosilca
aca71521db Complete the move of the mpool registration from opal_list_item_t to the
ompi_free_list_item_t.

This commit was SVN r10354.
2006-06-14 17:43:50 +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
George Bosilca
100f6ce56b The trylock return 0 not 1 if the lock was grabbed. My logic around this trylock
was just wrong.

This commit was SVN r9946.
2006-05-16 23:13:48 +00:00
Tim Woodall
14293acce0 - added cleanup to destructor
- added copy routine to copy state from one sequence tracker into another

This commit was SVN r9813.
2006-05-04 15:14:47 +00:00
George Bosilca
e68382a66d Add a new debug function. It will parse all the items alocated by this
free list. It use the size attached to the free list, and the internal
memory segments to find out all the items allocated by this free list.

This commit was SVN r9669.
2006-04-20 19:53:45 +00:00
George Bosilca
b92e78761a I did it under pressure !!!
The free lst using atomic operations. I didn't want to completely
change the behavior, so we still use a mutex for the extreme cases (like
no more available items and we cannot allocate more). I test it for a
while on non multi-threading environment, but not enough on a multi-threaded
build.

This commit was SVN r9623.
2006-04-12 23:27:38 +00:00
George Bosilca
0c58d0f519 Mixing declarations and code is not allowed by the ISO C90.
This commit was SVN r9494.
2006-03-31 03:21:28 +00:00
George Bosilca
994959345a The if outside the loop not inside as we test for a "constant" thing.
This commit was SVN r9488.
2006-03-31 00:38:11 +00:00
Galen Shipman
e01cf0a166 Seperate out sequence tracking list as stand alone class.
This commit was SVN r9391.
2006-03-23 17:02:17 +00:00
Tim Woodall
bd870519fd - modified convertor copy_and_prepare routines to accept an addition
flag, new flags to be included when convertor is initialized
- modified pml/btl module defs and added stub functions for diagnostic
  output routines to dump state of queues / endpoints
- updates to data reliability pml

This commit was SVN r9329.
2006-03-17 18:46:48 +00:00
Tim Woodall
bab5b2a63e check for resource leak
This commit was SVN r9310.
2006-03-16 17:27:54 +00:00
Brian Barrett
34c901dcb2 * fix race condition due to poorly placed memory barriers that was causing
crashes with the shared memory btl

This commit was SVN r9066.
2006-02-16 20:14:33 +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
George Bosilca
d5d16c2162 A slighy faster version. The if outside the for not inside.
This commit was SVN r8761.
2006-01-19 23:57:03 +00:00
George Bosilca
bf266c6109 Rollback the 8682 commit until we figure out the correct way to do it. It break several things
inside (like MPI_Wait* functions).

This commit was SVN r8686.
2006-01-13 22:02:40 +00:00
Rainer Keller
95f886b6ab - Protect callers of opal/ompi_condition_wait from spurious wakeups,
possible when with building with pthreads.
   Compiled on Linux ia32 with and without
   --enable-progress-threads

This commit was SVN r8682.
2006-01-12 17:13:08 +00:00
Jeff Squyres
425d255c05 Add documentation about what is happening in this class.
This commit was SVN r8138.
2005-11-13 12:56:38 +00:00
Jeff Squyres
7643b7b459 More changes for correctness of the sm btl.
- remove dead code that isn't used anywhere (originally ompi_fifo_t
  was going to be a generalized class, but now it's exclusively used
  in the sm stuff, so there's no point in the generalized code that
  definitely *won't* work with the sm btl, or is not being used now
  [SVN always has history so we can go back])
- had to add an interprocess lock in the area where the writer may
  create a new circular buffer to ensure that the reader's tail
  doesn't accidentally end up back in the same old buffer while the
  head continues on to a new circular buffer (this was what was
  happening to cause some intel tests to hang -- e.g., MPI_Scan_c,
  MPI_Send_fairness_c and MPI_Isend_fairness_c).  Unbelievably, this
  may actually *increase* performance because it may order things
  better.  Will do performance testing tomorrow.  We're fairly certain
  that this lock can probably be removed and the code fixed in a
  different way, but we're under a deadline and correctness comes
  first, so it's been added to the to-do list to come back and
  re-examine this case later.

This commit was SVN r8136.
2005-11-13 05:00:22 +00:00
Jeff Squyres
97b97f84b8 Next checkpoint in the sm btl fixes:
- Add big comment about a general overview of what the sm btl is doing
- random small code cleanups
- fix instances of mca_btl_sm[0] to mca_btl_sm[1] where relevant
- remove a lot of unused, confusing, and incorrect interface functions
  from ompi_fifo.h and ompi_circular_buffer.h.  These functions, if
  they were used, would not work properly with the scheme that the sm
  btl uses with the fifos (i.e., receiver makes right -- if necessary)
- add some missing offset computations in the fifo and circular buffers
- change the types of offsets to be ssize_t, not size_t
- remove an offset parameter from a function that didn't need it

This commit was SVN r8135.
2005-11-12 22:32:09 +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
Tim Woodall
3bd5b81dfa Submitted: Gleb Natapov
This commit was SVN r7899.
2005-10-27 17:48:40 +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
Tim Woodall
c05ef28f6e - added routine to ompi_pointer_array to remove array contents
- corrected memory hook callback to catch all allocations (need to optimize this)
- don't attempt to consolidate allocations

This commit was SVN r7600.
2005-10-03 23:29:26 +00:00
Brian Barrett
d81726833e * Add memory barriers for shared memory. Rich and I think we got them
all and the Intel tests pass slightly oversubscribed.

This commit was SVN r7431.
2005-09-19 16:28:25 +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
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
Brian Barrett
492aeecd11 * track the actual allocations within the ompi and opal free_lists, so that
we can free all allocated memory when the free_list is destructed.  Fixes
  a whole bunch of memory leaks...

This commit was SVN r7173.
2005-09-03 19:46:44 +00:00
Brian Barrett
a9863e5ff5 * properly construct / destruct the condition variable in the free list
structures

This commit was SVN r7153.
2005-09-02 16:00:42 +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
Galen Shipman
ba82bc11bc bug fixes and configure check for topspin directory structure..
This commit was SVN r6767.
2005-08-08 19:10:36 +00:00
Brian Barrett
46245aaac1 * rename orte_os_create_dirpath to opal_os_create_dirpath
* rename orte_os_path to opal_os_path
* rename ompi_path_find to opal_path_find
* rename ompi_pow2 to opal_pow2

This commit was SVN r6334.
2005-07-04 01:59:52 +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
39dbeeedfb * rename locking code from ompi to opal
This commit was SVN r6327.
2005-07-03 22:45:48 +00:00
Brian Barrett
9da0b4fe1d * rename all the atomic functions from ompi to opal
This commit was SVN r6325.
2005-07-03 21:38:51 +00:00
Brian Barrett
764a9314db * rename ompi_value_array opal_value_array
This commit was SVN r6323.
2005-07-03 16:38:52 +00:00
Brian Barrett
761402f95f * rename ompi_list to opal_list
This commit was SVN r6322.
2005-07-03 16:22:16 +00:00
Brian Barrett
499e4de1e7 * rename ompi_object and ompi_class to opal_object and opal_class
This commit was SVN r6321.
2005-07-03 16:06:07 +00:00
Brian Barrett
8cad33db40 * finish modex move
* fix protection in opal_free_list.h
* Fix some makefiles

This commit was SVN r6311.
2005-07-03 00:52:18 +00:00
Brian Barrett
8077da277b * move ompi_rb_tree from opal to ompi since it's only used in ompi, and should
have the ompi_free_list instead of the opal_free_list
* Change orte to use opal_free_list instead of ompi_free_list

This commit was SVN r6307.
2005-07-02 16:46:27 +00:00
Jeff Squyres
959a08bf42 Compromise:
- move mpool and allocator frameworks back to ompi (from opal)
- specialize the ompi_free_list class to use an mpool instance
- un-specialize opal_free_list to *not* use mpool; just use malloc/free

This commit was SVN r6292.
2005-07-02 15:35:34 +00:00
Jeff Squyres
bf318e394c Move some OMPI-specific classes from opal->ompi
This commit was SVN r6288.
2005-07-02 15:21:32 +00:00
Jeff Squyres
aa056f7bfd First cut of OMPI Makefile.am's, plus a few more catchup updates in orte
This commit was SVN r6286.
2005-07-02 15:06:47 +00:00
Jeff Squyres
3c99cf301a - Remove some empty directories (from before the directory re-org)
- Add zero-length Makefile.am's so that we can plug them into
  configure.ac now and not have to keep editing it

This commit was SVN r6273.
2005-07-02 14:13:35 +00:00
Jeff Squyres
05d7543b4e Move a small number of specialized classes back to ompi
This commit was SVN r6270.
2005-07-02 13:44:20 +00:00