Spinach vs spynach: maz_noesy_2 (CPU)

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

Provenance

spinach

run date (UTC)2026-10-14T17:53:22Z
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:28:56Z
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
create1.260.000.00x
basis3.730.040.01x
liquid/noesy840.81281.950.34x
processing0.010.010.98x
plot0.150.040.24x
total (wall clock)846.15282.040.33x

Data

variableSpinach shapespynach shaperelative errormax |difference|
fid_cos(256, 256)(256, 256)1.134e-134.909e-14
fid_sin(256, 256)(256, 256)1.235e-134.518e-14
spectrum(1024, 1024)(1024, 1024)1.098e-132.850e-10

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
propagator9719.49741.10
expmint156.47796.74
clean_up36121.8021.80
ParforEngine>ParforEngine.getCompleteIntervals30617.0617.45
evolution>(parfor body)488.619.60
CJSKeyValueStore>iWriteDataFile1242.782.78
CJSKeyValueStore>iReadDataFile312.642.64
redfield_integral_async12.2714.83
ParforEngine>ParforEngine.addInterval9661.811.96
cheap_norm8191.541.55
CJSKeyValueStore>CJSKeyValueStore.getSingleVariable311.544.25
cell2mat>concatenateCellContents251.511.51
hamiltonian41.495.51
CJSKeyValueStore>CJSKeyValueStore.putSingleVariable1241.083.94
existentials10.780.78
corrfun6610.360.41
step>reordered_taylor770.300.30
AbstractClusterPool.AbstractClusterPool>AbstractClusterPool.get.ValueStore320.270.30
report15440.240.28
relaxation20.21817.35
CJSKeyValueStore>@(key)obj.KeyFileStore.remove(key)310.160.16
step>(parfor body)9360.140.17
parallel_function>distributed_execution430.1420.15
ParforEngine>ParforEngine.buildParforController430.120.16
step850.1010.19

by total time (with callees)

functioncallsself / stotal / s
run10.00846.16
run_comparison10.06846.16
maz_noesy_2_spinach10.03846.10
liquid10.00840.81
relaxation20.21817.35
rlx_scalar10.05796.80
expmint156.47796.74
propagator9719.49741.10
parallel_function510.0230.02
noesy10.0122.98
clean_up36121.8021.80
parallel_function>distributed_execution430.1420.15
ParforEngine>ParforEngine.getCompleteIntervals30617.0617.45
redfield_integral_async12.2714.83
evolution120.0712.86
step850.1010.19
evolution>(parfor body)488.619.60
hamiltonian41.495.51
ValueStore>ValueStore.get310.014.27
CJSKeyValueStore>CJSKeyValueStore.getVariable310.014.26
CJSKeyValueStore>@(key)obj.getSingleVariable(key)310.004.25
CJSKeyValueStore>CJSKeyValueStore.getSingleVariable311.544.25
ValueStore>ValueStore.put310.054.03
CJSKeyValueStore>CJSKeyValueStore.putVariable310.013.95
CJSKeyValueStore>CJSKeyValueStore.putSingleVariable1241.083.94

spynach

by self time

functioncallsself / stotal / s
<lambda> (kernels.py:278)16464250.960.57
csr_times_dense (kernels.py:297)39688.878.88
taylor_term (kernels.py:315)9345.005.00
<built-in method numpy._core._multiarray_umath.count_nonzero>36393.093.09
<built-in method scipy.sparse._sparsetools.csr_sort_indices>4202.152.15
spgemm_round (kernels.py:246)8211.73254.48
<built-in method scipy.sparse._sparsetools.csr_matmat>8431.671.67
<built-in method scipy.sparse._sparsetools.csr_matmat_maxnnz>8431.041.04
matlab_round (kernels.py:63)23330.800.81
<built-in method scipy.sparse._sparsetools.csr_plus_csr>6320.660.66
_reordered_taylor (propagation.py:126)850.615.81
<method 'acquire' of '_thread.lock' objects>931180.57665.73
<built-in method scipy.sparse._sparsetools.get_csr_submatrix>640.320.32
<built-in method scipy.sparse._sparsetools.coo_tocsr>1310.270.27
_superop_side_build (operators.py:290)5530.220.52
<built-in method scipy.sparse._sparsetools.csr_eliminate_zeros>6930.220.22
spgemm_round (backend.py:83)8210.21254.70
<built-in method scipy.sparse._sparsetools.csr_tocsc>1300.180.18
<method 'copy' of 'numpy.ndarray' objects>63820.170.17
<built-in method numpy.array>185070.140.14
step (propagation.py:78)850.135.99
assemble (hamiltonian.py:189)380.111.62
<method 'reduce' of 'numpy.ufunc' objects>435160.110.11
<built-in method scipy.sparse._sparsetools.csr_sum_duplicates>4210.100.10
<method 'searchsorted' of 'numpy.ndarray' objects>121600.090.09

by total time (with callees)

functioncallsself / stotal / s
result_iterator (_base.py:612)168070.041991.35
_result_or_cancel (_base.py:314)164640.03853.85
<method 'acquire' of '_thread.lock' objects>931180.57665.73
join (threading.py:1117)41160.01665.22
_wait_for_tstate_lock (threading.py:1155)41160.00665.20
result (_base.py:428)164640.03590.13
run (maz_noesy_2_spynach.py:15)10.00282.04
simulate (maz_noesy_2.py:151)10.00282.01
liquid (contexts.py:32)10.00281.95
_dissipators (contexts.py:310)10.00263.83
relaxation (relaxation.py:51)20.03263.83
matmul_clean (utilities.py:62)8850.02260.52
expmint (relaxation.py:213)320.00259.09
_srfk (relaxation.py:325)10.00256.02
spgemm_round (backend.py:83)8210.21254.70
spgemm_round (kernels.py:246)8211.73254.48
__exit__ (_base.py:646)3430.00252.53
shutdown (thread.py:219)3430.00252.53
_bootstrap (threading.py:1018)41160.01252.50
_bootstrap_inner (threading.py:1058)41160.01252.50
propagator (propagation.py:25)480.03245.78
wait (threading.py:323)197040.05184.24
<method 'get' of '_queue.SimpleQueue' objects>78460.08131.96
run (threading.py:1001)41160.01131.96
_worker (thread.py:69)41160.01131.95

Console logs