Skip to content

Improving MPI_ANY_SOURCE algo #34

@upperwal

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.

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