-- To check bandwdith for large fragments
This commit was SVN r2578.
Этот коммит содержится в:
родитель
653ee9e1a3
Коммит
9d3b1cb933
@ -24,7 +24,7 @@
|
||||
mca_ptl_elan_module_t mca_ptl_elan_module = {
|
||||
{
|
||||
&mca_ptl_elan_component.super,
|
||||
2,
|
||||
1,
|
||||
sizeof(mca_ptl_elan_send_frag_t),
|
||||
0, /* ptl_exclusivity */
|
||||
0, /* ptl_latency */
|
||||
@ -254,7 +254,8 @@ mca_ptl_elan_isend (struct mca_ptl_base_module_t *ptl,
|
||||
|
||||
START_FUNC(PTL_ELAN_DEBUG_SEND);
|
||||
|
||||
if (offset == 0) { /* The first fragment uses a cached desc */
|
||||
if (offset == 0 && sendreq->req_cached) {
|
||||
/* The first fragment uses a cached desc */
|
||||
desc = ((mca_ptl_elan_send_request_t*)sendreq)->req_frag;
|
||||
} else {
|
||||
desc = mca_ptl_elan_alloc_desc(ptl,
|
||||
@ -401,6 +402,7 @@ mca_ptl_elan_matched (mca_ptl_base_module_t * ptl,
|
||||
|
||||
int set = 0;
|
||||
|
||||
START_FUNC(PTL_ELAN_DEBUG_RECV);
|
||||
header = &frag->frag_base.frag_header;
|
||||
request = frag->frag_request;
|
||||
recv_frag = (mca_ptl_elan_recv_frag_t * ) frag;
|
||||
@ -417,9 +419,6 @@ mca_ptl_elan_matched (mca_ptl_base_module_t * ptl,
|
||||
#endif
|
||||
/* Get a frag desc and allocate a send desc */
|
||||
desc = mca_ptl_elan_alloc_desc(ptl, NULL, desc_type);
|
||||
LOG_PRINT(PTL_ELAN_DEBUG_GET, "Get desc %p type %d\n",
|
||||
desc, desc->desc->desc_type);
|
||||
|
||||
if (NULL == desc) {
|
||||
ompi_output(0,
|
||||
"[%s:%d] Unable to allocate an elan send descriptors \n",
|
||||
@ -479,4 +478,5 @@ mca_ptl_elan_matched (mca_ptl_base_module_t * ptl,
|
||||
* Then Done with this fragment, i.e., data */
|
||||
mca_ptl_elan_recv_frag_done (header, frag, request);
|
||||
}
|
||||
END_FUNC(PTL_ELAN_DEBUG_RECV);
|
||||
}
|
||||
|
@ -293,8 +293,8 @@ mca_ptl_elan_component_progress (mca_ptl_tstamp_t tstamp)
|
||||
|
||||
/* Iterate over all the PTL input Queues */
|
||||
for (i = 0; i < no_ptls; i++) {
|
||||
mca_ptl_elan_drain_recv(elan_mp->modules[i]);
|
||||
mca_ptl_elan_update_desc(elan_mp->modules[i]);
|
||||
mca_ptl_elan_drain_recv(elan_mp->modules[i]);
|
||||
}
|
||||
|
||||
END_FUNC (PTL_ELAN_DEBUG_NONE);
|
||||
|
@ -94,7 +94,7 @@ mca_ptl_elan_alloc_desc (struct mca_ptl_base_module_t *ptl_ptr,
|
||||
{
|
||||
|
||||
ompi_free_list_t *flist;
|
||||
ompi_list_item_t *item;
|
||||
ompi_list_item_t *item = NULL;
|
||||
mca_ptl_elan_send_frag_t *desc;
|
||||
|
||||
START_FUNC(PTL_ELAN_DEBUG_SEND);
|
||||
@ -123,9 +123,7 @@ mca_ptl_elan_alloc_desc (struct mca_ptl_base_module_t *ptl_ptr,
|
||||
}
|
||||
ompi_mutex_unlock(&flist->fl_lock);
|
||||
} else {
|
||||
|
||||
item = ompi_list_remove_first (&((flist)->super));
|
||||
|
||||
/* XXX:
|
||||
* Ouch..., this still does not trigger the progress on
|
||||
* PTL's from other modules. Wait for PML to change.
|
||||
@ -164,11 +162,6 @@ mca_ptl_elan_send_desc_done (
|
||||
header = &frag->frag_base.frag_header;
|
||||
|
||||
if (frag->desc->desc_type == MCA_PTL_ELAN_DESC_GET) {
|
||||
LOG_PRINT(PTL_ELAN_DEBUG_SEND,
|
||||
"req %p done frag %p desc_status %d desc_type %d length %d\n",
|
||||
req, frag, frag->desc->desc_status,
|
||||
frag->desc->desc_type, frag->frag_base.frag_size);
|
||||
|
||||
if(ompi_atomic_fetch_and_set_int (&frag->frag_progressed, 1) == 0) {
|
||||
ptl->super.ptl_recv_progress(ptl,
|
||||
(mca_pml_base_recv_request_t *) req,
|
||||
|
@ -61,6 +61,7 @@ mca_ptl_elan_recv_frag_t *
|
||||
mca_ptl_elan_alloc_recv_desc(struct mca_pml_base_recv_request_t *req);
|
||||
|
||||
/**
|
||||
* FIXME: Change frag to be a struct
|
||||
* ELAN send request derived type. The send request contains
|
||||
* the base send request and a point to the elan fragment descriptor
|
||||
*/
|
||||
|
@ -98,8 +98,8 @@ do { \
|
||||
#define OMPI_PTL_ELAN_ALIGNUP(x,a) (((unsigned int)(x) + ((a)-1)) & (-(a)))
|
||||
|
||||
/* XXX: Potentially configurable parameters */
|
||||
#define OMPI_PTL_ELAN_NUM_QDESCS (16)
|
||||
#define OMPI_PTL_ELAN_NUM_PUTGET (8)
|
||||
#define OMPI_PTL_ELAN_NUM_QDESCS (4)
|
||||
#define OMPI_PTL_ELAN_NUM_PUTGET (2)
|
||||
#define OMPI_PTL_ELAN_ZERO_FFRAG (0)
|
||||
|
||||
#define OMPI_PTL_ELAN_ENABLE_GET (0)
|
||||
|
@ -49,7 +49,7 @@ main (int argc,
|
||||
r_buf[i] = 'b';
|
||||
}
|
||||
|
||||
MPI_Barrier (MPI_COMM_WORLD);
|
||||
/*MPI_Barrier (MPI_COMM_WORLD);*/
|
||||
|
||||
for (i = 0; i < loop + skip; i++) {
|
||||
if (myid == 0) {
|
||||
@ -71,7 +71,7 @@ main (int argc,
|
||||
MPI_Waitall (win, request, tmp_stat);
|
||||
MPI_Send (s_buf, 4, MPI_CHAR, 0, 101, MPI_COMM_WORLD);
|
||||
}
|
||||
MPI_Barrier (MPI_COMM_WORLD);
|
||||
/*MPI_Barrier (MPI_COMM_WORLD);*/
|
||||
}
|
||||
|
||||
if (myid == 0) {
|
||||
|
@ -9,7 +9,7 @@ static void env_init_for_elan()
|
||||
setenv("OMPI_MCA_pcm_cofs_cellid", "1", 1);
|
||||
setenv("OMPI_MCA_pcm_cofs_jobid", "1", 1);
|
||||
setenv("OMPI_MCA_pcm_cofs_num_procs", "2", 1);
|
||||
setenv("OMPI_MCA_ptl_base_exclude", "elan", 1);
|
||||
setenv("OMPI_MCA_ptl_base_exclude", "tcp", 1);
|
||||
/*setenv("OMPI_MCA_oob_base_exclude", "tcp", 1);*/
|
||||
|
||||
if (NULL != (rms_rank = getenv("RMS_RANK"))) {
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user