Skip to content

Parallelizing step3 #17

@matbesancon

Description

@matbesancon

We're using Hungarian.jl in the https://github.com/ZIB-IOL/FrankWolfe.jl package to solve LPs over the Birkhoff polytope.

It scales well in terms of memory footprint but badly in terms of time, mostly because of step3!, where most of the time seems to be spent in this block:

    @inbounds for j in colUncoveredIdx, i in rowUncoveredIdx
        cost = costMat[i, j] + Δcol[j] + Δrow[i]
        if cost <= h
            if cost != h
                h = cost
                empty!(minLocations)
            end
            push!(minLocations, (i, j))
        end
    end

this would be non-trivial to parallelize because of the shared bound h and array minLocations but could be worth it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions