kibaekkim / DSPopt.jl

Julia modeling interface to parallel decomposition solver DSP
MIT License
12 stars 2 forks source link

Segmentation fault #29

Open enri07 opened 3 years ago

enri07 commented 3 years ago

Hi,

I'm sorry for opening another issue, but I'm not able to understand why there is a segmentation fault when launching some examples. I tried to ran different examples always obtaining the following message (in this particular case I am running this example https://github.com/kibaekkim/DSPopt.jl/blob/0812121ea8031c3f67a8cf93a8f59ecdfe0ba897/examples/farmer_mpi_stoc.jl):

Segfault Segfault1

Am I doing something wrong?

Thank you for your help

kibaekkim commented 3 years ago

I will run the example on a linux machine. Did you run the example with mpiexec?

enri07 commented 3 years ago

Thank you.

Yes I'm just running the example with julia (version 1.5.4) where I included the package MPI (version 0.16.1) but I don't think the problem is the package MPI because I also tried examples without this package and I obtained the same error.

I don't know if this can be helpful but here's what I recive when I try to run the example written on the README file (without the use of MPI and without considering the quadratic costraints) with julia:

Segfault Segfault1

Again, thank you very much for your help, I'm really sorry for bothering you.

enri07 commented 3 years ago

By making more analysis I was able to find that the problem is given by the line

using DSPopt

I don't know why, but if I use only StructJuMP and I try to build a model, all seems to work. If I simply add using DSPopt (without changing anything in the program, thus without making any optimization) appears the above message from the line

signal (11): ...

I have tried to remove and reinstall the packages but nothing changed.

kibaekkim commented 3 years ago

I was not able to reproduce the segfault. Can you please provide more information in order to reproduce the error?

FYI, this is my testing environment.

▶ module list

Currently Loaded Modules:
  1) cmake/3.20.5-yjp2hz6   2) mpich/3.3.2-gnu   3) gcc/10.2.0-a7r2xur

(DSPopt) pkg> st
     Project DSPopt v0.2.1
      Status `~/REPOS/DSPopt.jl/Project.toml`
  [4076af6c] JuMP v0.21.8
  [da04e1cc] MPI v0.17.2
  [b8f27783] MathOptInterface v0.9.22
  [34f15cae] StructJuMP v0.2.0
  [8f399da3] Libdl
  [44cfe95a] Pkg
  [2f01184e] SparseArrays

I am adding the screen output from my run:

▶ mpiexec -np 3 julia --project=.. farmer_mpi_stoc.jl
Unable to open parameter file <examples/params.txt>.
Unable to open parameter file <examples/params.txt>.
Unable to open parameter file <examples/params.txt>.

=================================================================================
  DSP: Parallel decomposition methods for structured programming
  - Version 2.0.0
  - See https://github.com/Argonne-National-Laboratory/DSP

  Under the terms of Contract No. DE-AC02-06CH11357 with UChicago Argonne, LLC,
  the U.S. Government retains certain rights in this software.
=================================================================================
==  Welcome to the Abstract Library for Parallel Search (ALPS)
==  Copyright 2000-2017 Lehigh University and others
==  All Rights Reserved.
==  Distributed under the Eclipse Public License 1.0
==  Version: Trunk (unstable)
==  Build Date: Jul 10 2021
Alps0250I Starting search ...
Generated 3 initial columns. Initial dual bound -1.154000000000e+05
Iteration   0: DW Bound +1.797693e+308, Best Dual -1.154000e+05 (gap Large %), nrows 6, ncols 12, timing (total 0.00, master 0.00, gencols 0.00), statue 3000
Iteration   1: DW Bound +1.797693e+308, Best Dual -1.154000e+05 (gap Large %), nrows 10, ncols 12, timing (total 0.05, master 0.03, gencols 0.01), statue 3000
Iteration   2: DW Bound -1.070178e+05, Best Dual -1.154000e+05 (gap 7.26 %), nrows 15, ncols 12, timing (total 0.07, master 0.05, gencols 0.01), statue 3000
Iteration   3: DW Bound -1.083900e+05, Best Dual -1.110772e+05 (gap 2.42 %), nrows 19, ncols 12, timing (total 0.12, master 0.09, gencols 0.01), statue 3000
Iteration   4: DW Bound -1.083900e+05, Best Dual -1.083900e+05 (gap 0.00 %), nrows 21, ncols 12, timing (total 0.13, master 0.11, gencols 0.01), statue 3000
Found new primal solution: -1.072400e+05
Infeasibility (Integer): +0.000000e+00
[0.132617] curLb -1.08390000e+05, bestUb -1.07240000e+05, bestLb -1.08390000e+05
Alps0240I Proc: 1, Part: 0, Cand: 0, Best N: 1e+75, Best S: -108390

Alps0208I Search completed.
Alps0260I Best solution found had quality -108390
Alps0264I Number of nodes processed:                1
Alps0267I Number of nodes branched:                 0
Alps0268I Number of nodes pruned before processing: 0
Alps0270I Number of nodes left:                     0
Alps0272I Tree depth: 0
Alps0274I Search CPU time: 0.09 seconds
Alps0278I Search wall-clock time: 0.13 seconds
Time spent in heuristics: 0.00 seconds
objective_value(m) = -108390.00000000001
dual_objective_value(m) = -108390.00000000001
value.(x) = 1-dimensional DenseAxisArray{Float64,1,...} with index sets:
    Dimension 1, 1:3
And data, a 3-element Vector{Float64}:
 170.0
  80.0
 250.0
dual() = Float64[]
enri07 commented 3 years ago

This thing is really strange. I'm not able to understand where it comes from.

If I try to run the program in the same way you did, the following message appears:


> mpiexec -np 3 julia --project= farmer_test.jl

=================================================================================
  DSP: Parallel decomposition methods for structured programming
  - Version 2.0.0
  - See https://github.com/Argonne-National-Laboratory/DSP

  Under the terms of Contract No. DE-AC02-06CH11357 with UChicago Argonne, LLC,
  the U.S. Government retains certain rights in this software.
=================================================================================

=================================================================================
  DSP: Parallel decomposition methods for structured programming
  - Version 2.0.0
  - See https://github.com/Argonne-National-Laboratory/DSP

  Under the terms of Contract No. DE-AC02-06CH11357 with UChicago Argonne, LLC,
  the U.S. Government retains certain rights in this software.
=================================================================================

=================================================================================
  DSP: Parallel decomposition methods for structured programming
  - Version 2.0.0
  - See https://github.com/Argonne-National-Laboratory/DSP

  Under the terms of Contract No. DE-AC02-06CH11357 with UChicago Argonne, LLC,
  the U.S. Government retains certain rights in this software.
=================================================================================
objective_value(m) = -108390.00000000003
dual_objective_value(m) = -108390.00000000003
objective_value(m) = -108390.00000000003
dual_objective_value(m) = -108390.00000000003
value.(x) = 2-dimensional DenseAxisArray{Float64,2,...} with index sets:
    Dimension 1, 1:3
    Dimension 2, Base.OneTo(3)
And data, a 3×3 Array{Float64,2}:
 170.0  170.0  170.0
  80.0   80.0   80.0
 250.0  250.0  250.0
dual() = Float64[]

signal (11): Errore di segmentazione
in expression starting at none:0
freeEnv at /home/enrico/Scrivania/DSP/build/src/libDsp.so (unknown line)
freeEnv at /home/enrico/.julia/packages/DSPopt/93Tme/src/DSPCInterface.jl:80
unknown function (ip: 0x7f6194f47eaf)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2231 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2398
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1691 [inlined]
run_finalizer at /buildworker/worker/package_linux64/build/src/gc.c:279
jl_gc_run_finalizers_in_list at /buildworker/worker/package_linux64/build/src/gc.c:365
run_finalizers at /buildworker/worker/package_linux64/build/src/gc.c:394 [inlined]
jl_gc_run_all_finalizers at /buildworker/worker/package_linux64/build/src/gc.c:480
jl_atexit_hook at /buildworker/worker/package_linux64/build/src/init.c:245
unknown function (ip: 0x40153c)
__libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
unknown function (ip: 0x4015d4)
Allocations: 45037116 (Pool: 45020986; Big: 16130); GC: 44
value.(x) = 2-dimensional DenseAxisArray{Float64,2,...} with index sets:
    Dimension 1, 1:3
    Dimension 2, Base.OneTo(3)
And data, a 3×3 Array{Float64,2}:
 170.0  170.0  170.0
  80.0   80.0   80.0
 250.0  250.0  250.0
objective_value(m) = -108390.00000000003
dual_objective_value(m) = -108390.00000000003
dual() = Float64[]

signal (11): Errore di segmentazione
in expression starting at none:0
freeEnv at /home/enrico/Scrivania/DSP/build/src/libDsp.so (unknown line)
freeEnv at /home/enrico/.julia/packages/DSPopt/93Tme/src/DSPCInterface.jl:80
unknown function (ip: 0x7f6be108aebf)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2231 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2398
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1691 [inlined]
run_finalizer at /buildworker/worker/package_linux64/build/src/gc.c:279
jl_gc_run_finalizers_in_list at /buildworker/worker/package_linux64/build/src/gc.c:365
run_finalizers at /buildworker/worker/package_linux64/build/src/gc.c:394 [inlined]
jl_gc_run_all_finalizers at /buildworker/worker/package_linux64/build/src/gc.c:480
jl_atexit_hook at /buildworker/worker/package_linux64/build/src/init.c:245
unknown function (ip: 0x40153c)
__libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
unknown function (ip: 0x4015d4)
Allocations: 45037116 (Pool: 45020986; Big: 16130); GC: 44
value.(x) = 2-dimensional DenseAxisArray{Float64,2,...} with index sets:
    Dimension 1, 1:3
    Dimension 2, Base.OneTo(3)
And data, a 3×3 Array{Float64,2}:
 170.0  170.0  170.0
  80.0   80.0   80.0
 250.0  250.0  250.0
dual() = Float64[]

signal (11): Errore di segmentazione
in expression starting at none:0
freeEnv at /home/enrico/Scrivania/DSP/build/src/libDsp.so (unknown line)
freeEnv at /home/enrico/.julia/packages/DSPopt/93Tme/src/DSPCInterface.jl:80
unknown function (ip: 0x7fbd20f8ce9f)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2231 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2398
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1691 [inlined]
run_finalizer at /buildworker/worker/package_linux64/build/src/gc.c:279
jl_gc_run_finalizers_in_list at /buildworker/worker/package_linux64/build/src/gc.c:365
run_finalizers at /buildworker/worker/package_linux64/build/src/gc.c:394 [inlined]
jl_gc_run_all_finalizers at /buildworker/worker/package_linux64/build/src/gc.c:480
jl_atexit_hook at /buildworker/worker/package_linux64/build/src/init.c:245
unknown function (ip: 0x40153c)
__libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
unknown function (ip: 0x4015d4)
Allocations: 45037115 (Pool: 45020986; Big: 16129); GC: 42

===================================================================================
=   BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
=   PID 5919 RUNNING AT enrico-laptop
=   EXIT CODE: 139
=   CLEANING UP REMAINING PROCESSES
=   YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
===================================================================================
YOUR APPLICATION TERMINATED WITH THE EXIT STRING: Segmentation fault (signal 11)
This typically refers to a problem with your application.
Please see the FAQ page for debugging suggestions

It seems like I'm able to run the optimization but it ends in a wrong way.

As regard the environment, I'm using:

MPICH version 3.3.2

gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0

cmake version 3.16.3

Moreover, I tried to run test DSPopt in julia obtaing the following output:

(@v1.5) pkg> test DSPopt
    Testing DSPopt
Status `/tmp/jl_1Xs1uN/Project.toml`
  [cdb1efd8] DSPopt v0.2.1
  [4076af6c] JuMP v0.21.8
  [da04e1cc] MPI v0.16.1
  [b8f27783] MathOptInterface v0.9.22
  [34f15cae] StructJuMP v0.2.0
  [8f399da3] Libdl
  [44cfe95a] Pkg
  [9a3f8284] Random
  [2f01184e] SparseArrays
  [8dfed614] Test
Status `/tmp/jl_1Xs1uN/Manifest.toml`
  [56f22d72] Artifacts v1.3.0
  [6e4b80f9] BenchmarkTools v1.1.0
  [6e34b625] Bzip2_jll v1.0.6+5
  [49dc2e85] Calculus v0.5.1
  [d360d2e6] ChainRulesCore v0.10.11
  [523fee87] CodecBzip2 v0.7.2
  [944b1d66] CodecZlib v0.7.0
  [bbf7d656] CommonSubexpressions v0.3.0
  [34da2185] Compat v3.31.0
  [e66e0078] CompilerSupportLibraries_jll v0.3.4+0
  [cdb1efd8] DSPopt v0.2.1
  [864edb3b] DataStructures v0.18.9
  [163ba53b] DiffResults v1.0.3
  [b552c78f] DiffRules v1.0.2
  [ffbed154] DocStringExtensions v0.8.5
  [f6369f11] ForwardDiff v0.10.18
  [cd3eb016] HTTP v0.9.12
  [83e8ac13] IniFile v0.5.0
  [692b3bcd] JLLWrappers v1.3.0
  [682c06a0] JSON v0.21.1
  [7d188eb4] JSONSchema v0.3.3
  [4076af6c] JuMP v0.21.8
  [2ab3a3ac] LogExpFunctions v0.2.5
  [da04e1cc] MPI v0.16.1
  [7cb0a576] MPICH_jll v3.3.2+10
  [1914dd2f] MacroTools v0.5.6
  [b8f27783] MathOptInterface v0.9.22
  [739be429] MbedTLS v1.0.3
  [c8ffd9c3] MbedTLS_jll v2.16.8+1
  [9237b28f] MicrosoftMPI_jll v10.1.3+0
  [d8a4904e] MutableArithmetics v0.2.20
  [77ba4419] NaNMath v0.3.5
  [ca575930] NetworkOptions v1.2.0
  [fe0851c0] OpenMPI_jll v4.0.2+2
  [efe28fd5] OpenSpecFun_jll v0.5.3+4
  [bac558e1] OrderedCollections v1.4.1
  [774612a8] ParameterJuMP v0.2.1
  [69de0a69] Parsers v1.1.0
  [21216c6a] Preferences v1.2.2
  [ae029012] Requires v1.1.3
  [276daf66] SpecialFunctions v1.5.1
  [90137ffa] StaticArrays v1.2.6
  [34f15cae] StructJuMP v0.2.0
  [fa267f1f] TOML v1.0.3
  [3bb67fe8] TranscodingStreams v0.9.5
  [5c2747f8] URIs v1.3.0
  [a5390f91] ZipFile v0.9.3
  [83775a58] Zlib_jll v1.2.11+18
  [2a0f44e3] Base64
  [ade2ca70] Dates
  [8bb1440f] DelimitedFiles
  [8ba89e20] Distributed
  [b77e0a4c] InteractiveUtils
  [76f85450] LibGit2
  [8f399da3] Libdl
  [37e2e46d] LinearAlgebra
  [56ddb016] Logging
  [d6f4376e] Markdown
  [a63ad114] Mmap
  [44cfe95a] Pkg
  [de0858da] Printf
  [3fa0cd96] REPL
  [9a3f8284] Random
  [ea8e919c] SHA
  [9e88b42a] Serialization
  [1a1011a3] SharedArrays
  [6462fe0b] Sockets
  [2f01184e] SparseArrays
  [10745b16] Statistics
  [8dfed614] Test
  [cf7118a7] UUIDs
  [4ec0a83e] Unicode
Test Summary:       | Pass  Total
Initializing DSPopt |   14     14
Test Summary:      | Pass  Total
Check DSP versions |    2      2
Test Summary:   | Pass  Total
Setting options |    6      6

=================================================================================
  DSP: Parallel decomposition methods for structured programming
  - Version 2.0.0
  - See https://github.com/Argonne-National-Laboratory/DSP

  Under the terms of Contract No. DE-AC02-06CH11357 with UChicago Argonne, LLC,
  the U.S. Government retains certain rights in this software.
=================================================================================
Benders decomposition has been disabled because SCIP was not available.
Error: Null solver pointer.
Error: Null solver pointer.
Error: Null solver pointer.
Error: Null solver pointer.
Error: Null solver pointer.
optimize!: Benders: Test Failed at /home/enrico/.julia/packages/DSPopt/93Tme/test/farmer_stoc.jl:46
  Expression: DSPopt.termination_status(m) == MOI.OPTIMAL
   Evaluated: MathOptInterface.OTHER_ERROR == MathOptInterface.OPTIMAL
Stacktrace:
 [1] macro expansion at /home/enrico/.julia/packages/DSPopt/93Tme/test/farmer_stoc.jl:46 [inlined]
 [2] top-level scope at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/Test/src/Test.jl:1194
 [3] include(::String) at ./client.jl:457
 [4] top-level scope at /home/enrico/.julia/packages/DSPopt/93Tme/test/runtests.jl:57
 [5] top-level scope at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/Test/src/Test.jl:1119
 [6] top-level scope at /home/enrico/.julia/packages/DSPopt/93Tme/test/runtests.jl:57
optimize!: Benders: Test Failed at /home/enrico/.julia/packages/DSPopt/93Tme/test/farmer_stoc.jl:52
  Expression: isapprox(dual_objective_value(m), -108390.0, atol = 0.1)
   Evaluated: isapprox(0.0, -108390.0; atol = 0.1)
Stacktrace:
 [1] macro expansion at /home/enrico/.julia/packages/DSPopt/93Tme/test/farmer_stoc.jl:52 [inlined]
 [2] top-level scope at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/Test/src/Test.jl:1194
 [3] include(::String) at ./client.jl:457
 [4] top-level scope at /home/enrico/.julia/packages/DSPopt/93Tme/test/runtests.jl:57
 [5] top-level scope at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/Test/src/Test.jl:1119
 [6] top-level scope at /home/enrico/.julia/packages/DSPopt/93Tme/test/runtests.jl:57
optimize!: Benders: Test Failed at /home/enrico/.julia/packages/DSPopt/93Tme/test/farmer_stoc.jl:63
  Expression: isapprox(primsol[0], [170.0, 80.0, 250.0])
   Evaluated: isapprox([0.0, 0.0, 0.0], [170.0, 80.0, 250.0])
Stacktrace:
 [1] macro expansion at /home/enrico/.julia/packages/DSPopt/93Tme/test/farmer_stoc.jl:63 [inlined]
 [2] top-level scope at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/Test/src/Test.jl:1194
 [3] include(::String) at ./client.jl:457
 [4] top-level scope at /home/enrico/.julia/packages/DSPopt/93Tme/test/runtests.jl:57
 [5] top-level scope at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/Test/src/Test.jl:1119
 [6] top-level scope at /home/enrico/.julia/packages/DSPopt/93Tme/test/runtests.jl:57
optimize!: Benders: Test Failed at /home/enrico/.julia/packages/DSPopt/93Tme/test/farmer_stoc.jl:70
  Expression: isapprox(value(x[1]), 170.0)
   Evaluated: isapprox(0.0, 170.0)
Stacktrace:
 [1] macro expansion at /home/enrico/.julia/packages/DSPopt/93Tme/test/farmer_stoc.jl:70 [inlined]
 [2] top-level scope at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/Test/src/Test.jl:1194
 [3] include(::String) at ./client.jl:457
 [4] top-level scope at /home/enrico/.julia/packages/DSPopt/93Tme/test/runtests.jl:57
 [5] top-level scope at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/Test/src/Test.jl:1119
 [6] top-level scope at /home/enrico/.julia/packages/DSPopt/93Tme/test/runtests.jl:57
optimize!: Benders: Test Failed at /home/enrico/.julia/packages/DSPopt/93Tme/test/farmer_stoc.jl:71
  Expression: isapprox(value(x[2]), 80.0)
   Evaluated: isapprox(0.0, 80.0)
Stacktrace:
 [1] macro expansion at /home/enrico/.julia/packages/DSPopt/93Tme/test/farmer_stoc.jl:71 [inlined]
 [2] top-level scope at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/Test/src/Test.jl:1194
 [3] include(::String) at ./client.jl:457
 [4] top-level scope at /home/enrico/.julia/packages/DSPopt/93Tme/test/runtests.jl:57
 [5] top-level scope at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/Test/src/Test.jl:1119
 [6] top-level scope at /home/enrico/.julia/packages/DSPopt/93Tme/test/runtests.jl:57
optimize!: Benders: Test Failed at /home/enrico/.julia/packages/DSPopt/93Tme/test/farmer_stoc.jl:72
  Expression: isapprox(value(x[3]), 250.0)
   Evaluated: isapprox(0.0, 250.0)
Stacktrace:
 [1] macro expansion at /home/enrico/.julia/packages/DSPopt/93Tme/test/farmer_stoc.jl:72 [inlined]
 [2] top-level scope at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/Test/src/Test.jl:1194
 [3] include(::String) at ./client.jl:457
 [4] top-level scope at /home/enrico/.julia/packages/DSPopt/93Tme/test/runtests.jl:57
 [5] top-level scope at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/Test/src/Test.jl:1119
 [6] top-level scope at /home/enrico/.julia/packages/DSPopt/93Tme/test/runtests.jl:57

=================================================================================
  DSP: Parallel decomposition methods for structured programming
  - Version 2.0.0
  - See https://github.com/Argonne-National-Laboratory/DSP

  Under the terms of Contract No. DE-AC02-06CH11357 with UChicago Argonne, LLC,
  the U.S. Government retains certain rights in this software.
=================================================================================
==  Welcome to the Abstract Library for Parallel Search (ALPS) 
==  Copyright 2000-2017 Lehigh University and others 
==  All Rights Reserved. 
==  Distributed under the Eclipse Public License 1.0 
==  Version: Trunk (unstable) 
==  Build Date: Jul  9 2021
Alps0250I Starting search ...
Alps0240I Proc: 1, Part: 0, Cand: 0, Best N: 1e+75, Best S: -108390

Alps0208I Search completed.
Alps0260I Best solution found had quality -108390
Alps0264I Number of nodes processed:                1
Alps0267I Number of nodes branched:                 0
Alps0268I Number of nodes pruned before processing: 0
Alps0270I Number of nodes left:                     0
Alps0272I Tree depth: 0
Alps0274I Search CPU time: 0.09 seconds
Alps0278I Search wall-clock time: 0.51 seconds

=================================================================================
  DSP: Parallel decomposition methods for structured programming
  - Version 2.0.0
  - See https://github.com/Argonne-National-Laboratory/DSP

  Under the terms of Contract No. DE-AC02-06CH11357 with UChicago Argonne, LLC,
  the U.S. Government retains certain rights in this software.
=================================================================================
CPX0000  CPLEX Error  1014: Parameter value too small.
CPX0000  CPLEX Error  3003: Not a mixed-integer problem.
Test Summary:                   | Pass  Fail  Total
Farmer example: stochastic form |  134     6    140
  Parent model                  |   13           13
  Child model 2                 |   15           15
  Child model 3                 |   15           15
  Child model 1                 |   15           15
  optimize!: ExtensiveForm      |   22           22
  optimize!: Benders            |   13     6     19
    freeModel                   |   11           11
  optimize!: DW                 |   22           22
  optimize!: Dual               |   19           19
ERROR: LoadError: Some tests did not pass: 134 passed, 6 failed, 0 errored, 0 broken.
in expression starting at /home/enrico/.julia/packages/DSPopt/93Tme/test/runtests.jl:56

signal (11): Errore di segmentazione
in expression starting at none:0
freeEnv at /home/enrico/Scrivania/DSP/build/src/libDsp.so (unknown line)
freeEnv at /home/enrico/.julia/packages/DSPopt/93Tme/src/DSPCInterface.jl:80
unknown function (ip: 0x7fcd2dab677f)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2231 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2398
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1691 [inlined]
run_finalizer at /buildworker/worker/package_linux64/build/src/gc.c:279
jl_gc_run_finalizers_in_list at /buildworker/worker/package_linux64/build/src/gc.c:365
run_finalizers at /buildworker/worker/package_linux64/build/src/gc.c:394 [inlined]
jl_gc_run_all_finalizers at /buildworker/worker/package_linux64/build/src/gc.c:480
jl_atexit_hook at /buildworker/worker/package_linux64/build/src/init.c:245
jl_exit at /buildworker/worker/package_linux64/build/src/jl_uv.c:624
exit at ./initdefs.jl:28 [inlined]
_start at ./client.jl:509
jfptr__start_53573.clone_1 at /home/enrico/julia-1.5.4/lib/julia/sys.so (unknown line)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2214 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2398
jl_apply at /buildworker/worker/package_linux64/build/ui/../src/julia.h:1691 [inlined]
true_main at /buildworker/worker/package_linux64/build/ui/repl.c:106
main at /buildworker/worker/package_linux64/build/ui/repl.c:227
__libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
_start at /home/enrico/julia-1.5.4/bin/julia (unknown line)
Allocations: 48694231 (Pool: 48676055; Big: 18176); GC: 45
ERROR: Package DSPopt errored during testing (received signal: 11)

I don't know if this can help.

kibaekkim commented 3 years ago

In your example farmer_test.jl, you probably did not use or initialize MPI.jl, if you mean to run in parallel. Please see the example (https://github.com/kibaekkim/DSPopt.ja/blob/master/examples/farmer_mpi_stoc.jl#L6-L9). I may be able to say more if you share with me your example farmer_test.jl.

For the results from test DSPopt, you must have not build DSP with SCIP. Building with SCIP is optional but disables some algorithmic features (e.g., Benders decomposition).

enri07 commented 3 years ago

Yes, thank you. Both your observations are correct. I removed the line using MPI in order to try understanding the problem and then I forgot to re-add it.

So do you think that the segmentation fault is caused by the fact that I built DSP without SCIP or is it something different?

kibaekkim commented 3 years ago

So do you think that the segmentation fault is caused by the fact that I built DSP without SCIP or is it something different?

No, I don't think so because I also built and tested the code without SCIP. It is interesting that the segfault occurred at the end of the code.

You built DSP with MPICH 3.3.2. Do you know if MPI.jl is using the same library? By default, MPI.jl does not use your system library. Please see https://juliaparallel.github.io/MPI.jl/stable/configuration/#Building You need to build MPI.jl again with the environment variable value set:

ENV["JULIA_MPI_BINARY"]="system"
] build MPI
enri07 commented 3 years ago

Yes I built MPI following those guidelines. At this point I think there's something wrong in my configuration of Julia. Thank you very much for your help, I'll let you know if I'll be able to understand something more.