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_nbi_test(int iters, int nbytes, int alignment) {GASNET_BEGIN_FUNCTION(); int i; int64_t begin, end; stat_struct_t st; int pad = (alignment % PAGESZ); /* initialize statistics */ init_stat(&st, nbytes, alignment); memset(locbuf+pad, 1, nbytes); BARRIER(); if (iamsender) { /* measure the throughput of nonblocking implicit bulk put */ begin = TIME(); for (i = 0; i < iters; i++) { gasnet_put_nbi_bulk(peerproc, rembuf, locbuf+pad, nbytes); } gasnet_wait_syncnbi_puts(); end = TIME(); update_stat(&st, (end - begin), iters); } BARRIER(); if (iamsender) { print_stat(myproc, &st, "put_nbi_bulk throughput", PRINT_THROUGHPUT); } /* initialize statistics */ init_stat(&st, nbytes, alignment); if (iamsender) { /* measure the throughput of nonblocking implicit bulk get */ begin = TIME(); for (i = 0; i < iters; i++) { gasnet_get_nbi_bulk(locbuf, peerproc, rembuf+pad, nbytes); } gasnet_wait_syncnbi_gets(); end = TIME(); update_stat(&st, (end - begin), iters); } BARRIER(); if (iamsender) { print_stat(myproc, &st, "get_nbi_bulk throughput", PRINT_THROUGHPUT); } }