void do_bulkputgets(void) { if (do_puts && do_bulk && do_explicit) { QUEUE_TEST("gasnet_put_nb_bulk", handles[i] = gasnet_put_nb_bulk(peerproc, tgtmem, msgbuf, payload), gasnet_wait_syncnb_all(handles, depth), (void)0, 0); } if (do_gets && do_bulk && do_explicit) { QUEUE_TEST("gasnet_get_nb_bulk", handles[i] = gasnet_get_nb_bulk(msgbuf, peerproc, tgtmem, payload), gasnet_wait_syncnb_all(handles, depth), (void)0, 0); } if (do_puts && do_bulk && do_implicit) { QUEUE_TEST("gasnet_put_nbi_bulk", gasnet_put_nbi_bulk(peerproc, tgtmem, msgbuf, payload), gasnet_wait_syncnbi_all(), (void)0, 0); } if (do_gets && do_bulk && do_implicit) { QUEUE_TEST("gasnet_get_nbi_bulk", gasnet_get_nbi_bulk(msgbuf, peerproc, tgtmem, payload), gasnet_wait_syncnbi_all(), (void)0, 0); } }
void oneway_nb_test(int iters, int nbytes, int alignment) {GASNET_BEGIN_FUNCTION(); int i; int64_t begin, end; stat_struct_t st; gasnet_handle_t *handles; int pad = (alignment % PAGESZ); /* initialize statistics */ init_stat(&st, nbytes, alignment); handles = (gasnet_handle_t*) test_malloc(sizeof(gasnet_handle_t) * iters); memset(locbuf+pad, 1, nbytes); BARRIER(); if (iamsender) { /* measure the throughput of sending a message */ begin = TIME(); for (i = 0; i < iters; i++) { handles[i] = gasnet_put_nb_bulk(peerproc, rembuf, locbuf+pad, nbytes); } gasnet_wait_syncnb_all(handles, iters); end = TIME(); update_stat(&st, (end - begin), iters); } BARRIER(); if (iamsender) { print_stat(myproc, &st, "put_nb_bulk throughput", PRINT_THROUGHPUT); } /* initialize statistics */ init_stat(&st, nbytes, alignment); if (iamsender) { /* measure the throughput of receiving a message */ begin = TIME(); for (i = 0; i < iters; i++) { handles[i] = gasnet_get_nb_bulk(locbuf, peerproc, rembuf+pad, nbytes); } gasnet_wait_syncnb_all(handles, iters); end = TIME(); update_stat(&st, (end - begin), iters); } BARRIER(); if (iamsender) { print_stat(myproc, &st, "get_nb_bulk throughput", PRINT_THROUGHPUT); } test_free(handles); }