From 63854f1dbd92df9b8a7759e130e104f09099bfff Mon Sep 17 00:00:00 2001 From: Weikuan Yu Date: Fri, 10 Sep 2004 01:58:30 +0000 Subject: [PATCH] -- Done with a preliminary bw test. This commit was SVN r2588. --- src/mca/ptl/elan/src/ptl_elan_frag.c | 11 +++++++++-- src/mca/ptl/elan/src/ptl_elan_priv.c | 5 ++++- src/mca/ptl/elan/src/ptl_elan_priv.h | 5 +++-- src/mca/ptl/elan/tests/Makefile.am | 2 +- src/mca/ptl/elan/tests/check_bw.c | 13 ++++++------- 5 files changed, 23 insertions(+), 13 deletions(-) diff --git a/src/mca/ptl/elan/src/ptl_elan_frag.c b/src/mca/ptl/elan/src/ptl_elan_frag.c index c4b6bd3282..c6ee1f92f4 100644 --- a/src/mca/ptl/elan/src/ptl_elan_frag.c +++ b/src/mca/ptl/elan/src/ptl_elan_frag.c @@ -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)){ diff --git a/src/mca/ptl/elan/src/ptl_elan_priv.c b/src/mca/ptl/elan/src/ptl_elan_priv.c index 734e729340..8d6af06e55 100644 --- a/src/mca/ptl/elan/src/ptl_elan_priv.c +++ b/src/mca/ptl/elan/src/ptl_elan_priv.c @@ -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); diff --git a/src/mca/ptl/elan/src/ptl_elan_priv.h b/src/mca/ptl/elan/src/ptl_elan_priv.h index f18cbe29e4..0d45b84469 100644 --- a/src/mca/ptl/elan/src/ptl_elan_priv.h +++ b/src/mca/ptl/elan/src/ptl_elan_priv.h @@ -52,7 +52,8 @@ #define PTL_ELAN_DEBUG_GET (0x400) #define PTL_ELAN_DEBUG_CHAIN (0x800) -#define PTL_ELAN_DEBUG_FLAG (PTL_ELAN_DEBUG_NONE) +#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) diff --git a/src/mca/ptl/elan/tests/Makefile.am b/src/mca/ptl/elan/tests/Makefile.am index d361b0db41..2c47de3d94 100644 --- a/src/mca/ptl/elan/tests/Makefile.am +++ b/src/mca/ptl/elan/tests/Makefile.am @@ -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) diff --git a/src/mca/ptl/elan/tests/check_bw.c b/src/mca/ptl/elan/tests/check_bw.c index 86f8f0cba7..5f2129c4ea 100644 --- a/src/mca/ptl/elan/tests/check_bw.c +++ b/src/mca/ptl/elan/tests/check_bw.c @@ -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) {