OpenMPI 0.1.1

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

pml_csum_comm.h
Go to the documentation of this file.
1 /*
2 * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
3 * University Research and Technology
4 * Corporation. All rights reserved.
5 * Copyright (c) 2004-2006 The University of Tennessee and The University
6 * of Tennessee Research Foundation. All rights
7 * reserved.
8 * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
9 * University of Stuttgart. All rights reserved.
10 * Copyright (c) 2004-2005 The Regents of the University of California.
11 * All rights reserved.
12 * $COPYRIGHT$
13 *
14 * Additional copyrights may follow
15 *
16 * $HEADER$
17 */
18 /**
19 * @file
20 */
21 #ifndef MCA_PML_OB1_COMM_H
22 #define MCA_PML_OB1_COMM_H
23
24 #include "opal/threads/mutex.h"
25 #include "opal/class/opal_list.h"
26 #include "ompi/proc/proc.h"
27 BEGIN_C_DECLS
28
29
30 struct mca_pml_csum_comm_proc_t {
31 opal_object_t super;
32 uint16_t expected_sequence; /**< send message sequence number - receiver side */
33 struct ompi_proc_t* ompi_proc;
34 #if OPAL_ENABLE_MULTI_THREADS
35 volatile int32_t send_sequence; /**< send side sequence number */
36 #else
37 int32_t send_sequence; /**< send side sequence number */
38 #endif
39 opal_list_t frags_cant_match; /**< out-of-order fragment queues */
40 opal_list_t specific_receives; /**< queues of unmatched specific receives */
41 opal_list_t unexpected_frags; /**< unexpected fragment queues */
42 };
43 typedef struct mca_pml_csum_comm_proc_t mca_pml_csum_comm_proc_t;
44
45
46 /**
47 * Cached on ompi_communicator_t to hold queues/state
48 * used by the PML<->PTL interface for matching logic.
49 */
50 struct mca_pml_comm_t {
51 opal_object_t super;
52 #if OPAL_ENABLE_MULTI_THREADS
53 volatile uint32_t recv_sequence; /**< recv request sequence number - receiver side */
54 #else
55 uint32_t recv_sequence; /**< recv request sequence number - receiver side */
56 #endif
57 opal_mutex_t matching_lock; /**< matching lock */
58 opal_list_t wild_receives; /**< queue of unmatched wild (source process not specified) receives */
59 mca_pml_csum_comm_proc_t* procs;
60 size_t num_procs;
61 };
62 typedef struct mca_pml_comm_t mca_pml_csum_comm_t;
63
64 OBJ_CLASS_DECLARATION(mca_pml_csum_comm_t);
65
66
67 /**
68 * Initialize an instance of mca_pml_csum_comm_t based on the communicator size.
69 *
70 * @param comm Instance of mca_pml_csum_comm_t
71 * @param size Size of communicator
72 * @return OMPI_SUCCESS or error status on failure.
73 */
74
75 extern int mca_pml_csum_comm_init_size(mca_pml_csum_comm_t* comm, size_t size);
76
77 END_C_DECLS
78 #endif
79
mca_pml_csum_comm_proc_t::send_sequence
int32_t send_sequence
send side sequence number
Definition: pml_csum_comm.h:37
mca_pml_comm_t::recv_sequence
uint32_t recv_sequence
recv request sequence number - receiver side
Definition: pml_bfo_comm.h:56
mca_pml_comm_t
Cached on ompi_communicator_t to hold queues/state used by the PML<->PTL interface for matching logic...
Definition: pml_bfo_comm.h:51
opal_mutex_t
Definition: mutex_unix.h:53
opal_list.h
The opal_list_t interface is used to provide a generic doubly-linked list container for Open MPI...
proc.h
Process identification structure interface.
ompi_proc_t
Remote Open MPI process structure.
Definition: proc.h:56
mca_pml_comm_t::wild_receives
opal_list_t wild_receives
queue of unmatched wild (source process not specified) receives
Definition: pml_bfo_comm.h:59
mca_pml_csum_comm_proc_t::frags_cant_match
opal_list_t frags_cant_match
out-of-order fragment queues
Definition: pml_csum_comm.h:39
mca_pml_csum_comm_proc_t
Definition: pml_csum_comm.h:30
mca_pml_csum_comm_init_size
int mca_pml_csum_comm_init_size(mca_pml_csum_comm_t *comm, size_t size)
Initialize an instance of mca_pml_csum_comm_t based on the communicator size.
Definition: pml_csum_comm.c:82
mca_pml_csum_comm_proc_t::expected_sequence
uint16_t expected_sequence
send message sequence number - receiver side
Definition: pml_csum_comm.h:32
opal_object_t
Base object.
Definition: opal_object.h:182
opal_list_t
Definition: opal_list.h:147
mca_pml_csum_comm_proc_t::unexpected_frags
opal_list_t unexpected_frags
unexpected fragment queues
Definition: pml_csum_comm.h:41
mca_pml_comm_t::matching_lock
opal_mutex_t matching_lock
matching lock
Definition: pml_bfo_comm.h:58
mutex.h
Mutual exclusion functions.
mca_pml_csum_comm_proc_t::specific_receives
opal_list_t specific_receives
queues of unmatched specific receives
Definition: pml_csum_comm.h:40
OBJ_CLASS_DECLARATION
#define OBJ_CLASS_DECLARATION(NAME)
Declaration for class descriptor.
Definition: opal_object.h:236