It appears I still have memory leakage (I suspect that the memory allocated by Gurobi internally are leaked). Take a look at my experiment:
usr@usr:~/julia_projects/uc/Uc$ ./j
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.12.6 (2026-04-09)
_/ |\__'_|_|_|\__'_| | Official https://julialang.org release
|__/ |
julia> import Random, Gurobi, JuMP
julia> Random.seed!(hash(1));
julia> const GrbCfg = Dict{String,Any}("OutputFlag"=>0,"Threads"=>1);
julia> const lus = [-Inf, Inf, Inf];
julia> const S = 50 * Threads.nthreads(); # 50 * 96
julia> const Envs = @time let v = Vector{Gurobi.Env}(undef, S)
Threads.@threads for i=eachindex(v) v[i]=Gurobi.Env(GrbCfg) end
v
end;
10.505098 seconds (191.14 k allocations: 8.958 MiB, 132.02% compilation time)
julia> const tks = similar(Envs, Task);
julia> t, T = 1, 23;
julia> ################################################
# if S doesn't need to be modified, reuse Envs
################################################
include("src/Settings.jl");
julia> include("src/Case2383.jl");
julia> include("src/WindGen.jl");
julia> include("src/Static.jl");
julia> include("src/Uvx.jl");
julia> include("src/General.jl");
julia> include("src/TSSP.jl");
julia> Random.seed!(hash(1));
julia> sub = similar(Envs, General.SubType);
julia> mst = TSSP.build_2ssp!(sub, t, T, tks);
[info | PowerModels]: Suppressing information and warning messages for the rest of this session. Use the Memento package for more fine-grained control of logging.
698.640797 seconds (66.51 G allocations: 1.956 TiB, 80.46% gc time, 52.66% compilation time)
julia> @time TSSP.at_root_lp(mst, sub, tks)
pi_warm_up phase...
subMax:8.286930084228516s, mst:0.02107691764831543s, Perfect_Info_LB = 5994.031439946436
pi_bound added: 310.033105 seconds (178.49 k allocations: 1.172 GiB, 1.19% compilation time)
t= 9.4, lb=5.99403e+03, vio=8.75429e+03, msttime= 0.0, rNcut= 0.0, rNnz= 0.0
t= 18.3, lb=5.99403e+03, vio=8.79989e+03, msttime= 0.2, rNcut= 0.0, rNnz= 2.2
t= 25.7, lb=5.99403e+03, vio=3.32518e+02, msttime= 0.1, rNcut= 0.0, rNnz= 4.4
t= 31.2, lb=5.99403e+03, vio=3.28456e+02, msttime= 0.2, rNcut= 0.1, rNnz= 6.9
t= 36.1, lb=5.99403e+03, vio=8.81109e+01, msttime= 0.2, rNcut= 0.1, rNnz= 9.2
t= 41.9, lb=5.99408e+03, vio=1.26662e+02, msttime= 0.2, rNcut= 0.1, rNnz= 11.8
t= 48.5, lb=5.99412e+03, vio=1.04483e+02, msttime= 0.1, rNcut= 0.1, rNnz= 14.3
t= 55.6, lb=5.99424e+03, vio=1.60475e+02, msttime= 0.2, rNcut= 0.1, rNnz= 16.8
t= 61.7, lb=5.99442e+03, vio=1.77944e+02, msttime= 0.2, rNcut= 0.2, rNnz= 19.3
t= 67.7, lb=5.99456e+03, vio=7.78164e+01, msttime= 0.1, rNcut= 0.2, rNnz= 21.8
t= 72.3, lb=5.99469e+03, vio=3.84470e+01, msttime= 0.2, rNcut= 0.2, rNnz= 24.4
t= 79.0, lb=5.99504e+03, vio=2.94714e+01, msttime= 0.2, rNcut= 0.2, rNnz= 27.0
t= 86.5, lb=5.99543e+03, vio=2.38065e+01, msttime= 0.2, rNcut= 0.2, rNnz= 29.5
t= 94.0, lb=5.99584e+03, vio=2.85124e+01, msttime= 0.3, rNcut= 0.3, rNnz= 32.1
t= 100.5, lb=5.99626e+03, vio=2.83942e+01, msttime= 0.3, rNcut= 0.3, rNnz= 34.7
t= 105.5, lb=5.99675e+03, vio=2.93687e+01, msttime= 0.3, rNcut= 0.3, rNnz= 37.3
t= 111.9, lb=5.99703e+03, vio=2.98261e+01, msttime= 0.2, rNcut= 0.3, rNnz= 39.8
t= 116.2, lb=5.99745e+03, vio=3.16581e+01, msttime= 0.3, rNcut= 0.3, rNnz= 42.4
t= 121.6, lb=5.99790e+03, vio=2.78515e+01, msttime= 0.3, rNcut= 0.4, rNnz= 45.0
t= 126.9, lb=5.99839e+03, vio=2.74544e+01, msttime= 0.3, rNcut= 0.4, rNnz= 47.6
t= 132.2, lb=5.99880e+03, vio=2.68167e+01, msttime= 0.3, rNcut= 0.4, rNnz= 50.1
t= 138.7, lb=5.99922e+03, vio=3.24802e+01, msttime= 0.3, rNcut= 0.4, rNnz= 52.7
t= 143.1, lb=5.99966e+03, vio=2.89852e+01, msttime= 0.3, rNcut= 0.4, rNnz= 55.2
t= 150.6, lb=6.00002e+03, vio=3.03893e+01, msttime= 0.2, rNcut= 0.5, rNnz= 57.8
t= 155.5, lb=6.00040e+03, vio=2.94789e+01, msttime= 0.3, rNcut= 0.5, rNnz= 60.4
t= 161.1, lb=6.00081e+03, vio=2.61429e+01, msttime= 0.2, rNcut= 0.5, rNnz= 63.0
t= 167.1, lb=6.00118e+03, vio=2.44467e+01, msttime= 0.3, rNcut= 0.5, rNnz= 65.5
t= 175.7, lb=6.00156e+03, vio=2.34019e+01, msttime= 0.3, rNcut= 0.5, rNnz= 68.1
t= 182.4, lb=6.00192e+03, vio=2.53204e+01, msttime= 0.2, rNcut= 0.6, rNnz= 70.7
t= 190.5, lb=6.00228e+03, vio=2.96276e+01, msttime= 0.2, rNcut= 0.6, rNnz= 73.3
t= 196.7, lb=6.00267e+03, vio=2.53413e+01, msttime= 0.3, rNcut= 0.6, rNnz= 75.9
t= 202.5, lb=6.00308e+03, vio=2.75397e+01, msttime= 0.3, rNcut= 0.6, rNnz= 78.5
t= 206.5, lb=6.00351e+03, vio=2.76331e+01, msttime= 0.4, rNcut= 0.6, rNnz= 81.1
t= 213.7, lb=6.00390e+03, vio=3.08805e+01, msttime= 0.2, rNcut= 0.7, rNnz= 83.7
t= 218.8, lb=6.00431e+03, vio=2.29920e+01, msttime= 0.4, rNcut= 0.7, rNnz= 86.2
t= 229.1, lb=6.00467e+03, vio=3.02792e+01, msttime= 0.3, rNcut= 0.7, rNnz= 88.8
t= 235.2, lb=6.00512e+03, vio=2.22339e+01, msttime= 0.4, rNcut= 0.7, rNnz= 91.4
t= 242.0, lb=6.00538e+03, vio=2.62785e+01, msttime= 0.4, rNcut= 0.7, rNnz= 94.0
t= 251.0, lb=6.00584e+03, vio=2.95090e+01, msttime= 0.4, rNcut= 0.8, rNnz= 96.6
t= 256.8, lb=6.00632e+03, vio=2.64078e+01, msttime= 0.4, rNcut= 0.8, rNnz= 99.2
t= 262.7, lb=6.00674e+03, vio=2.65341e+01, msttime= 0.3, rNcut= 0.8, rNnz= 101.8
t= 271.6, lb=6.00718e+03, vio=2.52047e+01, msttime= 0.4, rNcut= 0.8, rNnz= 104.4
t= 278.0, lb=6.00760e+03, vio=2.53038e+01, msttime= 0.3, rNcut= 0.8, rNnz= 107.0
t= 283.5, lb=6.00798e+03, vio=2.57696e+01, msttime= 0.2, rNcut= 0.9, rNnz= 109.6
t= 288.6, lb=6.00833e+03, vio=3.04862e+01, msttime= 0.4, rNcut= 0.9, rNnz= 112.2
t= 294.3, lb=6.00881e+03, vio=3.24027e+01, msttime= 0.3, rNcut= 0.9, rNnz= 114.8
t= 305.3, lb=6.00928e+03, vio=2.63615e+01, msttime= 0.4, rNcut= 0.9, rNnz= 117.3
t= 309.4, lb=6.00971e+03, vio=2.42648e+01, msttime= 0.4, rNcut= 0.9, rNnz= 119.9
t= 319.5, lb=6.01005e+03, vio=2.91102e+01, msttime= 0.4, rNcut= 1.0, rNnz= 122.5
t= 325.4, lb=6.01049e+03, vio=2.99882e+01, msttime= 0.5, rNcut= 1.0, rNnz= 125.1
t= 332.0, lb=6.01083e+03, vio=2.35310e+01, msttime= 0.3, rNcut= 1.0, rNnz= 127.7
t= 339.7, lb=6.01115e+03, vio=2.49091e+01, msttime= 0.3, rNcut= 1.0, rNnz= 130.8
t= 342.3, lb=6.01157e+03, vio=2.26405e+01, msttime= 0.5, rNcut= 1.0, rNnz= 133.9
t= 344.1, lb=6.01199e+03, vio=2.72346e+01, msttime= 0.3, rNcut= 1.1, rNnz= 136.6
t= 345.2, lb=6.01241e+03, vio=1.59719e+01, msttime= 0.3, rNcut= 1.1, rNnz= 139.2
t= 346.2, lb=6.01268e+03, vio=1.90922e+01, msttime= 0.3, rNcut= 1.1, rNnz= 141.8
t= 347.3, lb=6.01296e+03, vio=1.80952e+01, msttime= 0.4, rNcut= 1.1, rNnz= 144.5
t= 348.7, lb=6.01325e+03, vio=1.80269e+01, msttime= 0.4, rNcut= 1.1, rNnz= 147.1
t= 350.2, lb=6.01353e+03, vio=2.02718e+01, msttime= 0.2, rNcut= 1.2, rNnz= 149.7
t= 351.2, lb=6.01383e+03, vio=1.86288e+01, msttime= 0.3, rNcut= 1.2, rNnz= 152.3
t= 351.8, lb=6.01402e+03, vio=1.39610e+01, msttime= 0.3, rNcut= 1.2, rNnz= 154.9
t= 352.2, lb=6.01423e+03, vio=1.45608e+01, msttime= 0.3, rNcut= 1.2, rNnz= 157.5
t= 352.6, lb=6.01425e+03, vio=6.49860e+00, msttime= 0.1, rNcut= 1.2, rNnz= 160.1
t= 353.0, lb=6.01430e+03, vio=5.51643e+00, msttime= 0.2, rNcut= 1.3, rNnz= 162.8
t= 353.3, lb=6.01435e+03, vio=3.64135e+00, msttime= 0.2, rNcut= 1.3, rNnz= 165.3
t= 353.8, lb=6.01436e+03, vio=5.94809e+00, msttime= 0.2, rNcut= 1.3, rNnz= 168.0
t= 354.2, lb=6.01444e+03, vio=5.67637e+00, msttime= 0.2, rNcut= 1.3, rNnz= 170.5
t= 354.6, lb=6.01446e+03, vio=9.08315e+00, msttime= 0.2, rNcut= 1.3, rNnz= 173.1
t= 355.0, lb=6.01457e+03, vio=4.84261e+00, msttime= 0.3, rNcut= 1.4, rNnz= 175.7
t= 355.3, lb=6.01459e+03, vio=5.65252e+00, msttime= 0.2, rNcut= 1.4, rNnz= 178.3
t= 355.6, lb=6.01465e+03, vio=3.81513e+00, msttime= 0.3, rNcut= 1.4, rNnz= 180.9
t= 356.1, lb=6.01467e+03, vio=4.27588e+00, msttime= 0.2, rNcut= 1.4, rNnz= 183.5
t= 356.4, lb=6.01472e+03, vio=5.98535e+00, msttime= 0.3, rNcut= 1.4, rNnz= 186.1
t= 356.9, lb=6.01478e+03, vio=4.94240e+00, msttime= 0.3, rNcut= 1.5, rNnz= 188.6
t= 357.4, lb=6.01481e+03, vio=4.35937e+00, msttime= 0.2, rNcut= 1.5, rNnz= 191.2
t= 357.8, lb=6.01487e+03, vio=5.50191e+00, msttime= 0.2, rNcut= 1.5, rNnz= 193.8
t= 358.2, lb=6.01496e+03, vio=4.55966e+00, msttime= 0.2, rNcut= 1.5, rNnz= 196.4
t= 358.8, lb=6.01502e+03, vio=4.00122e+00, msttime= 0.3, rNcut= 1.5, rNnz= 199.0
t= 359.3, lb=6.01510e+03, vio=5.00506e+00, msttime= 0.4, rNcut= 1.6, rNnz= 204.2
t= 359.7, lb=6.01514e+03, vio=2.25313e+00, msttime= 0.3, rNcut= 1.6, rNnz= 206.8
t= 360.1, lb=6.01516e+03, vio=6.36750e+00, msttime= 0.2, rNcut= 1.6, rNnz= 209.4
t= 360.7, lb=6.01526e+03, vio=3.79182e+00, msttime= 0.3, rNcut= 1.6, rNnz= 212.0
t= 361.1, lb=6.01532e+03, vio=3.75685e+00, msttime= 0.3, rNcut= 1.7, rNnz= 217.2
t= 361.4, lb=6.01535e+03, vio=2.78585e+00, msttime= 0.3, rNcut= 1.7, rNnz= 219.9
t= 361.8, lb=6.01538e+03, vio=3.78959e+00, msttime= 0.3, rNcut= 1.7, rNnz= 222.5
t= 362.2, lb=6.01544e+03, vio=2.91214e+00, msttime= 0.3, rNcut= 1.7, rNnz= 225.1
t= 362.9, lb=6.01547e+03, vio=1.91660e+00, msttime= 0.3, rNcut= 1.8, rNnz= 227.6
t= 363.7, lb=6.01551e+03, vio=2.26731e+00, msttime= 0.3, rNcut= 1.8, rNnz= 230.2
t= 364.3, lb=6.01557e+03, vio=1.70657e+00, msttime= 0.4, rNcut= 1.8, rNnz= 235.3
t= 364.9, lb=6.01561e+03, vio=3.11427e+00, msttime= 0.4, rNcut= 1.9, rNnz= 240.6
t= 365.5, lb=6.01569e+03, vio=3.02228e+00, msttime= 0.4, rNcut= 1.9, rNnz= 245.8
t= 366.3, lb=6.01577e+03, vio=2.36111e+00, msttime= 0.5, rNcut= 1.9, rNnz= 251.0
t= 367.0, lb=6.01585e+03, vio=2.73340e+00, msttime= 0.5, rNcut= 2.0, rNnz= 256.2
t= 367.6, lb=6.01594e+03, vio=1.77754e+00, msttime= 0.5, rNcut= 2.0, rNnz= 261.9
t= 368.3, lb=6.01598e+03, vio=3.12344e+00, msttime= 0.4, rNcut= 2.1, rNnz= 267.8
t= 369.1, lb=6.01607e+03, vio=1.12732e+00, msttime= 0.6, rNcut= 2.1, rNnz= 273.0
t= 370.0, lb=6.01613e+03, vio=2.79583e+00, msttime= 0.7, rNcut= 2.2, rNnz= 280.7
t= 370.8, lb=6.01621e+03, vio=2.10980e+00, msttime= 0.6, rNcut= 2.2, rNnz= 288.7
t= 371.5, lb=6.01629e+03, vio=8.79393e-01, msttime= 0.6, rNcut= 2.3, rNnz= 293.9
t= 372.0, lb=6.01631e+03, vio=7.23270e-01, msttime= 0.4, rNcut= 2.3, rNnz= 299.1
t= 372.5, lb=6.01632e+03, vio=8.56182e-01, msttime= 0.4, rNcut= 2.3, rNnz= 304.3
t= 373.0, lb=6.01634e+03, vio=7.64846e-01, msttime= 0.4, rNcut= 2.4, rNnz= 309.5
t= 373.6, lb=6.01635e+03, vio=5.33925e-01, msttime= 0.6, rNcut= 2.4, rNnz= 314.6
t= 374.1, lb=6.01637e+03, vio=7.81306e-01, msttime= 0.5, rNcut= 2.5, rNnz= 319.8
t= 375.0, lb=6.01638e+03, vio=5.41335e-01, msttime= 0.6, rNcut= 2.5, rNnz= 324.9
t= 375.6, lb=6.01640e+03, vio=3.69068e-01, msttime= 0.6, rNcut= 2.6, rNnz= 335.2
t= 376.3, lb=6.01641e+03, vio=4.04529e-01, msttime= 0.5, rNcut= 2.6, rNnz= 340.5
t= 376.9, lb=6.01642e+03, vio=1.95611e-01, msttime= 0.6, rNcut= 2.7, rNnz= 348.2
t= 377.9, lb=6.01643e+03, vio=2.54017e-01, msttime= 0.8, rNcut= 2.8, rNnz= 358.3
t= 378.9, lb=6.01645e+03, vio=8.80731e-02, msttime= 0.9, rNcut= 2.9, rNnz= 371.0
t= 379.9, lb=6.01646e+03, vio=2.63737e-01, msttime= 0.9, rNcut= 3.0, rNnz= 386.5
t= 381.1, lb=6.01648e+03, vio=1.00299e-01, msttime= 1.2, rNcut= 3.1, rNnz= 400.5
t= 382.3, lb=6.01649e+03, vio=9.33022e-02, msttime= 1.0, rNcut= 3.2, rNnz= 418.2
t= 383.7, lb=6.01649e+03, vio=1.43391e-01, msttime= 1.4, rNcut= 3.3, rNnz= 435.7
t= 385.4, lb=6.01650e+03, vio=3.97028e-02, msttime= 1.6, rNcut= 3.5, rNnz= 458.2
t= 386.9, lb=6.01650e+03, vio=3.08636e-02, msttime= 1.4, rNcut= 3.7, rNnz= 481.6
t= 388.6, lb=6.01650e+03, vio=8.14669e-02, msttime= 1.5, rNcut= 3.9, rNnz= 504.1
t= 390.6, lb=6.01651e+03, vio=1.11804e-02, msttime= 1.9, rNcut= 4.1, rNnz= 531.4
t= 393.1, lb=6.01651e+03, vio=6.27422e-03, msttime= 2.3, rNcut= 4.3, rNnz= 559.4
t= 395.4, lb=6.01651e+03, vio=1.89892e-03, msttime= 2.3, rNcut= 4.5, rNnz= 592.9
t= 397.3, lb=6.01651e+03, vio=1.26346e-03, msttime= 1.8, rNcut= 4.6, rNnz= 605.1
t= 398.5, lb=6.01651e+03, vio=2.68449e-04, msttime= 1.0, rNcut= 4.7, rNnz= 613.4
t= 399.0, lb=6.01651e+03, vio=3.20652e-04, msttime= 0.5, rNcut= 4.7, rNnz= 613.6
t= 399.7, lb=6.01651e+03, vio=2.99980e-04, msttime= 0.6, rNcut= 4.7, rNnz= 613.9
t= 400.4, lb=6.01651e+03, vio=3.89617e-04, msttime= 0.6, rNcut= 4.7, rNnz= 614.2
t= 401.1, lb=6.01651e+03, vio=3.74930e-04, msttime= 0.6, rNcut= 4.7, rNnz= 614.5
t= 401.8, lb=6.01651e+03, vio=2.36957e-04, msttime= 0.7, rNcut= 4.7, rNnz= 614.9
t= 402.5, lb=6.01651e+03, vio=1.73493e-04, msttime= 0.6, rNcut= 4.7, rNnz= 615.1
t= 403.0, lb=6.01651e+03, vio=1.73786e-04, msttime= 0.5, rNcut= 4.7, rNnz= 615.1
t= 403.5, lb=6.01651e+03, vio=1.43508e-04, msttime= 0.5, rNcut= 4.7, rNnz= 615.2
t= 404.1, lb=6.01651e+03, vio=1.46482e-04, msttime= 0.5, rNcut= 4.7, rNnz= 615.2
t= 405.0, lb=6.01651e+03, vio=2.04806e-04, msttime= 0.5, rNcut= 4.7, rNnz= 615.3
t= 406.6, lb=6.01651e+03, vio=1.87169e-04, msttime= 0.5, rNcut= 4.7, rNnz= 615.3
t= 408.9, lb=6.01651e+03, vio=1.57621e-04, msttime= 0.5, rNcut= 4.7, rNnz= 615.3
722.679933 seconds (1.64 M allocations: 1.253 GiB, 1.74% compilation time)
julia> Sys.free_memory() / 1024^3
78.28041076660156
julia> sub = mst = nothing;
julia> GC.gc()
julia> Sys.free_memory() / 1024^3
120.69858932495117
julia> GC.gc()
julia> Sys.free_memory() / 1024^3
120.73344421386719
julia> const tks = nothing; GC.gc(); Sys.free_memory() / 1024^3
120.75796127319336
julia> const tks = similar(Envs, Task); # Notice here I start the 2nd run, in an identical style
julia> t, T = 1, 23;
julia> ################################################
# if S doesn't need to be modified, reuse Envs
################################################
Random.seed!(hash(1));
julia> include("src/Settings.jl");
julia> include("src/Case2383.jl");
julia> include("src/WindGen.jl");
julia> include("src/Static.jl");
julia> include("src/Uvx.jl");
julia> include("src/General.jl");
julia> include("src/TSSP.jl");
julia> sub = similar(Envs, General.SubType);
julia> mst = TSSP.build_2ssp!(sub, t, T, tks);
495.025740 seconds (66.51 G allocations: 1.956 TiB, 79.17% gc time, 56.34% compilation time)
julia> @time TSSP.at_root_lp(mst, sub, tks)
pi_warm_up phase...
./j: line 1: 3559004 Killed julia --project=. --threads=96,1
usr@usr:~/julia_projects/uc/Uc$ ./j
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.12.6 (2026-04-09)
_/ |\__'_|_|_|\__'_| | Official https://julialang.org release
|__/ |
julia> Sys.free_memory() / 1024^3
496.64697265625
Notice that Out-of-Memory kill just above the second Julia Caption.
Note that by GC.gc() I can at most retrieve 42.42GiB memory, which is a small portion of the memory I had used. (My total free memory is like that shown at the end.)
I sent you the src code via a e-mail. Just by configure
const S = 50 * Threads.nthreads()
properly according to hardware then it can be run.