Skip to content

MIT-Lu-Lab/PDOT.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PDOT.jl

This repository contains experimental code for solving discrete optimal transport on NVIDIA GPUs. The following paper describes the methods implemented in this repository:

Setup

A one-time step is required to set up the necessary packages on the local machine:

$ julia --project -e 'import Pkg; Pkg.instantiate()'

Running

Instances of optimal transport are wrapped in the following structure:

mutable struct OptimalTransportProblem
    cost_matrix::Matrix{Float64}
    source_distribution::Vector{Float64}
    target_distribution::Vector{Float64}
end

The recommended function to run PDOT is located in scripts/solve.jl:

function solve_instance_and_output(
    output_directory::String,
    instance_name::String,
    instance::PDOT.OptimalTransportProblem;
    tolerance = 1.0e-4
)

Citation

If PDOT is useful or relevant to your research, please kindly recognize our contributions by citing our paper:

@article{lu2024pdot,
  title={PDOT: a Practical Primal-Dual Algorithm and a GPU-Based Solver for Optimal Transport},
  author={Lu, Haihao and Yang, Jinwen},
  journal={arXiv preprint arXiv:2407.19689},
  year={2024}
}

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages