# On OS X Catalina, running 'solve' in DifferentialEquations causes crash

**URL:** <https://discourse.julialang.org/t/on-os-x-catalina-running-solve-in-differentialequations-causes-crash/42109>\
**Category:** General Usage\
**Created:** [June 26, 2020, 2:45pm UTC](https://discourse.julialang.org/t/on-os-x-catalina-running-solve-in-differentialequations-causes-crash/42109 "2020-06-26T14:45:46Z")\
**Posts on this page:** 4\
**Page:** 2

<div class="post-metadata">

**Author:** ![perseid28](https://avatars.discourse-cdn.com/v4/letter/p/3ab097/32.png) [@perseid28](https://discourse.julialang.org/u/perseid28)\
**Post date:** [June 30, 2020, 9:43pm UTC](https://discourse.julialang.org/t/on-os-x-catalina-running-solve-in-differentialequations-causes-crash/42109/22 "2020-06-30T21:43:44Z")

</div>

Sorry about that.

```julia
julia> versioninfo(); @code_native debuginfo=:none mysum(x)
Julia Version 1.4.2
Commit 44fa15b150* (2020-05-23 18:35 UTC)
Platform Info:
  OS: macOS (x86_64-apple-darwin18.7.0)
  CPU: Intel(R) Core(TM) i5-1038NG7 CPU @ 2.00GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-8.0.1 (ORCJIT, goldmont)
	.section	__TEXT,__ text,regular,pure_instructions
	movq	8(%rdi), %rax
	testq	%rax, %rax
	jle	L26
	movq	(%rdi), %rcx
	cmpq	$16, %rax
	jae	L31
	vxorpd	%xmm0, %xmm0, %xmm0
	xorl	%edx, %edx
	jmp	L130
L26:
	vxorps	%xmm0, %xmm0, %xmm0
	retq
L31:
	movq	%rax, %rdx
	leaq	96(%rcx), %rsi
	vxorpd	%xmm0, %xmm0, %xmm0
	vxorpd	%xmm1, %xmm1, %xmm1
	vxorpd	%xmm2, %xmm2, %xmm2
	vxorpd	%xmm3, %xmm3, %xmm3
	andq	$-16, %rdx
	movq	%rdx, %rdi
	nopl	(%rax)
L64:
	vaddpd	-96(%rsi), %ymm0, %ymm0
	vaddpd	-64(%rsi), %ymm1, %ymm1
	vaddpd	-32(%rsi), %ymm2, %ymm2
	vaddpd	(%rsi), %ymm3, %ymm3
	subq	$-128, %rsi
	addq	$-16, %rdi
	jne	L64
	vaddpd	%ymm0, %ymm1, %ymm0
	cmpq	%rdx, %rax
	vaddpd	%ymm0, %ymm2, %ymm0
	vaddpd	%ymm0, %ymm3, %ymm0
	vextractf128	$1, %ymm0, %xmm1
	vaddpd	%ymm1, %ymm0, %ymm0
	vpermilpd	$1, %xmm0, %xmm1 ## xmm1 = xmm0[1,0]
	vaddpd	%xmm1, %xmm0, %xmm0
	je	L158
L130:
	subq	%rdx, %rax
	leaq	(%rcx,%rdx,8), %rcx
	nopl	(%rax)
L144:
	vaddsd	(%rcx), %xmm0, %xmm0
	addq	$8, %rcx
	addq	$-1, %rax
	jne	L144
L158:
	vzeroupper
	retq
	nopw	%cs:(%rax,%rax)
	nopl	(%rax)

```

```julia
julia> versioninfo(); @code_native debuginfo=:none mysum(x)
Julia Version 1.6.0-DEV.306
Commit 59b8dde7c1 (2020-06-26 09:21 UTC)
Platform Info:
  OS: macOS (x86_64-apple-darwin18.7.0)
  CPU: Intel(R) Core(TM) i5-1038NG7 CPU @ 2.00GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-9.0.1 (ORCJIT, icelake-client)
	.section	__TEXT,__ text,regular,pure_instructions
	movq	8(%rdi), %rax
	testq	%rax, %rax
	jle	L29
	movq	(%rdi), %rcx
	cmpq	$32, %rax
	jae	L34
	vxorpd	%xmm0, %xmm0, %xmm0
	xorl	%edx, %edx
	jmp	L160
L29:
	vxorps	%xmm0, %xmm0, %xmm0
	retq
L34:
	movl	%eax, %esi
	andl	$31, %esi
	movq	%rax, %rdx
	subq	%rsi, %rdx
	vxorpd	%xmm0, %xmm0, %xmm0
	xorl	%esi, %esi
	vxorpd	%xmm1, %xmm1, %xmm1
	vxorpd	%xmm2, %xmm2, %xmm2
	vxorpd	%xmm3, %xmm3, %xmm3
	nop
L64:
	vaddpd	(%rcx,%rsi,8), %zmm0, %zmm0
	vaddpd	64(%rcx,%rsi,8), %zmm1, %zmm1
	vaddpd	128(%rcx,%rsi,8), %zmm2, %zmm2
	vaddpd	192(%rcx,%rsi,8), %zmm3, %zmm3
	addq	$32, %rsi
	cmpq	%rsi, %rdx
	jne	L64
	vaddpd	%zmm0, %zmm1, %zmm0
	vaddpd	%zmm0, %zmm2, %zmm0
	vaddpd	%zmm0, %zmm3, %zmm0
	vextractf64x4	$1, %zmm0, %ymm1
	vaddpd	%zmm1, %zmm0, %zmm0
	vextractf128	$1, %ymm0, %xmm1
	vaddpd	%xmm1, %xmm0, %xmm0
	vpermilpd	$1, %xmm0, %xmm1 ## xmm1 = xmm0[1,0]
	vaddsd	%xmm1, %xmm0, %xmm0
	cmpq	%rdx, %rax
	je	L173
L160:
	vaddsd	(%rcx,%rdx,8), %xmm0, %xmm0
	incq	%rdx
	cmpq	%rdx, %rax
	jne	L160
L173:
	vzeroupper
	retq
	nopw	%cs:(%rax,%rax)
	nopl	(%rax,%rax)

```

---

<div class="post-metadata">

**Author:** ![perseid28](https://avatars.discourse-cdn.com/v4/letter/p/3ab097/32.png) [@perseid28](https://discourse.julialang.org/u/perseid28)\
**Post date:** [June 30, 2020, 9:51pm UTC](https://discourse.julialang.org/t/on-os-x-catalina-running-solve-in-differentialequations-causes-crash/42109/23 "2020-06-30T21:51:55Z")

</div>

```julia
julia> versioninfo(); VectorizationBase.REGISTER_COUNT
Julia Version 1.4.2
...
16

```

```julia
julia> versioninfo(); VectorizationBase.REGISTER_COUNT
Julia Version 1.6.0-DEV.306
...
16

```

Just to note the following happened while I was getting 1.6 ready to run this:

```julia
julia> import VectorizationBase
ERROR: ArgumentError: Package VectorizationBase not found in current path:
- Run `import Pkg; Pkg.add("VectorizationBase")` to install the VectorizationBase package.

Stacktrace:
 [1] require(::Module, ::Symbol) at ./loading.jl:893

(@v1.6) pkg> add VectorizationBase
  Resolving package versions...
Updating `~/.julia/environments/v1.6/Project.toml`
  [3d5dd08c] + VectorizationBase v0.12.16
No Changes to `~/.julia/environments/v1.6/Manifest.toml`

```

`VectorizationBase` was definitely on board earlier this evening when I ran the update. Might not be relevant, but I thought I’d mention it.

```julia
(@v1.6) pkg> update
   Updating registry at `~/.julia/registries/General`
   Updating git-repo `https://github.com/JuliaRegistries/General.git`
Updating `~/.julia/environments/v1.6/Project.toml`
  [a93c6f00] ↑ DataFrames v0.21.3 ⇒ v0.21.4
  [91a5bcdd] ↑ Plots v1.4.4 ⇒ v1.5.0
Updating `~/.julia/environments/v1.6/Manifest.toml`
  [aae01518] ↑ BandedMatrices v0.15.13 ⇒ v0.15.14
  [3da002f7] ↑ ColorTypes v0.10.4 ⇒ v0.10.5
  [5ae59095] ↑ Colors v0.12.2 ⇒ v0.12.3
  [bbf7d656] ↑ CommonSubexpressions v0.2.0 ⇒ v0.3.0
  [a93c6f00] ↑ DataFrames v0.21.3 ⇒ v0.21.4
  [f6369f11] ↑ ForwardDiff v0.10.10 ⇒ v0.10.11
  [5c1252a2] ↑ GeometryBasics v0.2.13 ⇒ v0.2.14
  [bdcacae8] ↑ LoopVectorization v0.8.7 ⇒ v0.8.8
  [961ee093] ↑ ModelingToolkit v3.10.2 ⇒ v3.11.0
  [91a5bcdd] ↑ Plots v1.4.4 ⇒ v1.5.0
  [01d81517] ↑ RecipesPipeline v0.1.10 ⇒ v0.1.11
  [21efa798] ↑ SIMDPirates v0.8.10 ⇒ v0.8.13
  [d1185830] ↑ SymbolicUtils v0.3.4 ⇒ v0.4.2
  [3d5dd08c] ↑ VectorizationBase v0.12.13 ⇒ v0.12.16

```

---

<div class="post-metadata">

**Author:** ![Elrod](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/elrod/32/22461_2.png) [@Elrod](https://discourse.julialang.org/u/Elrod)\
**Post date:** [July 1, 2020, 3:23am UTC](https://discourse.julialang.org/t/on-os-x-catalina-running-solve-in-differentialequations-causes-crash/42109/24 "2020-07-01T03:23:01Z")

</div>

Thanks. I think I’ll have to change how VectorizationBase builds and defines flags, so that it can be 16 on 1.4.2 and 32 with Julia 1.6.  
That said, 16 on both should work and at least shouldn’t hurt performance of 1.6 relative to 1.4.

So I believe the issue is something else.  
Mind providing example code I can run to test the `solve` regression and see if I can reproduce it locally?

---

<div class="post-metadata">

**Author:** ![perseid28](https://avatars.discourse-cdn.com/v4/letter/p/3ab097/32.png) [@perseid28](https://discourse.julialang.org/u/perseid28)\
**Post date:** [July 1, 2020, 7:58am UTC](https://discourse.julialang.org/t/on-os-x-catalina-running-solve-in-differentialequations-causes-crash/42109/25 "2020-07-01T07:58:46Z")

</div>

No problem; I have been running “Example 3” from this demo: [https://docs.sciml.ai/v6.12/tutorials/ode\_example/#Example-3:-Solving-Nonhomogeneous-Equations-using-Parameterized-Functions-1](https://docs.sciml.ai/v6.12/tutorials/ode_example/#Example-3:-Solving-Nonhomogeneous-Equations-using-Parameterized-Functions-1)

```julia
using DifferentialEquations

l = 1.0; m = 1.0; g = 9.81

function pendulum!(du,u,p,t)
    du[1] = u[2] # θ'(t) = ω(t)
    du[2] = -3g/(2l)*sin(u[1]) + 3/(m*l^2)*p(t) # ω'(t) = -3g/(2l) sin θ(t) + 3/(ml^2)M(t)
end

u₀ = [0.01, 0.0] # initial state vector
tspan = (0.0,10.0) # time interval

M = t->0.1sin(t) # external torque [Nm]

prob = ODEProblem(pendulum!,u₀,tspan,M)
sol = solve(prob)

```

[Previous page](https://discourse.julialang.org/t/on-os-x-catalina-running-solve-in-differentialequations-causes-crash/42109.md?page=1)
