Commit caa70a87 authored by Kenneth Raffenetti's avatar Kenneth Raffenetti
Browse files

tsuite: test to expose limitation in Portals4 netmod



Tests handling of PTL_NO_SPACE scenario where the max entry_list
limit is reached in the Portals4 netmod.
Signed-off-by: default avatarHuiwei Lu <huiweilu@mcs.anl.gov>
parent 263d5b54
......@@ -530,6 +530,7 @@
/rma/putfence1
/rma/putpscw1
/rma/wintest
/rma/manyget
/spawn/namepub
/spawn/disconnect3
/spawn/spaiccreate
......
......@@ -144,7 +144,8 @@ noinst_PROGRAMS = \
atomic_rmw_fop \
atomic_rmw_cas \
atomic_rmw_gacc \
acc-pairtype
acc-pairtype \
manyget
if BUILD_MPIX_TESTS
noinst_PROGRAMS += aint
......
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
/*
* (C) 2015 by Argonne National Laboratory.
* See COPYRIGHT in top-level directory.
*/
/* This test triggers a limitation in the Portals4 netmod where
* too many large messages can overflow the available ME entries
* (PTL_NO_SPACE). Our approach is to queue the entire send message
* in the Rportals layer until we know there is ME space available.
*/
#include <stdlib.h>
#include <stdio.h>
#include <mpi.h>
#define BUFSIZE (128*1024)
int main(int argc, char *argv[])
{
int i, rank, size;
int *buf;
MPI_Win win;
MPI_Init(&argc, &argv);
buf = malloc(BUFSIZE);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);
if (size != 2) {
printf("test must be run with 2 processes!\n");
MPI_Abort(MPI_COMM_WORLD, 1);
}
if (rank == 0)
MPI_Win_create(buf, sizeof(int), BUFSIZE / sizeof(int), MPI_INFO_NULL, MPI_COMM_WORLD,
&win);
else
MPI_Win_create(MPI_BOTTOM, 0, 1, MPI_INFO_NULL, MPI_COMM_WORLD, &win);
MPI_Win_fence(0, win);
if (rank == 1) {
for (i = 0; i < 100000; i++)
MPI_Get(buf, BUFSIZE / sizeof(int), MPI_INT, 0, 0, BUFSIZE / sizeof(int), MPI_INT, win);
}
MPI_Win_fence(0, win);
MPI_Win_free(&win);
if (rank == 0)
printf(" No Errors\n");
free(buf);
MPI_Finalize();
return 0;
}
......@@ -133,6 +133,7 @@ atomic_rmw_cas 3
atomic_rmw_gacc 3
@mpix@aint 2 strict=false
acc-pairtype 2
manyget 2
## This test is not strictly correct. This was meant to test out the
## case when MPI_Test is not nonblocking. However, we ended up
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment