1
1

-- Done with a preliminary bw test.

This commit was SVN r2588.
Этот коммит содержится в:
Weikuan Yu 2004-09-10 01:58:30 +00:00
родитель dd585a9ea1
Коммит 63854f1dbd
5 изменённых файлов: 23 добавлений и 13 удалений

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

@ -113,6 +113,8 @@ mca_ptl_elan_alloc_desc (struct mca_ptl_base_module_t *ptl_ptr,
return NULL;
}
LOG_PRINT(PTL_ELAN_DEBUG_SEND, "flist %p length %d type %d\n",
flist, flist->super.ompi_list_length, desc_type);
if (ompi_using_threads ()) {
ompi_mutex_lock(&flist->fl_lock);
item = ompi_list_remove_first (&((flist)->super));
@ -137,6 +139,8 @@ mca_ptl_elan_alloc_desc (struct mca_ptl_base_module_t *ptl_ptr,
desc = (mca_ptl_elan_send_frag_t *) item;
desc->desc->req = req;
desc->desc->desc_type = desc_type;
LOG_PRINT(PTL_ELAN_DEBUG_SEND, "Got frag %p desc %d type %d\n",
desc, desc->desc, desc_type);
END_FUNC(PTL_ELAN_DEBUG_SEND);
return desc;
}
@ -178,8 +182,8 @@ mca_ptl_elan_send_desc_done (
}
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,
"req %p done frag %p desc %p desc_type %d length %d\n",
req, frag, frag->desc,
frag->desc->desc_type,
header->hdr_frag.hdr_frag_length);
@ -197,6 +201,9 @@ mca_ptl_elan_send_desc_done (
header->hdr_frag.hdr_frag_length);
}
LOG_PRINT(PTL_ELAN_DEBUG_SEND, "return frag %p desc %p type %d\n",
frag, frag->desc, frag->desc->desc_type);
/* Return a frag or if not cached, or it is a follow up */
if ( /*(header->hdr_frag.hdr_frag_offset != 0) || */
(frag->desc->desc_status != MCA_PTL_ELAN_DESC_CACHED)){

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

@ -1191,7 +1191,6 @@ ptl_elan_send_comp:
return OMPI_SUCCESS;
}
#endif
/* FIXME: Support Completion Queue with Get */
if (header->hdr_common.hdr_type == MCA_PTL_HDR_TYPE_ACK
|| header->hdr_common.hdr_type == MCA_PTL_HDR_TYPE_FIN_ACK) {
frag = ((mca_ptl_elan_ack_header_t*)header)->frag;
@ -1201,6 +1200,8 @@ ptl_elan_send_comp:
}
basic = (ompi_ptl_elan_base_desc_t*)frag->desc;
LOG_PRINT(PTL_ELAN_DEBUG_SEND, "frag %p desc %p \n", frag, basic);
/* XXX: please reset additional chained event for put/get desc */
mca_ptl_elan_send_desc_done (frag,
(mca_pml_base_send_request_t *) basic->req);
@ -1257,6 +1258,8 @@ ptl_elan_send_comp:
ompi_list_remove_first (&ptl->send_frags);
basic = (ompi_ptl_elan_base_desc_t*)frag->desc;
LOG_PRINT(PTL_ELAN_DEBUG_SEND, "frag %p desc %p \n", frag, basic);
mca_ptl_elan_send_desc_done (frag,
(mca_pml_base_send_request_t *) basic->req);
INITEVENT_WORD (ctx, basic->elan_event, &basic->main_doneWord);

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

@ -53,6 +53,7 @@
#define PTL_ELAN_DEBUG_CHAIN (0x800)
#define PTL_ELAN_DEBUG_FLAG (PTL_ELAN_DEBUG_NONE)
//(PTL_ELAN_DEBUG_GET|PTL_ELAN_DEBUG_PUT|PTL_ELAN_DEBUG_RECV)
#define START_FUNC(flag) \
do { \
@ -99,7 +100,7 @@ do { \
/* XXX: Potentially configurable parameters */
#define OMPI_PTL_ELAN_NUM_QDESCS (4)
#define OMPI_PTL_ELAN_NUM_PUTGET (2)
#define OMPI_PTL_ELAN_NUM_PUTGET (8)
#define OMPI_PTL_ELAN_ZERO_FFRAG (0)
#define OMPI_PTL_ELAN_ENABLE_GET (0)

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

@ -12,7 +12,7 @@ AM_CPPFLAGS = -I$(top_ompi_builddir)/src/include \
LDFLAGS += -L$(prefix)/lib -L../src/.libs
EXECS = qsnet_init qsnet_qdma qsnet_rdma mpitest lat check init_elan bw
EXECS = qsnet_init qsnet_qdma qsnet_rdma mpitest lat check init_elan bw check_bw
units: $(EXECS)

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

@ -30,15 +30,15 @@ main (int argc,
/* Get some environmental variables set for Open MPI, OOB */
env_init_for_elan();
MPI_Init (&argc, &argv);
MPI_Comm_size (MPI_COMM_WORLD, &numprocs);
MPI_Comm_rank (MPI_COMM_WORLD, &myid);
if (argc < 5) {
if (argc < 3) {
fprintf (stderr, "Usage: %s loop size \n", argv[0]);
MPI_Finalize ();
return 0;
}
MPI_Init (&argc, &argv);
MPI_Comm_size (MPI_COMM_WORLD, &numprocs);
MPI_Comm_rank (MPI_COMM_WORLD, &myid);
size = atoi (argv[2]);
loop= atoi (argv[1]);
page_size = getpagesize ();
@ -58,14 +58,13 @@ main (int argc,
request + j);
}
MPI_Waitall (loop, request, tmp_stat);
MPI_Recv (r_buf, 4, MPI_CHAR, 1, 101, MPI_COMM_WORLD, &tmp_stat[0]);
} else {
for (j = 0; j < loop; j++) {
MPI_Irecv (r_buf, size, MPI_CHAR, 0, 100, MPI_COMM_WORLD,
request + j);
/*MPI_Wait(request, tmp_stat);*/
}
MPI_Waitall (loop, request, tmp_stat);
MPI_Send (s_buf, 4, MPI_CHAR, 0, 101, MPI_COMM_WORLD);
}
if (myid == 0) {