Merge pull request #629 from hjelmn/aint_math
Add support for MPI-3.1 MPI_Aint functions
Этот коммит содержится в:
Коммит
458cd9d611
@ -1174,6 +1174,11 @@ OMPI_DECLSPEC extern MPI_Fint *MPI_F_STATUSES_IGNORE;
|
|||||||
#define MPI_TYPECLASS_REAL 2
|
#define MPI_TYPECLASS_REAL 2
|
||||||
#define MPI_TYPECLASS_COMPLEX 3
|
#define MPI_TYPECLASS_COMPLEX 3
|
||||||
|
|
||||||
|
/* Aint helper macros (MPI-3.1) */
|
||||||
|
#define MPI_Aint_add(base, disp) ((MPI_Aint) ((char *) (base) + (disp)))
|
||||||
|
#define MPI_Aint_diff(addr1, addr2) ((MPI_Aint) ((char *) (addr1) - (char *) (addr2)))
|
||||||
|
#define PMPI_Aint_add(base, disp) MPI_Aint_add(base, disp)
|
||||||
|
#define PMPI_Aint_diff(addr1, addr2) PMPI_Aint_diff(addr1, addr2)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* MPI API
|
* MPI API
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
@ -10,6 +11,8 @@
|
|||||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
* Copyright (c) 2006-2012 Cisco Systems, Inc. All rights reserved.
|
* Copyright (c) 2006-2012 Cisco Systems, Inc. All rights reserved.
|
||||||
|
* Copyright (c) 2015 Los Alamos National Security, LLC. All rights
|
||||||
|
* reserved.
|
||||||
* $COPYRIGHT$
|
* $COPYRIGHT$
|
||||||
*
|
*
|
||||||
* Additional copyrights may follow
|
* Additional copyrights may follow
|
||||||
@ -44,6 +47,16 @@ OMPI_DECLSPEC void mpi_wtick_f90(double *w);
|
|||||||
OMPI_DECLSPEC void mpi_wtick_f90_(double *w);
|
OMPI_DECLSPEC void mpi_wtick_f90_(double *w);
|
||||||
OMPI_DECLSPEC void mpi_wtick_f90__(double *w);
|
OMPI_DECLSPEC void mpi_wtick_f90__(double *w);
|
||||||
|
|
||||||
|
OMPI_DECLSPEC void MPI_AINT_ADD_F90(MPI_Aint *base, MPI_Aint *diff, MPI_Aint *w);
|
||||||
|
OMPI_DECLSPEC void mpi_aint_add_f90(MPI_Aint *base, MPI_Aint *diff, MPI_Aint *w);
|
||||||
|
OMPI_DECLSPEC void mpi_aint_add_f90_(MPI_Aint *base, MPI_Aint *diff, MPI_Aint *w);
|
||||||
|
OMPI_DECLSPEC void mpi_aint_add_f90__(MPI_Aint *base, MPI_Aint *diff, MPI_Aint *w);
|
||||||
|
|
||||||
|
OMPI_DECLSPEC void MPI_AINT_DIFF_F90(MPI_Aint *addr1, MPI_Aint *addr2, MPI_Aint *w);
|
||||||
|
OMPI_DECLSPEC void mpi_aint_diff_f90(MPI_Aint *addr1, MPI_Aint *addr2, MPI_Aint *w);
|
||||||
|
OMPI_DECLSPEC void mpi_aint_diff_f90_(MPI_Aint *addr1, MPI_Aint *addr2, MPI_Aint *w);
|
||||||
|
OMPI_DECLSPEC void mpi_aint_diff_f90__(MPI_Aint *addr1, MPI_Aint *addr2, MPI_Aint *w);
|
||||||
|
|
||||||
/**********************************************************************/
|
/**********************************************************************/
|
||||||
|
|
||||||
void MPI_WTIME_F90(double *w)
|
void MPI_WTIME_F90(double *w)
|
||||||
@ -88,3 +101,47 @@ void mpi_wtick_f90__(double *w)
|
|||||||
*w = MPI_Wtick();
|
*w = MPI_Wtick();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**********************************************************************/
|
||||||
|
|
||||||
|
void MPI_AINT_ADD_F90(MPI_Aint *base, MPI_Aint *diff, MPI_Aint *w)
|
||||||
|
{
|
||||||
|
*w = MPI_Aint_add (*base, *diff);
|
||||||
|
}
|
||||||
|
|
||||||
|
void mpi_aint_add_f90(MPI_Aint *base, MPI_Aint *diff, MPI_Aint *w)
|
||||||
|
{
|
||||||
|
*w = MPI_Aint_add (*base, *diff);
|
||||||
|
}
|
||||||
|
|
||||||
|
void mpi_aint_add_f90_(MPI_Aint *base, MPI_Aint *diff, MPI_Aint *w)
|
||||||
|
{
|
||||||
|
*w = MPI_Aint_add (*base, *diff);
|
||||||
|
}
|
||||||
|
|
||||||
|
void mpi_aint_add_f90__(MPI_Aint *base, MPI_Aint *diff, MPI_Aint *w)
|
||||||
|
{
|
||||||
|
*w = MPI_Aint_add (*base, *diff);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**********************************************************************/
|
||||||
|
|
||||||
|
void MPI_AINT_DIFF_F90(MPI_Aint *addr1, MPI_Aint *addr2, MPI_Aint *w)
|
||||||
|
{
|
||||||
|
*w = MPI_Aint_diff (*addr1, *addr2);
|
||||||
|
}
|
||||||
|
|
||||||
|
void mpi_aint_diff_f90(MPI_Aint *addr1, MPI_Aint *addr2, MPI_Aint *w)
|
||||||
|
{
|
||||||
|
*w = MPI_Aint_diff (*addr1, *addr2);
|
||||||
|
}
|
||||||
|
|
||||||
|
void mpi_aint_diff_f90_(MPI_Aint *addr1, MPI_Aint *addr2, MPI_Aint *w)
|
||||||
|
{
|
||||||
|
*w = MPI_Aint_diff (*addr1, *addr2);
|
||||||
|
}
|
||||||
|
|
||||||
|
void mpi_aint_diff_f90__(MPI_Aint *addr1, MPI_Aint *addr2, MPI_Aint *w)
|
||||||
|
{
|
||||||
|
*w = MPI_Aint_diff (*addr1, *addr2);
|
||||||
|
}
|
||||||
|
@ -130,6 +130,8 @@ libmpi_mpifh_la_SOURCES += \
|
|||||||
add_error_code_f.c \
|
add_error_code_f.c \
|
||||||
add_error_string_f.c \
|
add_error_string_f.c \
|
||||||
address_f.c \
|
address_f.c \
|
||||||
|
aint_add_f.c \
|
||||||
|
aint_diff_f.c \
|
||||||
allgather_f.c \
|
allgather_f.c \
|
||||||
allgatherv_f.c \
|
allgatherv_f.c \
|
||||||
alloc_mem_f.c \
|
alloc_mem_f.c \
|
||||||
|
72
ompi/mpi/fortran/mpif-h/aint_add_f.c
Обычный файл
72
ompi/mpi/fortran/mpif-h/aint_add_f.c
Обычный файл
@ -0,0 +1,72 @@
|
|||||||
|
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
|
||||||
|
/*
|
||||||
|
* 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 (c) 2015 Los Alamos National Security, LLC. All rights
|
||||||
|
* reserved.
|
||||||
|
* $COPYRIGHT$
|
||||||
|
*
|
||||||
|
* Additional copyrights may follow
|
||||||
|
*
|
||||||
|
* $HEADER$
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "ompi_config.h"
|
||||||
|
|
||||||
|
#include "ompi/mpi/fortran/mpif-h/bindings.h"
|
||||||
|
|
||||||
|
/* The OMPI_GENERATE_F77_BINDINGS work only for the most common F77 bindings, the
|
||||||
|
* one that does not return any value. There are 4 exceptions MPI_Wtick, MPI_Wtime,
|
||||||
|
* MPI_Aint_add, and MPI_Aint_diff. For these 4 we can insert the bindings
|
||||||
|
* manually.
|
||||||
|
*/
|
||||||
|
#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
||||||
|
#pragma weak PMPI_AINT_ADD = ompi_aint_add_f
|
||||||
|
#pragma weak pmpi_aint_add = ompi_aint_add_f
|
||||||
|
#pragma weak pmpi_aint_add_ = ompi_aint_add_f
|
||||||
|
#pragma weak pmpi_aint_add__ = ompi_aint_add_f
|
||||||
|
|
||||||
|
#pragma weak PMPI_Aint_add_f = ompi_aint_add_f
|
||||||
|
#pragma weak PMPI_Aint_add_f08 = ompi_aint_add_f
|
||||||
|
#elif OMPI_PROFILE_LAYER
|
||||||
|
MPI_Aint PMPI_AINT_ADD(MPI_Aint *base, MPI_Aint *diff) { return pompi_aint_add_f(base, diff); }
|
||||||
|
MPI_Aint pmpi_aint_add(MPI_Aint *base, MPI_Aint *diff) { return pompi_aint_add_f(base, diff); }
|
||||||
|
MPI_Aint pmpi_aint_add_(MPI_Aint *base, MPI_Aint *diff) { return pompi_aint_add_f(base, diff); }
|
||||||
|
MPI_Aint pmpi_aint_add__(MPI_Aint *base, MPI_Aint *diff) { return pompi_aint_add_f(base, diff); }
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if OPAL_HAVE_WEAK_SYMBOLS
|
||||||
|
#pragma weak MPI_AINT_ADD = ompi_aint_add_f
|
||||||
|
#pragma weak mpi_aint_add = ompi_aint_add_f
|
||||||
|
#pragma weak mpi_aint_add_ = ompi_aint_add_f
|
||||||
|
#pragma weak mpi_aint_add__ = ompi_aint_add_f
|
||||||
|
|
||||||
|
#pragma weak MPI_Aint_add_f = ompi_aint_add_f
|
||||||
|
#pragma weak MPI_Aint_add_f08 = ompi_aint_add_f
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if ! OPAL_HAVE_WEAK_SYMBOLS && ! OMPI_PROFILE_LAYER
|
||||||
|
MPI_Aint MPI_AINT_ADD(MPI_Aint *base, MPI_Aint *diff) { return ompi_aint_add_f(base, diff); }
|
||||||
|
MPI_Aint mpi_aint_add(MPI_Aint *base, MPI_Aint *diff) { return ompi_aint_add_f(base, diff); }
|
||||||
|
MPI_Aint mpi_aint_add_(MPI_Aint *base, MPI_Aint *diff) { return ompi_aint_add_f(base, diff); }
|
||||||
|
MPI_Aint mpi_aint_add__(MPI_Aint *base, MPI_Aint *diff) { return ompi_aint_add_f(base, diff); }
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if OMPI_PROFILE_LAYER && ! OPAL_HAVE_WEAK_SYMBOLS
|
||||||
|
#include "ompi/mpi/fortran/mpif-h/profile/defines.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
MPI_Aint ompi_aint_add_f(MPI_Aint *base, MPI_Aint *diff)
|
||||||
|
{
|
||||||
|
return MPI_Aint_add (*base, *diff);
|
||||||
|
}
|
72
ompi/mpi/fortran/mpif-h/aint_diff_f.c
Обычный файл
72
ompi/mpi/fortran/mpif-h/aint_diff_f.c
Обычный файл
@ -0,0 +1,72 @@
|
|||||||
|
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
|
||||||
|
/*
|
||||||
|
* 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 (c) 2015 Los Alamos National Security, LLC. All rights
|
||||||
|
* reserved.
|
||||||
|
* $COPYRIGHT$
|
||||||
|
*
|
||||||
|
* Additional copyrights may follow
|
||||||
|
*
|
||||||
|
* $HEADER$
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "ompi_config.h"
|
||||||
|
|
||||||
|
#include "ompi/mpi/fortran/mpif-h/bindings.h"
|
||||||
|
|
||||||
|
/* The OMPI_GENERATE_F77_BINDINGS work only for the most common F77 bindings, the
|
||||||
|
* one that does not return any value. There are 4 exceptions MPI_Wtick, MPI_Wtime,
|
||||||
|
* MPI_Aint_add, and MPI_Aint_diff. For these 4 we can insert the bindings
|
||||||
|
* manually.
|
||||||
|
*/
|
||||||
|
#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
||||||
|
#pragma weak PMPI_AINT_DIFF = ompi_aint_diff_f
|
||||||
|
#pragma weak pmpi_aint_diff = ompi_aint_diff_f
|
||||||
|
#pragma weak pmpi_aint_diff_ = ompi_aint_diff_f
|
||||||
|
#pragma weak pmpi_aint_diff__ = ompi_aint_diff_f
|
||||||
|
|
||||||
|
#pragma weak PMPI_Aint_diff_f = ompi_aint_diff_f
|
||||||
|
#pragma weak PMPI_Aint_diff_f08 = ompi_aint_diff_f
|
||||||
|
#elif OMPI_PROFILE_LAYER
|
||||||
|
MPI_Aint PMPI_AINT_DIFF(MPI_Aint *addr1, MPI_Aint *addr2) { return pompi_aint_diff_f(addr1, addr2); }
|
||||||
|
MPI_Aint pmpi_aint_diff(MPI_Aint *addr1, MPI_Aint *addr2) { return pompi_aint_diff_f(addr1, addr2); }
|
||||||
|
MPI_Aint pmpi_aint_diff_(MPI_Aint *addr1, MPI_Aint *addr2) { return pompi_aint_diff_f(addr1, addr2); }
|
||||||
|
MPI_Aint pmpi_aint_diff__(MPI_Aint *addr1, MPI_Aint *addr2) { return pompi_aint_diff_f(addr1, addr2); }
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if OPAL_HAVE_WEAK_SYMBOLS
|
||||||
|
#pragma weak MPI_AINT_DIFF = ompi_aint_diff_f
|
||||||
|
#pragma weak mpi_aint_diff = ompi_aint_diff_f
|
||||||
|
#pragma weak mpi_aint_diff_ = ompi_aint_diff_f
|
||||||
|
#pragma weak mpi_aint_diff__ = ompi_aint_diff_f
|
||||||
|
|
||||||
|
#pragma weak MPI_Aint_diff_f = ompi_aint_diff_f
|
||||||
|
#pragma weak MPI_Aint_diff_f08 = ompi_aint_diff_f
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if ! OPAL_HAVE_WEAK_SYMBOLS && ! OMPI_PROFILE_LAYER
|
||||||
|
MPI_Aint MPI_AINT_DIFF(MPI_Aint *addr1, MPI_Aint *addr2) { return ompi_aint_diff_f(addr1, addr2); }
|
||||||
|
MPI_Aint mpi_aint_diff(MPI_Aint *addr1, MPI_Aint *addr2) { return ompi_aint_diff_f(addr1, addr2); }
|
||||||
|
MPI_Aint mpi_aint_diff_(MPI_Aint *addr1, MPI_Aint *addr2) { return ompi_aint_diff_f(addr1, addr2); }
|
||||||
|
MPI_Aint mpi_aint_diff__(MPI_Aint *addr1, MPI_Aint *addr2) { return ompi_aint_diff_f(addr1, addr2); }
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if OMPI_PROFILE_LAYER && ! OPAL_HAVE_WEAK_SYMBOLS
|
||||||
|
#include "ompi/mpi/fortran/mpif-h/profile/defines.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
MPI_Aint ompi_aint_diff_f(MPI_Aint *addr1, MPI_Aint *addr2)
|
||||||
|
{
|
||||||
|
return MPI_Aint_diff (*addr1, *addr2);
|
||||||
|
}
|
@ -55,6 +55,8 @@ linked_files = \
|
|||||||
padd_error_code_f.c \
|
padd_error_code_f.c \
|
||||||
padd_error_string_f.c \
|
padd_error_string_f.c \
|
||||||
paddress_f.c \
|
paddress_f.c \
|
||||||
|
paint_add_f.c \
|
||||||
|
paint_diff_f.c \
|
||||||
pallgather_f.c \
|
pallgather_f.c \
|
||||||
pallgatherv_f.c \
|
pallgatherv_f.c \
|
||||||
palloc_mem_f.c \
|
palloc_mem_f.c \
|
||||||
|
@ -29,6 +29,8 @@
|
|||||||
#define ompi_add_error_code_f pompi_add_error_code_f
|
#define ompi_add_error_code_f pompi_add_error_code_f
|
||||||
#define ompi_add_error_string_f pompi_add_error_string_f
|
#define ompi_add_error_string_f pompi_add_error_string_f
|
||||||
#define ompi_address_f pompi_address_f
|
#define ompi_address_f pompi_address_f
|
||||||
|
#define ompi_aint_add_f pompi_aint_add_f
|
||||||
|
#define ompi_aint_diff_f pompi_aint_diff_f
|
||||||
#define ompi_allgather_f pompi_allgather_f
|
#define ompi_allgather_f pompi_allgather_f
|
||||||
#define ompi_allgatherv_f pompi_allgatherv_f
|
#define ompi_allgatherv_f pompi_allgatherv_f
|
||||||
#define ompi_alloc_mem_f pompi_alloc_mem_f
|
#define ompi_alloc_mem_f pompi_alloc_mem_f
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
* Copyright (c) 2006-2014 Cisco Systems, Inc. All rights reserved.
|
* Copyright (c) 2006-2014 Cisco Systems, Inc. All rights reserved.
|
||||||
* Copyright (c) 2011-2013 Inria. All rights reserved.
|
* Copyright (c) 2011-2013 Inria. All rights reserved.
|
||||||
* Copyright (c) 2011-2013 Universite Bordeaux 1
|
* Copyright (c) 2011-2013 Universite Bordeaux 1
|
||||||
* Copyright (c) 2013 Los Alamos National Security, LLC. All rights
|
* Copyright (c) 2013-2015 Los Alamos National Security, LLC. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* $COPYRIGHT$
|
* $COPYRIGHT$
|
||||||
*
|
*
|
||||||
@ -85,6 +85,8 @@ PN2(void, MPI_Add_error_class, mpi_add_error_class, MPI_ADD_ERROR_CLASS, (MPI_Fi
|
|||||||
PN2(void, MPI_Add_error_code, mpi_add_error_code, MPI_ADD_ERROR_CODE, (MPI_Fint *errorclass, MPI_Fint *errorcode, MPI_Fint *ierr));
|
PN2(void, MPI_Add_error_code, mpi_add_error_code, MPI_ADD_ERROR_CODE, (MPI_Fint *errorclass, MPI_Fint *errorcode, MPI_Fint *ierr));
|
||||||
PN2(void, MPI_Add_error_string, mpi_add_error_string, MPI_ADD_ERROR_STRING, (MPI_Fint *errorcode, char *string, MPI_Fint *ierr, int l));
|
PN2(void, MPI_Add_error_string, mpi_add_error_string, MPI_ADD_ERROR_STRING, (MPI_Fint *errorcode, char *string, MPI_Fint *ierr, int l));
|
||||||
PN2(void, MPI_Address, mpi_address, MPI_ADDRESS, (char *location, MPI_Fint *address, MPI_Fint *ierr));
|
PN2(void, MPI_Address, mpi_address, MPI_ADDRESS, (char *location, MPI_Fint *address, MPI_Fint *ierr));
|
||||||
|
PN2(MPI_Aint, MPI_Aint_add, mpi_aint_add, MPI_AINT_ADD, (MPI_Aint *base, MPI_Aint *diff));
|
||||||
|
PN2(MPI_Aint, MPI_Aint_diff, mpi_aint_diff, MPI_AINT_DIFF, (MPI_Aint *addr1, MPI_Aint *addr2));
|
||||||
PN2(void, MPI_Allgather, mpi_allgather, MPI_ALLGATHER, (char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr));
|
PN2(void, MPI_Allgather, mpi_allgather, MPI_ALLGATHER, (char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr));
|
||||||
PN2(void, MPI_Allgatherv, mpi_allgatherv, MPI_ALLGATHERV, (char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *displs, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr));
|
PN2(void, MPI_Allgatherv, mpi_allgatherv, MPI_ALLGATHERV, (char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *displs, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr));
|
||||||
PN2(void, MPI_Alloc_mem, mpi_alloc_mem, MPI_ALLOC_MEM, (MPI_Aint *size, MPI_Fint *info, char *baseptr, MPI_Fint *ierr));
|
PN2(void, MPI_Alloc_mem, mpi_alloc_mem, MPI_ALLOC_MEM, (MPI_Aint *size, MPI_Fint *info, char *baseptr, MPI_Fint *ierr));
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
@ -10,6 +11,8 @@
|
|||||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
* Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved.
|
* Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved.
|
||||||
|
* Copyright (c) 2015 Los Alamos National Security, LLC. All rights
|
||||||
|
* reserved.
|
||||||
* $COPYRIGHT$
|
* $COPYRIGHT$
|
||||||
*
|
*
|
||||||
* Additional copyrights may follow
|
* Additional copyrights may follow
|
||||||
@ -22,8 +25,9 @@
|
|||||||
#include "ompi/mpi/fortran/mpif-h/bindings.h"
|
#include "ompi/mpi/fortran/mpif-h/bindings.h"
|
||||||
|
|
||||||
/* The OMPI_GENERATE_F77_BINDINGS work only for the most common F77 bindings, the
|
/* The OMPI_GENERATE_F77_BINDINGS work only for the most common F77 bindings, the
|
||||||
* one that does not return any value. There are 2 exceptions MPI_Wtick and MPI_Wtime.
|
* one that does not return any value. There are 4 exceptions MPI_Wtick, MPI_Wtime,
|
||||||
* For these 2 we can insert the bindings manually.
|
* MPI_Aint_add, and MPI_Aint_diff. For these 4 we can insert the bindings
|
||||||
|
* manually.
|
||||||
*/
|
*/
|
||||||
#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
||||||
#pragma weak PMPI_WTICK = ompi_wtick_f
|
#pragma weak PMPI_WTICK = ompi_wtick_f
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
@ -10,6 +11,8 @@
|
|||||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
* Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved.
|
* Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved.
|
||||||
|
* Copyright (c) 2015 Los Alamos National Security, LLC. All rights
|
||||||
|
* reserved.
|
||||||
* $COPYRIGHT$
|
* $COPYRIGHT$
|
||||||
*
|
*
|
||||||
* Additional copyrights may follow
|
* Additional copyrights may follow
|
||||||
@ -22,8 +25,9 @@
|
|||||||
#include "ompi/mpi/fortran/mpif-h/bindings.h"
|
#include "ompi/mpi/fortran/mpif-h/bindings.h"
|
||||||
|
|
||||||
/* The OMPI_GENERATE_F77_BINDINGS work only for the most common F77 bindings, the
|
/* The OMPI_GENERATE_F77_BINDINGS work only for the most common F77 bindings, the
|
||||||
* one that does not return any value. There are 2 exceptions MPI_Wtick and MPI_Wtime.
|
* one that does not return any value. There are 4 exceptions MPI_Wtick, MPI_Wtime,
|
||||||
* For these 2 we can insert the bindings manually.
|
* MPI_Aint_add, and MPI_Aint_diff. For these 4 we can insert the bindings
|
||||||
|
* manually.
|
||||||
*/
|
*/
|
||||||
#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
||||||
#pragma weak PMPI_WTIME = ompi_wtime_f
|
#pragma weak PMPI_WTIME = ompi_wtime_f
|
||||||
|
@ -92,6 +92,8 @@ mpi_api_files = \
|
|||||||
add_error_class_f08.F90 \
|
add_error_class_f08.F90 \
|
||||||
add_error_code_f08.F90 \
|
add_error_code_f08.F90 \
|
||||||
add_error_string_f08.F90 \
|
add_error_string_f08.F90 \
|
||||||
|
aint_add_f08.F90 \
|
||||||
|
aint_diff_f08.F90 \
|
||||||
allgather_f08.F90 \
|
allgather_f08.F90 \
|
||||||
allgatherv_f08.F90 \
|
allgatherv_f08.F90 \
|
||||||
alloc_mem_f08.F90 \
|
alloc_mem_f08.F90 \
|
||||||
@ -444,6 +446,8 @@ pmpi_api_files = \
|
|||||||
profile/padd_error_class_f08.F90 \
|
profile/padd_error_class_f08.F90 \
|
||||||
profile/padd_error_code_f08.F90 \
|
profile/padd_error_code_f08.F90 \
|
||||||
profile/padd_error_string_f08.F90 \
|
profile/padd_error_string_f08.F90 \
|
||||||
|
profile/paint_add_f08.F90 \
|
||||||
|
profile/paint_diff_f08.F90 \
|
||||||
profile/pallgather_f08.F90 \
|
profile/pallgather_f08.F90 \
|
||||||
profile/pallgatherv_f08.F90 \
|
profile/pallgatherv_f08.F90 \
|
||||||
profile/palloc_mem_f08.F90 \
|
profile/palloc_mem_f08.F90 \
|
||||||
|
18
ompi/mpi/fortran/use-mpi-f08/aint_add_f08.F90
Обычный файл
18
ompi/mpi/fortran/use-mpi-f08/aint_add_f08.F90
Обычный файл
@ -0,0 +1,18 @@
|
|||||||
|
! -*- f90 -*-
|
||||||
|
!
|
||||||
|
! Copyright (c) 2010-2015 Cisco Systems, Inc. All rights reserved.
|
||||||
|
! Copyright (c) 2009-2015 Los Alamos National Security, LLC.
|
||||||
|
! All Rights reserved.
|
||||||
|
! $COPYRIGHT$
|
||||||
|
|
||||||
|
#include "ompi/mpi/fortran/configure-fortran-output.h"
|
||||||
|
|
||||||
|
function MPI_Aint_add_f08(addr1, addr2)
|
||||||
|
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
|
||||||
|
use :: mpi_f08, only : ompi_aint_add_f
|
||||||
|
implicit none
|
||||||
|
INTEGER(MPI_ADDRESS_KIND) :: MPI_Aint_add_f08
|
||||||
|
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: addr1
|
||||||
|
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: addr2
|
||||||
|
MPI_Aint_add_f08 = ompi_aint_add_f(addr1, addr2)
|
||||||
|
end function MPI_Aint_add_f08
|
18
ompi/mpi/fortran/use-mpi-f08/aint_diff_f08.F90
Обычный файл
18
ompi/mpi/fortran/use-mpi-f08/aint_diff_f08.F90
Обычный файл
@ -0,0 +1,18 @@
|
|||||||
|
! -*- f90 -*-
|
||||||
|
!
|
||||||
|
! Copyright (c) 2010-2015 Cisco Systems, Inc. All rights reserved.
|
||||||
|
! Copyright (c) 2009-2015 Los Alamos National Security, LLC.
|
||||||
|
! All Rights reserved.
|
||||||
|
! $COPYRIGHT$
|
||||||
|
|
||||||
|
#include "ompi/mpi/fortran/configure-fortran-output.h"
|
||||||
|
|
||||||
|
function MPI_Aint_diff_f08(addr1, addr2)
|
||||||
|
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
|
||||||
|
use :: mpi_f08, only : ompi_aint_diff_f
|
||||||
|
implicit none
|
||||||
|
INTEGER(MPI_ADDRESS_KIND) :: MPI_Aint_diff_f08
|
||||||
|
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: addr1
|
||||||
|
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: addr2
|
||||||
|
MPI_Aint_diff_f08 = ompi_aint_diff_f(addr1, addr2)
|
||||||
|
end function MPI_Aint_diff_f08
|
@ -1,6 +1,6 @@
|
|||||||
! -*- f90 -*-
|
! -*- f90 -*-
|
||||||
!
|
!
|
||||||
! Copyright (c) 2009-2014 Cisco Systems, Inc. All rights reserved.
|
! Copyright (c) 2009-2015 Cisco Systems, Inc. All rights reserved.
|
||||||
! Copyright (c) 2009-2012 Los Alamos National Security, LLC.
|
! Copyright (c) 2009-2012 Los Alamos National Security, LLC.
|
||||||
! All rights reserved.
|
! All rights reserved.
|
||||||
! Copyright (c) 2012 The University of Tennessee and The University
|
! Copyright (c) 2012 The University of Tennessee and The University
|
||||||
@ -1780,6 +1780,24 @@ function ompi_wtime_f() &
|
|||||||
DOUBLE PRECISION :: ompi_wtime_f
|
DOUBLE PRECISION :: ompi_wtime_f
|
||||||
end function ompi_wtime_f
|
end function ompi_wtime_f
|
||||||
|
|
||||||
|
function ompi_aint_add_f(base,diff) &
|
||||||
|
BIND(C, name="ompi_aint_add_f")
|
||||||
|
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
|
||||||
|
implicit none
|
||||||
|
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: base
|
||||||
|
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: diff
|
||||||
|
INTEGER(MPI_ADDRESS_KIND) :: ompi_aint_add_f
|
||||||
|
end function ompi_aint_add_f
|
||||||
|
|
||||||
|
function ompi_aint_diff_f(addr1,addr2) &
|
||||||
|
BIND(C, name="ompi_aint_diff_f")
|
||||||
|
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
|
||||||
|
implicit none
|
||||||
|
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: addr1
|
||||||
|
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: addr2
|
||||||
|
INTEGER(MPI_ADDRESS_KIND) :: ompi_aint_diff_f
|
||||||
|
end function ompi_aint_diff_f
|
||||||
|
|
||||||
subroutine ompi_abort_f(comm,errorcode,ierror) &
|
subroutine ompi_abort_f(comm,errorcode,ierror) &
|
||||||
BIND(C, name="ompi_abort_f")
|
BIND(C, name="ompi_abort_f")
|
||||||
implicit none
|
implicit none
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
! -*- f90 -*-
|
! -*- f90 -*-
|
||||||
!
|
!
|
||||||
! Copyright (c) 2009-2014 Cisco Systems, Inc. All rights reserved.
|
! Copyright (c) 2009-2014 Cisco Systems, Inc. All rights reserved.
|
||||||
! Copyright (c) 2009-2013 Los Alamos National Security, LLC.
|
! Copyright (c) 2009-2015 Los Alamos National Security, LLC.
|
||||||
! All rights reserved.
|
! All rights reserved.
|
||||||
! Copyright (c) 2012 The University of Tennessee and The University
|
! Copyright (c) 2012 The University of Tennessee and The University
|
||||||
! of Tennessee Research Foundation. All rights
|
! of Tennessee Research Foundation. All rights
|
||||||
@ -2482,6 +2482,26 @@ function MPI_Wtime_f08( ) BIND(C,name="MPI_Wtime")
|
|||||||
end function MPI_Wtime_f08
|
end function MPI_Wtime_f08
|
||||||
end interface MPI_Wtime
|
end interface MPI_Wtime
|
||||||
|
|
||||||
|
interface MPI_Aint_add
|
||||||
|
function MPI_Aint_add_f08(base,diff)
|
||||||
|
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
|
||||||
|
implicit none
|
||||||
|
INTEGER(MPI_ADDRESS_KIND) :: base
|
||||||
|
INTEGER(MPI_ADDRESS_KIND) :: diff
|
||||||
|
INTEGER(MPI_ADDRESS_KIND) :: MPI_Aint_add_f08
|
||||||
|
end function MPI_Aint_add_f08
|
||||||
|
end interface MPI_Aint_add
|
||||||
|
|
||||||
|
interface MPI_Aint_diff
|
||||||
|
function MPI_Aint_diff_f08(addr1,addr2)
|
||||||
|
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
|
||||||
|
implicit none
|
||||||
|
INTEGER(MPI_ADDRESS_KIND) :: addr1
|
||||||
|
INTEGER(MPI_ADDRESS_KIND) :: addr2
|
||||||
|
INTEGER(MPI_ADDRESS_KIND) :: MPI_Aint_diff_f08
|
||||||
|
end function MPI_Aint_diff_f08
|
||||||
|
end interface MPI_Aint_diff
|
||||||
|
|
||||||
interface MPI_Abort
|
interface MPI_Abort
|
||||||
subroutine MPI_Abort_f08(comm,errorcode,ierror)
|
subroutine MPI_Abort_f08(comm,errorcode,ierror)
|
||||||
use :: mpi_f08_types, only : MPI_Comm
|
use :: mpi_f08_types, only : MPI_Comm
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
! -*- f90 -*-
|
! -*- f90 -*-
|
||||||
!
|
!
|
||||||
! Copyright (c) 2009-2014 Cisco Systems, Inc. All rights reserved.
|
! Copyright (c) 2009-2015 Cisco Systems, Inc. All rights reserved.
|
||||||
! Copyright (c) 2009-2012 Los Alamos National Security, LLC.
|
! Copyright (c) 2009-2012 Los Alamos National Security, LLC.
|
||||||
! All rights reserved.
|
! All rights reserved.
|
||||||
! Copyright (c) 2012 The University of Tennessee and The University
|
! Copyright (c) 2012 The University of Tennessee and The University
|
||||||
@ -1615,6 +1615,24 @@ end subroutine pompi_topo_test_f
|
|||||||
! DOUBLE PRECISION :: MPI_Wtime_f
|
! DOUBLE PRECISION :: MPI_Wtime_f
|
||||||
!end function MPI_Wtime_f
|
!end function MPI_Wtime_f
|
||||||
|
|
||||||
|
function pompi_aint_add_f(base,diff) &
|
||||||
|
BIND(C, name="pompi_aint_add_f")
|
||||||
|
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
|
||||||
|
implicit none
|
||||||
|
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: base
|
||||||
|
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: diff
|
||||||
|
INTEGER(MPI_ADDRESS_KIND) :: pompi_aint_add_f
|
||||||
|
end function pompi_aint_add_f
|
||||||
|
|
||||||
|
function pompi_aint_diff_f(addr1,addr2) &
|
||||||
|
BIND(C, name="pompi_aint_diff_f")
|
||||||
|
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
|
||||||
|
implicit none
|
||||||
|
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: addr1
|
||||||
|
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: addr2
|
||||||
|
INTEGER(MPI_ADDRESS_KIND) :: pompi_aint_diff_f
|
||||||
|
end function pompi_aint_diff_f
|
||||||
|
|
||||||
subroutine pompi_abort_f(comm,errorcode,ierror) &
|
subroutine pompi_abort_f(comm,errorcode,ierror) &
|
||||||
BIND(C, name="pompi_abort_f")
|
BIND(C, name="pompi_abort_f")
|
||||||
implicit none
|
implicit none
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
! -*- f90 -*-
|
! -*- f90 -*-
|
||||||
!
|
!
|
||||||
! Copyright (c) 2009-2014 Cisco Systems, Inc. All rights reserved.
|
! Copyright (c) 2009-2015 Cisco Systems, Inc. All rights reserved.
|
||||||
! Copyright (c) 2009-2013 Los Alamos National Security, LLC.
|
! Copyright (c) 2009-2013 Los Alamos National Security, LLC.
|
||||||
! All rights reserved.
|
! All rights reserved.
|
||||||
! Copyright (c) 2012 The University of Tennessee and The University
|
! Copyright (c) 2012 The University of Tennessee and The University
|
||||||
@ -2430,6 +2430,24 @@ function PMPI_Wtime_f08( ) BIND(C,name="MPI_Wtime")
|
|||||||
end function PMPI_Wtime_f08
|
end function PMPI_Wtime_f08
|
||||||
end interface PMPI_Wtime
|
end interface PMPI_Wtime
|
||||||
|
|
||||||
|
interface PMPI_Aint_add
|
||||||
|
subroutine PMPI_Aint_add_f08(base,diff)
|
||||||
|
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
|
||||||
|
implicit none
|
||||||
|
INTEGER(MPI_ADDRESS_KIND) :: base
|
||||||
|
INTEGER(MPI_ADDRESS_KIND) :: diff
|
||||||
|
end subroutine PMPI_Aint_add_f08
|
||||||
|
end interface PMPI_Aint_add
|
||||||
|
|
||||||
|
interface PMPI_Aint_diff
|
||||||
|
subroutine PMPI_Aint_diff_f08(addr1,addr2)
|
||||||
|
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
|
||||||
|
implicit none
|
||||||
|
INTEGER(MPI_ADDRESS_KIND) :: addr1
|
||||||
|
INTEGER(MPI_ADDRESS_KIND) :: addr2
|
||||||
|
end subroutine PMPI_Aint_diff_f08
|
||||||
|
end interface PMPI_Aint_diff
|
||||||
|
|
||||||
interface PMPI_Abort
|
interface PMPI_Abort
|
||||||
subroutine PMPI_Abort_f08(comm,errorcode,ierror)
|
subroutine PMPI_Abort_f08(comm,errorcode,ierror)
|
||||||
use :: mpi_f08_types, only : MPI_Comm
|
use :: mpi_f08_types, only : MPI_Comm
|
||||||
|
18
ompi/mpi/fortran/use-mpi-f08/profile/paint_add_f08.F90
Обычный файл
18
ompi/mpi/fortran/use-mpi-f08/profile/paint_add_f08.F90
Обычный файл
@ -0,0 +1,18 @@
|
|||||||
|
! -*- f90 -*-
|
||||||
|
!
|
||||||
|
! Copyright (c) 2010-2015 Cisco Systems, Inc. All rights reserved.
|
||||||
|
! Copyright (c) 2009-2015 Los Alamos National Security, LLC.
|
||||||
|
! All Rights reserved.
|
||||||
|
! $COPYRIGHT$
|
||||||
|
|
||||||
|
#include "ompi/mpi/fortran/configure-fortran-output.h"
|
||||||
|
|
||||||
|
function PMPI_Aint_add_f08(base, diff)
|
||||||
|
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
|
||||||
|
use :: mpi_f08, only : ompi_aint_add_f
|
||||||
|
implicit none
|
||||||
|
INTEGER(MPI_ADDRESS_KIND) :: PMPI_Aint_add_f08
|
||||||
|
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: base
|
||||||
|
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: diff
|
||||||
|
PMPI_Aint_add_f08 = ompi_aint_add_f(base, diff)
|
||||||
|
end function PMPI_Aint_add_f08
|
18
ompi/mpi/fortran/use-mpi-f08/profile/paint_diff_f08.F90
Обычный файл
18
ompi/mpi/fortran/use-mpi-f08/profile/paint_diff_f08.F90
Обычный файл
@ -0,0 +1,18 @@
|
|||||||
|
! -*- f90 -*-
|
||||||
|
!
|
||||||
|
! Copyright (c) 2010-2015 Cisco Systems, Inc. All rights reserved.
|
||||||
|
! Copyright (c) 2009-2015 Los Alamos National Security, LLC.
|
||||||
|
! All Rights reserved.
|
||||||
|
! $COPYRIGHT$
|
||||||
|
|
||||||
|
#include "ompi/mpi/fortran/configure-fortran-output.h"
|
||||||
|
|
||||||
|
function PMPI_Aint_diff_f08(addr1, addr2)
|
||||||
|
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
|
||||||
|
use :: mpi_f08, only : ompi_aint_diff_f
|
||||||
|
implicit none
|
||||||
|
INTEGER(MPI_ADDRESS_KIND) :: PMPI_Aint_diff_f08
|
||||||
|
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: addr1
|
||||||
|
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: addr2
|
||||||
|
PMPI_Aint_diff_f08 = ompi_aint_diff_f(addr1, addr2)
|
||||||
|
end function PMPI_Aint_diff_f08
|
@ -7,7 +7,7 @@
|
|||||||
! of Tennessee Research Foundation. All rights
|
! of Tennessee Research Foundation. All rights
|
||||||
! reserved.
|
! reserved.
|
||||||
! Copyright (c) 2012 Inria. All rights reserved.
|
! Copyright (c) 2012 Inria. All rights reserved.
|
||||||
! Copyright (c) 2013-2014 Los Alamos National Security, LLC. All rights
|
! Copyright (c) 2013-2015 Los Alamos National Security, LLC. All rights
|
||||||
! reserved.
|
! reserved.
|
||||||
! Copyright (c) 2015 Research Organization for Information Science
|
! Copyright (c) 2015 Research Organization for Information Science
|
||||||
! and Technology (RIST). All rights reserved.
|
! and Technology (RIST). All rights reserved.
|
||||||
@ -163,6 +163,49 @@ end subroutine PMPI_Address
|
|||||||
|
|
||||||
end interface
|
end interface
|
||||||
|
|
||||||
|
interface MPI_Aint_add
|
||||||
|
|
||||||
|
function MPI_Aint_add(base, diff)
|
||||||
|
include 'mpif-config.h'
|
||||||
|
integer(kind=MPI_ADDRESS_KIND) :: base
|
||||||
|
integer(kind=MPI_ADDRESS_KIND) :: diff
|
||||||
|
integer(kind=MPI_ADDRESS_KIND) MPI_Aint_add
|
||||||
|
end function MPI_Aint_add
|
||||||
|
|
||||||
|
end interface
|
||||||
|
|
||||||
|
interface PMPI_Aint_add
|
||||||
|
|
||||||
|
function PMPI_Aint_add(base, diff)
|
||||||
|
include 'mpif-config.h'
|
||||||
|
integer(kind=MPI_ADDRESS_KIND) :: base
|
||||||
|
integer(kind=MPI_ADDRESS_KIND) :: diff
|
||||||
|
integer(kind=MPI_ADDRESS_KIND) PMPI_Aint_add
|
||||||
|
end function PMPI_Aint_add
|
||||||
|
|
||||||
|
end interface
|
||||||
|
|
||||||
|
interface MPI_Aint_diff
|
||||||
|
|
||||||
|
function MPI_Aint_diff(addr1, addr2)
|
||||||
|
include 'mpif-config.h'
|
||||||
|
integer(kind=MPI_ADDRESS_KIND) :: addr1
|
||||||
|
integer(kind=MPI_ADDRESS_KIND) :: addr2
|
||||||
|
integer(kind=MPI_ADDRESS_KIND) MPI_Aint_diff
|
||||||
|
end function MPI_Aint_diff
|
||||||
|
|
||||||
|
end interface
|
||||||
|
|
||||||
|
interface PMPI_Aint_diff
|
||||||
|
|
||||||
|
function PMPI_Aint_diff(addr1, addr2)
|
||||||
|
include 'mpif-config.h'
|
||||||
|
integer(kind=MPI_ADDRESS_KIND) :: addr1
|
||||||
|
integer(kind=MPI_ADDRESS_KIND) :: addr2
|
||||||
|
integer(kind=MPI_ADDRESS_KIND) PMPI_Aint_diff
|
||||||
|
end function PMPI_Aint_diff
|
||||||
|
|
||||||
|
end interface
|
||||||
|
|
||||||
interface MPI_Allgather
|
interface MPI_Allgather
|
||||||
|
|
||||||
|
@ -67,6 +67,8 @@ mpi.lo: mpi-f90-cptr-interfaces.F90
|
|||||||
|
|
||||||
libmpi_usempi_la_SOURCES = \
|
libmpi_usempi_la_SOURCES = \
|
||||||
mpi.F90 \
|
mpi.F90 \
|
||||||
|
mpi_aint_add_f90.f90 \
|
||||||
|
mpi_aint_diff_f90.f90 \
|
||||||
mpi_comm_spawn_multiple_f90.f90 \
|
mpi_comm_spawn_multiple_f90.f90 \
|
||||||
mpi_testall_f90.f90 \
|
mpi_testall_f90.f90 \
|
||||||
mpi_testsome_f90.f90 \
|
mpi_testsome_f90.f90 \
|
||||||
|
@ -78,6 +78,27 @@ end subroutine MPI_Add_error_string
|
|||||||
|
|
||||||
end interface
|
end interface
|
||||||
|
|
||||||
|
interface MPI_Aint_add
|
||||||
|
|
||||||
|
function MPI_Aint_add(base, diff)
|
||||||
|
include 'mpif-config.h'
|
||||||
|
integer(kind=MPI_ADDRESS_KIND), intent(in) :: base
|
||||||
|
integer(kind=MPI_ADDRESS_KIND), intent(in) :: diff
|
||||||
|
integer(kind=MPI_ADDRESS_KIND) MPI_Aint_add
|
||||||
|
end function MPI_Aint_add
|
||||||
|
|
||||||
|
end interface
|
||||||
|
|
||||||
|
interface MPI_Aint_diff
|
||||||
|
|
||||||
|
function MPI_Aint_diff(addr1, addr2)
|
||||||
|
include 'mpif-config.h'
|
||||||
|
integer(kind=MPI_ADDRESS_KIND), intent(in) :: addr1
|
||||||
|
integer(kind=MPI_ADDRESS_KIND), intent(in) :: addr2
|
||||||
|
integer(kind=MPI_ADDRESS_KIND) MPI_Aint_diff
|
||||||
|
end function MPI_Aint_diff
|
||||||
|
|
||||||
|
end interface
|
||||||
|
|
||||||
interface MPI_Attr_delete
|
interface MPI_Attr_delete
|
||||||
|
|
||||||
|
31
ompi/mpi/fortran/use-mpi-tkr/mpi_aint_add_f90.f90
Обычный файл
31
ompi/mpi/fortran/use-mpi-tkr/mpi_aint_add_f90.f90
Обычный файл
@ -0,0 +1,31 @@
|
|||||||
|
! -*- fortran -*-
|
||||||
|
!
|
||||||
|
! Copyright (c) 2004-2006 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) 2006-2014 Cisco Systems, Inc. All rights reserved.
|
||||||
|
! Copyright (c) 2015 Los Alamos National Security, LLC. All rights
|
||||||
|
! reserved.
|
||||||
|
! $COPYRIGHT$
|
||||||
|
!
|
||||||
|
! Additional copyrights may follow
|
||||||
|
!
|
||||||
|
! $HEADER$
|
||||||
|
!
|
||||||
|
|
||||||
|
function MPI_Aint_add(base, diff)
|
||||||
|
include 'mpif-config.h'
|
||||||
|
integer(kind=MPI_ADDRESS_KIND), intent(in) :: base
|
||||||
|
integer(kind=MPI_ADDRESS_KIND), intent(in) :: diff
|
||||||
|
integer(kind=MPI_ADDRESS_KIND) :: MPI_Aint_add,foo
|
||||||
|
call MPI_Aint_add_f90(base,diff,foo)
|
||||||
|
MPI_Aint_add = foo
|
||||||
|
end function MPI_Aint_add
|
||||||
|
|
31
ompi/mpi/fortran/use-mpi-tkr/mpi_aint_diff_f90.f90
Обычный файл
31
ompi/mpi/fortran/use-mpi-tkr/mpi_aint_diff_f90.f90
Обычный файл
@ -0,0 +1,31 @@
|
|||||||
|
! -*- fortran -*-
|
||||||
|
!
|
||||||
|
! Copyright (c) 2004-2006 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) 2006-2014 Cisco Systems, Inc. All rights reserved.
|
||||||
|
! Copyright (c) 2015 Los Alamos National Security, LLC. All rights
|
||||||
|
! reserved.
|
||||||
|
! $COPYRIGHT$
|
||||||
|
!
|
||||||
|
! Additional copyrights may follow
|
||||||
|
!
|
||||||
|
! $HEADER$
|
||||||
|
!
|
||||||
|
|
||||||
|
function MPI_Aint_diff(addr1, addr2)
|
||||||
|
include 'mpif-config.h'
|
||||||
|
integer(kind=MPI_ADDRESS_KIND), intent(in) :: addr1
|
||||||
|
integer(kind=MPI_ADDRESS_KIND), intent(in) :: addr2
|
||||||
|
integer(kind=MPI_ADDRESS_KIND) :: MPI_Aint_diff,foo
|
||||||
|
call MPI_Aint_diff_f90(addr1,addr2,foo)
|
||||||
|
MPI_Aint_diff = foo
|
||||||
|
end function MPI_Aint_diff
|
||||||
|
|
83
ompi/mpi/man/man3/MPI_Aint_add.3in
Обычный файл
83
ompi/mpi/man/man3/MPI_Aint_add.3in
Обычный файл
@ -0,0 +1,83 @@
|
|||||||
|
.\" -*- nroff -*-
|
||||||
|
.\" Copyright 2013-2015 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_Aint_add 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
|
||||||
|
.SH NAME
|
||||||
|
\fBMPI_Aint_add\fP, \fBMPI_Aint_diff\fP \- Portable functions for
|
||||||
|
arithmetic on MPI_Aint values.
|
||||||
|
|
||||||
|
.SH SYNTAX
|
||||||
|
.ft R
|
||||||
|
.SH C Syntax
|
||||||
|
.nf
|
||||||
|
#include <mpi.h>
|
||||||
|
MPI_Aint MPI_Aint_add(MPI_Aint \fIbase\fP, MPI_Aint \fIdisp\fP)
|
||||||
|
|
||||||
|
MPI_Aint MPI_Aint_diff(MPI_Aint \fIaddr1\fP, MPI_Aint \fIaddr2\fP)
|
||||||
|
|
||||||
|
.fi
|
||||||
|
.SH Fortran Syntax
|
||||||
|
.nf
|
||||||
|
INCLUDE 'mpif.h'
|
||||||
|
INTEGER(KIND=MPI_ADDRESS_KIND) MPI_AINT_ADD(\fIBASE, DISP\fP)
|
||||||
|
INTEGER(KIND=MPI_ADDRESS_KIND) \fIBASE, DISP\fP
|
||||||
|
|
||||||
|
INTEGER(KIND=MPI_ADDRESS_KIND) MPI_AINT_DIFF(\fIADDR1, ADDR2\fP)
|
||||||
|
INTEGER(KIND=MPI_ADDRESS_KIND) \fIADDR1, ADDR2\fP
|
||||||
|
|
||||||
|
.fi
|
||||||
|
.SH INPUT PARAMETERS
|
||||||
|
.ft R
|
||||||
|
.TP 1i
|
||||||
|
base
|
||||||
|
Base address (integer).
|
||||||
|
.ft R
|
||||||
|
.TP 1i
|
||||||
|
disp
|
||||||
|
Displacement (integer).
|
||||||
|
.ft R
|
||||||
|
.TP 1i
|
||||||
|
addr1
|
||||||
|
Minuend address (integer).
|
||||||
|
.ft R
|
||||||
|
.TP
|
||||||
|
addr2
|
||||||
|
Subtrahend address (integer).
|
||||||
|
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.ft R
|
||||||
|
\fBMPI_Aint_add\fP produces a new MPI_Aint value that is equivalent to the sum of
|
||||||
|
the \fIbase\fP and \fIdisp\fP arguments, where \fIbase\fP represents
|
||||||
|
a base address returned by a call to \fBMPI_Get_address\fP and
|
||||||
|
\fIdisp\fP represents a signed integer displacement. The resulting
|
||||||
|
address is valid only at the process that generated \fIbase\fP, and it
|
||||||
|
must correspond to a location in the same object referenced by
|
||||||
|
\fIbase\fP, as described in MPI-3.1 \[char167] 4.1.12. The addition is
|
||||||
|
performed in a manner that results in the correct MPI_Aint
|
||||||
|
representation of the output address, as if the process that
|
||||||
|
originally produced \fIbase\fP had called:
|
||||||
|
|
||||||
|
.nf
|
||||||
|
\fBMPI_Get_address\fP ((char *) \fIbase\fP + \fIdisp\fP, &\fIresult\fP);
|
||||||
|
.fi
|
||||||
|
.sp
|
||||||
|
.ft R
|
||||||
|
\fBMPI_Aint_diff\fP produces a new MPI_Aint value that is equivalent
|
||||||
|
to the difference between \fIaddr1\fP and \fIaddr2\fP arguments, where
|
||||||
|
\fIaddr1\fP and \fIaddr2\fP represent addresses returned by calls to
|
||||||
|
\fBMPI_Get_address\fP. The resulting address is valid only at the
|
||||||
|
process that generated \fIaddr1\fP and \fIaddr2\fP, and \fIaddr1\fP
|
||||||
|
and \fIaddr2\fP must correspond to locations in the same object in the
|
||||||
|
same process, as described in MPI-3.1 \[char167] 4.1.12. The difference is
|
||||||
|
calculated in a manner that results in the signed difference from
|
||||||
|
\fIaddr1\fP to \fIaddr2\fP, as if the process that originally produced
|
||||||
|
the addresses had called (char *) \fIaddr1\fP - (char *) \fIaddr2\fP
|
||||||
|
on the addresses initially passed to \fBMPI_Get_address\fP.
|
||||||
|
|
||||||
|
.SH SEE ALSO
|
||||||
|
.ft R
|
||||||
|
.sp
|
||||||
|
MPI_Get_address
|
1
ompi/mpi/man/man3/MPI_Aint_diff.3in
Обычный файл
1
ompi/mpi/man/man3/MPI_Aint_diff.3in
Обычный файл
@ -0,0 +1 @@
|
|||||||
|
.so man3/MPI_Aint_add.3
|
@ -19,6 +19,8 @@ mpi_api_man_pages = \
|
|||||||
mpi/man/man3/MPI_Add_error_code.3 \
|
mpi/man/man3/MPI_Add_error_code.3 \
|
||||||
mpi/man/man3/MPI_Add_error_string.3 \
|
mpi/man/man3/MPI_Add_error_string.3 \
|
||||||
mpi/man/man3/MPI_Address.3 \
|
mpi/man/man3/MPI_Address.3 \
|
||||||
|
mpi/man/man3/MPI_Aint_add.3 \
|
||||||
|
mpi/man/man3/MPI_Aint_diff.3 \
|
||||||
mpi/man/man3/MPI_Allgather.3 \
|
mpi/man/man3/MPI_Allgather.3 \
|
||||||
mpi/man/man3/MPI_Iallgather.3 \
|
mpi/man/man3/MPI_Iallgather.3 \
|
||||||
mpi/man/man3/MPI_Allgatherv.3 \
|
mpi/man/man3/MPI_Allgatherv.3 \
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user