Skip to content

Commit

Permalink
more development of async changes
Browse files Browse the repository at this point in the history
  • Loading branch information
edhartnett committed May 23, 2016
1 parent fdd7d8b commit d6bfc03
Show file tree
Hide file tree
Showing 4 changed files with 383 additions and 2,228 deletions.
2 changes: 1 addition & 1 deletion src/clib/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ set (PIO_GENNC_SRCS ${CMAKE_CURRENT_BINARY_DIR}/pio_put_nc.c
${CMAKE_CURRENT_BINARY_DIR}/pio_nc.c)

if (PIO_ENABLE_ASYNC)
set (PIO_ADDL_SRCS pio_nc_async.c pio_put_nc_async.c pio_get_nc_async.c pio_msg.c)
set (PIO_ADDL_SRCS pio_nc_async.c pio_put_nc_async.c pio_get_nc_async.c pio_msg.c pio_varm.c)
else ()
set (PIO_ADDL_SRCS ${PIO_GENNC_SRCS})
endif ()
Expand Down
65 changes: 39 additions & 26 deletions src/clib/pio_msg.c
Original file line number Diff line number Diff line change
Expand Up @@ -617,8 +617,11 @@ int put_vars_handler(iosystem_desc_t *ios)
if ((mpierr = MPI_Bcast(&start_present, 1, MPI_CHAR, 0, ios->intercomm)))
return PIO_EIO;
if (!mpierr && start_present)
{
if ((mpierr = MPI_Bcast(start, ndims, MPI_OFFSET, 0, ios->intercomm)))
return PIO_EIO;
LOG((1, "put_vars_handler getting start[0] = %d ndims = %d", start[0], ndims));
}
if ((mpierr = MPI_Bcast(&count_present, 1, MPI_CHAR, 0, ios->intercomm)))
return PIO_EIO;
if (!mpierr && count_present)
Expand All @@ -640,6 +643,16 @@ int put_vars_handler(iosystem_desc_t *ios)
ncid, varid, ndims, start_present, count_present, stride_present, xtype,
num_elem, typelen));

for (int d = 0; d < ndims; d++)
{
if (start_present)
LOG((2, "start[%d] = %d\n", d, start[d]));
if (count_present)
LOG((2, "count[%d] = %d\n", d, count[d]));
if (stride_present)
LOG((2, "stride[%d] = %d\n", d, stride[d]));
}

/* Allocate room for our data. */
if (!(buf = malloc(num_elem * typelen)))
return PIO_ENOMEM;
Expand All @@ -663,57 +676,57 @@ int put_vars_handler(iosystem_desc_t *ios)
switch(xtype)
{
case NC_BYTE:
ierr = PIOc_put_vars_schar(ncid, varid, (size_t *)start, (size_t *)count,
(ptrdiff_t *)stride, buf);
ierr = PIOc_put_vars_schar(ncid, varid, (size_t *)startp, (size_t *)countp,
(ptrdiff_t *)stridep, buf);
break;
case NC_CHAR:
ierr = PIOc_put_vars_schar(ncid, varid, (size_t *)start, (size_t *)count,
(ptrdiff_t *)stride, buf);
ierr = PIOc_put_vars_schar(ncid, varid, (size_t *)startp, (size_t *)countp,
(ptrdiff_t *)stridep, buf);
break;
case NC_SHORT:
ierr = PIOc_put_vars_short(ncid, varid, (size_t *)start, (size_t *)count,
(ptrdiff_t *)stride, buf);
ierr = PIOc_put_vars_short(ncid, varid, (size_t *)startp, (size_t *)countp,
(ptrdiff_t *)stridep, buf);
break;
case NC_INT:
ierr = PIOc_put_vars_int(ncid, varid, (size_t *)start, (size_t *)count,
(ptrdiff_t *)stride, buf);
ierr = PIOc_put_vars_int(ncid, varid, (size_t *)startp, (size_t *)countp,
(ptrdiff_t *)stridep, buf);
break;
case NC_FLOAT:
ierr = PIOc_put_vars_float(ncid, varid, (size_t *)start, (size_t *)count,
(ptrdiff_t *)stride, buf);
ierr = PIOc_put_vars_float(ncid, varid, (size_t *)startp, (size_t *)countp,
(ptrdiff_t *)stridep, buf);
break;
case NC_DOUBLE:
ierr = PIOc_put_vars_double(ncid, varid, (size_t *)start, (size_t *)count,
(ptrdiff_t *)stride, buf);
ierr = PIOc_put_vars_double(ncid, varid, (size_t *)startp, (size_t *)countp,
(ptrdiff_t *)stridep, buf);
break;
#ifdef _NETCDF4
case NC_UBYTE:
ierr = PIOc_put_vars_uchar(ncid, varid, (size_t *)start, (size_t *)count,
(ptrdiff_t *)stride, buf);
ierr = PIOc_put_vars_uchar(ncid, varid, (size_t *)startp, (size_t *)countp,
(ptrdiff_t *)stridep, buf);
break;
case NC_USHORT:
ierr = PIOc_put_vars_ushort(ncid, varid, (size_t *)start, (size_t *)count,
(ptrdiff_t *)stride, buf);
ierr = PIOc_put_vars_ushort(ncid, varid, (size_t *)startp, (size_t *)countp,
(ptrdiff_t *)stridep, buf);
break;
case NC_UINT:
ierr = PIOc_put_vars_uint(ncid, varid, (size_t *)start, (size_t *)count,
(ptrdiff_t *)stride, buf);
ierr = PIOc_put_vars_uint(ncid, varid, (size_t *)startp, (size_t *)countp,
(ptrdiff_t *)stridep, buf);
break;
case NC_INT64:
ierr = PIOc_put_vars_longlong(ncid, varid, (size_t *)start, (size_t *)count,
(ptrdiff_t *)stride, buf);
ierr = PIOc_put_vars_longlong(ncid, varid, (size_t *)startp, (size_t *)countp,
(ptrdiff_t *)stridep, buf);
break;
case NC_UINT64:
ierr = PIOc_put_vars_ulonglong(ncid, varid, (size_t *)start, (size_t *)count,
(ptrdiff_t *)stride, buf);
ierr = PIOc_put_vars_ulonglong(ncid, varid, (size_t *)startp, (size_t *)countp,
(ptrdiff_t *)stridep, buf);
break;
/* case NC_STRING: */
/* ierr = PIOc_put_vars_string(ncid, varid, (size_t *)start, (size_t *)count, */
/* (ptrdiff_t *)stride, (void *)buf); */
/* ierr = PIOc_put_vars_string(ncid, varid, (size_t *)startp, (size_t *)countp, */
/* (ptrdiff_t *)stridep, (void *)buf); */
/* break; */
/* default:*/
/* ierr = PIOc_put_vars(ncid, varid, (size_t *)start, (size_t *)count, */
/* (ptrdiff_t *)stride, buf); */
/* ierr = PIOc_put_vars(ncid, varid, (size_t *)startp, (size_t *)countp, */
/* (ptrdiff_t *)stridep, buf); */
#endif /* _NETCDF4 */
}

Expand Down
Loading

0 comments on commit d6bfc03

Please sign in to comment.