1
1

230 Коммитов

Автор SHA1 Сообщение Дата
George Bosilca
53a5d3df0f Remove useless lines.
This commit was SVN r10500.
2006-06-26 19:00:37 +00:00
George Bosilca
a514cdc068 Always limit the size of the RDMA transfer to the maximum amount supported
by the BTL (btl_max_rdma_size). Now the PUT protocol is pipelined even if there
is just one network between the 2 peers. Unfortunately, this problem is present
the 1.1 (no pipeline for the PUT protocol).

This commit was SVN r10499.
2006-06-26 19:00:07 +00:00
George Bosilca
8cd4718198 Generate the PERUSE PERUSE_COMM_REQ_XFER_BEGIN event only when there is some
data to transfer.

This commit was SVN r10498.
2006-06-26 18:57:55 +00:00
George Bosilca
31365fa799 Use the RDMA limit not the eager one when we schedule a receive (for the
PUT protocol).

This commit was SVN r10456.
2006-06-21 15:51:56 +00:00
George Bosilca
ec28040c58 Remove all useless assignment (now they are done inside the macro). Protect one
call to the _UNPACK macro, in the case where the length of the received data
is zero. This might happens on the PUT protocol.

This commit was SVN r10431.
2006-06-20 14:16:52 +00:00
George Bosilca
f38480f1d1 Set the recv_bytes value in all the cases. Somehow the PERUSE macro
contained an error, so now it hould be back again.

This commit was SVN r10430.
2006-06-20 14:14:04 +00:00
George Bosilca
dee2a7a08d On this branch the rdma_offset should be set. The send_offset is *anyway*
already set in the _START macro.

This commit was SVN r10429.
2006-06-20 14:12:32 +00:00
Brian Barrett
c9e8dbc10e * fix for multi-nic case with put protocol -- index will be 1 for the first
put request if we have more than one nic

This commit was SVN r10397.
2006-06-16 22:25:04 +00:00
Galen Shipman
5d71c149c2 Another fix for PML request completion when local network completion can occur
out of order.. 

Reviewed by Brian.. needs to hit 1.1 

This commit was SVN r10353.
2006-06-14 16:55:35 +00:00
Galen Shipman
0eddad6849 Handle out of order completion/receives when marking completion...
this is a fix for #107... needs to go to the 1.1 branch.. 

This commit was SVN r10331.
2006-06-13 16:57:41 +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
Gleb Natapov
48d348b577 Don't complete send request before we've got completion on the first rndv packet.
Sender can receive and complete PUT request before it gets completion on the first rndv packet. senreq struct may be reused for the next MPI_Send and unexpected completion mess up the things. I sometimes got SEGV and sometimes data corruption.

This commit was SVN r10301.
2006-06-12 14:00:43 +00:00
George Bosilca
7d1feffbf7 The real solution. If the sendreq->req_send.req_bytes_packed is zero then there
is no data to be trasfered. And this is the condition which lead to a non
initialized convertor.

This commit was SVN r10299.
2006-06-12 06:18:18 +00:00
George Bosilca
c959c2f214 Don't reset the convertor's position if it wasn't initialized before. This can
only happens for zero byte persistent requests.

This commit was SVN r10298.
2006-06-12 06:14:35 +00:00
George Bosilca
95d0395578 I'm skeptical about the ability of the compiler to correctly optimize the
loop local variables.

This commit was SVN r10019.
2006-05-23 03:21:15 +00:00
George Bosilca
b8ef0cc749 Minor cleanups.
This commit was SVN r10001.
2006-05-21 05:55:21 +00:00
George Bosilca
e658557d52 Move the convertor creation out of th critical path. If we expect a
message from a known peer (not MPI_ANY_SOURCE) then we can attach the
remote proc and initialize the convertor as soon as we know the data-type,
and the count (so basically in the _INIT macro). If it's not the case, then
create them in the _MATCHED macro (as in the original version). Of course,
beforeinitializing the convertor we check that there will be some data
in the message.

This commit, plus the convertor improvements from few days ago, lower the
latency for my test case environment (mvapi) by 0.1 microseconds. The convertor
now is as slim as it can be, I don't think there is anything else to
remove/improve. 

This commit was SVN r9843.
2006-05-07 21:03:12 +00:00
George Bosilca
a7542824ed Generic length computation (moved from the endpoint.h).
This commit was SVN r9842.
2006-05-07 20:54:44 +00:00
George Bosilca
569b88e093 The endpoint include is not required.
This commit was SVN r9841.
2006-05-07 20:52:55 +00:00
Rainer Keller
0f9b10ff8e - Update test dup MPI_COMM_WORLD -- so that we may
have additional Barriers for output.

This commit was SVN r9831.
2006-05-05 07:42:33 +00:00
Rainer Keller
71d328c086 - Add the PERUSE_COMM_REQ_XFER_CONTINUE for recv.
This commit was SVN r9820.
2006-05-04 19:31:33 +00:00
George Bosilca
22572940c8 Remove some useless code.
This commit was SVN r9513.
2006-04-01 07:42:43 +00:00
George Bosilca
58cd591d3b PERUSE support for OB1. There we go, now the trunk has a partial peruse implementation.
We support all the events in the PERUSE specifications, but right now only one event
of each type can be attached to a communicator. This will be worked out in the future.
The events were places in such a way, that we will be able to measure the overhead
for our threading implementation (the cost of the synchronization objects).

This commit was SVN r9500.
2006-03-31 17:09:09 +00:00
Galen Shipman
5271948ec0 --- opal object changes
add object size to opal class
no longer need the size when allocating a new object as this is stored in
the class structure

--- dr changes 
Previous rev. maintained state on the communicator used for acking duplicate
fragments, but the communicator may be destroyed prior to successfull
delivery of an ack to the peer. We must therefore maintain this state
globally on a per peer, not a per peer, per communicator basis. 
This requires that we use a global rank on the wire and translate this as
appropriate to a local rank within the communicator. 

This commit was SVN r9454.
2006-03-29 16:19:17 +00:00
George Bosilca
dabe47ca3d A function declared as static inline and who's not used directly, but
only as a pointer reference completely confuse some compilers (gcc 4.1
included). Removing the inline (it was there before when the function
was used in the same file) seems to solve the problem. However, the most
strange thing is that the bug only appear when we compile directly in
the trunk directory. It just don't happens when we're using the VPATH
build.

This commit was SVN r9408.
2006-03-24 04:21:30 +00:00
Galen Shipman
e548f5f8a8 change pml_ob1_leave_pinned_pipeline param to mpi_leave_pinned_pipeline
This commit was SVN r9384.
2006-03-23 15:57:34 +00:00
Tim Woodall
12e502b10d use correct loop index
This commit was SVN r9356.
2006-03-21 18:18:22 +00:00
Galen Shipman
5600932c2f fix misc warnings
This commit was SVN r9339.
2006-03-20 15:41:45 +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
George Bosilca
612570134f The request management framework has been redesigned. The main idea is
to let the PML (or io, more generally the low level request manager)
to have it's own release function (what was before the req_fini). This
function will only be called from the low level while the req_free will
be called from the upper level (MPI layer) in order to mark the request
as not used by the user anymore.

From the request point of view the requests will be marked as inactive
everytime we read their status (true for persistent as well). As 
MPI_REQUEST_NULL is already marked as inactive, the test and wait functions
are simpler. The drawback is that now we have to change in the
ompi_request_{test|wait} the req_status of the request once we get it's
status.

This commit was SVN r9290.
2006-03-15 22:53:41 +00:00
Tim Woodall
8bf6ed7a36 - corrected locking in gm btl - gm api is not thread safe
- initial support for gm progress thread
- corrected threading issue in pml
- added polling progress for a configurable number of cycles to wait for threaded case

This commit was SVN r9188.
2006-03-02 00:39:07 +00:00
Brian Barrett
1479a90b39 * assert() that endianness doesn't need to change if we are sending RDMA headers
around, since OB1 currently doesn't do the right thing there, but that should
  not happen in the near future because the R2 BML should not make any RDMA
  networks available between machines with different architectures
* Clean up the #ifs a little bit so that we don't do unneeded work when
  on big endian machines and heterogeneous support is disabled...

This commit was SVN r9184.
2006-02-28 19:54:46 +00:00
Rainer Keller
5102571c02 - Get rid of the temporary reachability bitmap.
This commit was SVN r9163.
2006-02-27 11:06:01 +00:00
Brian Barrett
285581dff2 More endian-related cleanups:
- moved hton64 and ntoh64 from the bunch of places it had been copied
    into one header file
  - properly set and use the btl_tcp's nbo option to put things in
    network byte order on the wire if both sides don't have the same
    endianness
  - Put the OB1 PML's headers (with a couple exceptions I need to discuss
    with Tim) in network byte order on the wire if both sides don't have
    the same endianness
  - since it was needed for the TCP BTL, move the orte_process_name_t
    HTON and NTOH macros from the TCP OOB to ns_types.h

This commit was SVN r9145.
2006-02-26 00:45:54 +00:00
Brian Barrett
2eb76ff0cd * finish the TEG/UNIQ/PTL removal
This commit was SVN r9118.
2006-02-23 00:39:01 +00:00
Brian Barrett
63be889350 * include the correct file if we are doing the component bypass thing with ob1
This commit was SVN r9111.
2006-02-22 16:16:38 +00:00
Rainer Keller
0642809967 - Trivial change:
Function mca_pml_ob1_recv_request_fin is not used anywhere

This commit was SVN r9029.
2006-02-14 09:48:24 +00:00
Rainer Keller
45e3415bb5 - With the change from MCA_PML_OB1_FREE in r8945 to the send/recv
counterparts, the reset to MPI_REQUEST_NULL of the upper
   struct ompi_request_t was broken. Nightly mpi_test_suite
   failed, e.g.
   mpirun -np 2 ./mpi_test_suite -t "Ring Isend"

This commit was SVN r9028.

The following SVN revision numbers were found above:
  r8945 --> open-mpi/ompi@83f83e5730
2006-02-14 09:09:05 +00:00
George Bosilca
418ffa32ce Remove a strange warning from gcc 4.2:
ompi/mca/pml/ob1/pml_ob1_sendreq.h:210:96: warning: backslash and newline separated by space

This commit was SVN r9013.
2006-02-13 19:02:39 +00:00
Tim Woodall
609ad79982 change default for pipeline
This commit was SVN r9012.
2006-02-13 17:54:36 +00:00
Galen Shipman
dd00fb029f set size to bytes packed
This commit was SVN r9011.
2006-02-13 17:53:54 +00:00
Galen Shipman
fe05d1f238 use size passed,
This commit was SVN r9010.
2006-02-13 17:53:30 +00:00
George Bosilca
bbe79f7f0e Performance tunning. The OB! progress functions just call the BML one. Thus, setting the
progress function in the mca_pml to the BML progress one, avoid having a cascade of
call to the progress function and speed up a little bit the execution.

This commit was SVN r9007.
2006-02-13 16:28:25 +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
a4619b1a11 Remove a compilation warning from the RDMA engine.
Correct the problem introduced by the commit 8933 (thanks Tim). In order to avoid to much
trafic on the bus we do not compute the bytes_delivered (require an atomic size_t add)
we have to set it in the begining or otherwise we will report the wrong count in the
MPI status.

This commit was SVN r8968.
2006-02-10 21:14:08 +00:00
George Bosilca
0376dce258 Keep track of the ompi_proc in the comm_proc. This avoid a lookup for the processor and
simplify the execution path. The peer proc (ompi_proc_t) is set at the matching stage.

This commit was SVN r8962.
2006-02-10 18:55:43 +00:00
Galen Shipman
44fe6c3896 allow pml pipeline to cache memory registrations
to enable this (off by default) use: 
-mca pml_ob1_leave_pinned_pipeline 1 
!!AND!!!
-mca mpool_use_mem_hooks 1 

This commit was SVN r8949.
2006-02-09 15:49:51 +00:00
George Bosilca
269fc0c13a Cleanup:
1. remove all useless macros from the proc header file
2. merge 2 of the match macros (they share the same logic except one list)

This commit was SVN r8946.
2006-02-09 06:59:54 +00:00
George Bosilca
83f83e5730 Specialize the MCA_PML_OB1_FREE macro. When we call this macro we already know what kind
of request we are playing with (send or receive). Therefore, it's useless to have another
switch inside this macro and make the code bigger. Now, we have 2 versions
MCA_PML_OB1_SEND_REQUEST_FREE and MCA_PML_OB1_RECV_REQUEST_FREE.

This commit was SVN r8945.
2006-02-08 22:42:00 +00:00