Skip to content

Improving MPI_ANY_SOURCE algo #34

Description

@upperwal

EntangledMPI/src/mpi/init.c

Lines 1090 to 1097 in 11bf509

if(source == MPI_ANY_SOURCE) {
// Very tricky to set.
// If less and user sends more MPI_Send it will block the program.
// TODO: Find a better solution for MPI_ANY_SOURCE
worker_count = 2;
} else {
worker_count = job_list[source].worker_count;
}

Not a good implementation. Will only support 2 nodes (1 compute and 1 replica). Should be more generic.

One way of making it generic it to do one PMPI_Irecv with MPI_ANY_SOURCE and spawn a new thread to PMPI_Wait for this request to complete. Once its complete this thread can check for number of nodes in this job ("n") using status.MPI_SOURCE and rank2job array and do "n - 1" PMPI_Irecv and exit. Rest will be taken care in MPI_Wait implementation.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    TODOPlan to do in the immediate futureenhancementNew feature or requesthelp wantedExtra attention is needed

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions