Convert all buffers from Fortran to C. This allow us to catch the
MPI_BOTTOM. Let the C functions do the checkings for where MPI_BOTTOM is allowed and where not. This commit was SVN r15030.
Этот коммит содержится в:
родитель
c70566dfe7
Коммит
15f9e58c68
@ -73,10 +73,10 @@ void mpi_allgather_f(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype,
|
||||
sendbuf = MPI_IN_PLACE;
|
||||
}
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Allgather(sendbuf,
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Allgather(OMPI_ADDR(sendbuf),
|
||||
OMPI_FINT_2_INT(*sendcount),
|
||||
c_sendtype,
|
||||
recvbuf,
|
||||
OMPI_ADDR(recvbuf),
|
||||
OMPI_FINT_2_INT(*recvcount),
|
||||
c_recvtype, c_comm));
|
||||
|
||||
|
@ -80,10 +80,10 @@ void mpi_allgatherv_f(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype,
|
||||
sendbuf = MPI_IN_PLACE;
|
||||
}
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Allgatherv(sendbuf,
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Allgatherv(OMPI_ADDR(sendbuf),
|
||||
OMPI_FINT_2_INT(*sendcount),
|
||||
c_sendtype,
|
||||
recvbuf,
|
||||
OMPI_ADDR(recvbuf),
|
||||
OMPI_ARRAY_NAME_CONVERT(recvcounts),
|
||||
OMPI_ARRAY_NAME_CONVERT(displs),
|
||||
c_recvtype, c_comm));
|
||||
|
@ -74,7 +74,7 @@ void mpi_allreduce_f(char *sendbuf, char *recvbuf, MPI_Fint *count,
|
||||
sendbuf = MPI_IN_PLACE;
|
||||
}
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Allreduce(sendbuf, recvbuf,
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Allreduce(OMPI_ADDR(sendbuf), OMPI_ADDR(recvbuf),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type, c_op, c_comm));
|
||||
}
|
||||
|
@ -19,6 +19,7 @@
|
||||
#include "ompi_config.h"
|
||||
|
||||
#include "ompi/mpi/f77/bindings.h"
|
||||
#include "ompi/mpi/f77/constants.h"
|
||||
|
||||
#if OMPI_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
||||
#pragma weak PMPI_ALLTOALL = mpi_alltoall_f
|
||||
@ -68,10 +69,10 @@ void mpi_alltoall_f(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype,
|
||||
c_sendtype = MPI_Type_f2c(*sendtype);
|
||||
c_recvtype = MPI_Type_f2c(*recvtype);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Alltoall(sendbuf,
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Alltoall(OMPI_ADDR(sendbuf),
|
||||
OMPI_FINT_2_INT(*sendcount),
|
||||
c_sendtype,
|
||||
recvbuf,
|
||||
OMPI_ADDR(recvbuf),
|
||||
OMPI_FINT_2_INT(*recvcount),
|
||||
c_recvtype, c_comm));
|
||||
}
|
||||
|
@ -19,6 +19,7 @@
|
||||
#include "ompi_config.h"
|
||||
|
||||
#include "ompi/mpi/f77/bindings.h"
|
||||
#include "ompi/mpi/f77/constants.h"
|
||||
|
||||
#if OMPI_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
||||
#pragma weak PMPI_ALLTOALLV = mpi_alltoallv_f
|
||||
@ -81,11 +82,11 @@ void mpi_alltoallv_f(char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *sdispls,
|
||||
OMPI_ARRAY_FINT_2_INT(rdispls, size);
|
||||
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Alltoallv(sendbuf,
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Alltoallv(OMPI_ADDR(sendbuf),
|
||||
OMPI_ARRAY_NAME_CONVERT(sendcounts),
|
||||
OMPI_ARRAY_NAME_CONVERT(sdispls),
|
||||
c_sendtype,
|
||||
recvbuf,
|
||||
OMPI_ADDR(recvbuf),
|
||||
OMPI_ARRAY_NAME_CONVERT(recvcounts),
|
||||
OMPI_ARRAY_NAME_CONVERT(rdispls),
|
||||
c_recvtype, c_comm));
|
||||
|
@ -19,6 +19,7 @@
|
||||
#include "ompi_config.h"
|
||||
|
||||
#include "ompi/mpi/f77/bindings.h"
|
||||
#include "ompi/mpi/f77/constants.h"
|
||||
|
||||
#if OMPI_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
||||
#pragma weak PMPI_ALLTOALLW = mpi_alltoallw_f
|
||||
@ -88,11 +89,11 @@ void mpi_alltoallw_f(char *sendbuf, MPI_Fint *sendcounts,
|
||||
--size;
|
||||
}
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Alltoallw(sendbuf,
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Alltoallw(OMPI_ADDR(sendbuf),
|
||||
OMPI_ARRAY_NAME_CONVERT(sendcounts),
|
||||
OMPI_ARRAY_NAME_CONVERT(sdispls),
|
||||
c_sendtypes,
|
||||
recvbuf,
|
||||
OMPI_ADDR(recvbuf),
|
||||
OMPI_ARRAY_NAME_CONVERT(recvcounts),
|
||||
OMPI_ARRAY_NAME_CONVERT(rdispls),
|
||||
c_recvtypes, c_comm));
|
||||
|
@ -19,6 +19,7 @@
|
||||
#include "ompi_config.h"
|
||||
|
||||
#include "ompi/mpi/f77/bindings.h"
|
||||
#include "ompi/mpi/f77/constants.h"
|
||||
|
||||
#if OMPI_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
||||
#pragma weak PMPI_BCAST = mpi_bcast_f
|
||||
@ -66,7 +67,7 @@ void mpi_bcast_f(char *buffer, MPI_Fint *count, MPI_Fint *datatype,
|
||||
c_comm = MPI_Comm_f2c(*comm);
|
||||
c_type = MPI_Type_f2c(*datatype);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Bcast(buffer,
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Bcast(OMPI_ADDR(buffer),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type,
|
||||
OMPI_FINT_2_INT(*root),
|
||||
|
@ -19,6 +19,7 @@
|
||||
#include "ompi_config.h"
|
||||
|
||||
#include "ompi/mpi/f77/bindings.h"
|
||||
#include "ompi/mpi/f77/constants.h"
|
||||
|
||||
#if OMPI_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
||||
#pragma weak PMPI_EXSCAN = mpi_exscan_f
|
||||
@ -69,7 +70,7 @@ void mpi_exscan_f(char *sendbuf, char *recvbuf, MPI_Fint *count,
|
||||
c_type = MPI_Type_f2c(*datatype);
|
||||
c_op = MPI_Op_f2c(*op);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Exscan(sendbuf, recvbuf,
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Exscan(OMPI_ADDR(sendbuf), OMPI_ADDR(recvbuf),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type, c_op, c_comm));
|
||||
}
|
||||
|
@ -73,8 +73,9 @@ void mpi_gather_f(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype,
|
||||
sendbuf = MPI_IN_PLACE;
|
||||
}
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Gather(sendbuf, OMPI_FINT_2_INT(*sendcount),
|
||||
c_sendtype, recvbuf,
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Gather(OMPI_ADDR(sendbuf),
|
||||
OMPI_FINT_2_INT(*sendcount),
|
||||
c_sendtype, OMPI_ADDR(recvbuf),
|
||||
OMPI_FINT_2_INT(*recvcount),
|
||||
c_recvtype,
|
||||
OMPI_FINT_2_INT(*root),
|
||||
|
@ -81,8 +81,9 @@ void mpi_gatherv_f(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype,
|
||||
sendbuf = MPI_IN_PLACE;
|
||||
}
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Gatherv(sendbuf, OMPI_FINT_2_INT(*sendcount),
|
||||
c_sendtype, recvbuf,
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Gatherv(OMPI_ADDR(sendbuf),
|
||||
OMPI_FINT_2_INT(*sendcount),
|
||||
c_sendtype, OMPI_ADDR(recvbuf),
|
||||
OMPI_ARRAY_NAME_CONVERT(recvcounts),
|
||||
OMPI_ARRAY_NAME_CONVERT(displs),
|
||||
c_recvtype,
|
||||
|
@ -74,7 +74,7 @@ void mpi_reduce_f(char *sendbuf, char *recvbuf, MPI_Fint *count,
|
||||
sendbuf = MPI_IN_PLACE;
|
||||
}
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Reduce(sendbuf, recvbuf,
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Reduce(OMPI_ADDR(sendbuf), OMPI_ADDR(recvbuf),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type, c_op,
|
||||
OMPI_FINT_2_INT(*root),
|
||||
|
@ -79,7 +79,7 @@ void mpi_reduce_scatter_f(char *sendbuf, char *recvbuf,
|
||||
sendbuf = MPI_IN_PLACE;
|
||||
}
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Reduce_scatter(sendbuf, recvbuf,
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Reduce_scatter(OMPI_ADDR(sendbuf), OMPI_ADDR(recvbuf),
|
||||
OMPI_ARRAY_NAME_CONVERT(recvcounts),
|
||||
c_type, c_op, c_comm));
|
||||
}
|
||||
|
@ -74,7 +74,7 @@ void mpi_scan_f(char *sendbuf, char *recvbuf, MPI_Fint *count,
|
||||
sendbuf = MPI_IN_PLACE;
|
||||
}
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Scan(sendbuf, recvbuf,
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Scan(OMPI_ADDR(sendbuf), OMPI_ADDR(recvbuf),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type, c_op,
|
||||
c_comm));
|
||||
|
@ -73,8 +73,8 @@ void mpi_scatter_f(char *sendbuf, MPI_Fint *sendcount,
|
||||
sendbuf = MPI_IN_PLACE;
|
||||
}
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Scatter(sendbuf,OMPI_FINT_2_INT(*sendcount),
|
||||
c_sendtype, recvbuf,
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Scatter(OMPI_ADDR(sendbuf),OMPI_FINT_2_INT(*sendcount),
|
||||
c_sendtype, OMPI_ADDR(recvbuf),
|
||||
OMPI_FINT_2_INT(*recvcount),
|
||||
c_recvtype,
|
||||
OMPI_FINT_2_INT(*root), c_comm));
|
||||
|
@ -82,10 +82,10 @@ void mpi_scatterv_f(char *sendbuf, MPI_Fint *sendcounts,
|
||||
sendbuf = MPI_IN_PLACE;
|
||||
}
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Scatterv(sendbuf,
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Scatterv(OMPI_ADDR(sendbuf),
|
||||
OMPI_ARRAY_NAME_CONVERT(sendcounts),
|
||||
OMPI_ARRAY_NAME_CONVERT(displs),
|
||||
c_sendtype, recvbuf,
|
||||
c_sendtype, OMPI_ADDR(recvbuf),
|
||||
OMPI_FINT_2_INT(*recvcount),
|
||||
c_recvtype,
|
||||
OMPI_FINT_2_INT(*root), c_comm));
|
||||
|
Загрузка…
Ссылка в новой задаче
Block a user