[Mpi-forum] Giving up on C11 _Generic
Jeff Hammond
jeff.science at gmail.com
Wed Aug 7 16:43:27 CDT 2019
You can't do that forwarding for vectors of counts.
On Wed, Aug 7, 2019 at 2:10 PM Jim Dinan via mpi-forum <
mpi-forum at lists.mpi-forum.org> wrote:
> Even simpler than this, we could just forward all calls to the MPI_Count
> interface (see below). The int count argument should type convert to
> MPI_Count without issue. Note that it still needs to be a function-like
> macro so that function pointers work.
>
> Don't give up yet! :D
>
> ~Jim.
>
> #include <stdio.h>
>
>
>
> typedef int MPI_Datatype;
>
> typedef int MPI_Comm;
>
>
> int MPI_Send(const void* buf, int count, MPI_Datatype datatype, int dest,
>
> int tag, MPI_Comm comm)
>
> {
>
> printf("MPI_Send(count = %d)\n", count);
>
> return 0;
>
> }
>
>
> int MPI_Send_x(const void* buf, long long count, MPI_Datatype datatype,
> int dest,
>
> int tag, MPI_Comm comm)
>
> {
>
> printf("MPI_Send_x(count = %lld)\n", count);
>
> return 0;
>
> }
>
>
> #define MPI_Send(buf, count, datatype, dest, tag, comm) MPI_Send_x(buf,
> count, datatype, dest, tag, comm)
>
>
> int main(int argc, char *argv[]) {
>
> /* 8589934592LL == 2^33 */
>
> long long i = 8589934592LL + 11;
>
> int ret;
>
> int (*snd_ptr)(const void*, int, MPI_Datatype, int, int, MPI_Comm) =
> &MPI_Send;
>
> ret = MPI_Send(NULL, i, 0, 0, 0, 0);
>
> ret = MPI_Send(NULL, 5, 0, 0, 0, 0);
>
> ret = (*snd_ptr)(NULL, i, 0, 0, 0, 0);
>
> ret = (*snd_ptr)(NULL, 5, 0, 0, 0, 0);
>
> return 0;
>
> }
>
>
> MPI_Send_x(count = 8589934603)
>
> MPI_Send_x(count = 5)
>
> MPI_Send(count = 11)
>
> MPI_Send(count = 5)
> _______________________________________________
> mpi-forum mailing list
> mpi-forum at lists.mpi-forum.org
> https://lists.mpi-forum.org/mailman/listinfo/mpi-forum
>
--
Jeff Hammond
jeff.science at gmail.com
http://jeffhammond.github.io/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpi-forum.org/pipermail/mpi-forum/attachments/20190807/d90392c1/attachment-0001.html>
More information about the mpi-forum
mailing list