1
1

-- To check bandwdith for large fragments

This commit was SVN r2578.
Этот коммит содержится в:
Weikuan Yu 2004-09-09 22:36:41 +00:00
родитель 653ee9e1a3
Коммит 9d3b1cb933
7 изменённых файлов: 14 добавлений и 20 удалений

Просмотреть файл

@ -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"))) {