Skip to content

MethodError: no method matching QuadraticModels.QPData during JuMP.optimize! #103

Description

@ChetanAnilMore

Hello,

I am encountering a MethodError when calling JuMP.optimize! on a model using MadIPM with the CUDSSSolver. It seems there is a version incompatibility between MadIPM's MOI wrapper and QuadraticModels.

Minimal Reproducible Example

Here is the script that triggers the error:

using ExaModels
using CUDA
using KernelAbstractions
using MadNLP
using MadIPM
using CUDSS
using MadNLPGPU
using JuMP

N = 1000
u = rand(Float64, N) .* 0.0 # simplified for MRE
u_gpu = CuArray(u)

model = Model(MadIPM.Optimizer)
set_optimizer_attribute(model, "array_type", CuVector{Float64})
set_optimizer_attribute(model, "linear_solver", MadNLPGPU.CUDSSSolver)

@variable(model, x[1:N])
set_start_value.(x, fill(0.0, N))

@objective(model, Min, 0.5 * sum((x .- 1.0) .^ 2))

for j in 1:N
    @constraint(model, (u[j] * sum(x) - 500.0) .<= 0.0)
end

JuMP.optimize!(model)

ERROR: LoadError: MethodError: no method matching QuadraticModels.QPData(::Float64, ::Vector{Float64}, ::Vector{Float64}, ::SparseMatricesCOO.SparseMatrixCOO{Float64, Int64}, ::SparseMatricesCOO.SparseMatrixCOO{Float64, Int64})

Closest candidates are:
  QuadraticModels.QPData(::T, ::S, ::S, ::M1, ::M2, ::Bool, ::I, ::T) where {T, S, M1<:Union{AbstractMatrix{T}, LinearOperators.AbstractLinearOperator{T}}, M2<:Union{AbstractMatrix{T}, LinearOperators.AbstractLinearOperator{T}}, I<:(AbstractVector{<:Integer})}
   @ QuadraticModels C:\Users\Chetan\.julia\packages\QuadraticModels\u3FxY\src\qpmodel.jl:10

Version Information: 
[4076af6c] JuMP v1.30.1
[4406d55e] MadIPM v0.2.0
[f468eda6] QuadraticModels v0.9.16

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