Skip to content

Commit

Permalink
constify mpi functions
Browse files Browse the repository at this point in the history
  • Loading branch information
jacobmerson committed Mar 30, 2023
1 parent 6a46101 commit ed28c05
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 30 deletions.
17 changes: 6 additions & 11 deletions pcu/pcu_mpi.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,41 +21,36 @@ void pcu_free_message(pcu_message* m)
pcu_free_buffer(&(m->buffer));
}

int pcu_mpi_size(pcu_mpi_t* self)
int pcu_mpi_size(const pcu_mpi_t* self)
{
return pcu_pmpi_size(self);
}

int pcu_mpi_rank(pcu_mpi_t* self)
int pcu_mpi_rank(const pcu_mpi_t* self)
{
return pcu_pmpi_rank(self);
}

static void check_rank(pcu_mpi_t* self, int rank)
static void check_rank(const pcu_mpi_t* self, int rank)
{
(void)rank;
PCU_ALWAYS_ASSERT(0 <= rank);
PCU_ALWAYS_ASSERT(rank < pcu_mpi_size(self));
}

void pcu_mpi_send(pcu_mpi_t* self, pcu_message* m, MPI_Comm comm)
void pcu_mpi_send(const pcu_mpi_t* self, pcu_message* m, MPI_Comm comm)
{
check_rank(self, m->peer);
// verify that the communicator is one of the user or collective communicators
//int user_result, coll_result;
//MPI_Comm_compare(comm, self->user_comm, &user_result);
//MPI_Comm_compare(comm, self->coll_comm, &coll_result);
//PCU_ALWAYS_ASSERT(user_result == MPI_IDENT || coll_result == MPI_IDENT);
PCU_ALWAYS_ASSERT(comm == self->user_comm || comm == self->coll_comm);
pcu_pmpi_send(self, m, comm);
}

bool pcu_mpi_done(pcu_mpi_t* self, pcu_message* m)
bool pcu_mpi_done(const pcu_mpi_t* self, pcu_message* m)
{
return pcu_pmpi_done(self, m);
}

bool pcu_mpi_receive(pcu_mpi_t* self, pcu_message* m, MPI_Comm comm)
bool pcu_mpi_receive(const pcu_mpi_t* self, pcu_message* m, MPI_Comm comm)
{
if (m->peer != MPI_ANY_SOURCE)
check_rank(self, m->peer);
Expand Down
10 changes: 5 additions & 5 deletions pcu/pcu_mpi.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@ typedef struct
int size;
} pcu_mpi_t;

int pcu_mpi_size(pcu_mpi_t*);
int pcu_mpi_rank(pcu_mpi_t*);
void pcu_mpi_send(pcu_mpi_t*, pcu_message* m, MPI_Comm comm);
bool pcu_mpi_done(pcu_mpi_t*, pcu_message* m);
bool pcu_mpi_receive(pcu_mpi_t*, pcu_message* m, MPI_Comm comm);
int pcu_mpi_size(const pcu_mpi_t*);
int pcu_mpi_rank(const pcu_mpi_t*);
void pcu_mpi_send(const pcu_mpi_t*, pcu_message* m, MPI_Comm comm);
bool pcu_mpi_done(const pcu_mpi_t*, pcu_message* m);
bool pcu_mpi_receive(const pcu_mpi_t*, pcu_message* m, MPI_Comm comm);
void pcu_mpi_init(MPI_Comm comm, pcu_mpi_t* mpi);
void pcu_mpi_finalize(pcu_mpi_t* mpi);

Expand Down
18 changes: 9 additions & 9 deletions pcu/pcu_pmpi.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
#include <stdlib.h>
#include <limits.h>

void pcu_pmpi_send2(pcu_mpi_t* self, pcu_message* m, int tag, MPI_Comm comm);
bool pcu_pmpi_receive2(pcu_mpi_t*, pcu_message* m, int tag, MPI_Comm comm);
void pcu_pmpi_send2(const pcu_mpi_t* self, pcu_message* m, int tag, MPI_Comm comm);
bool pcu_pmpi_receive2(const pcu_mpi_t*, pcu_message* m, int tag, MPI_Comm comm);

void pcu_pmpi_init(MPI_Comm comm, pcu_mpi_t* self)
{
Expand All @@ -31,22 +31,22 @@ void pcu_pmpi_finalize(pcu_mpi_t* self)
MPI_Comm_free(&(self->coll_comm));
}

int pcu_pmpi_size(pcu_mpi_t* self)
int pcu_pmpi_size(const pcu_mpi_t* self)
{
return self->size;
}

int pcu_pmpi_rank(pcu_mpi_t* self)
int pcu_pmpi_rank(const pcu_mpi_t* self)
{
return self->rank;
}

void pcu_pmpi_send(pcu_mpi_t* self, pcu_message* m, MPI_Comm comm)
void pcu_pmpi_send(const pcu_mpi_t* self, pcu_message* m, MPI_Comm comm)
{
pcu_pmpi_send2(self, m,0,comm);
}

void pcu_pmpi_send2(pcu_mpi_t* self, pcu_message* m, int tag, MPI_Comm comm)
void pcu_pmpi_send2(const pcu_mpi_t* self, pcu_message* m, int tag, MPI_Comm comm)
{
// silence warning
(void)self;
Expand All @@ -64,7 +64,7 @@ void pcu_pmpi_send2(pcu_mpi_t* self, pcu_message* m, int tag, MPI_Comm comm)
&(m->request));
}

bool pcu_pmpi_done(pcu_mpi_t* self, pcu_message* m)
bool pcu_pmpi_done(const pcu_mpi_t* self, pcu_message* m)
{
// silence warning
(void)self;
Expand All @@ -73,14 +73,14 @@ bool pcu_pmpi_done(pcu_mpi_t* self, pcu_message* m)
return flag;
}

bool pcu_pmpi_receive(pcu_mpi_t* self, pcu_message* m, MPI_Comm comm)
bool pcu_pmpi_receive(const pcu_mpi_t* self, pcu_message* m, MPI_Comm comm)
{
// silence warning
(void)self;
return pcu_pmpi_receive2(self, m,0,comm);
}

bool pcu_pmpi_receive2(pcu_mpi_t* self, pcu_message* m, int tag, MPI_Comm comm)
bool pcu_pmpi_receive2(const pcu_mpi_t* self, pcu_message* m, int tag, MPI_Comm comm)
{
// silence warning
(void)self;
Expand Down
10 changes: 5 additions & 5 deletions pcu/pcu_pmpi.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@

void pcu_pmpi_init(MPI_Comm comm, pcu_mpi_t* mpi);
void pcu_pmpi_finalize(pcu_mpi_t* m);
int pcu_pmpi_size(pcu_mpi_t* self);
int pcu_pmpi_rank(pcu_mpi_t* self);
void pcu_pmpi_send(pcu_mpi_t*, pcu_message* m, MPI_Comm comm);
bool pcu_pmpi_receive(pcu_mpi_t*, pcu_message* m, MPI_Comm comm);
bool pcu_pmpi_done(pcu_mpi_t*, pcu_message* m);
int pcu_pmpi_size(const pcu_mpi_t* self);
int pcu_pmpi_rank(const pcu_mpi_t* self);
void pcu_pmpi_send(const pcu_mpi_t*, pcu_message* m, MPI_Comm comm);
bool pcu_pmpi_receive(const pcu_mpi_t*, pcu_message* m, MPI_Comm comm);
bool pcu_pmpi_done(const pcu_mpi_t*, pcu_message* m);

#endif

0 comments on commit ed28c05

Please sign in to comment.