Skip to content

Make Diver operate in queue mode #3

@patscott

Description

@patscott

Parallellisation in Diver is very simple (which is why it is generally very fast -- it has very little MPI overhead). The current strategy is simply to make NP an even multiple of the number of MPI processes, and give every MPI process NP/nprocs individuals to evolve every generation.

However, for target functions with highly variable evaluation times, this can be very inefficient: if one process gets a couple of particularly slow individuals, it holds up the entire generation. It may be more efficient in such cases to use a queuing strategy, where each MPI process takes one or more individuals to evolve from the head of a queue, and returns to the queue to take more if and when it is finished with its current individuals.

Diver therefore needs an option to operate in queue mode, and to allow the number of individuals taken from the head of the queue in each 'bite' to also be set as an option.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions