Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tracking M1 support #2971

Closed
odow opened this issue May 5, 2022 · 6 comments
Closed

Tracking M1 support #2971

odow opened this issue May 5, 2022 · 6 comments
Milestone

Comments

@odow
Copy link
Member

odow commented May 5, 2022

I have a new toy, so this issue is to track M1 support across JuMP-dev

julia> versioninfo()
Julia Version 1.7.2
Commit bf53498635 (2022-02-06 15:21 UTC)
Platform Info:
  OS: macOS (arm64-apple-darwin21.2.0)
  CPU: Apple M1
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, cyclone)
Package Installs Tests pass Issues
JuMP Yes Segfault Passing in 1.8
MathOptInterface Yes Yes
Cbc Yes SIGABORT jump-dev/Clp.jl#131
Clp Yes SIGABORT jump-dev/Cbc.jl#193
ECOS Yes Yes
GLPK Yes Yes
Gurobi Yes Yes
HiGHS Yes Segfault Passing in 1.8 jump-dev/HiGHS.jl#116
Ipopt Yes One failure jump-dev/Ipopt.jl#315
SCS Yes Yes

I'll also add the the Rosetta binaries work fine.

@odow
Copy link
Member Author

odow commented May 5, 2022

Current JuMP failure is

(jump-tests-m1) pkg> test JuMP
     Testing JuMP
      Status `/private/var/folders/tz/_3rffzvd1hs3rrxssmntjnpw0000gn/T/jl_Pxer0Z/Project.toml`
  [49dc2e85] Calculus v0.5.1
  [864edb3b] DataStructures v0.18.11
  [f6369f11] ForwardDiff v0.10.27
  [682c06a0] JSON v0.21.3
  [4076af6c] JuMP v1.0.0
  [b8f27783] MathOptInterface v1.2.0
  [d8a4904e] MutableArithmetics v1.0.0
  [77ba4419] NaNMath v1.0.0
  [bac558e1] OrderedCollections v1.4.1
  [276daf66] SpecialFunctions v2.1.4
  [37e2e46d] LinearAlgebra `@stdlib/LinearAlgebra`
  [de0858da] Printf `@stdlib/Printf`
  [2f01184e] SparseArrays `@stdlib/SparseArrays`
  [8dfed614] Test `@stdlib/Test`
      Status `/private/var/folders/tz/_3rffzvd1hs3rrxssmntjnpw0000gn/T/jl_Pxer0Z/Manifest.toml`
  [6e4b80f9] BenchmarkTools v1.3.1
  [49dc2e85] Calculus v0.5.1
  [d360d2e6] ChainRulesCore v1.14.0
  [9e997f8a] ChangesOfVariables v0.1.2
  [523fee87] CodecBzip2 v0.7.2
  [944b1d66] CodecZlib v0.7.0
  [bbf7d656] CommonSubexpressions v0.3.0
  [34da2185] Compat v3.43.0
  [864edb3b] DataStructures v0.18.11
  [163ba53b] DiffResults v1.0.3
  [b552c78f] DiffRules v1.11.0
  [ffbed154] DocStringExtensions v0.8.6
  [f6369f11] ForwardDiff v0.10.27
  [3587e190] InverseFunctions v0.1.3
  [92d709cd] IrrationalConstants v0.1.1
  [692b3bcd] JLLWrappers v1.4.1
  [682c06a0] JSON v0.21.3
  [4076af6c] JuMP v1.0.0
  [2ab3a3ac] LogExpFunctions v0.3.14
  [1914dd2f] MacroTools v0.5.9
  [b8f27783] MathOptInterface v1.2.0
  [d8a4904e] MutableArithmetics v1.0.0
  [77ba4419] NaNMath v1.0.0
  [bac558e1] OrderedCollections v1.4.1
  [69de0a69] Parsers v2.3.1
  [21216c6a] Preferences v1.3.0
  [276daf66] SpecialFunctions v2.1.4
  [90137ffa] StaticArrays v1.4.4
  [3bb67fe8] TranscodingStreams v0.9.6
  [6e34b625] Bzip2_jll v1.0.8+0
  [efe28fd5] OpenSpecFun_jll v0.5.5+0
  [0dad84c5] ArgTools `@stdlib/ArgTools`
  [56f22d72] Artifacts `@stdlib/Artifacts`
  [2a0f44e3] Base64 `@stdlib/Base64`
  [ade2ca70] Dates `@stdlib/Dates`
  [8bb1440f] DelimitedFiles `@stdlib/DelimitedFiles`
  [8ba89e20] Distributed `@stdlib/Distributed`
  [f43a241f] Downloads `@stdlib/Downloads`
  [b77e0a4c] InteractiveUtils `@stdlib/InteractiveUtils`
  [b27032c2] LibCURL `@stdlib/LibCURL`
  [76f85450] LibGit2 `@stdlib/LibGit2`
  [8f399da3] Libdl `@stdlib/Libdl`
  [37e2e46d] LinearAlgebra `@stdlib/LinearAlgebra`
  [56ddb016] Logging `@stdlib/Logging`
  [d6f4376e] Markdown `@stdlib/Markdown`
  [a63ad114] Mmap `@stdlib/Mmap`
  [ca575930] NetworkOptions `@stdlib/NetworkOptions`
  [44cfe95a] Pkg `@stdlib/Pkg`
  [de0858da] Printf `@stdlib/Printf`
  [9abbd945] Profile `@stdlib/Profile`
  [3fa0cd96] REPL `@stdlib/REPL`
  [9a3f8284] Random `@stdlib/Random`
  [ea8e919c] SHA `@stdlib/SHA`
  [9e88b42a] Serialization `@stdlib/Serialization`
  [1a1011a3] SharedArrays `@stdlib/SharedArrays`
  [6462fe0b] Sockets `@stdlib/Sockets`
  [2f01184e] SparseArrays `@stdlib/SparseArrays`
  [10745b16] Statistics `@stdlib/Statistics`
  [fa267f1f] TOML `@stdlib/TOML`
  [a4e569a6] Tar `@stdlib/Tar`
  [8dfed614] Test `@stdlib/Test`
  [cf7118a7] UUIDs `@stdlib/UUIDs`
  [4ec0a83e] Unicode `@stdlib/Unicode`
  [e66e0078] CompilerSupportLibraries_jll `@stdlib/CompilerSupportLibraries_jll`
  [deac9b47] LibCURL_jll `@stdlib/LibCURL_jll`
  [29816b5a] LibSSH2_jll `@stdlib/LibSSH2_jll`
  [c8ffd9c3] MbedTLS_jll `@stdlib/MbedTLS_jll`
  [14a3606d] MozillaCACerts_jll `@stdlib/MozillaCACerts_jll`
  [4536629a] OpenBLAS_jll `@stdlib/OpenBLAS_jll`
  [05823500] OpenLibm_jll `@stdlib/OpenLibm_jll`
  [83775a58] Zlib_jll `@stdlib/Zlib_jll`
  [8e850b90] libblastrampoline_jll `@stdlib/libblastrampoline_jll`
  [8e850ede] nghttp2_jll `@stdlib/nghttp2_jll`
  [3f19e933] p7zip_jll `@stdlib/p7zip_jll`
     Testing Running tests...
┌ Warning: Axis contains one element: 4. If intended, you can safely ignore this warning. To explicitly pass the axis with one element, pass `[4]` instead of `4`.
└ @ JuMP.Containers ~/.julia/packages/JuMP/0C6kd/src/Containers/DenseAxisArray.jl:166
┌ Warning: Axis contains one element: 4. If intended, you can safely ignore this warning. To explicitly pass the axis with one element, pass `[4]` instead of `4`.
└ @ JuMP.Containers ~/.julia/packages/JuMP/0C6kd/src/Containers/DenseAxisArray.jl:166
┌ Warning: Axis contains one element: 5. If intended, you can safely ignore this warning. To explicitly pass the axis with one element, pass `[5]` instead of `5`.
└ @ JuMP.Containers ~/.julia/packages/JuMP/0C6kd/src/Containers/DenseAxisArray.jl:166
┌ Warning: Axis contains one element: 4. If intended, you can safely ignore this warning. To explicitly pass the axis with one element, pass `[4]` instead of `4`.
└ @ JuMP.Containers ~/.julia/packages/JuMP/0C6kd/src/Containers/DenseAxisArray.jl:166
┌ Warning: Axis contains one element: 5. If intended, you can safely ignore this warning. To explicitly pass the axis with one element, pass `[5]` instead of `5`.
└ @ JuMP.Containers ~/.julia/packages/JuMP/0C6kd/src/Containers/DenseAxisArray.jl:166
Test Summary: | Pass  Total
Containers    |  344    344
Containers.jl took 13.4 seconds.
callbacks.jl took 3.7 seconds.
Test Summary: | Pass  Total
callbacks.jl  |   23     23
complement.jl took 1.8 seconds.
Test Summary: | Pass  Total
complement.jl |   18     18
complex.jl took 2.7 seconds.
Test Summary: | Pass  Total
complex.jl    |   61     61
constraint.jl took 22.1 seconds.
Test Summary: | Pass  Total
constraint.jl |  512    512
derivatives.jl took 3.5 seconds.
Test Summary:  | Pass  Total
derivatives.jl |  221    221
derivatives_coloring.jl took 0.6 seconds.
Test Summary:           | Pass  Total
derivatives_coloring.jl |   14     14
expr.jl took 8.8 seconds.
Test Summary: | Pass  Total
expr.jl       |  236    236

signal (11): Segmentation fault: 11
in expression starting at /Users/oscardowson/.julia/packages/JuMP/0C6kd/test/feasibility_checker.jl:304
forward_eval at /Users/oscardowson/.julia/packages/JuMP/0C6kd/src/_Derivatives/forward.jl:0
_forward_eval_all at /Users/oscardowson/.julia/packages/JuMP/0C6kd/src/nlp.jl:782
macro expansion at /Users/oscardowson/.julia/packages/JuMP/0C6kd/src/nlp.jl:874 [inlined]
macro expansion at ./timing.jl:299 [inlined]
eval_constraint at /Users/oscardowson/.julia/packages/JuMP/0C6kd/src/nlp.jl:872
jl_apply_generic at /Applications/Julia-M1.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
_add_infeasible_nonlinear_constraints at /Users/oscardowson/.julia/packages/JuMP/0C6kd/src/feasibility_checker.jl:162
#primal_feasibility_report#184 at /Users/oscardowson/.julia/packages/JuMP/0C6kd/src/feasibility_checker.jl:125
primal_feasibility_report##kw at /Users/oscardowson/.julia/packages/JuMP/0C6kd/src/feasibility_checker.jl:107 [inlined]
#primal_feasibility_report#181 at /Users/oscardowson/.julia/packages/JuMP/0C6kd/src/feasibility_checker.jl:60 [inlined]
primal_feasibility_report at /Users/oscardowson/.julia/packages/JuMP/0C6kd/src/feasibility_checker.jl:60 [inlined]
test_nonlinear at /Users/oscardowson/.julia/packages/JuMP/0C6kd/test/feasibility_checker.jl:271
unknown function (ip: 0x16fa7bc23)
jl_apply_generic at /Applications/Julia-M1.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
macro expansion at /Users/oscardowson/.julia/packages/JuMP/0C6kd/test/feasibility_checker.jl:297 [inlined]
macro expansion at /Users/sabae/src/julia/usr/share/julia/stdlib/v1.7/Test/src/Test.jl:1283 [inlined]
runtests at /Users/oscardowson/.julia/packages/JuMP/0C6kd/test/feasibility_checker.jl:297
unknown function (ip: 0x16fa5a1b7)
jl_apply_generic at /Applications/Julia-M1.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
do_call at /Applications/Julia-M1.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
eval_body at /Applications/Julia-M1.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_interpret_toplevel_thunk at /Applications/Julia-M1.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_toplevel_eval_flex at /Applications/Julia-M1.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_toplevel_eval_flex at /Applications/Julia-M1.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_toplevel_eval_in at /Applications/Julia-M1.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
eval at ./boot.jl:373 [inlined]
include_string at ./loading.jl:1196
jl_apply_generic at /Applications/Julia-M1.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
_include at ./loading.jl:1253
include at ./client.jl:451
jl_apply_generic at /Applications/Julia-M1.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
do_call at /Applications/Julia-M1.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
eval_body at /Applications/Julia-M1.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
eval_body at /Applications/Julia-M1.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
eval_body at /Applications/Julia-M1.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_interpret_toplevel_thunk at /Applications/Julia-M1.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_toplevel_eval_flex at /Applications/Julia-M1.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_toplevel_eval_flex at /Applications/Julia-M1.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_toplevel_eval_in at /Applications/Julia-M1.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
eval at ./boot.jl:373 [inlined]
include_string at ./loading.jl:1196
jl_apply_generic at /Applications/Julia-M1.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
_include at ./loading.jl:1253
include at ./client.jl:451
jl_apply_generic at /Applications/Julia-M1.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
do_call at /Applications/Julia-M1.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
eval_body at /Applications/Julia-M1.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_interpret_toplevel_thunk at /Applications/Julia-M1.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_toplevel_eval_flex at /Applications/Julia-M1.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_toplevel_eval_flex at /Applications/Julia-M1.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_toplevel_eval_in at /Applications/Julia-M1.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
eval at ./boot.jl:373 [inlined]
exec_options at ./client.jl:268
_start at ./client.jl:495
jfptr__start_41470 at /Applications/Julia-M1.app/Contents/Resources/julia/lib/julia/sys.dylib (unknown line)
jl_apply_generic at /Applications/Julia-M1.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
true_main at /Applications/Julia-M1.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_repl_entrypoint at /Applications/Julia-M1.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
Allocations: 252246955 (Pool: 252148749; Big: 98206); GC: 230
ERROR: Package JuMP errored during testing (exit code: 139)

@jd-lara
Copy link
Contributor

jd-lara commented May 21, 2022

Are these on native M1 or with Rosetta?

@odow
Copy link
Member Author

odow commented May 21, 2022

Native M1. Rosetta works fine.

@odow odow added this to the 1.x milestone Jul 13, 2022
@odow
Copy link
Member Author

odow commented Aug 16, 2022

Some progress. JuMP and HiGHS are now passing tests on M1 with Julia v1.8-rc4. The COIN-OR suite of Cbc, Clp, and Ipopt are still segfaulting and/or failing.

@odow
Copy link
Member Author

odow commented Aug 16, 2022

Ipopt is failing one test (norm limit, instead of finding an optimal solution) that I haven't managed to get to the bottom of, but it is passing all others, so I'm pretty much ready to mark this issue as done. The JuMP segfault was the main problem.

@odow
Copy link
Member Author

odow commented Aug 23, 2022

Closing because the JuMP side is working fine in Julia v1.8. Cbc and Clp can track progress in their own issues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants