Spinach vs spynach: noesy_strychnine (CPU)

run noesy_strychnine-numba, both sides present. Built by comparison/report.py; protocol in comparison/README.md.

Provenance

spinach

run date (UTC)2026-10-14T17:38:16Z
Spinach version2.13
commit03a88b7e912ffbb3122dd24829cc5d216209c804
local modificationsFalse
MATLAB26.2.0.3386108 (R2026b)
hostMacBook-Pro-8.local
platformMACA64
cores12
BLASApple Accelerate BLAS (ILP64)
computational threads12
parallel pool workers11
GPU requestedFalse
GPU device
case options{"gpu": false}

spynach

run date (UTC)2026-10-26T13:23:31Z
spynach versionv0.2.0-21-g2e8843c-dirty
commit2e8843cd088ebc17faf75fd8d06a6692f8507f71
local modificationsTrue
Python3.12.5
NumPy2.5.4
SciPy1.18.1
Numba (compiled kernels)0.68.0
hostjerschowlab25.chem.nyu.edu
platformmacOS-26.6.2-arm64-arm-64bit
cores12
BLAS{"numpy": "accelerate", "scipy": "Accelerate"}
thread settingslibrary defaults
GPU requestedFalse
GPU device
case options{}
not run

Timings

stageSpinach / sspynach / sspynach / Spinach
create20.310.010.00x
basis2.260.060.03x
liquid/noesy88.6668.320.77x
processing0.120.040.35x
plot1.860.110.06x
total (wall clock)113.2468.540.61x

Data

variableSpinach shapespynach shaperelative errormax |difference|
fid_cos(512, 512)(512, 512)2.187e-123.968e-16
fid_sin(512, 512)(512, 512)2.267e-121.627e-16
spectrum(2048, 2048)(2048, 2048)1.316e-121.268e-12

relative error = ||spynach - Spinach||F / ||Spinach||F, the metric of the oracle tests.

Figures

spinach: noesy

figure_noesy.png

spynach: noesy

figure_noesy.png

interactive figure

Profiles

spinach

by self time

functioncallsself / stotal / s
ParforEngine>ParforEngine.getCompleteIntervals49279.1080.67
ClusterClientSession>iWaitForAllWorkerServices113.7313.87
ParforEngine>ParforEngine.addInterval17412.603.01
HTMLCanvasPlugin.HTMLCanvasPlugin>HTMLCanvasPlugin.createCanvas11.051.10
hamiltonian40.7710.09
existentials10.620.79
CJSKeyValueStore>iWriteDataFile1000.500.50
CJSKeyValueStore>iReadDataFile250.450.45
DataQueue>DataQueue.dispatchContinuation14830.360.47
redfield_integral_async10.342.80
AbstractClusterPool.AbstractClusterPool>iPostLaunchSetup10.340.43
cell2mat>concatenateCellContents220.320.32
CJSKeyValueStore>CJSKeyValueStore.putSingleVariable1000.280.82
table.saveobj19200.260.42
cheap_norm7180.250.26
evolution120.2561.98
report23870.240.27
noesy_strychnine_spinach10.22113.21
clean_up1430.220.22
CJSKeyValueStore>CJSKeyValueStore.getSingleVariable250.200.70
tabular.parenReference2440.200.39
step>(parfor body)11600.190.23
autoexec10.190.36
DataQueue>DataQueue.maybeDrainAndDispatchAllDataOnQueue4780.190.93
tabular.dotParenReference1594060.170.17

by total time (with callees)

functioncallsself / stotal / s
run10.00113.26
run_comparison10.05113.26
noesy_strychnine_spinach10.22113.21
liquid10.0288.65
parallel_function470.0485.57
parallel_function>distributed_execution430.1385.07
ParforEngine>ParforEngine.getCompleteIntervals49279.1080.67
noesy10.0575.48
evolution120.2561.98
create10.0720.29
Cluster.parpool10.0017.53
doParpool10.0217.50
AbstractClusterPool.AbstractClusterPool>AbstractClusterPool.hBuildPool10.0317.33
AbstractClusterPool.AbstractClusterPool>iStartClient10.0016.46
AbstractInteractiveClient>AbstractInteractiveClient.start10.0316.45
ClusterClientSession>ClusterClientSession.waitForConnections10.1614.70
ClusterClientSession>iWaitForAllWorkerServices113.7313.87
step470.0913.22
relaxation10.0810.61
hamiltonian40.7710.09
ParforEngine>ParforEngine.addInterval17412.603.01
redfield_integral_async10.342.80
basis10.052.25
unihash10.002.02
plot_2d10.061.74

spynach

by self time

functioncallsself / stotal / s
matmul (utilities.py:72)1691951.7152.64
taylor_term (kernels.py:315)7566.776.78
<built-in method scipy.sparse._sparsetools.csr_matmat>12851.351.35
matlab_round (kernels.py:63)36541.041.04
<built-in method scipy.sparse._sparsetools.csr_matmat_maxnnz>12850.850.85
csr_times_dense (kernels.py:297)42110.820.83
<built-in method scipy.sparse._sparsetools.csr_sort_indices>7370.800.80
_reordered_taylor (propagation.py:126)470.757.70
<built-in method numpy._core._multiarray_umath.count_nonzero>39010.420.42
<lambda> (kernels.py:278)11520.300.02
_detect (propagation.py:447)40960.290.30
_superop_side_build (operators.py:290)14900.290.63
<built-in method scipy.sparse._sparsetools.csr_plus_csr>7430.240.24
<built-in method scipy.sparse._sparsetools.csr_eliminate_zeros>11710.200.20
step (propagation.py:78)470.167.89
<built-in method numpy.array>247040.160.16
_evolve_trajectory (propagation.py:426)240.105.89
<method 'nonzero' of 'numpy.ndarray' objects>361570.090.09
evolution (propagation.py:245)120.0957.22
<method 'reduce' of 'numpy.ufunc' objects>809820.090.09
<method 'copy' of 'numpy.ndarray' objects>110870.080.08
_round_numpy (kernels.py:70)12180.071.12
<method 'searchsorted' of 'numpy.ndarray' objects>191960.070.07
<built-in method scipy.sparse._sparsetools.coo_tocsr>1030.060.06
<built-in method scipy.sparse._sparsetools.csr_sum_duplicates>7380.060.06

by total time (with callees)

functioncallsself / stotal / s
run (noesy_strychnine_spynach.py:13)10.0068.54
simulate (noesy_strychnine.py:65)10.0068.43
liquid (contexts.py:32)10.0068.32
noesy (sequences.py:96)10.0065.08
evolution (propagation.py:245)120.0957.22
matmul (utilities.py:72)1691951.7152.64
_evolve_observable (propagation.py:379)80.0150.64
step (propagation.py:78)470.167.89
_reordered_taylor (propagation.py:126)470.757.70
taylor_term (backend.py:94)7560.006.78
taylor_term (kernels.py:315)7566.776.78
_evolve_trajectory (propagation.py:426)240.105.89
propagator (propagation.py:25)610.004.97
matmul_clean (utilities.py:62)9840.024.48
_dissipators (contexts.py:310)10.003.06
relaxation (relaxation.py:51)10.003.06
_redfield (relaxation.py:231)10.002.98
clean_up (utilities.py:25)11990.012.49
__matmul__ (_base.py:1006)39720.002.45
_matmul_dispatch (_base.py:875)40480.002.45
_matmul_sparse (_compressed.py:415)12850.012.28
result_iterator (_base.py:612)11760.002.22
expmint (relaxation.py:213)250.001.39
<built-in method scipy.sparse._sparsetools.csr_matmat>12851.351.35
round_array (backend.py:77)12750.001.32

Console logs