Merge pull request #697 from edgargabriel/pr/nb-coll-part2
pr/nb collective I/O part2
Этот коммит содержится в:
Коммит
466c8b0159
@ -16,6 +16,7 @@
|
||||
* Copyright (c) 2012-2015 Los Alamos National Security, LLC. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2011-2013 INRIA. All rights reserved.
|
||||
* Copyright (c) 2015 University of Houston. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@ -1390,6 +1391,10 @@ OMPI_DECLSPEC int MPI_File_iread_at(MPI_File fh, MPI_Offset offset, void *buf,
|
||||
int count, MPI_Datatype datatype, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPI_File_iwrite_at(MPI_File fh, MPI_Offset offset, const void *buf,
|
||||
int count, MPI_Datatype datatype, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPI_File_iread_at_all(MPI_File fh, MPI_Offset offset, void *buf,
|
||||
int count, MPI_Datatype datatype, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPI_File_iwrite_at_all(MPI_File fh, MPI_Offset offset, const void *buf,
|
||||
int count, MPI_Datatype datatype, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPI_File_read(MPI_File fh, void *buf, int count,
|
||||
MPI_Datatype datatype, MPI_Status *status);
|
||||
OMPI_DECLSPEC int MPI_File_read_all(MPI_File fh, void *buf, int count,
|
||||
@ -1402,6 +1407,10 @@ OMPI_DECLSPEC int MPI_File_iread(MPI_File fh, void *buf, int count,
|
||||
MPI_Datatype datatype, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPI_File_iwrite(MPI_File fh, const void *buf, int count,
|
||||
MPI_Datatype datatype, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPI_File_iread_all(MPI_File fh, void *buf, int count,
|
||||
MPI_Datatype datatype, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPI_File_iwrite_all(MPI_File fh, const void *buf, int count,
|
||||
MPI_Datatype datatype, MPI_Request *request);
|
||||
OMPI_DECLSPEC int MPI_File_seek(MPI_File fh, MPI_Offset offset, int whence);
|
||||
OMPI_DECLSPEC int MPI_File_get_position(MPI_File fh, MPI_Offset *offset);
|
||||
OMPI_DECLSPEC int MPI_File_get_byte_offset(MPI_File fh, MPI_Offset offset,
|
||||
@ -2082,6 +2091,10 @@ OMPI_DECLSPEC int PMPI_File_iread_at(MPI_File fh, MPI_Offset offset, void *buf,
|
||||
int count, MPI_Datatype datatype, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPI_File_iwrite_at(MPI_File fh, MPI_Offset offset, const void *buf,
|
||||
int count, MPI_Datatype datatype, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPI_File_iread_at_all(MPI_File fh, MPI_Offset offset, void *buf,
|
||||
int count, MPI_Datatype datatype, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPI_File_iwrite_at_all(MPI_File fh, MPI_Offset offset, const void *buf,
|
||||
int count, MPI_Datatype datatype, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPI_File_read(MPI_File fh, void *buf, int count,
|
||||
MPI_Datatype datatype, MPI_Status *status);
|
||||
OMPI_DECLSPEC int PMPI_File_read_all(MPI_File fh, void *buf, int count,
|
||||
@ -2094,6 +2107,10 @@ OMPI_DECLSPEC int PMPI_File_iread(MPI_File fh, void *buf, int count,
|
||||
MPI_Datatype datatype, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPI_File_iwrite(MPI_File fh, const void *buf, int count,
|
||||
MPI_Datatype datatype, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPI_File_iread_all(MPI_File fh, void *buf, int count,
|
||||
MPI_Datatype datatype, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPI_File_iwrite_all(MPI_File fh, const void *buf, int count,
|
||||
MPI_Datatype datatype, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPI_File_seek(MPI_File fh, MPI_Offset offset, int whence);
|
||||
OMPI_DECLSPEC int PMPI_File_get_position(MPI_File fh, MPI_Offset *offset);
|
||||
OMPI_DECLSPEC int PMPI_File_get_byte_offset(MPI_File fh, MPI_Offset offset,
|
||||
|
@ -13,6 +13,7 @@
|
||||
* Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved.
|
||||
* Copyright (c) 2015 Los Alamos National Security, LLC. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2015 University of Houston. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@ -188,6 +189,15 @@ typedef int (*mca_io_base_module_file_iwrite_at_fn_t)
|
||||
int count, struct ompi_datatype_t *datatype,
|
||||
struct ompi_request_t **request);
|
||||
|
||||
typedef int (*mca_io_base_module_file_iread_at_all_fn_t)
|
||||
(struct ompi_file_t *fh, MPI_Offset offset, void *buf,
|
||||
int count, struct ompi_datatype_t *datatype,
|
||||
struct ompi_request_t **request);
|
||||
typedef int (*mca_io_base_module_file_iwrite_at_all_fn_t)
|
||||
(struct ompi_file_t *fh, MPI_Offset offset, void *buf,
|
||||
int count, struct ompi_datatype_t *datatype,
|
||||
struct ompi_request_t **request);
|
||||
|
||||
typedef int (*mca_io_base_module_file_read_fn_t)
|
||||
(struct ompi_file_t *fh, void *buf, int count, struct ompi_datatype_t *
|
||||
datatype, struct ompi_status_public_t *status);
|
||||
@ -208,6 +218,13 @@ typedef int (*mca_io_base_module_file_iwrite_fn_t)
|
||||
(struct ompi_file_t *fh, void *buf, int count,
|
||||
struct ompi_datatype_t *datatype, struct ompi_request_t **request);
|
||||
|
||||
typedef int (*mca_io_base_module_file_iread_all_fn_t)
|
||||
(struct ompi_file_t *fh, void *buf, int count,
|
||||
struct ompi_datatype_t *datatype, struct ompi_request_t **request);
|
||||
typedef int (*mca_io_base_module_file_iwrite_all_fn_t)
|
||||
(struct ompi_file_t *fh, void *buf, int count,
|
||||
struct ompi_datatype_t *datatype, struct ompi_request_t **request);
|
||||
|
||||
typedef int (*mca_io_base_module_file_seek_fn_t)
|
||||
(struct ompi_file_t *fh, MPI_Offset offset, int whence);
|
||||
typedef int (*mca_io_base_module_file_get_position_fn_t)
|
||||
@ -301,8 +318,10 @@ struct mca_io_base_module_2_0_0_t {
|
||||
mca_io_base_module_file_write_at_fn_t io_module_file_write_at;
|
||||
mca_io_base_module_file_write_at_all_fn_t io_module_file_write_at_all;
|
||||
|
||||
mca_io_base_module_file_iread_at_fn_t io_module_file_iread_at;
|
||||
mca_io_base_module_file_iwrite_at_fn_t io_module_file_iwrite_at;
|
||||
mca_io_base_module_file_iread_at_fn_t io_module_file_iread_at;
|
||||
mca_io_base_module_file_iwrite_at_fn_t io_module_file_iwrite_at;
|
||||
mca_io_base_module_file_iread_at_all_fn_t io_module_file_iread_at_all;
|
||||
mca_io_base_module_file_iwrite_at_all_fn_t io_module_file_iwrite_at_all;
|
||||
|
||||
mca_io_base_module_file_read_fn_t io_module_file_read;
|
||||
mca_io_base_module_file_read_all_fn_t io_module_file_read_all;
|
||||
@ -311,6 +330,8 @@ struct mca_io_base_module_2_0_0_t {
|
||||
|
||||
mca_io_base_module_file_iread_fn_t io_module_file_iread;
|
||||
mca_io_base_module_file_iwrite_fn_t io_module_file_iwrite;
|
||||
mca_io_base_module_file_iread_all_fn_t io_module_file_iread_all;
|
||||
mca_io_base_module_file_iwrite_all_fn_t io_module_file_iwrite_all;
|
||||
|
||||
mca_io_base_module_file_seek_fn_t io_module_file_seek;
|
||||
mca_io_base_module_file_get_position_fn_t io_module_file_get_position;
|
||||
|
@ -49,6 +49,8 @@ mca_io_base_module_2_0_0_t mca_io_ompio_module = {
|
||||
|
||||
mca_io_ompio_file_iread_at,
|
||||
mca_io_ompio_file_iwrite_at,
|
||||
mca_io_ompio_file_iread_at_all,
|
||||
mca_io_ompio_file_iwrite_at_all,
|
||||
|
||||
/* non-indexed IO operations */
|
||||
mca_io_ompio_file_read,
|
||||
@ -58,6 +60,8 @@ mca_io_base_module_2_0_0_t mca_io_ompio_module = {
|
||||
|
||||
mca_io_ompio_file_iread,
|
||||
mca_io_ompio_file_iwrite,
|
||||
mca_io_ompio_file_iread_all,
|
||||
mca_io_ompio_file_iwrite_all,
|
||||
|
||||
mca_io_ompio_file_seek,
|
||||
mca_io_ompio_file_get_position,
|
||||
|
@ -59,6 +59,8 @@ mca_io_base_module_2_0_0_t mca_io_romio314_module = {
|
||||
mca_io_romio314_file_write_at_all,
|
||||
mca_io_romio314_file_iread_at,
|
||||
mca_io_romio314_file_iwrite_at,
|
||||
NULL, /* iread_at_all */
|
||||
NULL, /* iwrite_at_all */
|
||||
|
||||
/* non-indexed IO operations */
|
||||
mca_io_romio314_file_read,
|
||||
@ -67,6 +69,8 @@ mca_io_base_module_2_0_0_t mca_io_romio314_module = {
|
||||
mca_io_romio314_file_write_all,
|
||||
mca_io_romio314_file_iread,
|
||||
mca_io_romio314_file_iwrite,
|
||||
NULL, /* iread_all */
|
||||
NULL, /* iwrite_all */
|
||||
|
||||
mca_io_romio314_file_seek,
|
||||
mca_io_romio314_file_get_position,
|
||||
|
@ -406,10 +406,14 @@ libmpi_c_mpi_la_SOURCES += \
|
||||
file_get_type_extent.c \
|
||||
file_get_view.c \
|
||||
file_iread_at.c \
|
||||
file_iread_at_all.c \
|
||||
file_iread.c \
|
||||
file_iread_all.c \
|
||||
file_iread_shared.c \
|
||||
file_iwrite_at.c \
|
||||
file_iwrite_at_all.c \
|
||||
file_iwrite.c \
|
||||
file_iwrite_all.c \
|
||||
file_iwrite_shared.c \
|
||||
file_open.c \
|
||||
file_preallocate.c \
|
||||
|
84
ompi/mpi/c/file_iread_all.c
Обычный файл
84
ompi/mpi/c/file_iread_all.c
Обычный файл
@ -0,0 +1,84 @@
|
||||
/*
|
||||
* Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
|
||||
* University Research and Technology
|
||||
* Corporation. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2008 High Performance Computing Center Stuttgart,
|
||||
* University of Stuttgart. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved.
|
||||
* Copyright (c) 2015 University of Houston. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*/
|
||||
|
||||
#include "ompi_config.h"
|
||||
|
||||
#include "ompi/mpi/c/bindings.h"
|
||||
#include "ompi/runtime/params.h"
|
||||
#include "ompi/errhandler/errhandler.h"
|
||||
#include "ompi/datatype/ompi_datatype.h"
|
||||
#include "ompi/file/file.h"
|
||||
#include "ompi/mca/io/io.h"
|
||||
#include "ompi/mca/io/base/io_base_request.h"
|
||||
#include "ompi/memchecker.h"
|
||||
|
||||
#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILING_DEFINES
|
||||
#pragma weak MPI_File_iread_all = PMPI_File_iread_all
|
||||
#endif
|
||||
|
||||
#if OMPI_PROFILING_DEFINES
|
||||
#include "ompi/mpi/c/profile/defines.h"
|
||||
#endif
|
||||
|
||||
static const char FUNC_NAME[] = "MPI_File_iread_all";
|
||||
|
||||
|
||||
int MPI_File_iread_all(MPI_File fh, void *buf, int count,
|
||||
MPI_Datatype datatype, MPI_Request *request)
|
||||
{
|
||||
int rc;
|
||||
|
||||
MEMCHECKER(
|
||||
memchecker_datatype(datatype);
|
||||
);
|
||||
|
||||
if (MPI_PARAM_CHECK) {
|
||||
rc = MPI_SUCCESS;
|
||||
OMPI_ERR_INIT_FINALIZE(FUNC_NAME);
|
||||
if (ompi_file_invalid(fh)) {
|
||||
fh = MPI_FILE_NULL;
|
||||
rc = MPI_ERR_FILE;
|
||||
} else if (count < 0) {
|
||||
rc = MPI_ERR_COUNT;
|
||||
} else if (NULL == request) {
|
||||
rc = MPI_ERR_REQUEST;
|
||||
} else {
|
||||
OMPI_CHECK_DATATYPE_FOR_RECV(rc, datatype, count);
|
||||
}
|
||||
OMPI_ERRHANDLER_CHECK(rc, fh, rc, FUNC_NAME);
|
||||
}
|
||||
|
||||
OPAL_CR_ENTER_LIBRARY();
|
||||
|
||||
/* Call the back-end io component function */
|
||||
switch (fh->f_io_version) {
|
||||
case MCA_IO_BASE_V_2_0_0:
|
||||
rc = fh->f_io_selected_module.v2_0_0.
|
||||
io_module_file_iread_all(fh, buf, count, datatype, request);
|
||||
break;
|
||||
|
||||
default:
|
||||
rc = MPI_ERR_INTERN;
|
||||
break;
|
||||
}
|
||||
|
||||
/* All done */
|
||||
OMPI_ERRHANDLER_RETURN(rc, fh, rc, FUNC_NAME);
|
||||
}
|
86
ompi/mpi/c/file_iread_at_all.c
Обычный файл
86
ompi/mpi/c/file_iread_at_all.c
Обычный файл
@ -0,0 +1,86 @@
|
||||
/*
|
||||
* Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
|
||||
* University Research and Technology
|
||||
* Corporation. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2008 High Performance Computing Center Stuttgart,
|
||||
* University of Stuttgart. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved.
|
||||
* Copyright (c) 2015 University of Houston. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*/
|
||||
|
||||
#include "ompi_config.h"
|
||||
|
||||
#include "ompi/mpi/c/bindings.h"
|
||||
#include "ompi/runtime/params.h"
|
||||
#include "ompi/errhandler/errhandler.h"
|
||||
#include "ompi/datatype/ompi_datatype.h"
|
||||
#include "ompi/file/file.h"
|
||||
#include "ompi/mca/io/io.h"
|
||||
#include "ompi/mca/io/base/io_base_request.h"
|
||||
#include "ompi/memchecker.h"
|
||||
|
||||
#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILING_DEFINES
|
||||
#pragma weak MPI_File_iread_at_all = PMPI_File_iread_at_all
|
||||
#endif
|
||||
|
||||
#if OMPI_PROFILING_DEFINES
|
||||
#include "ompi/mpi/c/profile/defines.h"
|
||||
#endif
|
||||
|
||||
static const char FUNC_NAME[] = "MPI_File_iread_at_all";
|
||||
|
||||
|
||||
int MPI_File_iread_at_all(MPI_File fh, MPI_Offset offset, void *buf,
|
||||
int count, MPI_Datatype datatype, MPI_Request *request)
|
||||
{
|
||||
int rc;
|
||||
|
||||
MEMCHECKER(
|
||||
memchecker_datatype(datatype);
|
||||
);
|
||||
|
||||
if (MPI_PARAM_CHECK) {
|
||||
rc = MPI_SUCCESS;
|
||||
OMPI_ERR_INIT_FINALIZE(FUNC_NAME);
|
||||
if (ompi_file_invalid(fh)) {
|
||||
fh = MPI_FILE_NULL;
|
||||
rc = MPI_ERR_FILE;
|
||||
} else if (count < 0) {
|
||||
rc = MPI_ERR_COUNT;
|
||||
} else if (NULL == request) {
|
||||
rc = MPI_ERR_REQUEST;
|
||||
} else {
|
||||
OMPI_CHECK_DATATYPE_FOR_RECV(rc, datatype, count);
|
||||
}
|
||||
OMPI_ERRHANDLER_CHECK(rc, fh, rc, FUNC_NAME);
|
||||
}
|
||||
|
||||
OPAL_CR_ENTER_LIBRARY();
|
||||
|
||||
/* Call the back-end io component function */
|
||||
switch (fh->f_io_version) {
|
||||
case MCA_IO_BASE_V_2_0_0:
|
||||
rc = fh->f_io_selected_module.v2_0_0.
|
||||
io_module_file_iread_at_all(fh, offset, buf, count, datatype,
|
||||
request);
|
||||
break;
|
||||
|
||||
default:
|
||||
rc = MPI_ERR_INTERN;
|
||||
break;
|
||||
}
|
||||
|
||||
/* All done */
|
||||
|
||||
OMPI_ERRHANDLER_RETURN(rc, fh, rc, FUNC_NAME);
|
||||
}
|
89
ompi/mpi/c/file_iwrite_all.c
Обычный файл
89
ompi/mpi/c/file_iwrite_all.c
Обычный файл
@ -0,0 +1,89 @@
|
||||
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
|
||||
/*
|
||||
* Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
|
||||
* University Research and Technology
|
||||
* Corporation. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2008 High Performance Computing Center Stuttgart,
|
||||
* University of Stuttgart. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved.
|
||||
* Copyright (c) 2013 Los Alamos National Security, LLC. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2015 University of Houston. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*/
|
||||
|
||||
#include "ompi_config.h"
|
||||
|
||||
#include "ompi/mpi/c/bindings.h"
|
||||
#include "ompi/runtime/params.h"
|
||||
#include "ompi/errhandler/errhandler.h"
|
||||
#include "ompi/datatype/ompi_datatype.h"
|
||||
#include "ompi/file/file.h"
|
||||
#include "ompi/mca/io/io.h"
|
||||
#include "ompi/mca/io/base/io_base_request.h"
|
||||
#include "ompi/memchecker.h"
|
||||
|
||||
#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILING_DEFINES
|
||||
#pragma weak MPI_File_iwrite_all = PMPI_File_iwrite_all
|
||||
#endif
|
||||
|
||||
#if OMPI_PROFILING_DEFINES
|
||||
#include "ompi/mpi/c/profile/defines.h"
|
||||
#endif
|
||||
|
||||
static const char FUNC_NAME[] = "MPI_File_iwrite_all";
|
||||
|
||||
|
||||
int MPI_File_iwrite_all(MPI_File fh, const void *buf, int count, MPI_Datatype
|
||||
datatype, MPI_Request *request)
|
||||
{
|
||||
int rc;
|
||||
|
||||
MEMCHECKER(
|
||||
memchecker_datatype(datatype);
|
||||
memchecker_call(&opal_memchecker_base_isdefined, buf, count, datatype);
|
||||
);
|
||||
|
||||
if (MPI_PARAM_CHECK) {
|
||||
rc = MPI_SUCCESS;
|
||||
OMPI_ERR_INIT_FINALIZE(FUNC_NAME);
|
||||
if (ompi_file_invalid(fh)) {
|
||||
fh = MPI_FILE_NULL;
|
||||
rc = MPI_ERR_FILE;
|
||||
} else if (count < 0) {
|
||||
rc = MPI_ERR_COUNT;
|
||||
} else if (NULL == request) {
|
||||
rc = MPI_ERR_REQUEST;
|
||||
} else {
|
||||
OMPI_CHECK_DATATYPE_FOR_SEND(rc, datatype, count);
|
||||
}
|
||||
OMPI_ERRHANDLER_CHECK(rc, fh, rc, FUNC_NAME);
|
||||
}
|
||||
|
||||
OPAL_CR_ENTER_LIBRARY();
|
||||
|
||||
/* Call the back-end io component function */
|
||||
switch (fh->f_io_version) {
|
||||
case MCA_IO_BASE_V_2_0_0:
|
||||
/* XXX -- CONST -- do not cast away const -- update mca/io */
|
||||
rc = fh->f_io_selected_module.v2_0_0.
|
||||
io_module_file_iwrite_all(fh, (void *) buf, count, datatype, request);
|
||||
break;
|
||||
|
||||
default:
|
||||
rc = MPI_ERR_INTERN;
|
||||
break;
|
||||
}
|
||||
|
||||
/* All done */
|
||||
OMPI_ERRHANDLER_RETURN(rc, fh, rc, FUNC_NAME);
|
||||
}
|
92
ompi/mpi/c/file_iwrite_at_all.c
Обычный файл
92
ompi/mpi/c/file_iwrite_at_all.c
Обычный файл
@ -0,0 +1,92 @@
|
||||
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
|
||||
/*
|
||||
* Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
|
||||
* University Research and Technology
|
||||
* Corporation. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2008 High Performance Computing Center Stuttgart,
|
||||
* University of Stuttgart. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved.
|
||||
* Copyright (c) 2013 Los Alamos National Security, LLC. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2015 University of Houston. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*/
|
||||
|
||||
#include "ompi_config.h"
|
||||
|
||||
#include "ompi/mpi/c/bindings.h"
|
||||
#include "ompi/runtime/params.h"
|
||||
#include "ompi/errhandler/errhandler.h"
|
||||
#include "ompi/datatype/ompi_datatype.h"
|
||||
#include "ompi/file/file.h"
|
||||
#include "ompi/mca/io/io.h"
|
||||
#include "ompi/mca/io/base/io_base_request.h"
|
||||
#include "ompi/memchecker.h"
|
||||
|
||||
#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILING_DEFINES
|
||||
#pragma weak MPI_File_iwrite_at_all = PMPI_File_iwrite_at_all
|
||||
#endif
|
||||
|
||||
#if OMPI_PROFILING_DEFINES
|
||||
#include "ompi/mpi/c/profile/defines.h"
|
||||
#endif
|
||||
|
||||
static const char FUNC_NAME[] = "MPI_File_iwrite_at_all";
|
||||
|
||||
|
||||
int MPI_File_iwrite_at_all(MPI_File fh, MPI_Offset offset, const void *buf,
|
||||
int count, MPI_Datatype datatype,
|
||||
MPI_Request *request)
|
||||
{
|
||||
int rc;
|
||||
|
||||
MEMCHECKER(
|
||||
memchecker_datatype(datatype);
|
||||
memchecker_call(&opal_memchecker_base_isdefined, buf, count, datatype);
|
||||
);
|
||||
|
||||
if (MPI_PARAM_CHECK) {
|
||||
rc = MPI_SUCCESS;
|
||||
OMPI_ERR_INIT_FINALIZE(FUNC_NAME);
|
||||
if (ompi_file_invalid(fh)) {
|
||||
fh = MPI_FILE_NULL;
|
||||
rc = MPI_ERR_FILE;
|
||||
} else if (count < 0) {
|
||||
rc = MPI_ERR_COUNT;
|
||||
} else if (NULL == request) {
|
||||
rc = MPI_ERR_REQUEST;
|
||||
} else {
|
||||
OMPI_CHECK_DATATYPE_FOR_SEND(rc, datatype, count);
|
||||
}
|
||||
OMPI_ERRHANDLER_CHECK(rc, fh, rc, FUNC_NAME);
|
||||
}
|
||||
|
||||
OPAL_CR_ENTER_LIBRARY();
|
||||
|
||||
/* Call the back-end io component function */
|
||||
switch (fh->f_io_version) {
|
||||
case MCA_IO_BASE_V_2_0_0:
|
||||
/* XXX -- CONST -- do not cast away const -- update mca/io */
|
||||
rc = fh->f_io_selected_module.v2_0_0.
|
||||
io_module_file_iwrite_at_all(fh, offset, (void *) buf, count, datatype,
|
||||
request);
|
||||
break;
|
||||
|
||||
default:
|
||||
rc = MPI_ERR_INTERN;
|
||||
break;
|
||||
}
|
||||
|
||||
/* All done */
|
||||
|
||||
OMPI_ERRHANDLER_RETURN(rc, fh, rc, FUNC_NAME);
|
||||
}
|
@ -391,9 +391,13 @@ nodist_libmpi_c_pmpi_la_SOURCES += \
|
||||
pfile_get_view.c \
|
||||
pfile_iread_at.c \
|
||||
pfile_iread.c \
|
||||
pfile_iread_at_all.c \
|
||||
pfile_iread_all.c \
|
||||
pfile_iread_shared.c \
|
||||
pfile_iwrite_at.c \
|
||||
pfile_iwrite.c \
|
||||
pfile_iwrite_at_all.c \
|
||||
pfile_iwrite_all.c \
|
||||
pfile_iwrite_shared.c \
|
||||
pfile_open.c \
|
||||
pfile_preallocate.c \
|
||||
|
@ -143,9 +143,13 @@
|
||||
#define MPI_File_get_view PMPI_File_get_view
|
||||
#define MPI_File_iread_at PMPI_File_iread_at
|
||||
#define MPI_File_iread PMPI_File_iread
|
||||
#define MPI_File_iread_at_all PMPI_File_iread_at_all
|
||||
#define MPI_File_iread_all PMPI_File_iread_all
|
||||
#define MPI_File_iread_shared PMPI_File_iread_shared
|
||||
#define MPI_File_iwrite_at PMPI_File_iwrite_at
|
||||
#define MPI_File_iwrite PMPI_File_iwrite
|
||||
#define MPI_File_iwrite_at_all PMPI_File_iwrite_at_all
|
||||
#define MPI_File_iwrite_all PMPI_File_iwrite_all
|
||||
#define MPI_File_iwrite_shared PMPI_File_iwrite_shared
|
||||
#define MPI_File_open PMPI_File_open
|
||||
#define MPI_File_preallocate PMPI_File_preallocate
|
||||
|
@ -450,9 +450,13 @@ libmpi_mpifh_la_SOURCES += \
|
||||
file_get_view_f.c \
|
||||
file_iread_at_f.c \
|
||||
file_iread_f.c \
|
||||
file_iread_at_all_f.c \
|
||||
file_iread_all_f.c \
|
||||
file_iread_shared_f.c \
|
||||
file_iwrite_at_f.c \
|
||||
file_iwrite_f.c \
|
||||
file_iwrite_at_all_f.c \
|
||||
file_iwrite_all_f.c \
|
||||
file_iwrite_shared_f.c \
|
||||
file_open_f.c \
|
||||
file_preallocate_f.c \
|
||||
|
84
ompi/mpi/fortran/mpif-h/file_iread_all_f.c
Обычный файл
84
ompi/mpi/fortran/mpif-h/file_iread_all_f.c
Обычный файл
@ -0,0 +1,84 @@
|
||||
/*
|
||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
* University Research and Technology
|
||||
* Corporation. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
* University of Stuttgart. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*/
|
||||
|
||||
#include "ompi_config.h"
|
||||
|
||||
#include "ompi/mpi/fortran/mpif-h/bindings.h"
|
||||
#include "ompi/mpi/fortran/base/constants.h"
|
||||
|
||||
#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
||||
#pragma weak PMPI_FILE_IREAD_ALL = ompi_file_iread_all_f
|
||||
#pragma weak pmpi_file_iread_all = ompi_file_iread_all_f
|
||||
#pragma weak pmpi_file_iread_all_ = ompi_file_iread_all_f
|
||||
#pragma weak pmpi_file_iread_all__ = ompi_file_iread_all_f
|
||||
|
||||
#pragma weak PMPI_File_iread_all_f = ompi_file_iread_all_f
|
||||
#pragma weak PMPI_File_iread_all_f08 = ompi_file_iread_all_f
|
||||
#elif OMPI_PROFILE_LAYER
|
||||
OMPI_GENERATE_F77_BINDINGS (PMPI_FILE_IREAD_ALL,
|
||||
pmpi_file_iread_all,
|
||||
pmpi_file_iread_all_,
|
||||
pmpi_file_iread_all__,
|
||||
pompi_file_iread_all_f,
|
||||
(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr),
|
||||
(fh, buf, count, datatype, request, ierr) )
|
||||
#endif
|
||||
|
||||
#if OPAL_HAVE_WEAK_SYMBOLS
|
||||
#pragma weak MPI_FILE_IREAD_ALL = ompi_file_iread_all_f
|
||||
#pragma weak mpi_file_iread_all = ompi_file_iread_all_f
|
||||
#pragma weak mpi_file_iread_all_ = ompi_file_iread_all_f
|
||||
#pragma weak mpi_file_iread_all__ = ompi_file_iread_all_f
|
||||
|
||||
#pragma weak MPI_File_iread_all_f = ompi_file_iread_all_f
|
||||
#pragma weak MPI_File_iread_all_f08 = ompi_file_iread_all_f
|
||||
#endif
|
||||
|
||||
#if ! OPAL_HAVE_WEAK_SYMBOLS && ! OMPI_PROFILE_LAYER
|
||||
OMPI_GENERATE_F77_BINDINGS (MPI_FILE_IREAD_ALL,
|
||||
mpi_file_iread_all,
|
||||
mpi_file_iread_all_,
|
||||
mpi_file_iread_all__,
|
||||
ompi_file_iread_all_f,
|
||||
(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr),
|
||||
(fh, buf, count, datatype, request, ierr) )
|
||||
#endif
|
||||
|
||||
|
||||
#if OMPI_PROFILE_LAYER && ! OPAL_HAVE_WEAK_SYMBOLS
|
||||
#include "ompi/mpi/fortran/mpif-h/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void ompi_file_iread_all_f(MPI_Fint *fh, char *buf, MPI_Fint *count,
|
||||
MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr)
|
||||
{
|
||||
int c_ierr;
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
MPI_Datatype c_type = MPI_Type_f2c(*datatype);
|
||||
MPI_Request c_request;
|
||||
|
||||
c_ierr = MPI_File_iread_all(c_fh, OMPI_F2C_BOTTOM(buf),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type, &c_request);
|
||||
if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr);
|
||||
|
||||
if (MPI_SUCCESS == c_ierr) {
|
||||
*request = MPI_Request_c2f(c_request);
|
||||
}
|
||||
}
|
87
ompi/mpi/fortran/mpif-h/file_iread_at_all_f.c
Обычный файл
87
ompi/mpi/fortran/mpif-h/file_iread_at_all_f.c
Обычный файл
@ -0,0 +1,87 @@
|
||||
/*
|
||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
* University Research and Technology
|
||||
* Corporation. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
* University of Stuttgart. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*/
|
||||
|
||||
#include "ompi_config.h"
|
||||
|
||||
#include "ompi/mpi/fortran/mpif-h/bindings.h"
|
||||
#include "ompi/mpi/fortran/base/constants.h"
|
||||
|
||||
#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
||||
#pragma weak PMPI_FILE_IREAD_AT_ALL = ompi_file_iread_at_all_f
|
||||
#pragma weak pmpi_file_iread_at_all = ompi_file_iread_at_all_f
|
||||
#pragma weak pmpi_file_iread_at_all_ = ompi_file_iread_at_all_f
|
||||
#pragma weak pmpi_file_iread_at_all__ = ompi_file_iread_at_all_f
|
||||
|
||||
#pragma weak PMPI_File_iread_at_all_f = ompi_file_iread_at_all_f
|
||||
#pragma weak PMPI_File_iread_at_all_f08 = ompi_file_iread_at_all_f
|
||||
#elif OMPI_PROFILE_LAYER
|
||||
OMPI_GENERATE_F77_BINDINGS (PMPI_FILE_IREAD_AT_ALL,
|
||||
pmpi_file_iread_at_all,
|
||||
pmpi_file_iread_at_all_,
|
||||
pmpi_file_iread_at_all__,
|
||||
pompi_file_iread_at_all_f,
|
||||
(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr),
|
||||
(fh, offset, buf, count, datatype, request, ierr) )
|
||||
#endif
|
||||
|
||||
#if OPAL_HAVE_WEAK_SYMBOLS
|
||||
#pragma weak MPI_FILE_IREAD_AT_ALL = ompi_file_iread_at_all_f
|
||||
#pragma weak mpi_file_iread_at_all = ompi_file_iread_at_all_f
|
||||
#pragma weak mpi_file_iread_at_all_ = ompi_file_iread_at_all_f
|
||||
#pragma weak mpi_file_iread_at_all__ = ompi_file_iread_at_all_f
|
||||
|
||||
#pragma weak MPI_File_iread_at_all_f = ompi_file_iread_at_all_f
|
||||
#pragma weak MPI_File_iread_at_all_f08 = ompi_file_iread_at_all_f
|
||||
#endif
|
||||
|
||||
#if ! OPAL_HAVE_WEAK_SYMBOLS && ! OMPI_PROFILE_LAYER
|
||||
OMPI_GENERATE_F77_BINDINGS (MPI_FILE_IREAD_AT_ALL,
|
||||
mpi_file_iread_at_all,
|
||||
mpi_file_iread_at_all_,
|
||||
mpi_file_iread_at_all__,
|
||||
ompi_file_iread_at_all_f,
|
||||
(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr),
|
||||
(fh, offset, buf, count, datatype, request, ierr) )
|
||||
#endif
|
||||
|
||||
|
||||
#if OMPI_PROFILE_LAYER && ! OPAL_HAVE_WEAK_SYMBOLS
|
||||
#include "ompi/mpi/fortran/mpif-h/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void ompi_file_iread_at_all_f(MPI_Fint *fh, MPI_Offset *offset,
|
||||
char *buf, MPI_Fint *count,
|
||||
MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr)
|
||||
{
|
||||
int c_ierr;
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
MPI_Datatype c_type = MPI_Type_f2c(*datatype);
|
||||
MPI_Request c_request;
|
||||
|
||||
c_ierr = MPI_File_iread_at_all(c_fh, (MPI_Offset) *offset,
|
||||
OMPI_F2C_BOTTOM(buf),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type,
|
||||
&c_request);
|
||||
if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr);
|
||||
|
||||
if (MPI_SUCCESS == c_ierr) {
|
||||
*request = MPI_Request_c2f(c_request);
|
||||
}
|
||||
}
|
83
ompi/mpi/fortran/mpif-h/file_iwrite_all_f.c
Обычный файл
83
ompi/mpi/fortran/mpif-h/file_iwrite_all_f.c
Обычный файл
@ -0,0 +1,83 @@
|
||||
/*
|
||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
* University Research and Technology
|
||||
* Corporation. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
* University of Stuttgart. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*/
|
||||
|
||||
#include "ompi_config.h"
|
||||
|
||||
#include "ompi/mpi/fortran/mpif-h/bindings.h"
|
||||
#include "ompi/mpi/fortran/base/constants.h"
|
||||
|
||||
#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
||||
#pragma weak PMPI_FILE_IWRITE_ALL = ompi_file_iwrite_all_f
|
||||
#pragma weak pmpi_file_iwrite_all = ompi_file_iwrite_all_f
|
||||
#pragma weak pmpi_file_iwrite_all_ = ompi_file_iwrite_all_f
|
||||
#pragma weak pmpi_file_iwrite_all__ = ompi_file_iwrite_all_f
|
||||
|
||||
#pragma weak PMPI_File_iwrite_all_f = ompi_file_iwrite_all_f
|
||||
#pragma weak PMPI_File_iwrite_all_f08 = ompi_file_iwrite_all_f
|
||||
#elif OMPI_PROFILE_LAYER
|
||||
OMPI_GENERATE_F77_BINDINGS (PMPI_FILE_IWRITE_ALL,
|
||||
pmpi_file_iwrite_all,
|
||||
pmpi_file_iwrite_all_,
|
||||
pmpi_file_iwrite_all__,
|
||||
pompi_file_iwrite_all_f,
|
||||
(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr),
|
||||
(fh, buf, count, datatype, request, ierr) )
|
||||
#endif
|
||||
|
||||
#if OPAL_HAVE_WEAK_SYMBOLS
|
||||
#pragma weak MPI_FILE_IWRITE_ALL = ompi_file_iwrite_all_f
|
||||
#pragma weak mpi_file_iwrite_all = ompi_file_iwrite_all_f
|
||||
#pragma weak mpi_file_iwrite_all_ = ompi_file_iwrite_all_f
|
||||
#pragma weak mpi_file_iwrite_all__ = ompi_file_iwrite_all_f
|
||||
|
||||
#pragma weak MPI_File_iwrite_all_f = ompi_file_iwrite_all_f
|
||||
#pragma weak MPI_File_iwrite_all_f08 = ompi_file_iwrite_all_f
|
||||
#endif
|
||||
|
||||
#if ! OPAL_HAVE_WEAK_SYMBOLS && ! OMPI_PROFILE_LAYER
|
||||
OMPI_GENERATE_F77_BINDINGS (MPI_FILE_IWRITE_ALL,
|
||||
mpi_file_iwrite_all,
|
||||
mpi_file_iwrite_all_,
|
||||
mpi_file_iwrite_all__,
|
||||
ompi_file_iwrite_all_f,
|
||||
(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr),
|
||||
(fh, buf, count, datatype, request, ierr) )
|
||||
#endif
|
||||
|
||||
|
||||
#if OMPI_PROFILE_LAYER && ! OPAL_HAVE_WEAK_SYMBOLS
|
||||
#include "ompi/mpi/fortran/mpif-h/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void ompi_file_iwrite_all_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr)
|
||||
{
|
||||
int c_ierr;
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
MPI_Datatype c_type = MPI_Type_f2c(*datatype);
|
||||
MPI_Request c_request;
|
||||
|
||||
c_ierr = MPI_File_iwrite_all(c_fh, OMPI_F2C_BOTTOM(buf),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type, &c_request);
|
||||
if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr);
|
||||
|
||||
if (MPI_SUCCESS == c_ierr) {
|
||||
*request = MPI_Request_c2f(c_request);
|
||||
}
|
||||
}
|
86
ompi/mpi/fortran/mpif-h/file_iwrite_at_all_f.c
Обычный файл
86
ompi/mpi/fortran/mpif-h/file_iwrite_at_all_f.c
Обычный файл
@ -0,0 +1,86 @@
|
||||
/*
|
||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
* University Research and Technology
|
||||
* Corporation. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
* University of Stuttgart. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*/
|
||||
|
||||
#include "ompi_config.h"
|
||||
|
||||
#include "ompi/mpi/fortran/mpif-h/bindings.h"
|
||||
#include "ompi/mpi/fortran/base/constants.h"
|
||||
|
||||
#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
||||
#pragma weak PMPI_FILE_IWRITE_AT_ALL = ompi_file_iwrite_at_all_f
|
||||
#pragma weak pmpi_file_iwrite_at_all = ompi_file_iwrite_at_all_f
|
||||
#pragma weak pmpi_file_iwrite_at_all_ = ompi_file_iwrite_at_all_f
|
||||
#pragma weak pmpi_file_iwrite_at_all__ = ompi_file_iwrite_at_all_f
|
||||
|
||||
#pragma weak PMPI_File_iwrite_at_all_f = ompi_file_iwrite_at_all_f
|
||||
#pragma weak PMPI_File_iwrite_at_all_f08 = ompi_file_iwrite_at_all_f
|
||||
#elif OMPI_PROFILE_LAYER
|
||||
OMPI_GENERATE_F77_BINDINGS (PMPI_FILE_IWRITE_AT_ALL,
|
||||
pmpi_file_iwrite_at_all,
|
||||
pmpi_file_iwrite_at_all_,
|
||||
pmpi_file_iwrite_at_all__,
|
||||
pompi_file_iwrite_at_all_f,
|
||||
(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr),
|
||||
(fh, offset, buf, count, datatype, request, ierr) )
|
||||
#endif
|
||||
|
||||
#if OPAL_HAVE_WEAK_SYMBOLS
|
||||
#pragma weak MPI_FILE_IWRITE_AT_ALL = ompi_file_iwrite_at_all_f
|
||||
#pragma weak mpi_file_iwrite_at_all = ompi_file_iwrite_at_all_f
|
||||
#pragma weak mpi_file_iwrite_at_all_ = ompi_file_iwrite_at_all_f
|
||||
#pragma weak mpi_file_iwrite_at_all__ = ompi_file_iwrite_at_all_f
|
||||
|
||||
#pragma weak MPI_File_iwrite_at_all_f = ompi_file_iwrite_at_all_f
|
||||
#pragma weak MPI_File_iwrite_at_all_f08 = ompi_file_iwrite_at_all_f
|
||||
#endif
|
||||
|
||||
#if ! OPAL_HAVE_WEAK_SYMBOLS && ! OMPI_PROFILE_LAYER
|
||||
OMPI_GENERATE_F77_BINDINGS (MPI_FILE_IWRITE_AT_ALL,
|
||||
mpi_file_iwrite_at_all,
|
||||
mpi_file_iwrite_at_all_,
|
||||
mpi_file_iwrite_at_all__,
|
||||
ompi_file_iwrite_at_all_f,
|
||||
(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr),
|
||||
(fh, offset, buf, count, datatype, request, ierr) )
|
||||
#endif
|
||||
|
||||
|
||||
#if OMPI_PROFILE_LAYER && ! OPAL_HAVE_WEAK_SYMBOLS
|
||||
#include "ompi/mpi/fortran/mpif-h/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void ompi_file_iwrite_at_all_f(MPI_Fint *fh, MPI_Offset *offset, char *buf,
|
||||
MPI_Fint *count, MPI_Fint *datatype,
|
||||
MPI_Fint *request, MPI_Fint *ierr)
|
||||
{
|
||||
int c_ierr;
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
MPI_Datatype c_type = MPI_Type_f2c(*datatype);
|
||||
MPI_Request c_request;
|
||||
|
||||
c_ierr = MPI_File_iwrite_at_all(c_fh, (MPI_Offset) *offset,
|
||||
OMPI_F2C_BOTTOM(buf),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type, &c_request);
|
||||
if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr);
|
||||
|
||||
if (MPI_SUCCESS == c_ierr) {
|
||||
*request = MPI_Request_c2f(c_request);
|
||||
}
|
||||
}
|
@ -128,12 +128,16 @@
|
||||
#define ompi_file_write_at_f pompi_file_write_at_f
|
||||
#define ompi_file_write_at_all_f pompi_file_write_at_all_f
|
||||
#define ompi_file_iread_at_f pompi_file_iread_at_f
|
||||
#define ompi_file_iwrite_at_all_f pompi_file_iwrite_at_all_f
|
||||
#define ompi_file_iread_at_all_f pompi_file_iread_at_all_f
|
||||
#define ompi_file_iwrite_at_f pompi_file_iwrite_at_f
|
||||
#define ompi_file_read_f pompi_file_read_f
|
||||
#define ompi_file_read_all_f pompi_file_read_all_f
|
||||
#define ompi_file_write_f pompi_file_write_f
|
||||
#define ompi_file_write_all_f pompi_file_write_all_f
|
||||
#define ompi_file_iread_f pompi_file_iread_f
|
||||
#define ompi_file_iwrite_all_f pompi_file_iwrite_all_f
|
||||
#define ompi_file_iread_all_f pompi_file_iread_all_f
|
||||
#define ompi_file_iwrite_f pompi_file_iwrite_f
|
||||
#define ompi_file_seek_f pompi_file_seek_f
|
||||
#define ompi_file_get_position_f pompi_file_get_position_f
|
||||
|
@ -187,12 +187,16 @@ PN2(void, MPI_File_write_at, mpi_file_write_at, MPI_FILE_WRITE_AT, (MPI_Fint *fh
|
||||
PN2(void, MPI_File_write_at_all, mpi_file_write_at_all, MPI_FILE_WRITE_AT_ALL, (MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr));
|
||||
PN2(void, MPI_File_iread_at, mpi_file_iread_at, MPI_FILE_IREAD_AT, (MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr));
|
||||
PN2(void, MPI_File_iwrite_at, mpi_file_iwrite_at, MPI_FILE_IWRITE_AT, (MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr));
|
||||
PN2(void, MPI_File_iread_at_all, mpi_file_iread_at_all, MPI_FILE_IREAD_AT_ALL, (MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr));
|
||||
PN2(void, MPI_File_iwrite_at_all, mpi_file_iwrite_at_all, MPI_FILE_IWRITE_AT_ALL, (MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr));
|
||||
PN2(void, MPI_File_read, mpi_file_read, MPI_FILE_READ, (MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr));
|
||||
PN2(void, MPI_File_read_all, mpi_file_read_all, MPI_FILE_READ_ALL, (MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr));
|
||||
PN2(void, MPI_File_write, mpi_file_write, MPI_FILE_WRITE, (MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr));
|
||||
PN2(void, MPI_File_write_all, mpi_file_write_all, MPI_FILE_WRITE_ALL, (MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr));
|
||||
PN2(void, MPI_File_iread, mpi_file_iread, MPI_FILE_IREAD, (MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr));
|
||||
PN2(void, MPI_File_iwrite, mpi_file_iwrite, MPI_FILE_IWRITE, (MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr));
|
||||
PN2(void, MPI_File_iread_all, mpi_file_iread_all, MPI_FILE_IREAD_ALL, (MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr));
|
||||
PN2(void, MPI_File_iwrite_all, mpi_file_iwrite_all, MPI_FILE_IWRITE_ALL, (MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr));
|
||||
PN2(void, MPI_File_seek, mpi_file_seek, MPI_FILE_SEEK, (MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *whence, MPI_Fint *ierr));
|
||||
PN2(void, MPI_File_get_position, mpi_file_get_position, MPI_FILE_GET_POSITION, (MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *ierr));
|
||||
PN2(void, MPI_File_get_byte_offset, mpi_file_get_byte_offset, MPI_FILE_GET_BYTE_OFFSET, (MPI_Fint *fh, MPI_Offset *offset, MPI_Offset *disp, MPI_Fint *ierr));
|
||||
|
@ -396,9 +396,13 @@ mpi_api_files += \
|
||||
file_get_view_f08.F90 \
|
||||
file_iread_at_f08.F90 \
|
||||
file_iread_f08.F90 \
|
||||
file_iread_at_all_f08.F90 \
|
||||
file_iread_all_f08.F90 \
|
||||
file_iread_shared_f08.F90 \
|
||||
file_iwrite_at_f08.F90 \
|
||||
file_iwrite_f08.F90 \
|
||||
file_iwrite_at_all_f08.F90 \
|
||||
file_iwrite_all_f08.F90 \
|
||||
file_iwrite_shared_f08.F90 \
|
||||
file_open_f08.F90 \
|
||||
file_preallocate_f08.F90 \
|
||||
|
25
ompi/mpi/fortran/use-mpi-f08/file_iread_all_f08.F90
Обычный файл
25
ompi/mpi/fortran/use-mpi-f08/file_iread_all_f08.F90
Обычный файл
@ -0,0 +1,25 @@
|
||||
! -*- f90 -*-
|
||||
!
|
||||
! Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
|
||||
! Copyright (c) 2009-2012 Los Alamos National Security, LLC.
|
||||
! All Rights reserved.
|
||||
! $COPYRIGHT$
|
||||
|
||||
#include "ompi/mpi/fortran/configure-fortran-output.h"
|
||||
|
||||
subroutine MPI_File_iread_all_f08(fh,buf,count,datatype,request,ierror)
|
||||
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request
|
||||
use :: mpi_f08, only : ompi_file_iread_all_f
|
||||
implicit none
|
||||
TYPE(MPI_File), INTENT(IN) :: fh
|
||||
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
|
||||
INTEGER, INTENT(IN) :: count
|
||||
TYPE(MPI_Datatype), INTENT(IN) :: datatype
|
||||
TYPE(MPI_Request), INTENT(OUT) :: request
|
||||
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
|
||||
integer :: c_ierror
|
||||
|
||||
call ompi_file_iread_all_f(fh%MPI_VAL,buf,count,datatype%MPI_VAL,request%MPI_VAL,c_ierror)
|
||||
if (present(ierror)) ierror = c_ierror
|
||||
|
||||
end subroutine MPI_File_iread_all_f08
|
27
ompi/mpi/fortran/use-mpi-f08/file_iread_at_all_f08.F90
Обычный файл
27
ompi/mpi/fortran/use-mpi-f08/file_iread_at_all_f08.F90
Обычный файл
@ -0,0 +1,27 @@
|
||||
! -*- f90 -*-
|
||||
!
|
||||
! Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
|
||||
! Copyright (c) 2009-2012 Los Alamos National Security, LLC.
|
||||
! All Rights reserved.
|
||||
! $COPYRIGHT$
|
||||
|
||||
#include "ompi/mpi/fortran/configure-fortran-output.h"
|
||||
|
||||
subroutine MPI_File_iread_at_all_f08(fh,offset,buf,count,datatype,request,ierror)
|
||||
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request, MPI_OFFSET_KIND
|
||||
use :: mpi_f08, only : ompi_file_iread_at_all_f
|
||||
implicit none
|
||||
TYPE(MPI_File), INTENT(IN) :: fh
|
||||
INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
|
||||
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
|
||||
INTEGER, INTENT(IN) :: count
|
||||
TYPE(MPI_Datatype), INTENT(IN) :: datatype
|
||||
TYPE(MPI_Request), INTENT(OUT) :: request
|
||||
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
|
||||
integer :: c_ierror
|
||||
|
||||
call ompi_file_iread_at_all_f(fh%MPI_VAL,offset,buf,count,&
|
||||
datatype%MPI_VAL,request%MPI_VAL,c_ierror)
|
||||
if (present(ierror)) ierror = c_ierror
|
||||
|
||||
end subroutine MPI_File_iread_at_all_f08
|
26
ompi/mpi/fortran/use-mpi-f08/file_iwrite_all_f08.F90
Обычный файл
26
ompi/mpi/fortran/use-mpi-f08/file_iwrite_all_f08.F90
Обычный файл
@ -0,0 +1,26 @@
|
||||
! -*- f90 -*-
|
||||
!
|
||||
! Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
|
||||
! Copyright (c) 2009-2012 Los Alamos National Security, LLC.
|
||||
! All Rights reserved.
|
||||
! $COPYRIGHT$
|
||||
|
||||
#include "ompi/mpi/fortran/configure-fortran-output.h"
|
||||
|
||||
subroutine MPI_File_iwrite_all_f08(fh,buf,count,datatype,request,ierror)
|
||||
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request
|
||||
use :: mpi_f08, only : ompi_file_iwrite_all_f
|
||||
implicit none
|
||||
TYPE(MPI_File), INTENT(IN) :: fh
|
||||
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
|
||||
INTEGER, INTENT(IN) :: count
|
||||
TYPE(MPI_Datatype), INTENT(IN) :: datatype
|
||||
TYPE(MPI_Request), INTENT(OUT) :: request
|
||||
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
|
||||
integer :: c_ierror
|
||||
|
||||
call ompi_file_iwrite_all_f(fh%MPI_VAL,buf,count,&
|
||||
datatype%MPI_VAL,request%MPI_VAL,c_ierror)
|
||||
if (present(ierror)) ierror = c_ierror
|
||||
|
||||
end subroutine MPI_File_iwrite_all_f08
|
27
ompi/mpi/fortran/use-mpi-f08/file_iwrite_at_all_f08.F90
Обычный файл
27
ompi/mpi/fortran/use-mpi-f08/file_iwrite_at_all_f08.F90
Обычный файл
@ -0,0 +1,27 @@
|
||||
! -*- f90 -*-
|
||||
!
|
||||
! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved.
|
||||
! Copyright (c) 2009-2012 Los Alamos National Security, LLC.
|
||||
! All Rights reserved.
|
||||
! $COPYRIGHT$
|
||||
|
||||
#include "ompi/mpi/fortran/configure-fortran-output.h"
|
||||
|
||||
subroutine MPI_File_iwrite_at_all_f08(fh,offset,buf,count,datatype,request,ierror)
|
||||
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request, MPI_OFFSET_KIND
|
||||
use :: mpi_f08, only : ompi_file_iwrite_at_all_f
|
||||
implicit none
|
||||
TYPE(MPI_File), INTENT(IN) :: fh
|
||||
INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
|
||||
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
|
||||
INTEGER, INTENT(IN) :: count
|
||||
TYPE(MPI_Datatype), INTENT(IN) :: datatype
|
||||
TYPE(MPI_Request), INTENT(OUT) :: request
|
||||
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
|
||||
integer :: c_ierror
|
||||
|
||||
call ompi_file_iwrite_at_all_f(fh%MPI_VAL,offset,buf,count,&
|
||||
datatype%MPI_VAL,request%MPI_VAL,c_ierror)
|
||||
if (present(ierror)) ierror = c_ierror
|
||||
|
||||
end subroutine MPI_File_iwrite_at_all_f08
|
@ -2750,6 +2750,30 @@ subroutine ompi_file_iread_at_f(fh,offset,buf,count,datatype,request,ierror) &
|
||||
INTEGER, INTENT(OUT) :: ierror
|
||||
end subroutine ompi_file_iread_at_f
|
||||
|
||||
subroutine ompi_file_iread_all_f(fh,buf,count,datatype,request,ierror) &
|
||||
BIND(C, name="ompi_file_iread_all_f")
|
||||
implicit none
|
||||
INTEGER, INTENT(IN) :: fh
|
||||
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
|
||||
INTEGER, INTENT(IN) :: count
|
||||
INTEGER, INTENT(IN) :: datatype
|
||||
INTEGER, INTENT(OUT) :: request
|
||||
INTEGER, INTENT(OUT) :: ierror
|
||||
end subroutine ompi_file_iread_all_f
|
||||
|
||||
subroutine ompi_file_iread_at_all_f(fh,offset,buf,count,datatype,request,ierror) &
|
||||
BIND(C, name="ompi_file_iread_at_all_f")
|
||||
use :: mpi_f08_types, only : MPI_OFFSET_KIND
|
||||
implicit none
|
||||
INTEGER, INTENT(IN) :: fh
|
||||
INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
|
||||
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
|
||||
INTEGER, INTENT(IN) :: count
|
||||
INTEGER, INTENT(IN) :: datatype
|
||||
INTEGER, INTENT(OUT) :: request
|
||||
INTEGER, INTENT(OUT) :: ierror
|
||||
end subroutine ompi_file_iread_at_all_f
|
||||
|
||||
subroutine ompi_file_iread_shared_f(fh,buf,count,datatype,request,ierror) &
|
||||
BIND(C, name="ompi_file_iread_shared_f")
|
||||
implicit none
|
||||
@ -2785,6 +2809,30 @@ subroutine ompi_file_iwrite_at_f(fh,offset,buf,count,datatype,request,ierror) &
|
||||
INTEGER, INTENT(OUT) :: ierror
|
||||
end subroutine ompi_file_iwrite_at_f
|
||||
|
||||
subroutine ompi_file_iwrite_all_f(fh,buf,count,datatype,request,ierror) &
|
||||
BIND(C, name="ompi_file_iwrite_all_f")
|
||||
implicit none
|
||||
INTEGER, INTENT(IN) :: fh
|
||||
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
|
||||
INTEGER, INTENT(IN) :: count
|
||||
INTEGER, INTENT(IN) :: datatype
|
||||
INTEGER, INTENT(OUT) :: request
|
||||
INTEGER, INTENT(OUT) :: ierror
|
||||
end subroutine ompi_file_iwrite_all_f
|
||||
|
||||
subroutine ompi_file_iwrite_at_all_f(fh,offset,buf,count,datatype,request,ierror) &
|
||||
BIND(C, name="ompi_file_iwrite_at_all_f")
|
||||
use :: mpi_f08_types, only : MPI_OFFSET_KIND
|
||||
implicit none
|
||||
INTEGER, INTENT(IN) :: fh
|
||||
INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
|
||||
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
|
||||
INTEGER, INTENT(IN) :: count
|
||||
INTEGER, INTENT(IN) :: datatype
|
||||
INTEGER, INTENT(OUT) :: request
|
||||
INTEGER, INTENT(OUT) :: ierror
|
||||
end subroutine ompi_file_iwrite_at_all_f
|
||||
|
||||
subroutine ompi_file_iwrite_shared_f(fh,buf,count,datatype,request,ierror) &
|
||||
BIND(C, name="ompi_file_iwrite_shared_f")
|
||||
implicit none
|
||||
|
@ -3697,6 +3697,43 @@ subroutine MPI_File_iread_at_f08(fh,offset,buf,count,datatype,request,ierror)
|
||||
end subroutine MPI_File_iread_at_f08
|
||||
end interface MPI_File_iread_at
|
||||
|
||||
interface MPI_File_iread_all
|
||||
subroutine MPI_File_iread_all_f08(fh,buf,count,datatype,request,ierror)
|
||||
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request
|
||||
implicit none
|
||||
TYPE(MPI_File), INTENT(IN) :: fh
|
||||
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
||||
!$PRAGMA IGNORE_TKR buf
|
||||
!DIR$ IGNORE_TKR buf
|
||||
!IBM* IGNORE_TKR buf
|
||||
OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
|
||||
INTEGER, INTENT(IN) :: count
|
||||
TYPE(MPI_Datatype), INTENT(IN) :: datatype
|
||||
TYPE(MPI_Request), INTENT(OUT) :: request
|
||||
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
|
||||
end subroutine MPI_File_iread_all_f08
|
||||
end interface MPI_File_iread_all
|
||||
|
||||
interface MPI_File_iread_at_all
|
||||
subroutine MPI_File_iread_at_all_f08(fh,offset,buf,count,datatype,request,ierror)
|
||||
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request, MPI_OFFSET_KIND
|
||||
implicit none
|
||||
TYPE(MPI_File), INTENT(IN) :: fh
|
||||
INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
|
||||
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
||||
!$PRAGMA IGNORE_TKR buf
|
||||
!DIR$ IGNORE_TKR buf
|
||||
!IBM* IGNORE_TKR buf
|
||||
OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
|
||||
INTEGER, INTENT(IN) :: count
|
||||
TYPE(MPI_Datatype), INTENT(IN) :: datatype
|
||||
TYPE(MPI_Request), INTENT(OUT) :: request
|
||||
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
|
||||
end subroutine MPI_File_iread_at_all_f08
|
||||
end interface MPI_File_iread_at_all
|
||||
|
||||
interface MPI_File_iread_shared
|
||||
subroutine MPI_File_iread_shared_f08(fh,buf,count,datatype,request,ierror)
|
||||
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request
|
||||
@ -3752,6 +3789,43 @@ subroutine MPI_File_iwrite_at_f08(fh,offset,buf,count,datatype,request,ierror)
|
||||
end subroutine MPI_File_iwrite_at_f08
|
||||
end interface MPI_File_iwrite_at
|
||||
|
||||
interface MPI_File_iwrite_all
|
||||
subroutine MPI_File_iwrite_all_f08(fh,buf,count,datatype,request,ierror)
|
||||
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request
|
||||
implicit none
|
||||
TYPE(MPI_File), INTENT(IN) :: fh
|
||||
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
||||
!$PRAGMA IGNORE_TKR buf
|
||||
!DIR$ IGNORE_TKR buf
|
||||
!IBM* IGNORE_TKR buf
|
||||
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
|
||||
INTEGER, INTENT(IN) :: count
|
||||
TYPE(MPI_Datatype), INTENT(IN) :: datatype
|
||||
TYPE(MPI_Request), INTENT(OUT) :: request
|
||||
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
|
||||
end subroutine MPI_File_iwrite_all_f08
|
||||
end interface MPI_File_iwrite_all
|
||||
|
||||
interface MPI_File_iwrite_at_all
|
||||
subroutine MPI_File_iwrite_at_all_f08(fh,offset,buf,count,datatype,request,ierror)
|
||||
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request, MPI_OFFSET_KIND
|
||||
implicit none
|
||||
TYPE(MPI_File), INTENT(IN) :: fh
|
||||
INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
|
||||
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
||||
!$PRAGMA IGNORE_TKR buf
|
||||
!DIR$ IGNORE_TKR buf
|
||||
!IBM* IGNORE_TKR buf
|
||||
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
|
||||
INTEGER, INTENT(IN) :: count
|
||||
TYPE(MPI_Datatype), INTENT(IN) :: datatype
|
||||
TYPE(MPI_Request), INTENT(OUT) :: request
|
||||
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
|
||||
end subroutine MPI_File_iwrite_at_all_f08
|
||||
end interface MPI_File_iwrite_at_all
|
||||
|
||||
interface MPI_File_iwrite_shared
|
||||
subroutine MPI_File_iwrite_shared_f08(fh,buf,count,datatype,request,ierror)
|
||||
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request
|
||||
|
@ -2537,6 +2537,30 @@ subroutine pompi_file_iread_at_f(fh,offset,buf,count,datatype,request,ierror) &
|
||||
INTEGER, INTENT(OUT) :: ierror
|
||||
end subroutine pompi_file_iread_at_f
|
||||
|
||||
subroutine pompi_file_iread_all_f(fh,buf,count,datatype,request,ierror) &
|
||||
BIND(C, name="pompi_file_iread_all_f")
|
||||
implicit none
|
||||
INTEGER, INTENT(IN) :: fh
|
||||
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
|
||||
INTEGER, INTENT(IN) :: count
|
||||
INTEGER, INTENT(IN) :: datatype
|
||||
INTEGER, INTENT(OUT) :: request
|
||||
INTEGER, INTENT(OUT) :: ierror
|
||||
end subroutine pompi_file_iread_all_f
|
||||
|
||||
subroutine pompi_file_iread_at_all_f(fh,offset,buf,count,datatype,request,ierror) &
|
||||
BIND(C, name="pompi_file_iread_at_all_f")
|
||||
use :: mpi_f08_types, only : MPI_OFFSET_KIND
|
||||
implicit none
|
||||
INTEGER, INTENT(IN) :: fh
|
||||
INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
|
||||
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
|
||||
INTEGER, INTENT(IN) :: count
|
||||
INTEGER, INTENT(IN) :: datatype
|
||||
INTEGER, INTENT(OUT) :: request
|
||||
INTEGER, INTENT(OUT) :: ierror
|
||||
end subroutine pompi_file_iread_at_all_f
|
||||
|
||||
subroutine pompi_file_iread_shared_f(fh,buf,count,datatype,request,ierror) &
|
||||
BIND(C, name="pompi_file_iread_shared_f")
|
||||
implicit none
|
||||
@ -2572,6 +2596,30 @@ subroutine pompi_file_iwrite_at_f(fh,offset,buf,count,datatype,request,ierror) &
|
||||
INTEGER, INTENT(OUT) :: ierror
|
||||
end subroutine pompi_file_iwrite_at_f
|
||||
|
||||
subroutine pompi_file_iwrite_all_f(fh,buf,count,datatype,request,ierror) &
|
||||
BIND(C, name="pompi_file_iwrite_all_f")
|
||||
implicit none
|
||||
INTEGER, INTENT(IN) :: fh
|
||||
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
|
||||
INTEGER, INTENT(IN) :: count
|
||||
INTEGER, INTENT(IN) :: datatype
|
||||
INTEGER, INTENT(OUT) :: request
|
||||
INTEGER, INTENT(OUT) :: ierror
|
||||
end subroutine pompi_file_iwrite_all_f
|
||||
|
||||
subroutine pompi_file_iwrite_at_all_f(fh,offset,buf,count,datatype,request,ierror) &
|
||||
BIND(C, name="pompi_file_iwrite_at_all_f")
|
||||
use :: mpi_f08_types, only : MPI_OFFSET_KIND
|
||||
implicit none
|
||||
INTEGER, INTENT(IN) :: fh
|
||||
INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
|
||||
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
|
||||
INTEGER, INTENT(IN) :: count
|
||||
INTEGER, INTENT(IN) :: datatype
|
||||
INTEGER, INTENT(OUT) :: request
|
||||
INTEGER, INTENT(OUT) :: ierror
|
||||
end subroutine pompi_file_iwrite_at_all_f
|
||||
|
||||
subroutine pompi_file_iwrite_shared_f(fh,buf,count,datatype,request,ierror) &
|
||||
BIND(C, name="pompi_file_iwrite_shared_f")
|
||||
implicit none
|
||||
|
@ -3594,6 +3594,43 @@ subroutine PMPI_File_iread_at_f08(fh,offset,buf,count,datatype,request,ierror)
|
||||
end subroutine PMPI_File_iread_at_f08
|
||||
end interface PMPI_File_iread_at
|
||||
|
||||
interface PMPI_File_iread_all
|
||||
subroutine PMPI_File_iread_all_f08(fh,buf,count,datatype,request,ierror)
|
||||
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request
|
||||
implicit none
|
||||
TYPE(MPI_File), INTENT(IN) :: fh
|
||||
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
||||
!$PRAGMA IGNORE_TKR buf
|
||||
!DIR$ IGNORE_TKR buf
|
||||
!IBM* IGNORE_TKR buf
|
||||
OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf
|
||||
INTEGER, INTENT(IN) :: count
|
||||
TYPE(MPI_Datatype), INTENT(IN) :: datatype
|
||||
TYPE(MPI_Request), INTENT(OUT) :: request
|
||||
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
|
||||
end subroutine PMPI_File_iread_all_f08
|
||||
end interface PMPI_File_iread_all
|
||||
|
||||
interface PMPI_File_iread_at_all
|
||||
subroutine PMPI_File_iread_at_all_f08(fh,offset,buf,count,datatype,request,ierror)
|
||||
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request, MPI_OFFSET_KIND
|
||||
implicit none
|
||||
TYPE(MPI_File), INTENT(IN) :: fh
|
||||
INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
|
||||
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
||||
!$PRAGMA IGNORE_TKR buf
|
||||
!DIR$ IGNORE_TKR buf
|
||||
!IBM* IGNORE_TKR buf
|
||||
OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf
|
||||
INTEGER, INTENT(IN) :: count
|
||||
TYPE(MPI_Datatype), INTENT(IN) :: datatype
|
||||
TYPE(MPI_Request), INTENT(OUT) :: request
|
||||
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
|
||||
end subroutine PMPI_File_iread_at_all_f08
|
||||
end interface PMPI_File_iread_at_all
|
||||
|
||||
interface PMPI_File_iread_shared
|
||||
subroutine PMPI_File_iread_shared_f08(fh,buf,count,datatype,request,ierror)
|
||||
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request
|
||||
@ -3649,6 +3686,43 @@ subroutine PMPI_File_iwrite_at_f08(fh,offset,buf,count,datatype,request,ierror)
|
||||
end subroutine PMPI_File_iwrite_at_f08
|
||||
end interface PMPI_File_iwrite_at
|
||||
|
||||
interface PMPI_File_iwrite_all
|
||||
subroutine PMPI_File_iwrite_all_f08(fh,buf,count,datatype,request,ierror)
|
||||
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request
|
||||
implicit none
|
||||
TYPE(MPI_File), INTENT(IN) :: fh
|
||||
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
||||
!$PRAGMA IGNORE_TKR buf
|
||||
!DIR$ IGNORE_TKR buf
|
||||
!IBM* IGNORE_TKR buf
|
||||
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf
|
||||
INTEGER, INTENT(IN) :: count
|
||||
TYPE(MPI_Datatype), INTENT(IN) :: datatype
|
||||
TYPE(MPI_Request), INTENT(OUT) :: request
|
||||
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
|
||||
end subroutine PMPI_File_iwrite_all_f08
|
||||
end interface PMPI_File_iwrite_all
|
||||
|
||||
interface PMPI_File_iwrite_at_all
|
||||
subroutine PMPI_File_iwrite_at_all_f08(fh,offset,buf,count,datatype,request,ierror)
|
||||
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request, MPI_OFFSET_KIND
|
||||
implicit none
|
||||
TYPE(MPI_File), INTENT(IN) :: fh
|
||||
INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
|
||||
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
||||
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
||||
!$PRAGMA IGNORE_TKR buf
|
||||
!DIR$ IGNORE_TKR buf
|
||||
!IBM* IGNORE_TKR buf
|
||||
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf
|
||||
INTEGER, INTENT(IN) :: count
|
||||
TYPE(MPI_Datatype), INTENT(IN) :: datatype
|
||||
TYPE(MPI_Request), INTENT(OUT) :: request
|
||||
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
|
||||
end subroutine PMPI_File_iwrite_at_all_f08
|
||||
end interface PMPI_File_iwrite_at_all
|
||||
|
||||
interface PMPI_File_iwrite_shared
|
||||
subroutine PMPI_File_iwrite_shared_f08(fh,buf,count,datatype,request,ierror)
|
||||
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request
|
||||
|
@ -377,6 +377,35 @@ end subroutine PMPI_File_iread
|
||||
|
||||
end interface
|
||||
|
||||
interface MPI_File_iread_all
|
||||
|
||||
subroutine MPI_File_iread_all(fh, buf, count, datatype, request&
|
||||
, ierror)
|
||||
integer, intent(in) :: fh
|
||||
@OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf
|
||||
@OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: buf
|
||||
integer, intent(in) :: count
|
||||
integer, intent(in) :: datatype
|
||||
integer, intent(out) :: request
|
||||
integer, intent(out) :: ierror
|
||||
end subroutine MPI_File_iread_all
|
||||
|
||||
end interface
|
||||
|
||||
interface PMPI_File_iread_all
|
||||
|
||||
subroutine PMPI_File_iread_all(fh, buf, count, datatype, request&
|
||||
, ierror)
|
||||
integer, intent(in) :: fh
|
||||
@OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf
|
||||
@OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: buf
|
||||
integer, intent(in) :: count
|
||||
integer, intent(in) :: datatype
|
||||
integer, intent(out) :: request
|
||||
integer, intent(out) :: ierror
|
||||
end subroutine PMPI_File_iread_all
|
||||
|
||||
end interface
|
||||
|
||||
interface MPI_File_iread_at
|
||||
|
||||
@ -412,6 +441,39 @@ end subroutine PMPI_File_iread_at
|
||||
|
||||
end interface
|
||||
|
||||
interface MPI_File_iread_at_all
|
||||
|
||||
subroutine MPI_File_iread_at_all(fh, offset, buf, count, datatype, &
|
||||
request, ierror)
|
||||
include 'mpif-config.h'
|
||||
integer, intent(in) :: fh
|
||||
integer(kind=MPI_OFFSET_KIND), intent(in) :: offset
|
||||
@OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf
|
||||
@OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: buf
|
||||
integer, intent(in) :: count
|
||||
integer, intent(in) :: datatype
|
||||
integer, intent(out) :: request
|
||||
integer, intent(out) :: ierror
|
||||
end subroutine MPI_File_iread_at_all
|
||||
|
||||
end interface
|
||||
|
||||
interface PMPI_File_iread_at_all
|
||||
|
||||
subroutine PMPI_File_iread_at_all(fh, offset, buf, count, datatype, &
|
||||
request, ierror)
|
||||
include 'mpif-config.h'
|
||||
integer, intent(in) :: fh
|
||||
integer(kind=MPI_OFFSET_KIND), intent(in) :: offset
|
||||
@OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf
|
||||
@OMPI_FORTRAN_IGNORE_TKR_TYPE@ :: buf
|
||||
integer, intent(in) :: count
|
||||
integer, intent(in) :: datatype
|
||||
integer, intent(out) :: request
|
||||
integer, intent(out) :: ierror
|
||||
end subroutine PMPI_File_iread_at_all
|
||||
|
||||
end interface
|
||||
|
||||
interface MPI_File_iread_shared
|
||||
|
||||
@ -474,6 +536,35 @@ end subroutine PMPI_File_iwrite
|
||||
|
||||
end interface
|
||||
|
||||
interface MPI_File_iwrite_all
|
||||
|
||||
subroutine MPI_File_iwrite_all(fh, buf, count, datatype, request&
|
||||
, ierror)
|
||||
integer, intent(in) :: fh
|
||||
@OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf
|
||||
@OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(in) :: buf
|
||||
integer, intent(in) :: count
|
||||
integer, intent(in) :: datatype
|
||||
integer, intent(out) :: request
|
||||
integer, intent(out) :: ierror
|
||||
end subroutine MPI_File_iwrite_all
|
||||
|
||||
end interface
|
||||
|
||||
interface PMPI_File_iwrite_all
|
||||
|
||||
subroutine PMPI_File_iwrite_all(fh, buf, count, datatype, request&
|
||||
, ierror)
|
||||
integer, intent(in) :: fh
|
||||
@OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf
|
||||
@OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(in) :: buf
|
||||
integer, intent(in) :: count
|
||||
integer, intent(in) :: datatype
|
||||
integer, intent(out) :: request
|
||||
integer, intent(out) :: ierror
|
||||
end subroutine PMPI_File_iwrite_all
|
||||
|
||||
end interface
|
||||
|
||||
interface MPI_File_iwrite_at
|
||||
|
||||
@ -509,6 +600,39 @@ end subroutine PMPI_File_iwrite_at
|
||||
|
||||
end interface
|
||||
|
||||
interface MPI_File_iwrite_at_all
|
||||
|
||||
subroutine MPI_File_iwrite_at_all(fh, offset, buf, count, datatype, &
|
||||
request, ierror)
|
||||
include 'mpif-config.h'
|
||||
integer, intent(in) :: fh
|
||||
integer(kind=MPI_OFFSET_KIND), intent(in) :: offset
|
||||
@OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf
|
||||
@OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(in) :: buf
|
||||
integer, intent(in) :: count
|
||||
integer, intent(in) :: datatype
|
||||
integer, intent(out) :: request
|
||||
integer, intent(out) :: ierror
|
||||
end subroutine MPI_File_iwrite_at_all
|
||||
|
||||
end interface
|
||||
|
||||
interface PMPI_File_iwrite_at_all
|
||||
|
||||
subroutine PMPI_File_iwrite_at_all(fh, offset, buf, count, datatype, &
|
||||
request, ierror)
|
||||
include 'mpif-config.h'
|
||||
integer, intent(in) :: fh
|
||||
integer(kind=MPI_OFFSET_KIND), intent(in) :: offset
|
||||
@OMPI_FORTRAN_IGNORE_TKR_PREDECL@ buf
|
||||
@OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(in) :: buf
|
||||
integer, intent(in) :: count
|
||||
integer, intent(in) :: datatype
|
||||
integer, intent(out) :: request
|
||||
integer, intent(out) :: ierror
|
||||
end subroutine PMPI_File_iwrite_at_all
|
||||
|
||||
end interface
|
||||
|
||||
interface MPI_File_iwrite_shared
|
||||
|
||||
|
86
ompi/mpi/man/man3/MPI_File_iread_all.3in
Обычный файл
86
ompi/mpi/man/man3/MPI_File_iread_all.3in
Обычный файл
@ -0,0 +1,86 @@
|
||||
.\" -*- nroff -*-
|
||||
.\" Copyright 2010 Cisco Systems, Inc. All rights reserved.
|
||||
.\" Copyright 2006-2008 Sun Microsystems, Inc.
|
||||
.\" Copyright (c) 1996 Thinking Machines Corporation
|
||||
.\" $COPYRIGHT$
|
||||
.TH MPI_File_iread_all 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
|
||||
.SH NAME
|
||||
\fBMPI_File_iread_all\fP \- Reads a file starting at the location specified by the individual file pointer (nonblocking, collective).
|
||||
|
||||
.SH SYNTAX
|
||||
.ft R
|
||||
.nf
|
||||
C Syntax
|
||||
#include <mpi.h>
|
||||
int MPI_File_iread_all(MPI_File \fIfh\fP, void \fI*buf\fP, int \fIcount\fP,
|
||||
MPI_Datatype \fIdatatype\fP, MPI_Request \fI*request\fP)
|
||||
|
||||
.fi
|
||||
.SH Fortran Syntax
|
||||
.nf
|
||||
INCLUDE 'mpif.h'
|
||||
MPI_FILE_IREAD_ALL(\fIFH\fP, \fIBUF\fP, \fICOUNT\fP, \fIDATATYPE\fP, \fIREQUEST\fP,\fI IERROR\fP)
|
||||
<type> BUF(*)
|
||||
INTEGER FH, COUNT, DATATYPE, REQUEST, IERROR
|
||||
|
||||
.fi
|
||||
.SH C++ Syntax
|
||||
.nf
|
||||
#include <mpi.h>
|
||||
MPI::Request MPI::File::Iread(void* \fIbuf\fP, int \fIcount\fP,
|
||||
const MPI::Datatype& \fIdatatype\fP)
|
||||
|
||||
.fi
|
||||
.SH INPUT/OUTPUT PARAMETER
|
||||
.ft R
|
||||
.TP 1i
|
||||
fh
|
||||
File handle (handle).
|
||||
|
||||
.SH INPUT PARAMETERS
|
||||
.ft R
|
||||
.TP 1i
|
||||
count
|
||||
Number of elements in the buffer (integer).
|
||||
.ft R
|
||||
.TP 1i
|
||||
datatype
|
||||
Data type of each buffer element (handle).
|
||||
|
||||
.SH OUTPUT PARAMETERS
|
||||
.ft R
|
||||
.TP 1i
|
||||
buf
|
||||
Initial address of buffer (choice).
|
||||
.ft R
|
||||
.TP 1i
|
||||
request
|
||||
Request object (handle).
|
||||
.TP 1i
|
||||
IERROR
|
||||
Fortran only: Error status (integer).
|
||||
|
||||
.SH DESCRIPTION
|
||||
.ft R
|
||||
MPI_File_iread_all is a nonblocking version of MPI_File_read_all. It attempts to read from the file associated with
|
||||
.I fh
|
||||
at the current individual file pointer position maintained by the system in which a total number of
|
||||
.I count
|
||||
data items having
|
||||
.I datatype
|
||||
type are read into the user's buffer
|
||||
.I buf.
|
||||
The data is taken out of those parts of the
|
||||
file specified by the current view. MPI_File_iread_all stores the
|
||||
number of data-type elements actually read in
|
||||
.I status.
|
||||
All other fields of
|
||||
.I status
|
||||
are undefined. It is erroneous to call this function if MPI_MODE_SEQUENTIAL mode was specified when the file was opened.
|
||||
|
||||
.SH ERRORS
|
||||
Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI::Exception object.
|
||||
.sp
|
||||
Before the error value is returned, the current MPI error handler is
|
||||
called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.
|
||||
|
112
ompi/mpi/man/man3/MPI_File_iread_at_all.3in
Обычный файл
112
ompi/mpi/man/man3/MPI_File_iread_at_all.3in
Обычный файл
@ -0,0 +1,112 @@
|
||||
.\" -*- nroff -*-
|
||||
.\" Copyright 2010 Cisco Systems, Inc. All rights reserved.
|
||||
.\" Copyright 2006-2008 Sun Microsystems, Inc.
|
||||
.\" Copyright (c) 1996 Thinking Machines Corporation
|
||||
.\" $COPYRIGHT$
|
||||
.TH MPI_File_iread_at_all 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
|
||||
.SH NAME
|
||||
\fBMPI_File_iread_at_all\fP \- Reads a file at an explicitly specified offset (nonblocking, collective).
|
||||
|
||||
.SH SYNTAX
|
||||
.ft R
|
||||
.nf
|
||||
C Syntax
|
||||
#include <mpi.h>
|
||||
int MPI_File_iread_at_all(MPI_File \fIfh\fP, MPI_Offset \fIoffset\fP,
|
||||
void \fI*buf\fP, int \fIcount\fP, MPI_Datatype \fIdatatype\fP,
|
||||
MPI_Request \fI*request\fP)
|
||||
|
||||
.fi
|
||||
.SH Fortran Syntax (see FORTRAN 77 NOTES)
|
||||
.nf
|
||||
INCLUDE 'mpif.h'
|
||||
MPI_FILE_IREAD_AT_ALL(\fIFH\fP, \fIOFFSET\fP, \fIBUF\fP, \fICOUNT\fP, \fIDATATYPE\fP, \fIREQUEST\fP, \fIIERROR\fP)
|
||||
<type> \fIBUF\fP(*)
|
||||
INTEGER \fIFH, COUNT, DATATYPE, REQUEST, IERROR\fP
|
||||
INTEGER(KIND=MPI_OFFSET_KIND) \fIOFFSET\fP
|
||||
|
||||
.fi
|
||||
.SH C++ Syntax
|
||||
.nf
|
||||
#include <mpi.h>
|
||||
MPI::Request MPI::File::Iread_at(MPI::Offset \fIoffset\fP, void* \fIbuf\fP,
|
||||
int \fIcount\fP, const MPI::Datatype& \fIdatatype\fP)
|
||||
|
||||
.fi
|
||||
.SH INPUT PARAMETERS
|
||||
.ft R
|
||||
.TP 1i
|
||||
fh
|
||||
File handle (handle).
|
||||
.ft R
|
||||
.TP 1i
|
||||
offset
|
||||
File offset (integer).
|
||||
.ft R
|
||||
.TP 1i
|
||||
count
|
||||
Number of elements in the buffer (integer).
|
||||
.ft R
|
||||
.TP 1i
|
||||
datatype
|
||||
Data type of each buffer element (handle).
|
||||
|
||||
.SH OUTPUT PARAMETERS
|
||||
.ft R
|
||||
.TP 1i
|
||||
buf
|
||||
Initial address of the buffer (choice).
|
||||
.ft R
|
||||
.TP 1i
|
||||
request
|
||||
Request object (handle).
|
||||
.TP 1i
|
||||
IERROR
|
||||
Fortran only: Error status (integer).
|
||||
|
||||
.SH DESCRIPTION
|
||||
.ft R
|
||||
MPI_File_iread_at_all is the nonblocking version of MPI_File_read_at_all.
|
||||
|
||||
MPI_File_iread_at_all is a nonblocking routine that attempts to read from the file associated with
|
||||
.I fh
|
||||
at the
|
||||
.I offset
|
||||
position a total number of
|
||||
.I count
|
||||
data items having
|
||||
.I datatype
|
||||
type into the user's buffer
|
||||
.I buf.
|
||||
The
|
||||
.I offset
|
||||
is in etype units relative to the current view. That is, holes are not counted
|
||||
when locating an offset. The data is taken out of those parts of the
|
||||
file specified by the current view. MPI_File_iread_at_all stores the
|
||||
number of
|
||||
.I datatype
|
||||
elements actually read in
|
||||
.I status.
|
||||
All other fields of
|
||||
.I status
|
||||
are undefined.
|
||||
|
||||
.SH FORTRAN 77 NOTES
|
||||
.ft R
|
||||
The MPI standard prescribes portable Fortran syntax for
|
||||
the \fIOFFSET\fP argument only for Fortran 90. Sun FORTRAN 77
|
||||
users may use the non-portable syntax
|
||||
.sp
|
||||
.nf
|
||||
INTEGER*MPI_OFFSET_KIND \fIOFFSET\fP
|
||||
.fi
|
||||
.sp
|
||||
where MPI_OFFSET_KIND is a constant defined in mpif.h
|
||||
and gives the length of the declared integer in bytes.
|
||||
|
||||
.SH ERRORS
|
||||
Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI::Exception object.
|
||||
.sp
|
||||
Before the error value is returned, the current MPI error handler is
|
||||
called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.
|
||||
|
91
ompi/mpi/man/man3/MPI_File_iwrite_all.3in
Обычный файл
91
ompi/mpi/man/man3/MPI_File_iwrite_all.3in
Обычный файл
@ -0,0 +1,91 @@
|
||||
.\" -*- nroff -*-
|
||||
.\" Copyright 2013 Los Alamos National Security, LLC. All rights reserved.
|
||||
.\" Copyright 2010 Cisco Systems, Inc. All rights reserved.
|
||||
.\" Copyright 2006-2008 Sun Microsystems, Inc.
|
||||
.\" Copyright (c) 1996 Thinking Machines Corporation
|
||||
.\" $COPYRIGHT$
|
||||
.TH MPI_File_iwrite_all 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
|
||||
.SH NAME
|
||||
\fBMPI_File_iwrite_all\fP \- Writes a file starting at the location specified by the individual file pointer (nonblocking, collective).
|
||||
|
||||
.SH SYNTAX
|
||||
.ft R
|
||||
.nf
|
||||
C Syntax
|
||||
#include <mpi.h>
|
||||
int MPI_File_iwrite_all(MPI_File \fIfh\fP, const void \fI*buf\fP, int \fIcount\fP,
|
||||
MPI_Datatype \fIdatatype\fP, MPI_Request \fI*request\fP)
|
||||
|
||||
.fi
|
||||
.SH Fortran Syntax
|
||||
.nf
|
||||
INCLUDE 'mpif.h'
|
||||
MPI_FILE_IWRITE_ALL(\fIFH\fP, \fIBUF\fP, \fICOUNT\fP, \fIDATATYPE\fP, \fIREQUEST\fP,\fI IERROR\fP)
|
||||
<TYPE> BUF(*)
|
||||
INTEGER FH, COUNT, DATATYPE, REQUEST, IERROR
|
||||
|
||||
.fi
|
||||
.SH C++ Syntax
|
||||
.nf
|
||||
#include <mpi.h>
|
||||
MPI::Request MPI::File::Iwrite(const void* \fIbuf\fP, int \fIcount\fP,
|
||||
const MPI::Datatype& \fIdatatype\fP)
|
||||
|
||||
.fi
|
||||
.SH INPUT/OUTPUT PARAMETER
|
||||
.ft R
|
||||
.TP 1i
|
||||
fh
|
||||
File handle (handle).
|
||||
|
||||
.SH INPUT PARAMETERS
|
||||
.ft R
|
||||
.TP 1i
|
||||
buf
|
||||
Initial address of buffer (choice).
|
||||
.ft R
|
||||
.TP 1i
|
||||
count
|
||||
Number of elements in buffer (integer).
|
||||
.ft R
|
||||
.TP 1i
|
||||
datatype
|
||||
Data type of each buffer element (handle).
|
||||
|
||||
.SH OUTPUT PARAMETER
|
||||
.ft R
|
||||
.TP 1i
|
||||
request
|
||||
Request object (handle).
|
||||
.TP 1i
|
||||
IERROR
|
||||
Fortran only: Error status (integer).
|
||||
|
||||
.SH DESCRIPTION
|
||||
.ft R
|
||||
MPI_File_iwrite_all is a nonblocking version of the MPI_File_write_all interface. It attempts to write into the file associated with
|
||||
.I fh
|
||||
(at the current individual file pointer position maintained by the system) a total number of
|
||||
.I count
|
||||
data items having
|
||||
.I datatype
|
||||
type from the user's buffer
|
||||
.I buf.
|
||||
The data is written into those parts of the
|
||||
file specified by the current view. MPI_File_iwrite_all stores the
|
||||
number of
|
||||
.I datatype
|
||||
elements actually written in
|
||||
.I status.
|
||||
All other fields of
|
||||
.I status
|
||||
are undefined.
|
||||
.sp
|
||||
It is erroneous to call this function if MPI_MODE_SEQUENTIAL mode was specified when the file was open.
|
||||
|
||||
.SH ERRORS
|
||||
Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI::Exception object.
|
||||
.sp
|
||||
Before the error value is returned, the current MPI error handler is
|
||||
called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.
|
||||
|
114
ompi/mpi/man/man3/MPI_File_iwrite_at_all.3in
Обычный файл
114
ompi/mpi/man/man3/MPI_File_iwrite_at_all.3in
Обычный файл
@ -0,0 +1,114 @@
|
||||
.\" -*- nroff -*-
|
||||
.\" Copyright 2013 Los Alamos National Security, LLC. All rights reserved.
|
||||
.\" Copyright 2010 Cisco Systems, Inc. All rights reserved.
|
||||
.\" Copyright 2006-2008 Sun Microsystems, Inc.
|
||||
.\" Copyright (c) 1996 Thinking Machines Corporation
|
||||
.\" $COPYRIGHT$
|
||||
.TH MPI_File_iwrite_at_all 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
|
||||
.SH NAME
|
||||
\fBMPI_File_iwrite_at_all\fP \- Writes a file at an explicitly specified offset (nonblocking, collective).
|
||||
|
||||
.SH SYNTAX
|
||||
.ft R
|
||||
.nf
|
||||
C Syntax
|
||||
#include <mpi.h>
|
||||
int MPI_File_iwrite_at_all(MPI_File \fIfh\fP, MPI_Offset \fIoffset\fP,
|
||||
const void \fI*buf\fP, int \fIcount\fP, MPI_Datatype \fIdatatype\fP, MPI_Request \fI*request\fP)
|
||||
|
||||
.fi
|
||||
.SH Fortran Syntax (see FORTRAN 77 NOTES)
|
||||
.nf
|
||||
INCLUDE 'mpif.h'
|
||||
MPI_FILE_IWRITE_AT_ALL(\fIFH\fP, \fIOFFSET\fP, \fIBUF\fP, \fICOUNT\fP, \fIDATATYPE\fP, \fIREQUEST\fP, \fIIERROR\fP)
|
||||
<type> \fIBUF\fP(*)
|
||||
INTEGER \fIFH, COUNT, DATATYPE, REQUEST, IERROR\fP
|
||||
INTEGER(KIND=MPI_OFFSET_KIND) \fIOFFSET\fP
|
||||
|
||||
.fi
|
||||
.SH C++ Syntax
|
||||
.nf
|
||||
#include <mpi.h>
|
||||
MPI::Request MPI::File::Iwrite_at(MPI::Offset \fIoffset\fP, const void* \fIbuf\fP,
|
||||
int \fIcount\fP, const MPI::Datatype& \fIdatatype\fP)
|
||||
|
||||
.fi
|
||||
.SH INPUT/OUTPUT PARAMETER
|
||||
.ft R
|
||||
.TP 1i
|
||||
fh
|
||||
File handle (handle).
|
||||
|
||||
.SH INPUT PARAMETERS
|
||||
.ft R
|
||||
.TP 1i
|
||||
offset
|
||||
File offset (integer).
|
||||
.ft R
|
||||
.TP 1i
|
||||
buf
|
||||
Initial address of buffer (choice).
|
||||
.ft R
|
||||
.TP 1i
|
||||
count
|
||||
Number of elements in buffer (integer).
|
||||
.ft R
|
||||
.TP 1i
|
||||
datatype
|
||||
Data type of each buffer element (handle).
|
||||
|
||||
.SH OUTPUT PARAMETERS
|
||||
.ft R
|
||||
.TP 1i
|
||||
request
|
||||
Request object (handle).
|
||||
.TP 1i
|
||||
IERROR
|
||||
Fortran only: Error status (integer).
|
||||
|
||||
.SH DESCRIPTION
|
||||
.ft R
|
||||
MPI_File_iwrite_at_all is a nonblocking version of MPI_File_write_at_all. It attempts to write into the file associated with
|
||||
.I fh
|
||||
(at the
|
||||
.I offset
|
||||
position) a total number of
|
||||
.I count
|
||||
data items having
|
||||
.I datatype
|
||||
type from the user's buffer
|
||||
.I buf.
|
||||
The offset is in
|
||||
.I etype
|
||||
units relative to the current view. That is, holes are not counted
|
||||
when locating an offset. The data is written into those parts of the
|
||||
file specified by the current view. MPI_File_iwrite_at_all stores the
|
||||
number of
|
||||
.I datatype
|
||||
elements actually written in
|
||||
.I status.
|
||||
All other fields of
|
||||
.I status
|
||||
are undefined. The request structure can be passed to MPI_Wait or MPI_Test, which will return a status with the number of bytes actually accessed.
|
||||
.sp
|
||||
It is erroneous to call this function if MPI_MODE_SEQUENTIAL mode was specified when the file was open.
|
||||
|
||||
.SH FORTRAN 77 NOTES
|
||||
.ft R
|
||||
The MPI standard prescribes portable Fortran syntax for
|
||||
the \fIOFFSET\fP argument only for Fortran 90. FORTRAN 77
|
||||
users may use the non-portable syntax
|
||||
.sp
|
||||
.nf
|
||||
INTEGER*MPI_OFFSET_KIND \fIOFFSET\fP
|
||||
.fi
|
||||
.sp
|
||||
where MPI_OFFSET_KIND is a constant defined in mpif.h
|
||||
and gives the length of the declared integer in bytes.
|
||||
|
||||
.SH ERRORS
|
||||
Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI::Exception object.
|
||||
.sp
|
||||
Before the error value is returned, the current MPI error handler is
|
||||
called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.
|
||||
|
@ -126,9 +126,13 @@ mpi_api_man_pages = \
|
||||
mpi/man/man3/MPI_File_get_view.3 \
|
||||
mpi/man/man3/MPI_File_iread.3 \
|
||||
mpi/man/man3/MPI_File_iread_at.3 \
|
||||
mpi/man/man3/MPI_File_iread_all.3 \
|
||||
mpi/man/man3/MPI_File_iread_at_all.3 \
|
||||
mpi/man/man3/MPI_File_iread_shared.3 \
|
||||
mpi/man/man3/MPI_File_iwrite.3 \
|
||||
mpi/man/man3/MPI_File_iwrite_at.3 \
|
||||
mpi/man/man3/MPI_File_iwrite_all.3 \
|
||||
mpi/man/man3/MPI_File_iwrite_at_all.3 \
|
||||
mpi/man/man3/MPI_File_iwrite_shared.3 \
|
||||
mpi/man/man3/MPI_File_open.3 \
|
||||
mpi/man/man3/MPI_File_preallocate.3 \
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user