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

Remove size type parameter from ITensor and IndexSet [WIP] #591

Merged
merged 14 commits into from
Mar 18, 2021

Conversation

kshyatt
Copy link
Contributor

@kshyatt kshyatt commented Mar 15, 2021

Would close #584. Doesn't require any modifications to NDTensors.jl. Happy to change anything if the modifications (especially to emptyITensor) don't suit.

@kshyatt kshyatt requested a review from mtfishman March 15, 2021 16:27
@emstoudenmire
Copy link
Collaborator

I was thinking of taking a swing at this one too, so much appreciated that you did! I'll look it over but let's definitely see Matt's comments.

@github-actions
Copy link
Contributor

Benchmark result

Judge result

Benchmark Report for /home/runner/work/ITensors.jl/ITensors.jl

Job Properties

  • Time of benchmarks:
    • Target: 15 Mar 2021 - 16:46
    • Baseline: 15 Mar 2021 - 16:57
  • Package commits:
    • Target: 850d36
    • Baseline: 2e6fcb
  • Julia commits:
    • Target: 69fcb5
    • Baseline: 69fcb5
  • Julia command flags:
    • Target: None
    • Baseline: None
  • Environment variables:
    • Target: None
    • Baseline: None

Results

A ratio greater than 1.0 denotes a possible regression (marked with ❌), while a ratio less
than 1.0 denotes a possible improvement (marked with ✅). Only significant results - results
that indicate possible regressions or improvements - are shown below (thus, an empty table means that all
benchmark results remained invariant between builds).

ID time ratio memory ratio
["autompo", "Quartic Hamiltonian"] 0.94 (5%) ✅ 0.83 (1%) ✅
["autompo", "Quartic QN Hamiltonian"] 1.09 (5%) ❌ 1.02 (1%) ❌
["contract", "matmul_100"] 1.29 (5%) ❌ 1.02 (1%) ❌
["contract", "matmul_20"] 5.41 (5%) ❌ 1.30 (1%) ❌
["contract", "matmul_40"] 2.45 (5%) ❌ 1.11 (1%) ❌
["contract", "matmul_60"] 1.68 (5%) ❌ 1.05 (1%) ❌
["contract", "matmul_80"] 1.52 (5%) ❌ 1.03 (1%) ❌
["contract", "matmul_inplace_100"] 1.50 (5%) ❌ 2.90 (1%) ❌
["contract", "matmul_inplace_20"] 15.16 (5%) ❌ 2.90 (1%) ❌
["contract", "matmul_inplace_40"] 4.87 (5%) ❌ 2.90 (1%) ❌
["contract", "matmul_inplace_60"] 2.25 (5%) ❌ 2.90 (1%) ❌
["contract", "matmul_inplace_80"] 1.94 (5%) ❌ 2.90 (1%) ❌
["dmrg", "1d_S=1_heisenberg"] 1.07 (5%) ❌ 1.00 (1%)
["dmrg", "1d_S=1_heisenberg_qn"] 2.97 (5%) ❌ 1.46 (1%) ❌
["indexset", "constructor", "function"] 0.91 (5%) ✅ 1.01 (1%)
["indexset", "filter", "function"] 0.00 (5%) ✅ 0.00 (1%) ✅
["indexset", "filter", "function_order"] 2.83 (5%) ❌ 2.00 (1%) ❌
["indexset", "filter", "kwargs"] 0.00 (5%) ✅ 0.01 (1%) ✅
["indexset", "filter", "order_kwargs"] 3.58 (5%) ❌ 2.00 (1%) ❌
["indexset", "uniqueinds", "3_inputs"] 1.04 (5%) 1.02 (1%) ❌
["indexset", "uniqueinds", "filter_not_tags"] 1.04 (5%) 1.01 (1%) ❌
["indexset", "uniqueinds", "filter_tags"] 0.89 (5%) ✅ 1.02 (1%) ❌
["indexset", "uniqueinds", "nofilter0"] 1.01 (5%) 1.20 (1%) ❌
["indexset", "uniqueinds", "nofilter2"] 1.11 (5%) ❌ 1.01 (1%) ❌
["indexset", "uniqueinds", "order2"] 1.53 (5%) ❌ 2.00 (1%) ❌
["indexset", "uniqueinds", "order_3_inputs"] 1.45 (5%) ❌ 2.00 (1%) ❌
["indexset", "uniqueinds", "order_filter_not_tags"] 1.35 (5%) ❌ 1.21 (1%) ❌
["indexset", "uniqueinds", "order_filter_tags"] 1.88 (5%) ❌ 2.00 (1%) ❌
["inplace", "axpy!"] 1.95 (5%) ❌ 0.83 (1%) ✅
["op", "op QN"] 9.77 (5%) ❌ 1.87 (1%) ❌
["op", "op"] 5.00 (5%) ❌ 0.93 (1%) ✅

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["autompo"]
  • ["contract"]
  • ["dmrg"]
  • ["indexset", "constructor"]
  • ["indexset", "filter"]
  • ["indexset", "uniqueinds"]
  • ["inplace"]
  • ["op"]
  • ["tagset"]

Julia versioninfo

Target

Julia Version 1.5.4
Commit 69fcb5745b (2021-03-11 19:13 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1040-azure #42-Ubuntu SMP Fri Feb 5 15:39:06 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz: 
              speed         user         nice          sys         idle          irq
       #1  2294 MHz      69878 s          0 s       8339 s      34943 s          0 s
       #2  2294 MHz      62936 s          0 s      11854 s      38416 s          0 s
       
  Memory: 6.7913818359375 GB (2910.44921875 MB free)
  Uptime: 1150.0 sec
  Load Avg:  1.31689453125  1.443359375  1.080078125
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-9.0.1 (ORCJIT, broadwell)

Baseline

Julia Version 1.5.4
Commit 69fcb5745b (2021-03-11 19:13 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1040-azure #42-Ubuntu SMP Fri Feb 5 15:39:06 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz: 
              speed         user         nice          sys         idle          irq
       #1  2294 MHz     107838 s          0 s      10962 s      64396 s          0 s
       #2  2294 MHz     101755 s          0 s      15124 s      66342 s          0 s
       
  Memory: 6.7913818359375 GB (2720.08203125 MB free)
  Uptime: 1853.0 sec
  Load Avg:  1.0654296875  1.23388671875  1.14501953125
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-9.0.1 (ORCJIT, broadwell)

Target result

Benchmark Report for /home/runner/work/ITensors.jl/ITensors.jl

Job Properties

  • Time of benchmark: 15 Mar 2021 - 16:46
  • Package commit: 850d36
  • Julia commit: 69fcb5
  • Julia command flags: None
  • Environment variables: None

Results

Below is a table of this job's results, obtained by running the benchmarks.
The values listed in the ID column have the structure [parent_group, child_group, ..., key], and can be used to
index into the BaseBenchmarks suite to retrieve the corresponding benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true"
time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
An empty cell means that the value was zero.

ID time GC time memory allocations
["autompo", "Quartic Hamiltonian"] 6.864 s (5%) 344.399 ms 1.48 GiB (1%) 18775575
["autompo", "Quartic QN Hamiltonian"] 21.049 s (5%) 4.039 s 9.70 GiB (1%) 92011400
["contract", "heff_2site"] 7.719 ms (5%) 19.42 MiB (1%) 465
["contract", "matmul_100"] 94.201 μs (5%) 81.86 KiB (1%) 72
["contract", "matmul_20"] 18.401 μs (5%) 6.91 KiB (1%) 71
["contract", "matmul_40"] 27.001 μs (5%) 16.28 KiB (1%) 71
["contract", "matmul_60"] 47.501 μs (5%) 31.86 KiB (1%) 72
["contract", "matmul_80"] 59.401 μs (5%) 53.73 KiB (1%) 72
["contract", "matmul_inplace_100"] 101.002 μs (5%) 3.48 KiB (1%) 80
["contract", "matmul_inplace_20"] 28.800 μs (5%) 3.48 KiB (1%) 80
["contract", "matmul_inplace_40"] 38.000 μs (5%) 3.48 KiB (1%) 80
["contract", "matmul_inplace_60"] 49.500 μs (5%) 3.48 KiB (1%) 80
["contract", "matmul_inplace_80"] 67.301 μs (5%) 3.48 KiB (1%) 80
["dmrg", "1d_S=1_heisenberg"] 32.059 s (5%) 2.859 s 38.54 GiB (1%) 4616503
["dmrg", "1d_S=1_heisenberg_qn"] 51.237 s (5%) 2.892 s 16.57 GiB (1%) 144656178
["indexset", "constructor", "function"] 688.566 ns (5%) 1.98 KiB (1%) 9
["indexset", "filter", "function"] 1.990 μs (5%) 464 bytes (1%) 3
["indexset", "filter", "function_order"] 112.404 ns (5%) 448 bytes (1%) 2
["indexset", "filter", "kwargs"] 441.544 ns (5%) 240 bytes (1%) 3
["indexset", "filter", "order_kwargs"] 92.481 ns (5%) 224 bytes (1%) 2
["indexset", "uniqueinds", "3_inputs"] 629.146 ns (5%) 880 bytes (1%) 6
["indexset", "uniqueinds", "filter_not_tags"] 828.040 ns (5%) 1.28 KiB (1%) 15
["indexset", "uniqueinds", "filter_tags"] 515.440 ns (5%) 880 bytes (1%) 6
["indexset", "uniqueinds", "nofilter0"] 2.511 μs (5%) 96 bytes (1%) 2
["indexset", "uniqueinds", "nofilter2"] 623.042 ns (5%) 1.19 KiB (1%) 7
["indexset", "uniqueinds", "order0"] 97.220 ns (5%)
["indexset", "uniqueinds", "order2"] 188.908 ns (5%) 448 bytes (1%) 2
["indexset", "uniqueinds", "order_3_inputs"] 229.179 ns (5%) 224 bytes (1%) 2
["indexset", "uniqueinds", "order_filter_not_tags"] 415.583 ns (5%) 656 bytes (1%) 11
["indexset", "uniqueinds", "order_filter_tags"] 150.749 ns (5%) 224 bytes (1%) 2
["inplace", "axpy!"] 28.300 μs (5%) 1.86 KiB (1%) 45
["op", "op QN"] 72.301 μs (5%) 12.61 KiB (1%) 192
["op", "op"] 19.001 μs (5%) 3.19 KiB (1%) 82
["tagset", "tagset"] 371.217 ns (5%) 336 bytes (1%) 9
["tagset", "tagset_unicode"] 523.569 ns (5%) 336 bytes (1%) 9

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["autompo"]
  • ["contract"]
  • ["dmrg"]
  • ["indexset", "constructor"]
  • ["indexset", "filter"]
  • ["indexset", "uniqueinds"]
  • ["inplace"]
  • ["op"]
  • ["tagset"]

Julia versioninfo

Julia Version 1.5.4
Commit 69fcb5745b (2021-03-11 19:13 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1040-azure #42-Ubuntu SMP Fri Feb 5 15:39:06 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz: 
              speed         user         nice          sys         idle          irq
       #1  2294 MHz      69878 s          0 s       8339 s      34943 s          0 s
       #2  2294 MHz      62936 s          0 s      11854 s      38416 s          0 s
       
  Memory: 6.7913818359375 GB (2910.44921875 MB free)
  Uptime: 1150.0 sec
  Load Avg:  1.31689453125  1.443359375  1.080078125
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-9.0.1 (ORCJIT, broadwell)

Baseline result

Benchmark Report for /home/runner/work/ITensors.jl/ITensors.jl

Job Properties

  • Time of benchmark: 15 Mar 2021 - 16:57
  • Package commit: 2e6fcb
  • Julia commit: 69fcb5
  • Julia command flags: None
  • Environment variables: None

Results

Below is a table of this job's results, obtained by running the benchmarks.
The values listed in the ID column have the structure [parent_group, child_group, ..., key], and can be used to
index into the BaseBenchmarks suite to retrieve the corresponding benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true"
time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
An empty cell means that the value was zero.

ID time GC time memory allocations
["autompo", "Quartic Hamiltonian"] 7.293 s (5%) 459.062 ms 1.77 GiB (1%) 32060843
["autompo", "Quartic QN Hamiltonian"] 19.361 s (5%) 4.205 s 9.49 GiB (1%) 92169609
["contract", "heff_2site"] 7.439 ms (5%) 19.41 MiB (1%) 212
["contract", "matmul_100"] 73.101 μs (5%) 80.25 KiB (1%) 23
["contract", "matmul_20"] 3.400 μs (5%) 5.30 KiB (1%) 22
["contract", "matmul_40"] 11.000 μs (5%) 14.67 KiB (1%) 22
["contract", "matmul_60"] 28.201 μs (5%) 30.25 KiB (1%) 23
["contract", "matmul_80"] 39.200 μs (5%) 52.13 KiB (1%) 23
["contract", "matmul_inplace_100"] 67.301 μs (5%) 1.20 KiB (1%) 12
["contract", "matmul_inplace_20"] 1.900 μs (5%) 1.20 KiB (1%) 12
["contract", "matmul_inplace_40"] 7.800 μs (5%) 1.20 KiB (1%) 12
["contract", "matmul_inplace_60"] 22.000 μs (5%) 1.20 KiB (1%) 12
["contract", "matmul_inplace_80"] 34.700 μs (5%) 1.20 KiB (1%) 12
["dmrg", "1d_S=1_heisenberg"] 29.849 s (5%) 3.363 s 38.55 GiB (1%) 2206549
["dmrg", "1d_S=1_heisenberg_qn"] 17.234 s (5%) 2.014 s 11.33 GiB (1%) 60136662
["indexset", "constructor", "function"] 754.831 ns (5%) 1.97 KiB (1%) 8
["indexset", "filter", "function"] 4.142 s (5%) 841.84 KiB (1%) 16672
["indexset", "filter", "function_order"] 39.756 ns (5%) 224 bytes (1%) 1
["indexset", "filter", "kwargs"] 210.817 ms (5%) 30.99 KiB (1%) 680
["indexset", "filter", "order_kwargs"] 25.847 ns (5%) 112 bytes (1%) 1
["indexset", "uniqueinds", "3_inputs"] 607.291 ns (5%) 864 bytes (1%) 5
["indexset", "uniqueinds", "filter_not_tags"] 800.000 ns (5%) 1.27 KiB (1%) 14
["indexset", "uniqueinds", "filter_tags"] 577.720 ns (5%) 864 bytes (1%) 5
["indexset", "uniqueinds", "nofilter0"] 2.478 μs (5%) 80 bytes (1%) 1
["indexset", "uniqueinds", "nofilter2"] 563.642 ns (5%) 1.17 KiB (1%) 6
["indexset", "uniqueinds", "order0"] 101.178 ns (5%)
["indexset", "uniqueinds", "order2"] 123.139 ns (5%) 224 bytes (1%) 1
["indexset", "uniqueinds", "order_3_inputs"] 158.591 ns (5%) 112 bytes (1%) 1
["indexset", "uniqueinds", "order_filter_not_tags"] 308.045 ns (5%) 544 bytes (1%) 10
["indexset", "uniqueinds", "order_filter_tags"] 80.326 ns (5%) 112 bytes (1%) 1
["inplace", "axpy!"] 14.500 μs (5%) 2.25 KiB (1%) 24
["op", "op QN"] 7.401 μs (5%) 6.73 KiB (1%) 88
["op", "op"] 3.800 μs (5%) 3.44 KiB (1%) 40
["tagset", "tagset"] 385.359 ns (5%) 336 bytes (1%) 9
["tagset", "tagset_unicode"] 504.603 ns (5%) 336 bytes (1%) 9

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["autompo"]
  • ["contract"]
  • ["dmrg"]
  • ["indexset", "constructor"]
  • ["indexset", "filter"]
  • ["indexset", "uniqueinds"]
  • ["inplace"]
  • ["op"]
  • ["tagset"]

Julia versioninfo

Julia Version 1.5.4
Commit 69fcb5745b (2021-03-11 19:13 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1040-azure #42-Ubuntu SMP Fri Feb 5 15:39:06 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz: 
              speed         user         nice          sys         idle          irq
       #1  2294 MHz     107838 s          0 s      10962 s      64396 s          0 s
       #2  2294 MHz     101755 s          0 s      15124 s      66342 s          0 s
       
  Memory: 6.7913818359375 GB (2720.08203125 MB free)
  Uptime: 1853.0 sec
  Load Avg:  1.0654296875  1.23388671875  1.14501953125
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-9.0.1 (ORCJIT, broadwell)

Runtime information

Runtime Info
BLAS #threads 2
BLAS.vendor() openblas64
Sys.CPU_THREADS 2

lscpu output:

Architecture:                    x86_64
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
Address sizes:                   46 bits physical, 48 bits virtual
CPU(s):                          2
On-line CPU(s) list:             0,1
Thread(s) per core:              1
Core(s) per socket:              2
Socket(s):                       1
NUMA node(s):                    1
Vendor ID:                       GenuineIntel
CPU family:                      6
Model:                           79
Model name:                      Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
Stepping:                        1
CPU MHz:                         2294.688
BogoMIPS:                        4589.37
Hypervisor vendor:               Microsoft
Virtualization type:             full
L1d cache:                       64 KiB
L1i cache:                       64 KiB
L2 cache:                        512 KiB
L3 cache:                        50 MiB
NUMA node0 CPU(s):               0,1
Vulnerability Itlb multihit:     KVM: Vulnerable
Vulnerability L1tf:              Mitigation; PTE Inversion
Vulnerability Mds:               Mitigation; Clear CPU buffers; SMT Host state unknown
Vulnerability Meltdown:          Mitigation; PTI
Vulnerability Spec store bypass: Vulnerable
Vulnerability Spectre v1:        Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:        Mitigation; Full generic retpoline, STIBP disabled, RSB filling
Vulnerability Srbds:             Not affected
Vulnerability Tsx async abort:   Mitigation; Clear CPU buffers; SMT Host state unknown
Flags:                           fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology cpuid pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm rdseed adx smap xsaveopt md_clear
Cpu Property Value
Brand Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
Vendor :Intel
Architecture :Broadwell
Model Family: 0x06, Model: 0x4f, Stepping: 0x01, Type: 0x00
Cores 2 physical cores, 2 logical cores (on executing CPU)
No Hyperthreading hardware capability detected
Clock Frequencies Not supported by CPU
Data Cache Level 1:3 : (32, 256, 51200) kbytes
64 byte cache line size
Address Size 48 bits virtual, 46 bits physical
SIMD 256 bit = 32 byte max. SIMD vector size
Time Stamp Counter TSC is accessible via rdtsc
TSC increased at every clock cycle (non-invariant TSC)
Perf. Monitoring Performance Monitoring Counters (PMC) are not supported
Hypervisor Yes, Microsoft

Copy link
Collaborator

@emstoudenmire emstoudenmire left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed that new behaviors replacing emptyITensor are a key point to discuss. Also important to check whether storage of IndexSet is now what we want, but looks good to me.

src/itensor.jl Show resolved Hide resolved
@codecov-io
Copy link

codecov-io commented Mar 15, 2021

Codecov Report

Merging #591 (79b745e) into master (2e6fcb2) will increase coverage by 2.88%.
The diff coverage is 83.73%.

❗ Current head 79b745e differs from pull request most recent head 67e06f0. Consider uploading reports for the commit 67e06f0 to get more accurate results
Impacted file tree graph

@@            Coverage Diff             @@
##           master     #591      +/-   ##
==========================================
+ Coverage   80.17%   83.05%   +2.88%     
==========================================
  Files          42       42              
  Lines        4494     4893     +399     
==========================================
+ Hits         3603     4064     +461     
+ Misses        891      829      -62     
Impacted Files Coverage Δ
src/ITensors.jl 33.33% <ø> (+8.33%) ⬆️
src/mps/abstractmps.jl 85.90% <ø> (+1.30%) ⬆️
src/mps/projmpo.jl 65.47% <ø> (+0.91%) ⬆️
src/indexset.jl 71.62% <71.15%> (-3.59%) ⬇️
src/itensor.jl 83.82% <91.37%> (+4.89%) ⬆️
src/decomp.jl 92.20% <100.00%> (+3.97%) ⬆️
src/physics/autompo.jl 95.03% <100.00%> (+1.80%) ⬆️
src/qn/qnindexset.jl 100.00% <100.00%> (+11.76%) ⬆️
src/arrow.jl 100.00% <0.00%> (ø)
... and 34 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 2e6fcb2...67e06f0. Read the comment docs.

src/decomp.jl Outdated Show resolved Hide resolved
src/indexset.jl Outdated Show resolved Hide resolved
src/indexset.jl Outdated Show resolved Hide resolved
src/indexset.jl Outdated Show resolved Hide resolved
src/indexset.jl Outdated Show resolved Hide resolved
src/itensor.jl Outdated Show resolved Hide resolved
src/itensor.jl Outdated Show resolved Hide resolved
@kshyatt
Copy link
Contributor Author

kshyatt commented Mar 15, 2021

Thanks for the detailed review so far, @mtfishman! I'll address the comments as I find time, should be soon :)

@github-actions
Copy link
Contributor

Benchmark result

Judge result

Benchmark Report for /home/runner/work/ITensors.jl/ITensors.jl

Job Properties

  • Time of benchmarks:
    • Target: 15 Mar 2021 - 19:21
    • Baseline: 15 Mar 2021 - 19:32
  • Package commits:
    • Target: 7656eb
    • Baseline: 2e6fcb
  • Julia commits:
    • Target: 69fcb5
    • Baseline: 69fcb5
  • Julia command flags:
    • Target: None
    • Baseline: None
  • Environment variables:
    • Target: None
    • Baseline: None

Results

A ratio greater than 1.0 denotes a possible regression (marked with ❌), while a ratio less
than 1.0 denotes a possible improvement (marked with ✅). Only significant results - results
that indicate possible regressions or improvements - are shown below (thus, an empty table means that all
benchmark results remained invariant between builds).

ID time ratio memory ratio
["autompo", "Quartic Hamiltonian"] 0.89 (5%) ✅ 0.83 (1%) ✅
["autompo", "Quartic QN Hamiltonian"] 1.05 (5%) 1.02 (1%) ❌
["contract", "matmul_100"] 1.36 (5%) ❌ 1.02 (1%) ❌
["contract", "matmul_20"] 5.81 (5%) ❌ 1.30 (1%) ❌
["contract", "matmul_40"] 2.98 (5%) ❌ 1.11 (1%) ❌
["contract", "matmul_60"] 1.79 (5%) ❌ 1.05 (1%) ❌
["contract", "matmul_80"] 1.59 (5%) ❌ 1.03 (1%) ❌
["contract", "matmul_inplace_100"] 1.67 (5%) ❌ 2.90 (1%) ❌
["contract", "matmul_inplace_20"] 16.64 (5%) ❌ 2.90 (1%) ❌
["contract", "matmul_inplace_40"] 5.52 (5%) ❌ 2.90 (1%) ❌
["contract", "matmul_inplace_60"] 2.87 (5%) ❌ 2.90 (1%) ❌
["contract", "matmul_inplace_80"] 2.11 (5%) ❌ 2.90 (1%) ❌
["dmrg", "1d_S=1_heisenberg"] 1.14 (5%) ❌ 1.00 (1%)
["dmrg", "1d_S=1_heisenberg_qn"] 2.78 (5%) ❌ 1.46 (1%) ❌
["indexset", "constructor", "function"] 1.05 (5%) ❌ 1.01 (1%)
["indexset", "filter", "function"] 0.00 (5%) ✅ 0.00 (1%) ✅
["indexset", "filter", "function_order"] 2.93 (5%) ❌ 2.00 (1%) ❌
["indexset", "filter", "kwargs"] 0.00 (5%) ✅ 0.01 (1%) ✅
["indexset", "filter", "order_kwargs"] 3.91 (5%) ❌ 2.00 (1%) ❌
["indexset", "uniqueinds", "3_inputs"] 1.00 (5%) 1.02 (1%) ❌
["indexset", "uniqueinds", "filter_not_tags"] 1.10 (5%) ❌ 1.01 (1%) ❌
["indexset", "uniqueinds", "filter_tags"] 1.10 (5%) ❌ 1.02 (1%) ❌
["indexset", "uniqueinds", "nofilter0"] 1.02 (5%) 1.20 (1%) ❌
["indexset", "uniqueinds", "nofilter2"] 1.18 (5%) ❌ 1.01 (1%) ❌
["indexset", "uniqueinds", "order0"] 0.85 (5%) ✅ 1.00 (1%)
["indexset", "uniqueinds", "order2"] 1.20 (5%) ❌ 2.00 (1%) ❌
["indexset", "uniqueinds", "order_3_inputs"] 1.18 (5%) ❌ 2.00 (1%) ❌
["indexset", "uniqueinds", "order_filter_not_tags"] 1.20 (5%) ❌ 1.21 (1%) ❌
["indexset", "uniqueinds", "order_filter_tags"] 1.44 (5%) ❌ 2.00 (1%) ❌
["inplace", "axpy!"] 1.45 (5%) ❌ 0.83 (1%) ✅
["op", "op QN"] 9.14 (5%) ❌ 1.87 (1%) ❌
["op", "op"] 5.38 (5%) ❌ 0.93 (1%) ✅

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["autompo"]
  • ["contract"]
  • ["dmrg"]
  • ["indexset", "constructor"]
  • ["indexset", "filter"]
  • ["indexset", "uniqueinds"]
  • ["inplace"]
  • ["op"]
  • ["tagset"]

Julia versioninfo

Target

Julia Version 1.5.4
Commit 69fcb5745b (2021-03-11 19:13 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1040-azure #42-Ubuntu SMP Fri Feb 5 15:39:06 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz: 
              speed         user         nice          sys         idle          irq
       #1  2095 MHz      47608 s          0 s      14632 s      36709 s          0 s
       #2  2095 MHz      67137 s          0 s       4274 s      27799 s          0 s
       
  Memory: 6.7913818359375 GB (2985.578125 MB free)
  Uptime: 1005.0 sec
  Load Avg:  1.2978515625  1.37109375  0.98193359375
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-9.0.1 (ORCJIT, skylake-avx512)

Baseline

Julia Version 1.5.4
Commit 69fcb5745b (2021-03-11 19:13 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1040-azure #42-Ubuntu SMP Fri Feb 5 15:39:06 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz: 
              speed         user         nice          sys         idle          irq
       #1  2095 MHz      93215 s          0 s      17804 s      51549 s          0 s
       #2  2095 MHz      89077 s          0 s       8131 s      65592 s          0 s
       
  Memory: 6.7913818359375 GB (2742.18359375 MB free)
  Uptime: 1642.0 sec
  Load Avg:  1.06689453125  1.21533203125  1.08203125
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-9.0.1 (ORCJIT, skylake-avx512)

Target result

Benchmark Report for /home/runner/work/ITensors.jl/ITensors.jl

Job Properties

  • Time of benchmark: 15 Mar 2021 - 19:21
  • Package commit: 7656eb
  • Julia commit: 69fcb5
  • Julia command flags: None
  • Environment variables: None

Results

Below is a table of this job's results, obtained by running the benchmarks.
The values listed in the ID column have the structure [parent_group, child_group, ..., key], and can be used to
index into the BaseBenchmarks suite to retrieve the corresponding benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true"
time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
An empty cell means that the value was zero.

ID time GC time memory allocations
["autompo", "Quartic Hamiltonian"] 6.256 s (5%) 303.290 ms 1.48 GiB (1%) 18775577
["autompo", "Quartic QN Hamiltonian"] 18.216 s (5%) 3.723 s 9.73 GiB (1%) 92196184
["contract", "heff_2site"] 6.146 ms (5%) 19.42 MiB (1%) 465
["contract", "matmul_100"] 51.603 μs (5%) 81.86 KiB (1%) 72
["contract", "matmul_20"] 15.101 μs (5%) 6.91 KiB (1%) 71
["contract", "matmul_40"] 19.101 μs (5%) 16.28 KiB (1%) 71
["contract", "matmul_60"] 28.501 μs (5%) 31.86 KiB (1%) 72
["contract", "matmul_80"] 35.603 μs (5%) 53.73 KiB (1%) 72
["contract", "matmul_inplace_100"] 56.603 μs (5%) 3.48 KiB (1%) 80
["contract", "matmul_inplace_20"] 23.301 μs (5%) 3.48 KiB (1%) 80
["contract", "matmul_inplace_40"] 26.502 μs (5%) 3.48 KiB (1%) 80
["contract", "matmul_inplace_60"] 33.602 μs (5%) 3.48 KiB (1%) 80
["contract", "matmul_inplace_80"] 42.203 μs (5%) 3.48 KiB (1%) 80
["dmrg", "1d_S=1_heisenberg"] 27.354 s (5%) 2.290 s 38.54 GiB (1%) 4617493
["dmrg", "1d_S=1_heisenberg_qn"] 39.703 s (5%) 2.611 s 16.57 GiB (1%) 144652132
["indexset", "constructor", "function"] 662.459 ns (5%) 1.98 KiB (1%) 9
["indexset", "filter", "function"] 1.410 μs (5%) 464 bytes (1%) 3
["indexset", "filter", "function_order"] 130.359 ns (5%) 448 bytes (1%) 2
["indexset", "filter", "kwargs"] 466.357 ns (5%) 240 bytes (1%) 3
["indexset", "filter", "order_kwargs"] 108.224 ns (5%) 224 bytes (1%) 2
["indexset", "uniqueinds", "3_inputs"] 686.938 ns (5%) 880 bytes (1%) 6
["indexset", "uniqueinds", "filter_not_tags"] 931.103 ns (5%) 1.28 KiB (1%) 15
["indexset", "uniqueinds", "filter_tags"] 617.276 ns (5%) 880 bytes (1%) 6
["indexset", "uniqueinds", "nofilter0"] 3.388 μs (5%) 96 bytes (1%) 2
["indexset", "uniqueinds", "nofilter2"] 727.628 ns (5%) 1.19 KiB (1%) 7
["indexset", "uniqueinds", "order0"] 104.217 ns (5%)
["indexset", "uniqueinds", "order2"] 200.013 ns (5%) 448 bytes (1%) 2
["indexset", "uniqueinds", "order_3_inputs"] 255.796 ns (5%) 224 bytes (1%) 2
["indexset", "uniqueinds", "order_filter_not_tags"] 449.015 ns (5%) 656 bytes (1%) 11
["indexset", "uniqueinds", "order_filter_tags"] 161.669 ns (5%) 224 bytes (1%) 2
["inplace", "axpy!"] 23.301 μs (5%) 1.86 KiB (1%) 45
["op", "op QN"] 66.705 μs (5%) 12.61 KiB (1%) 192
["op", "op"] 21.001 μs (5%) 3.19 KiB (1%) 82
["tagset", "tagset"] 465.513 ns (5%) 336 bytes (1%) 9
["tagset", "tagset_unicode"] 658.535 ns (5%) 336 bytes (1%) 9

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["autompo"]
  • ["contract"]
  • ["dmrg"]
  • ["indexset", "constructor"]
  • ["indexset", "filter"]
  • ["indexset", "uniqueinds"]
  • ["inplace"]
  • ["op"]
  • ["tagset"]

Julia versioninfo

Julia Version 1.5.4
Commit 69fcb5745b (2021-03-11 19:13 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1040-azure #42-Ubuntu SMP Fri Feb 5 15:39:06 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz: 
              speed         user         nice          sys         idle          irq
       #1  2095 MHz      47608 s          0 s      14632 s      36709 s          0 s
       #2  2095 MHz      67137 s          0 s       4274 s      27799 s          0 s
       
  Memory: 6.7913818359375 GB (2985.578125 MB free)
  Uptime: 1005.0 sec
  Load Avg:  1.2978515625  1.37109375  0.98193359375
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-9.0.1 (ORCJIT, skylake-avx512)

Baseline result

Benchmark Report for /home/runner/work/ITensors.jl/ITensors.jl

Job Properties

  • Time of benchmark: 15 Mar 2021 - 19:32
  • Package commit: 2e6fcb
  • Julia commit: 69fcb5
  • Julia command flags: None
  • Environment variables: None

Results

Below is a table of this job's results, obtained by running the benchmarks.
The values listed in the ID column have the structure [parent_group, child_group, ..., key], and can be used to
index into the BaseBenchmarks suite to retrieve the corresponding benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true"
time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
An empty cell means that the value was zero.

ID time GC time memory allocations
["autompo", "Quartic Hamiltonian"] 7.036 s (5%) 452.232 ms 1.77 GiB (1%) 32046311
["autompo", "Quartic QN Hamiltonian"] 17.350 s (5%) 3.842 s 9.51 GiB (1%) 92354346
["contract", "heff_2site"] 5.989 ms (5%) 19.41 MiB (1%) 212
["contract", "matmul_100"] 37.902 μs (5%) 80.25 KiB (1%) 23
["contract", "matmul_20"] 2.600 μs (5%) 5.30 KiB (1%) 22
["contract", "matmul_40"] 6.401 μs (5%) 14.67 KiB (1%) 22
["contract", "matmul_60"] 15.901 μs (5%) 30.25 KiB (1%) 23
["contract", "matmul_80"] 22.402 μs (5%) 52.13 KiB (1%) 23
["contract", "matmul_inplace_100"] 33.803 μs (5%) 1.20 KiB (1%) 12
["contract", "matmul_inplace_20"] 1.400 μs (5%) 1.20 KiB (1%) 12
["contract", "matmul_inplace_40"] 4.800 μs (5%) 1.20 KiB (1%) 12
["contract", "matmul_inplace_60"] 11.700 μs (5%) 1.20 KiB (1%) 12
["contract", "matmul_inplace_80"] 20.001 μs (5%) 1.20 KiB (1%) 12
["dmrg", "1d_S=1_heisenberg"] 23.966 s (5%) 2.496 s 38.55 GiB (1%) 2206549
["dmrg", "1d_S=1_heisenberg_qn"] 14.285 s (5%) 1.755 s 11.33 GiB (1%) 60136662
["indexset", "constructor", "function"] 629.975 ns (5%) 1.97 KiB (1%) 8
["indexset", "filter", "function"] 3.874 s (5%) 841.84 KiB (1%) 16672
["indexset", "filter", "function_order"] 44.511 ns (5%) 224 bytes (1%) 1
["indexset", "filter", "kwargs"] 197.061 ms (5%) 30.83 KiB (1%) 677
["indexset", "filter", "order_kwargs"] 27.644 ns (5%) 112 bytes (1%) 1
["indexset", "uniqueinds", "3_inputs"] 690.386 ns (5%) 864 bytes (1%) 5
["indexset", "uniqueinds", "filter_not_tags"] 848.310 ns (5%) 1.27 KiB (1%) 14
["indexset", "uniqueinds", "filter_tags"] 559.805 ns (5%) 864 bytes (1%) 5
["indexset", "uniqueinds", "nofilter0"] 3.313 μs (5%) 80 bytes (1%) 1
["indexset", "uniqueinds", "nofilter2"] 616.593 ns (5%) 1.17 KiB (1%) 6
["indexset", "uniqueinds", "order0"] 122.428 ns (5%)
["indexset", "uniqueinds", "order2"] 166.354 ns (5%) 224 bytes (1%) 1
["indexset", "uniqueinds", "order_3_inputs"] 217.601 ns (5%) 112 bytes (1%) 1
["indexset", "uniqueinds", "order_filter_not_tags"] 373.258 ns (5%) 544 bytes (1%) 10
["indexset", "uniqueinds", "order_filter_tags"] 111.996 ns (5%) 112 bytes (1%) 1
["inplace", "axpy!"] 16.101 μs (5%) 2.25 KiB (1%) 24
["op", "op QN"] 7.300 μs (5%) 6.73 KiB (1%) 88
["op", "op"] 3.900 μs (5%) 3.44 KiB (1%) 40
["tagset", "tagset"] 451.802 ns (5%) 336 bytes (1%) 9
["tagset", "tagset_unicode"] 656.648 ns (5%) 336 bytes (1%) 9

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["autompo"]
  • ["contract"]
  • ["dmrg"]
  • ["indexset", "constructor"]
  • ["indexset", "filter"]
  • ["indexset", "uniqueinds"]
  • ["inplace"]
  • ["op"]
  • ["tagset"]

Julia versioninfo

Julia Version 1.5.4
Commit 69fcb5745b (2021-03-11 19:13 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1040-azure #42-Ubuntu SMP Fri Feb 5 15:39:06 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz: 
              speed         user         nice          sys         idle          irq
       #1  2095 MHz      93215 s          0 s      17804 s      51549 s          0 s
       #2  2095 MHz      89077 s          0 s       8131 s      65592 s          0 s
       
  Memory: 6.7913818359375 GB (2742.18359375 MB free)
  Uptime: 1642.0 sec
  Load Avg:  1.06689453125  1.21533203125  1.08203125
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-9.0.1 (ORCJIT, skylake-avx512)

Runtime information

Runtime Info
BLAS #threads 2
BLAS.vendor() openblas64
Sys.CPU_THREADS 2

lscpu output:

Architecture:                    x86_64
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
Address sizes:                   46 bits physical, 48 bits virtual
CPU(s):                          2
On-line CPU(s) list:             0,1
Thread(s) per core:              1
Core(s) per socket:              2
Socket(s):                       1
NUMA node(s):                    1
Vendor ID:                       GenuineIntel
CPU family:                      6
Model:                           85
Model name:                      Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
Stepping:                        4
CPU MHz:                         2095.193
BogoMIPS:                        4190.38
Hypervisor vendor:               Microsoft
Virtualization type:             full
L1d cache:                       64 KiB
L1i cache:                       64 KiB
L2 cache:                        2 MiB
L3 cache:                        35.8 MiB
NUMA node0 CPU(s):               0,1
Vulnerability Itlb multihit:     KVM: Vulnerable
Vulnerability L1tf:              Mitigation; PTE Inversion
Vulnerability Mds:               Mitigation; Clear CPU buffers; SMT Host state unknown
Vulnerability Meltdown:          Mitigation; PTI
Vulnerability Spec store bypass: Vulnerable
Vulnerability Spectre v1:        Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:        Mitigation; Full generic retpoline, STIBP disabled, RSB filling
Vulnerability Srbds:             Not affected
Vulnerability Tsx async abort:   Mitigation; Clear CPU buffers; SMT Host state unknown
Flags:                           fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology cpuid pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt avx512cd avx512bw avx512vl xsaveopt xsavec xsaves md_clear
Cpu Property Value
Brand Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
Vendor :Intel
Architecture :Skylake
Model Family: 0x06, Model: 0x55, Stepping: 0x04, Type: 0x00
Cores 2 physical cores, 2 logical cores (on executing CPU)
No Hyperthreading hardware capability detected
Clock Frequencies Not supported by CPU
Data Cache Level 1:3 : (32, 1024, 36608) kbytes
64 byte cache line size
Address Size 48 bits virtual, 46 bits physical
SIMD 512 bit = 64 byte max. SIMD vector size
Time Stamp Counter TSC is accessible via rdtsc
TSC increased at every clock cycle (non-invariant TSC)
Perf. Monitoring Performance Monitoring Counters (PMC) are not supported
Hypervisor Yes, Microsoft

src/itensor.jl Outdated Show resolved Hide resolved
@emstoudenmire emstoudenmire added performance Issues related to performance code simplification Issues related to simplifying code in the library. labels Mar 15, 2021
@emstoudenmire
Copy link
Collaborator

I just did some timings of the JIT overhead of the master branch versus this branch. Running the 1d_heisenberg.jl DMRG example code, I find that from start to finish (all of the JIT time plus all five sweeps) the master branch takes 2min 20s while this PR branch takes 1min 20s. So a whole minute faster! Of course results will vary depending on the sample code and machine used.

src/indexset.jl Outdated Show resolved Hide resolved
@kshyatt
Copy link
Contributor Author

kshyatt commented Mar 16, 2021

A bunch of these got detached from whatever they're meant to refer to...

@mtfishman
Copy link
Member

A bunch of these got detached from whatever they're meant to refer to...

Ugh, pretty annoying. I added notes on which parts of the code the comments were referring to.

@kshyatt
Copy link
Contributor Author

kshyatt commented Mar 16, 2021

Why was this definition removed?

EDIT: referring to removing IndexSet(f::Function, N::Int).

Accidentally 😰

@kshyatt
Copy link
Contributor Author

kshyatt commented Mar 17, 2021

Ugh, forgot that I'd added a similar method to NDTensors. I'll move it over to ITensors and check locally that everything works then push.

@kshyatt
Copy link
Contributor Author

kshyatt commented Mar 17, 2021

Alright, fixed, and added back in the accidentally deleted method.

@kshyatt
Copy link
Contributor Author

kshyatt commented Mar 18, 2021

It actually turned out to be an easy fix (it seems), as long as my solution is acceptable as a stopgap.

@emstoudenmire
Copy link
Collaborator

Good! Yes I think that's a reasonable way to handle it, and I think it's fairly similar to how we handle that case in the C++ version.

@github-actions
Copy link
Contributor

Benchmark result

Judge result

Benchmark Report for /home/runner/work/ITensors.jl/ITensors.jl

Job Properties

  • Time of benchmarks:
    • Target: 18 Mar 2021 - 03:41
    • Baseline: 18 Mar 2021 - 03:51
  • Package commits:
    • Target: d5ddbb
    • Baseline: 2e6fcb
  • Julia commits:
    • Target: 69fcb5
    • Baseline: 69fcb5
  • Julia command flags:
    • Target: None
    • Baseline: None
  • Environment variables:
    • Target: None
    • Baseline: None

Results

A ratio greater than 1.0 denotes a possible regression (marked with ❌), while a ratio less
than 1.0 denotes a possible improvement (marked with ✅). Only significant results - results
that indicate possible regressions or improvements - are shown below (thus, an empty table means that all
benchmark results remained invariant between builds).

ID time ratio memory ratio
["autompo", "Quartic Hamiltonian"] 0.97 (5%) 0.83 (1%) ✅
["autompo", "Quartic QN Hamiltonian"] 1.13 (5%) ❌ 1.15 (1%) ❌
["contract", "matmul_100"] 1.31 (5%) ❌ 1.02 (1%) ❌
["contract", "matmul_20"] 4.70 (5%) ❌ 1.33 (1%) ❌
["contract", "matmul_40"] 2.37 (5%) ❌ 1.12 (1%) ❌
["contract", "matmul_60"] 1.86 (5%) ❌ 1.06 (1%) ❌
["contract", "matmul_80"] 1.55 (5%) ❌ 1.03 (1%) ❌
["contract", "matmul_inplace_100"] 1.58 (5%) ❌ 3.55 (1%) ❌
["contract", "matmul_inplace_20"] 14.36 (5%) ❌ 3.55 (1%) ❌
["contract", "matmul_inplace_40"] 5.13 (5%) ❌ 3.55 (1%) ❌
["contract", "matmul_inplace_60"] 2.67 (5%) ❌ 3.55 (1%) ❌
["contract", "matmul_inplace_80"] 1.99 (5%) ❌ 3.55 (1%) ❌
["dmrg", "1d_S=1_heisenberg"] 1.06 (5%) ❌ 1.00 (1%)
["dmrg", "1d_S=1_heisenberg_qn"] 1.10 (5%) ❌ 1.03 (1%) ❌
["indexset", "constructor", "function"] 1.14 (5%) ❌ 1.04 (1%) ❌
["indexset", "filter", "function"] 0.00 (5%) ✅ 0.00 (1%) ✅
["indexset", "filter", "kwargs"] 0.00 (5%) ✅ 0.04 (1%) ✅
["indexset", "uniqueinds", "3_inputs"] 2.10 (5%) ❌ 1.70 (1%) ❌
["indexset", "uniqueinds", "filter_not_tags"] 1.13 (5%) ❌ 1.07 (1%) ❌
["indexset", "uniqueinds", "filter_tags"] 1.17 (5%) ❌ 1.11 (1%) ❌
["indexset", "uniqueinds", "nofilter0"] 1.05 (5%) ❌ 3.20 (1%) ❌
["indexset", "uniqueinds", "nofilter2"] 1.15 (5%) ❌ 1.07 (1%) ❌
["inplace", "axpy!"] 1.35 (5%) ❌ 1.44 (1%) ❌
["op", "op QN"] 3.71 (5%) ❌ 1.91 (1%) ❌
["op", "op"] 2.97 (5%) ❌ 1.48 (1%) ❌
["tagset", "tagset_unicode"] 1.07 (5%) ❌ 1.00 (1%)

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["autompo"]
  • ["contract"]
  • ["dmrg"]
  • ["indexset", "constructor"]
  • ["indexset", "filter"]
  • ["indexset", "uniqueinds"]
  • ["inplace"]
  • ["op"]
  • ["tagset"]

Julia versioninfo

Target

Julia Version 1.5.4
Commit 69fcb5745b (2021-03-11 19:13 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1040-azure #42-Ubuntu SMP Fri Feb 5 15:39:06 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz: 
              speed         user         nice          sys         idle          irq
       #1  2095 MHz      43010 s         17 s       6024 s      28851 s          0 s
       #2  2095 MHz      45124 s          6 s       6352 s      26265 s          0 s
       
  Memory: 6.7913818359375 GB (2994.3984375 MB free)
  Uptime: 791.0 sec
  Load Avg:  1.41748046875  1.34375  0.87744140625
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-9.0.1 (ORCJIT, skylake-avx512)

Baseline

Julia Version 1.5.4
Commit 69fcb5745b (2021-03-11 19:13 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1040-azure #42-Ubuntu SMP Fri Feb 5 15:39:06 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz: 
              speed         user         nice          sys         idle          irq
       #1  2095 MHz      56640 s         17 s       9597 s      67480 s          0 s
       #2  2095 MHz      92855 s          6 s       7682 s      33132 s          0 s
       
  Memory: 6.7913818359375 GB (2748.25390625 MB free)
  Uptime: 1351.0 sec
  Load Avg:  1.11767578125  1.263671875  1.05126953125
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-9.0.1 (ORCJIT, skylake-avx512)

Target result

Benchmark Report for /home/runner/work/ITensors.jl/ITensors.jl

Job Properties

  • Time of benchmark: 18 Mar 2021 - 3:41
  • Package commit: d5ddbb
  • Julia commit: 69fcb5
  • Julia command flags: None
  • Environment variables: None

Results

Below is a table of this job's results, obtained by running the benchmarks.
The values listed in the ID column have the structure [parent_group, child_group, ..., key], and can be used to
index into the BaseBenchmarks suite to retrieve the corresponding benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true"
time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
An empty cell means that the value was zero.

ID time GC time memory allocations
["autompo", "Quartic Hamiltonian"] 6.066 s (5%) 303.156 ms 1.48 GiB (1%) 18765389
["autompo", "Quartic QN Hamiltonian"] 17.860 s (5%) 4.020 s 10.88 GiB (1%) 89442306
["contract", "heff_2site"] 5.891 ms (5%) 19.42 MiB (1%) 312
["contract", "matmul_100"] 48.601 μs (5%) 82.02 KiB (1%) 48
["contract", "matmul_20"] 12.700 μs (5%) 7.06 KiB (1%) 47
["contract", "matmul_40"] 16.600 μs (5%) 16.44 KiB (1%) 47
["contract", "matmul_60"] 25.801 μs (5%) 32.02 KiB (1%) 48
["contract", "matmul_80"] 33.600 μs (5%) 53.89 KiB (1%) 48
["contract", "matmul_inplace_100"] 51.601 μs (5%) 4.27 KiB (1%) 59
["contract", "matmul_inplace_20"] 20.100 μs (5%) 4.27 KiB (1%) 59
["contract", "matmul_inplace_40"] 23.100 μs (5%) 4.27 KiB (1%) 59
["contract", "matmul_inplace_60"] 29.900 μs (5%) 4.27 KiB (1%) 59
["contract", "matmul_inplace_80"] 38.300 μs (5%) 4.27 KiB (1%) 59
["dmrg", "1d_S=1_heisenberg"] 23.818 s (5%) 2.306 s 38.63 GiB (1%) 3428357
["dmrg", "1d_S=1_heisenberg_qn"] 14.456 s (5%) 1.552 s 11.62 GiB (1%) 62756718
["indexset", "constructor", "function"] 656.534 ns (5%) 2.05 KiB (1%) 9
["indexset", "filter", "function"] 1.540 μs (5%) 1.58 KiB (1%) 4
["indexset", "filter", "kwargs"] 650.006 ns (5%) 1.38 KiB (1%) 4
["indexset", "uniqueinds", "3_inputs"] 1.220 μs (5%) 1.44 KiB (1%) 16
["indexset", "uniqueinds", "filter_not_tags"] 890.698 ns (5%) 1.36 KiB (1%) 15
["indexset", "uniqueinds", "filter_tags"] 583.621 ns (5%) 960 bytes (1%) 6
["indexset", "uniqueinds", "nofilter0"] 3.212 μs (5%) 256 bytes (1%) 4
["indexset", "uniqueinds", "nofilter2"] 635.726 ns (5%) 1.25 KiB (1%) 7
["inplace", "axpy!"] 21.000 μs (5%) 3.25 KiB (1%) 37
["op", "op QN"] 26.000 μs (5%) 12.84 KiB (1%) 123
["op", "op"] 11.000 μs (5%) 5.08 KiB (1%) 50
["tagset", "tagset"] 416.005 ns (5%) 336 bytes (1%) 9
["tagset", "tagset_unicode"] 608.528 ns (5%) 336 bytes (1%) 9

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["autompo"]
  • ["contract"]
  • ["dmrg"]
  • ["indexset", "constructor"]
  • ["indexset", "filter"]
  • ["indexset", "uniqueinds"]
  • ["inplace"]
  • ["op"]
  • ["tagset"]

Julia versioninfo

Julia Version 1.5.4
Commit 69fcb5745b (2021-03-11 19:13 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1040-azure #42-Ubuntu SMP Fri Feb 5 15:39:06 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz: 
              speed         user         nice          sys         idle          irq
       #1  2095 MHz      43010 s         17 s       6024 s      28851 s          0 s
       #2  2095 MHz      45124 s          6 s       6352 s      26265 s          0 s
       
  Memory: 6.7913818359375 GB (2994.3984375 MB free)
  Uptime: 791.0 sec
  Load Avg:  1.41748046875  1.34375  0.87744140625
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-9.0.1 (ORCJIT, skylake-avx512)

Baseline result

Benchmark Report for /home/runner/work/ITensors.jl/ITensors.jl

Job Properties

  • Time of benchmark: 18 Mar 2021 - 3:51
  • Package commit: 2e6fcb
  • Julia commit: 69fcb5
  • Julia command flags: None
  • Environment variables: None

Results

Below is a table of this job's results, obtained by running the benchmarks.
The values listed in the ID column have the structure [parent_group, child_group, ..., key], and can be used to
index into the BaseBenchmarks suite to retrieve the corresponding benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true"
time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
An empty cell means that the value was zero.

ID time GC time memory allocations
["autompo", "Quartic Hamiltonian"] 6.262 s (5%) 410.031 ms 1.77 GiB (1%) 32042797
["autompo", "Quartic QN Hamiltonian"] 15.825 s (5%) 3.706 s 9.49 GiB (1%) 92184034
["contract", "heff_2site"] 5.613 ms (5%) 19.41 MiB (1%) 212
["contract", "matmul_100"] 37.200 μs (5%) 80.25 KiB (1%) 23
["contract", "matmul_20"] 2.700 μs (5%) 5.30 KiB (1%) 22
["contract", "matmul_40"] 7.000 μs (5%) 14.67 KiB (1%) 22
["contract", "matmul_60"] 13.900 μs (5%) 30.25 KiB (1%) 23
["contract", "matmul_80"] 21.700 μs (5%) 52.13 KiB (1%) 23
["contract", "matmul_inplace_100"] 32.700 μs (5%) 1.20 KiB (1%) 12
["contract", "matmul_inplace_20"] 1.400 μs (5%) 1.20 KiB (1%) 12
["contract", "matmul_inplace_40"] 4.500 μs (5%) 1.20 KiB (1%) 12
["contract", "matmul_inplace_60"] 11.200 μs (5%) 1.20 KiB (1%) 12
["contract", "matmul_inplace_80"] 19.200 μs (5%) 1.20 KiB (1%) 12
["dmrg", "1d_S=1_heisenberg"] 22.436 s (5%) 2.388 s 38.55 GiB (1%) 2206549
["dmrg", "1d_S=1_heisenberg_qn"] 13.113 s (5%) 1.621 s 11.33 GiB (1%) 60136662
["indexset", "constructor", "function"] 576.404 ns (5%) 1.97 KiB (1%) 8
["indexset", "filter", "function"] 3.275 s (5%) 841.84 KiB (1%) 16672
["indexset", "filter", "function_order"] 0.001 ns (5%) 224 bytes (1%) 1
["indexset", "filter", "kwargs"] 186.424 ms (5%) 34.19 KiB (1%) 753
["indexset", "filter", "order_kwargs"] 0.001 ns (5%) 112 bytes (1%) 1
["indexset", "uniqueinds", "3_inputs"] 580.000 ns (5%) 864 bytes (1%) 5
["indexset", "uniqueinds", "filter_not_tags"] 788.395 ns (5%) 1.27 KiB (1%) 14
["indexset", "uniqueinds", "filter_tags"] 499.441 ns (5%) 864 bytes (1%) 5
["indexset", "uniqueinds", "nofilter0"] 3.050 μs (5%) 80 bytes (1%) 1
["indexset", "uniqueinds", "nofilter2"] 554.768 ns (5%) 1.17 KiB (1%) 6
["indexset", "uniqueinds", "order0"] 100.000 ns (5%)
["indexset", "uniqueinds", "order2"] 100.000 ns (5%) 224 bytes (1%) 1
["indexset", "uniqueinds", "order_3_inputs"] 200.000 ns (5%) 112 bytes (1%) 1
["indexset", "uniqueinds", "order_filter_not_tags"] 300.000 ns (5%) 544 bytes (1%) 10
["indexset", "uniqueinds", "order_filter_tags"] 100.000 ns (5%) 112 bytes (1%) 1
["inplace", "axpy!"] 15.500 μs (5%) 2.25 KiB (1%) 24
["op", "op QN"] 7.000 μs (5%) 6.73 KiB (1%) 88
["op", "op"] 3.700 μs (5%) 3.44 KiB (1%) 40
["tagset", "tagset"] 423.005 ns (5%) 336 bytes (1%) 9
["tagset", "tagset_unicode"] 567.625 ns (5%) 336 bytes (1%) 9

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["autompo"]
  • ["contract"]
  • ["dmrg"]
  • ["indexset", "constructor"]
  • ["indexset", "filter"]
  • ["indexset", "uniqueinds"]
  • ["inplace"]
  • ["op"]
  • ["tagset"]

Julia versioninfo

Julia Version 1.5.4
Commit 69fcb5745b (2021-03-11 19:13 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1040-azure #42-Ubuntu SMP Fri Feb 5 15:39:06 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz: 
              speed         user         nice          sys         idle          irq
       #1  2095 MHz      56640 s         17 s       9597 s      67480 s          0 s
       #2  2095 MHz      92855 s          6 s       7682 s      33132 s          0 s
       
  Memory: 6.7913818359375 GB (2748.25390625 MB free)
  Uptime: 1351.0 sec
  Load Avg:  1.11767578125  1.263671875  1.05126953125
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-9.0.1 (ORCJIT, skylake-avx512)

Runtime information

Runtime Info
BLAS #threads 2
BLAS.vendor() openblas64
Sys.CPU_THREADS 2

lscpu output:

Architecture:                    x86_64
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
Address sizes:                   46 bits physical, 48 bits virtual
CPU(s):                          2
On-line CPU(s) list:             0,1
Thread(s) per core:              1
Core(s) per socket:              2
Socket(s):                       1
NUMA node(s):                    1
Vendor ID:                       GenuineIntel
CPU family:                      6
Model:                           85
Model name:                      Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
Stepping:                        4
CPU MHz:                         2095.076
BogoMIPS:                        4190.15
Hypervisor vendor:               Microsoft
Virtualization type:             full
L1d cache:                       64 KiB
L1i cache:                       64 KiB
L2 cache:                        2 MiB
L3 cache:                        35.8 MiB
NUMA node0 CPU(s):               0,1
Vulnerability Itlb multihit:     KVM: Vulnerable
Vulnerability L1tf:              Mitigation; PTE Inversion
Vulnerability Mds:               Mitigation; Clear CPU buffers; SMT Host state unknown
Vulnerability Meltdown:          Mitigation; PTI
Vulnerability Spec store bypass: Vulnerable
Vulnerability Spectre v1:        Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:        Mitigation; Full generic retpoline, STIBP disabled, RSB filling
Vulnerability Srbds:             Not affected
Vulnerability Tsx async abort:   Mitigation; Clear CPU buffers; SMT Host state unknown
Flags:                           fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology cpuid pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt avx512cd avx512bw avx512vl xsaveopt xsavec xsaves md_clear
Cpu Property Value
Brand Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
Vendor :Intel
Architecture :Skylake
Model Family: 0x06, Model: 0x55, Stepping: 0x04, Type: 0x00
Cores 2 physical cores, 2 logical cores (on executing CPU)
No Hyperthreading hardware capability detected
Clock Frequencies Not supported by CPU
Data Cache Level 1:3 : (32, 1024, 36608) kbytes
64 byte cache line size
Address Size 48 bits virtual, 46 bits physical
SIMD 512 bit = 64 byte max. SIMD vector size
Time Stamp Counter TSC is accessible via rdtsc
TSC increased at every clock cycle (non-invariant TSC)
Perf. Monitoring Performance Monitoring Counters (PMC) are not supported
Hypervisor Yes, Microsoft

@kshyatt
Copy link
Contributor Author

kshyatt commented Mar 18, 2021

OK, if this is otherwise good to go I think the only thing left to be dealt with is the doc build.

@kshyatt
Copy link
Contributor Author

kshyatt commented Mar 18, 2021

Which I don't 100% understand, by the way, since it seems like the filtering mechanism isn't working?

@emstoudenmire
Copy link
Collaborator

Yes, the output is not the most helpful there. What was going on is a minor change in the output of DMRG, so the filter had to be corrected. It was from a different PR where I think I merged it without fixing that doctest!

But there was a second set of doctest errors too regarding doctests that used the ITensor{N} notation, so those had to be fixed too. Let's see if it passes now! It did locally for me.

@kshyatt
Copy link
Contributor Author

kshyatt commented Mar 18, 2021

Incredible, thank you! Is this ready to go if the lights turn green?

@github-actions
Copy link
Contributor

Benchmark result

Judge result

Benchmark Report for /home/runner/work/ITensors.jl/ITensors.jl

Job Properties

  • Time of benchmarks:
    • Target: 18 Mar 2021 - 14:36
    • Baseline: 18 Mar 2021 - 14:48
  • Package commits:
    • Target: 3b5b64
    • Baseline: 2e6fcb
  • Julia commits:
    • Target: 69fcb5
    • Baseline: 69fcb5
  • Julia command flags:
    • Target: None
    • Baseline: None
  • Environment variables:
    • Target: None
    • Baseline: None

Results

A ratio greater than 1.0 denotes a possible regression (marked with ❌), while a ratio less
than 1.0 denotes a possible improvement (marked with ✅). Only significant results - results
that indicate possible regressions or improvements - are shown below (thus, an empty table means that all
benchmark results remained invariant between builds).

ID time ratio memory ratio
["autompo", "Quartic Hamiltonian"] 0.93 (5%) ✅ 0.83 (1%) ✅
["autompo", "Quartic QN Hamiltonian"] 1.17 (5%) ❌ 1.14 (1%) ❌
["contract", "matmul_100"] 1.27 (5%) ❌ 1.02 (1%) ❌
["contract", "matmul_20"] 4.71 (5%) ❌ 1.33 (1%) ❌
["contract", "matmul_40"] 2.51 (5%) ❌ 1.12 (1%) ❌
["contract", "matmul_60"] 1.58 (5%) ❌ 1.06 (1%) ❌
["contract", "matmul_80"] 1.45 (5%) ❌ 1.03 (1%) ❌
["contract", "matmul_inplace_100"] 1.46 (5%) ❌ 3.55 (1%) ❌
["contract", "matmul_inplace_20"] 12.05 (5%) ❌ 3.55 (1%) ❌
["contract", "matmul_inplace_40"] 4.20 (5%) ❌ 3.55 (1%) ❌
["contract", "matmul_inplace_60"] 2.36 (5%) ❌ 3.55 (1%) ❌
["contract", "matmul_inplace_80"] 1.91 (5%) ❌ 3.55 (1%) ❌
["dmrg", "1d_S=1_heisenberg"] 1.06 (5%) ❌ 1.00 (1%)
["dmrg", "1d_S=1_heisenberg_qn"] 1.07 (5%) ❌ 1.02 (1%) ❌
["indexset", "constructor", "function"] 0.98 (5%) 1.04 (1%) ❌
["indexset", "filter", "function"] 0.00 (5%) ✅ 0.00 (1%) ✅
["indexset", "filter", "kwargs"] 0.00 (5%) ✅ 0.04 (1%) ✅
["indexset", "uniqueinds", "3_inputs"] 1.98 (5%) ❌ 1.70 (1%) ❌
["indexset", "uniqueinds", "filter_not_tags"] 1.09 (5%) ❌ 1.07 (1%) ❌
["indexset", "uniqueinds", "filter_tags"] 1.10 (5%) ❌ 1.11 (1%) ❌
["indexset", "uniqueinds", "nofilter0"] 1.09 (5%) ❌ 3.20 (1%) ❌
["indexset", "uniqueinds", "nofilter2"] 1.00 (5%) 1.07 (1%) ❌
["inplace", "axpy!"] 1.61 (5%) ❌ 1.44 (1%) ❌
["op", "op QN"] 3.99 (5%) ❌ 1.91 (1%) ❌
["op", "op"] 3.00 (5%) ❌ 1.48 (1%) ❌
["tagset", "tagset_unicode"] 1.13 (5%) ❌ 1.00 (1%)

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["autompo"]
  • ["contract"]
  • ["dmrg"]
  • ["indexset", "constructor"]
  • ["indexset", "filter"]
  • ["indexset", "uniqueinds"]
  • ["inplace"]
  • ["op"]
  • ["tagset"]

Julia versioninfo

Target

Julia Version 1.5.4
Commit 69fcb5745b (2021-03-11 19:13 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1040-azure #42-Ubuntu SMP Fri Feb 5 15:39:06 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz: 
              speed         user         nice          sys         idle          irq
       #1  2294 MHz      53333 s          0 s       9729 s      28926 s          0 s
       #2  2294 MHz      53230 s          0 s       4295 s      34737 s          0 s
       
  Memory: 6.7913818359375 GB (2751.0859375 MB free)
  Uptime: 935.0 sec
  Load Avg:  1.29638671875  1.3193359375  0.94580078125
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-9.0.1 (ORCJIT, broadwell)

Baseline

Julia Version 1.5.4
Commit 69fcb5745b (2021-03-11 19:13 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1040-azure #42-Ubuntu SMP Fri Feb 5 15:39:06 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz: 
              speed         user         nice          sys         idle          irq
       #1  2294 MHz      93820 s          0 s      13543 s      52981 s          0 s
       #2  2294 MHz      87905 s          0 s       6620 s      66002 s          0 s
       
  Memory: 6.7913818359375 GB (2740.4453125 MB free)
  Uptime: 1619.0 sec
  Load Avg:  1.13720703125  1.30908203125  1.1318359375
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-9.0.1 (ORCJIT, broadwell)

Target result

Benchmark Report for /home/runner/work/ITensors.jl/ITensors.jl

Job Properties

  • Time of benchmark: 18 Mar 2021 - 14:36
  • Package commit: 3b5b64
  • Julia commit: 69fcb5
  • Julia command flags: None
  • Environment variables: None

Results

Below is a table of this job's results, obtained by running the benchmarks.
The values listed in the ID column have the structure [parent_group, child_group, ..., key], and can be used to
index into the BaseBenchmarks suite to retrieve the corresponding benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true"
time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
An empty cell means that the value was zero.

ID time GC time memory allocations
["autompo", "Quartic Hamiltonian"] 6.973 s (5%) 325.019 ms 1.48 GiB (1%) 18765378
["autompo", "Quartic QN Hamiltonian"] 22.140 s (5%) 4.340 s 10.83 GiB (1%) 89115174
["contract", "heff_2site"] 7.632 ms (5%) 19.42 MiB (1%) 312
["contract", "matmul_100"] 91.602 μs (5%) 82.02 KiB (1%) 48
["contract", "matmul_20"] 16.500 μs (5%) 7.06 KiB (1%) 47
["contract", "matmul_40"] 25.400 μs (5%) 16.44 KiB (1%) 47
["contract", "matmul_60"] 42.901 μs (5%) 32.02 KiB (1%) 48
["contract", "matmul_80"] 57.300 μs (5%) 53.89 KiB (1%) 48
["contract", "matmul_inplace_100"] 94.401 μs (5%) 4.27 KiB (1%) 59
["contract", "matmul_inplace_20"] 22.900 μs (5%) 4.27 KiB (1%) 59
["contract", "matmul_inplace_40"] 31.900 μs (5%) 4.27 KiB (1%) 59
["contract", "matmul_inplace_60"] 47.601 μs (5%) 4.27 KiB (1%) 59
["contract", "matmul_inplace_80"] 64.700 μs (5%) 4.27 KiB (1%) 59
["dmrg", "1d_S=1_heisenberg"] 32.401 s (5%) 2.828 s 38.63 GiB (1%) 3428357
["dmrg", "1d_S=1_heisenberg_qn"] 18.870 s (5%) 1.723 s 11.61 GiB (1%) 62756106
["indexset", "constructor", "function"] 651.685 ns (5%) 2.05 KiB (1%) 9
["indexset", "filter", "function"] 2.090 μs (5%) 1.58 KiB (1%) 4
["indexset", "filter", "kwargs"] 660.000 ns (5%) 1.38 KiB (1%) 4
["indexset", "uniqueinds", "3_inputs"] 1.130 μs (5%) 1.44 KiB (1%) 16
["indexset", "uniqueinds", "filter_not_tags"] 812.195 ns (5%) 1.36 KiB (1%) 15
["indexset", "uniqueinds", "filter_tags"] 538.144 ns (5%) 960 bytes (1%) 6
["indexset", "uniqueinds", "nofilter0"] 2.511 μs (5%) 256 bytes (1%) 4
["indexset", "uniqueinds", "nofilter2"] 569.312 ns (5%) 1.25 KiB (1%) 7
["inplace", "axpy!"] 25.400 μs (5%) 3.25 KiB (1%) 37
["op", "op QN"] 29.900 μs (5%) 12.84 KiB (1%) 123
["op", "op"] 10.200 μs (5%) 5.08 KiB (1%) 50
["tagset", "tagset"] 369.761 ns (5%) 336 bytes (1%) 9
["tagset", "tagset_unicode"] 521.875 ns (5%) 336 bytes (1%) 9

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["autompo"]
  • ["contract"]
  • ["dmrg"]
  • ["indexset", "constructor"]
  • ["indexset", "filter"]
  • ["indexset", "uniqueinds"]
  • ["inplace"]
  • ["op"]
  • ["tagset"]

Julia versioninfo

Julia Version 1.5.4
Commit 69fcb5745b (2021-03-11 19:13 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1040-azure #42-Ubuntu SMP Fri Feb 5 15:39:06 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz: 
              speed         user         nice          sys         idle          irq
       #1  2294 MHz      53333 s          0 s       9729 s      28926 s          0 s
       #2  2294 MHz      53230 s          0 s       4295 s      34737 s          0 s
       
  Memory: 6.7913818359375 GB (2751.0859375 MB free)
  Uptime: 935.0 sec
  Load Avg:  1.29638671875  1.3193359375  0.94580078125
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-9.0.1 (ORCJIT, broadwell)

Baseline result

Benchmark Report for /home/runner/work/ITensors.jl/ITensors.jl

Job Properties

  • Time of benchmark: 18 Mar 2021 - 14:48
  • Package commit: 2e6fcb
  • Julia commit: 69fcb5
  • Julia command flags: None
  • Environment variables: None

Results

Below is a table of this job's results, obtained by running the benchmarks.
The values listed in the ID column have the structure [parent_group, child_group, ..., key], and can be used to
index into the BaseBenchmarks suite to retrieve the corresponding benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true"
time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
An empty cell means that the value was zero.

ID time GC time memory allocations
["autompo", "Quartic Hamiltonian"] 7.464 s (5%) 466.548 ms 1.77 GiB (1%) 32066934
["autompo", "Quartic QN Hamiltonian"] 18.985 s (5%) 3.888 s 9.54 GiB (1%) 92549823
["contract", "heff_2site"] 7.591 ms (5%) 19.41 MiB (1%) 212
["contract", "matmul_100"] 72.301 μs (5%) 80.25 KiB (1%) 23
["contract", "matmul_20"] 3.500 μs (5%) 5.30 KiB (1%) 22
["contract", "matmul_40"] 10.100 μs (5%) 14.67 KiB (1%) 22
["contract", "matmul_60"] 27.200 μs (5%) 30.25 KiB (1%) 23
["contract", "matmul_80"] 39.400 μs (5%) 52.13 KiB (1%) 23
["contract", "matmul_inplace_100"] 64.501 μs (5%) 1.20 KiB (1%) 12
["contract", "matmul_inplace_20"] 1.900 μs (5%) 1.20 KiB (1%) 12
["contract", "matmul_inplace_40"] 7.600 μs (5%) 1.20 KiB (1%) 12
["contract", "matmul_inplace_60"] 20.200 μs (5%) 1.20 KiB (1%) 12
["contract", "matmul_inplace_80"] 33.900 μs (5%) 1.20 KiB (1%) 12
["dmrg", "1d_S=1_heisenberg"] 30.585 s (5%) 3.253 s 38.55 GiB (1%) 2206549
["dmrg", "1d_S=1_heisenberg_qn"] 17.665 s (5%) 2.039 s 11.33 GiB (1%) 60136662
["indexset", "constructor", "function"] 664.051 ns (5%) 1.97 KiB (1%) 8
["indexset", "filter", "function"] 3.800 s (5%) 841.84 KiB (1%) 16672
["indexset", "filter", "function_order"] 0.001 ns (5%) 224 bytes (1%) 1
["indexset", "filter", "kwargs"] 223.881 ms (5%) 33.46 KiB (1%) 737
["indexset", "filter", "order_kwargs"] 0.001 ns (5%) 112 bytes (1%) 1
["indexset", "uniqueinds", "3_inputs"] 570.000 ns (5%) 864 bytes (1%) 5
["indexset", "uniqueinds", "filter_not_tags"] 743.902 ns (5%) 1.27 KiB (1%) 14
["indexset", "uniqueinds", "filter_tags"] 490.722 ns (5%) 864 bytes (1%) 5
["indexset", "uniqueinds", "nofilter0"] 2.300 μs (5%) 80 bytes (1%) 1
["indexset", "uniqueinds", "nofilter2"] 570.370 ns (5%) 1.17 KiB (1%) 6
["indexset", "uniqueinds", "order0"] 100.000 ns (5%)
["indexset", "uniqueinds", "order2"] 100.000 ns (5%) 224 bytes (1%) 1
["indexset", "uniqueinds", "order_3_inputs"] 200.000 ns (5%) 112 bytes (1%) 1
["indexset", "uniqueinds", "order_filter_not_tags"] 300.000 ns (5%) 544 bytes (1%) 10
["indexset", "uniqueinds", "order_filter_tags"] 100.000 ns (5%) 112 bytes (1%) 1
["inplace", "axpy!"] 15.801 μs (5%) 2.25 KiB (1%) 24
["op", "op QN"] 7.500 μs (5%) 6.73 KiB (1%) 88
["op", "op"] 3.400 μs (5%) 3.44 KiB (1%) 40
["tagset", "tagset"] 360.488 ns (5%) 336 bytes (1%) 9
["tagset", "tagset_unicode"] 461.464 ns (5%) 336 bytes (1%) 9

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["autompo"]
  • ["contract"]
  • ["dmrg"]
  • ["indexset", "constructor"]
  • ["indexset", "filter"]
  • ["indexset", "uniqueinds"]
  • ["inplace"]
  • ["op"]
  • ["tagset"]

Julia versioninfo

Julia Version 1.5.4
Commit 69fcb5745b (2021-03-11 19:13 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1040-azure #42-Ubuntu SMP Fri Feb 5 15:39:06 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz: 
              speed         user         nice          sys         idle          irq
       #1  2294 MHz      93820 s          0 s      13543 s      52981 s          0 s
       #2  2294 MHz      87905 s          0 s       6620 s      66002 s          0 s
       
  Memory: 6.7913818359375 GB (2740.4453125 MB free)
  Uptime: 1619.0 sec
  Load Avg:  1.13720703125  1.30908203125  1.1318359375
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-9.0.1 (ORCJIT, broadwell)

Runtime information

Runtime Info
BLAS #threads 2
BLAS.vendor() openblas64
Sys.CPU_THREADS 2

lscpu output:

Architecture:                    x86_64
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
Address sizes:                   46 bits physical, 48 bits virtual
CPU(s):                          2
On-line CPU(s) list:             0,1
Thread(s) per core:              1
Core(s) per socket:              2
Socket(s):                       1
NUMA node(s):                    1
Vendor ID:                       GenuineIntel
CPU family:                      6
Model:                           79
Model name:                      Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
Stepping:                        1
CPU MHz:                         2294.684
BogoMIPS:                        4589.36
Hypervisor vendor:               Microsoft
Virtualization type:             full
L1d cache:                       64 KiB
L1i cache:                       64 KiB
L2 cache:                        512 KiB
L3 cache:                        50 MiB
NUMA node0 CPU(s):               0,1
Vulnerability Itlb multihit:     KVM: Vulnerable
Vulnerability L1tf:              Mitigation; PTE Inversion
Vulnerability Mds:               Mitigation; Clear CPU buffers; SMT Host state unknown
Vulnerability Meltdown:          Mitigation; PTI
Vulnerability Spec store bypass: Vulnerable
Vulnerability Spectre v1:        Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:        Mitigation; Full generic retpoline, STIBP disabled, RSB filling
Vulnerability Srbds:             Not affected
Vulnerability Tsx async abort:   Mitigation; Clear CPU buffers; SMT Host state unknown
Flags:                           fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology cpuid pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm rdseed adx smap xsaveopt md_clear
Cpu Property Value
Brand Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
Vendor :Intel
Architecture :Broadwell
Model Family: 0x06, Model: 0x4f, Stepping: 0x01, Type: 0x00
Cores 2 physical cores, 2 logical cores (on executing CPU)
No Hyperthreading hardware capability detected
Clock Frequencies Not supported by CPU
Data Cache Level 1:3 : (32, 256, 51200) kbytes
64 byte cache line size
Address Size 48 bits virtual, 46 bits physical
SIMD 256 bit = 32 byte max. SIMD vector size
Time Stamp Counter TSC is accessible via rdtsc
TSC increased at every clock cycle (non-invariant TSC)
Perf. Monitoring Performance Monitoring Counters (PMC) are not supported
Hypervisor Yes, Microsoft

@emstoudenmire
Copy link
Collaborator

It has my approval. Lets also get @mtfishman 's final signoff before merging, since he mentioned "remaining design issues" in his last comment.

src/itensor.jl Outdated Show resolved Hide resolved
@kshyatt
Copy link
Contributor Author

kshyatt commented Mar 18, 2021

Miles I should hopefully have kept your commit in even with the force push.

@emstoudenmire
Copy link
Collaborator

Hm, looks like the Doc build is failing again. But it's easy to re-fix now that I know how to do it. Only a few lines to change back!

@kshyatt
Copy link
Contributor Author

kshyatt commented Mar 18, 2021

Let me fix the HDF5 issue as well. Annoying to catch these when the tests take nearly an hour to run.

@emstoudenmire
Copy link
Collaborator

Yes I do wish the tests ran more quickly. This PR will actually help with that compared to previous versions of the code! But we could certainly lighten some of the tests which have a combinatorial explosion of cases.

I just pushed a commit which restores the ability of adding emptyITensor() to other tensors, using the code you had in the + and - function previously. The case of ITensor() + ITensor(i,j) errors - as it should - because the storage is not Empty and the dimensions don't match.

Definitely good to have the HDF5 code back. I'll check the last commit to see if anything else we wanted got dropped.

@emstoudenmire
Copy link
Collaborator

On my end it looks like the HDF5 writing fix for emptyITensor is still there.

@kshyatt
Copy link
Contributor Author

kshyatt commented Mar 18, 2021

I haven't pushed it yet, one minute, just checking that it doesn't conflict with anything.

Get Jim to buy you a 1000 core CI rig and then pmap over the test files 😈

@github-actions
Copy link
Contributor

Benchmark result

Judge result

Benchmark Report for /home/runner/work/ITensors.jl/ITensors.jl

Job Properties

  • Time of benchmarks:
    • Target: 18 Mar 2021 - 19:43
    • Baseline: 18 Mar 2021 - 19:54
  • Package commits:
    • Target: b83e56
    • Baseline: 2e6fcb
  • Julia commits:
    • Target: 69fcb5
    • Baseline: 69fcb5
  • Julia command flags:
    • Target: None
    • Baseline: None
  • Environment variables:
    • Target: None
    • Baseline: None

Results

A ratio greater than 1.0 denotes a possible regression (marked with ❌), while a ratio less
than 1.0 denotes a possible improvement (marked with ✅). Only significant results - results
that indicate possible regressions or improvements - are shown below (thus, an empty table means that all
benchmark results remained invariant between builds).

ID time ratio memory ratio
["autompo", "Quartic Hamiltonian"] 0.90 (5%) ✅ 0.84 (1%) ✅
["autompo", "Quartic QN Hamiltonian"] 1.12 (5%) ❌ 1.14 (1%) ❌
["contract", "matmul_100"] 1.19 (5%) ❌ 1.02 (1%) ❌
["contract", "matmul_20"] 4.32 (5%) ❌ 1.33 (1%) ❌
["contract", "matmul_40"] 2.15 (5%) ❌ 1.12 (1%) ❌
["contract", "matmul_60"] 1.42 (5%) ❌ 1.06 (1%) ❌
["contract", "matmul_80"] 1.33 (5%) ❌ 1.03 (1%) ❌
["contract", "matmul_inplace_100"] 1.34 (5%) ❌ 3.55 (1%) ❌
["contract", "matmul_inplace_20"] 11.95 (5%) ❌ 3.55 (1%) ❌
["contract", "matmul_inplace_40"] 3.96 (5%) ❌ 3.55 (1%) ❌
["contract", "matmul_inplace_60"] 2.08 (5%) ❌ 3.55 (1%) ❌
["contract", "matmul_inplace_80"] 1.70 (5%) ❌ 3.55 (1%) ❌
["dmrg", "1d_S=1_heisenberg_qn"] 1.04 (5%) 1.03 (1%) ❌
["indexset", "constructor", "function"] 1.10 (5%) ❌ 1.04 (1%) ❌
["indexset", "filter", "function"] 0.00 (5%) ✅ 0.00 (1%) ✅
["indexset", "filter", "kwargs"] 0.00 (5%) ✅ 0.04 (1%) ✅
["indexset", "uniqueinds", "3_inputs"] 2.11 (5%) ❌ 1.70 (1%) ❌
["indexset", "uniqueinds", "filter_not_tags"] 1.03 (5%) 1.07 (1%) ❌
["indexset", "uniqueinds", "filter_tags"] 1.11 (5%) ❌ 1.11 (1%) ❌
["indexset", "uniqueinds", "nofilter0"] 1.01 (5%) 3.20 (1%) ❌
["indexset", "uniqueinds", "nofilter2"] 1.08 (5%) ❌ 1.07 (1%) ❌
["inplace", "axpy!"] 1.67 (5%) ❌ 1.44 (1%) ❌
["op", "op QN"] 4.10 (5%) ❌ 1.91 (1%) ❌
["op", "op"] 2.80 (5%) ❌ 1.48 (1%) ❌
["tagset", "tagset"] 1.06 (5%) ❌ 1.00 (1%)

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["autompo"]
  • ["contract"]
  • ["dmrg"]
  • ["indexset", "constructor"]
  • ["indexset", "filter"]
  • ["indexset", "uniqueinds"]
  • ["inplace"]
  • ["op"]
  • ["tagset"]

Julia versioninfo

Target

Julia Version 1.5.4
Commit 69fcb5745b (2021-03-11 19:13 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1040-azure #42-Ubuntu SMP Fri Feb 5 15:39:06 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz: 
              speed         user         nice          sys         idle          irq
       #1  2294 MHz      50870 s          0 s       6171 s      56564 s          0 s
       #2  2294 MHz      54380 s          0 s       7252 s      52230 s          0 s
       
  Memory: 6.7913818359375 GB (2908.58984375 MB free)
  Uptime: 1152.0 sec
  Load Avg:  1.38916015625  1.34765625  0.9140625
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-9.0.1 (ORCJIT, broadwell)

Baseline

Julia Version 1.5.4
Commit 69fcb5745b (2021-03-11 19:13 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1040-azure #42-Ubuntu SMP Fri Feb 5 15:39:06 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz: 
              speed         user         nice          sys         idle          irq
       #1  2294 MHz      93517 s          0 s       9856 s      78703 s          0 s
       #2  2294 MHz      87224 s          0 s       9343 s      85772 s          0 s
       
  Memory: 6.7913818359375 GB (2769.296875 MB free)
  Uptime: 1838.0 sec
  Load Avg:  1.06005859375  1.21044921875  1.0693359375
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-9.0.1 (ORCJIT, broadwell)

Target result

Benchmark Report for /home/runner/work/ITensors.jl/ITensors.jl

Job Properties

  • Time of benchmark: 18 Mar 2021 - 19:43
  • Package commit: b83e56
  • Julia commit: 69fcb5
  • Julia command flags: None
  • Environment variables: None

Results

Below is a table of this job's results, obtained by running the benchmarks.
The values listed in the ID column have the structure [parent_group, child_group, ..., key], and can be used to
index into the BaseBenchmarks suite to retrieve the corresponding benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true"
time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
An empty cell means that the value was zero.

ID time GC time memory allocations
["autompo", "Quartic Hamiltonian"] 6.689 s (5%) 323.613 ms 1.48 GiB (1%) 18765381
["autompo", "Quartic QN Hamiltonian"] 21.927 s (5%) 4.064 s 10.82 GiB (1%) 89046249
["contract", "heff_2site"] 7.525 ms (5%) 19.42 MiB (1%) 312
["contract", "matmul_100"] 87.602 μs (5%) 82.02 KiB (1%) 48
["contract", "matmul_20"] 14.700 μs (5%) 7.06 KiB (1%) 47
["contract", "matmul_40"] 23.601 μs (5%) 16.44 KiB (1%) 47
["contract", "matmul_60"] 39.701 μs (5%) 32.02 KiB (1%) 48
["contract", "matmul_80"] 52.101 μs (5%) 53.89 KiB (1%) 48
["contract", "matmul_inplace_100"] 89.902 μs (5%) 4.27 KiB (1%) 59
["contract", "matmul_inplace_20"] 22.700 μs (5%) 4.27 KiB (1%) 59
["contract", "matmul_inplace_40"] 30.900 μs (5%) 4.27 KiB (1%) 59
["contract", "matmul_inplace_60"] 45.201 μs (5%) 4.27 KiB (1%) 59
["contract", "matmul_inplace_80"] 58.702 μs (5%) 4.27 KiB (1%) 59
["dmrg", "1d_S=1_heisenberg"] 30.504 s (5%) 2.543 s 38.63 GiB (1%) 3428357
["dmrg", "1d_S=1_heisenberg_qn"] 18.307 s (5%) 1.687 s 11.62 GiB (1%) 62756698
["indexset", "constructor", "function"] 665.664 ns (5%) 2.05 KiB (1%) 9
["indexset", "filter", "function"] 1.870 μs (5%) 1.58 KiB (1%) 4
["indexset", "filter", "kwargs"] 569.898 ns (5%) 1.38 KiB (1%) 4
["indexset", "uniqueinds", "3_inputs"] 1.120 μs (5%) 1.44 KiB (1%) 16
["indexset", "uniqueinds", "filter_not_tags"] 760.013 ns (5%) 1.36 KiB (1%) 15
["indexset", "uniqueinds", "filter_tags"] 517.989 ns (5%) 960 bytes (1%) 6
["indexset", "uniqueinds", "nofilter0"] 2.378 μs (5%) 256 bytes (1%) 4
["indexset", "uniqueinds", "nofilter2"] 523.918 ns (5%) 1.25 KiB (1%) 7
["inplace", "axpy!"] 25.200 μs (5%) 3.25 KiB (1%) 37
["op", "op QN"] 29.500 μs (5%) 12.84 KiB (1%) 123
["op", "op"] 9.800 μs (5%) 5.08 KiB (1%) 50
["tagset", "tagset"] 377.194 ns (5%) 336 bytes (1%) 9
["tagset", "tagset_unicode"] 499.490 ns (5%) 336 bytes (1%) 9

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["autompo"]
  • ["contract"]
  • ["dmrg"]
  • ["indexset", "constructor"]
  • ["indexset", "filter"]
  • ["indexset", "uniqueinds"]
  • ["inplace"]
  • ["op"]
  • ["tagset"]

Julia versioninfo

Julia Version 1.5.4
Commit 69fcb5745b (2021-03-11 19:13 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1040-azure #42-Ubuntu SMP Fri Feb 5 15:39:06 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz: 
              speed         user         nice          sys         idle          irq
       #1  2294 MHz      50870 s          0 s       6171 s      56564 s          0 s
       #2  2294 MHz      54380 s          0 s       7252 s      52230 s          0 s
       
  Memory: 6.7913818359375 GB (2908.58984375 MB free)
  Uptime: 1152.0 sec
  Load Avg:  1.38916015625  1.34765625  0.9140625
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-9.0.1 (ORCJIT, broadwell)

Baseline result

Benchmark Report for /home/runner/work/ITensors.jl/ITensors.jl

Job Properties

  • Time of benchmark: 18 Mar 2021 - 19:54
  • Package commit: 2e6fcb
  • Julia commit: 69fcb5
  • Julia command flags: None
  • Environment variables: None

Results

Below is a table of this job's results, obtained by running the benchmarks.
The values listed in the ID column have the structure [parent_group, child_group, ..., key], and can be used to
index into the BaseBenchmarks suite to retrieve the corresponding benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true"
time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
An empty cell means that the value was zero.

ID time GC time memory allocations
["autompo", "Quartic Hamiltonian"] 7.403 s (5%) 451.979 ms 1.77 GiB (1%) 31977113
["autompo", "Quartic QN Hamiltonian"] 19.544 s (5%) 3.918 s 9.52 GiB (1%) 92448563
["contract", "heff_2site"] 7.505 ms (5%) 19.41 MiB (1%) 212
["contract", "matmul_100"] 73.401 μs (5%) 80.25 KiB (1%) 23
["contract", "matmul_20"] 3.400 μs (5%) 5.30 KiB (1%) 22
["contract", "matmul_40"] 11.000 μs (5%) 14.67 KiB (1%) 22
["contract", "matmul_60"] 28.000 μs (5%) 30.25 KiB (1%) 23
["contract", "matmul_80"] 39.201 μs (5%) 52.13 KiB (1%) 23
["contract", "matmul_inplace_100"] 67.001 μs (5%) 1.20 KiB (1%) 12
["contract", "matmul_inplace_20"] 1.900 μs (5%) 1.20 KiB (1%) 12
["contract", "matmul_inplace_40"] 7.800 μs (5%) 1.20 KiB (1%) 12
["contract", "matmul_inplace_60"] 21.700 μs (5%) 1.20 KiB (1%) 12
["contract", "matmul_inplace_80"] 34.600 μs (5%) 1.20 KiB (1%) 12
["dmrg", "1d_S=1_heisenberg"] 29.956 s (5%) 3.257 s 38.55 GiB (1%) 2206549
["dmrg", "1d_S=1_heisenberg_qn"] 17.523 s (5%) 1.956 s 11.33 GiB (1%) 60136662
["indexset", "constructor", "function"] 603.832 ns (5%) 1.97 KiB (1%) 8
["indexset", "filter", "function"] 4.115 s (5%) 841.84 KiB (1%) 16672
["indexset", "filter", "function_order"] 0.001 ns (5%) 224 bytes (1%) 1
["indexset", "filter", "kwargs"] 237.339 ms (5%) 34.19 KiB (1%) 753
["indexset", "filter", "order_kwargs"] 0.001 ns (5%) 112 bytes (1%) 1
["indexset", "uniqueinds", "3_inputs"] 530.000 ns (5%) 864 bytes (1%) 5
["indexset", "uniqueinds", "filter_not_tags"] 740.013 ns (5%) 1.27 KiB (1%) 14
["indexset", "uniqueinds", "filter_tags"] 467.427 ns (5%) 864 bytes (1%) 5
["indexset", "uniqueinds", "nofilter0"] 2.356 μs (5%) 80 bytes (1%) 1
["indexset", "uniqueinds", "nofilter2"] 485.332 ns (5%) 1.17 KiB (1%) 6
["indexset", "uniqueinds", "order0"] 100.000 ns (5%)
["indexset", "uniqueinds", "order2"] 100.000 ns (5%) 224 bytes (1%) 1
["indexset", "uniqueinds", "order_3_inputs"] 100.000 ns (5%) 112 bytes (1%) 1
["indexset", "uniqueinds", "order_filter_not_tags"] 300.000 ns (5%) 544 bytes (1%) 10
["indexset", "uniqueinds", "order_filter_tags"] 100.000 ns (5%) 112 bytes (1%) 1
["inplace", "axpy!"] 15.100 μs (5%) 2.25 KiB (1%) 24
["op", "op QN"] 7.200 μs (5%) 6.73 KiB (1%) 88
["op", "op"] 3.500 μs (5%) 3.44 KiB (1%) 40
["tagset", "tagset"] 354.374 ns (5%) 336 bytes (1%) 9
["tagset", "tagset_unicode"] 514.594 ns (5%) 336 bytes (1%) 9

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["autompo"]
  • ["contract"]
  • ["dmrg"]
  • ["indexset", "constructor"]
  • ["indexset", "filter"]
  • ["indexset", "uniqueinds"]
  • ["inplace"]
  • ["op"]
  • ["tagset"]

Julia versioninfo

Julia Version 1.5.4
Commit 69fcb5745b (2021-03-11 19:13 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1040-azure #42-Ubuntu SMP Fri Feb 5 15:39:06 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz: 
              speed         user         nice          sys         idle          irq
       #1  2294 MHz      93517 s          0 s       9856 s      78703 s          0 s
       #2  2294 MHz      87224 s          0 s       9343 s      85772 s          0 s
       
  Memory: 6.7913818359375 GB (2769.296875 MB free)
  Uptime: 1838.0 sec
  Load Avg:  1.06005859375  1.21044921875  1.0693359375
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-9.0.1 (ORCJIT, broadwell)

Runtime information

Runtime Info
BLAS #threads 2
BLAS.vendor() openblas64
Sys.CPU_THREADS 2

lscpu output:

Architecture:                    x86_64
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
Address sizes:                   46 bits physical, 48 bits virtual
CPU(s):                          2
On-line CPU(s) list:             0,1
Thread(s) per core:              1
Core(s) per socket:              2
Socket(s):                       1
NUMA node(s):                    1
Vendor ID:                       GenuineIntel
CPU family:                      6
Model:                           79
Model name:                      Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
Stepping:                        1
CPU MHz:                         2294.684
BogoMIPS:                        4589.36
Hypervisor vendor:               Microsoft
Virtualization type:             full
L1d cache:                       64 KiB
L1i cache:                       64 KiB
L2 cache:                        512 KiB
L3 cache:                        50 MiB
NUMA node0 CPU(s):               0,1
Vulnerability Itlb multihit:     KVM: Vulnerable
Vulnerability L1tf:              Mitigation; PTE Inversion
Vulnerability Mds:               Mitigation; Clear CPU buffers; SMT Host state unknown
Vulnerability Meltdown:          Mitigation; PTI
Vulnerability Spec store bypass: Vulnerable
Vulnerability Spectre v1:        Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:        Mitigation; Full generic retpoline, STIBP disabled, RSB filling
Vulnerability Srbds:             Not affected
Vulnerability Tsx async abort:   Mitigation; Clear CPU buffers; SMT Host state unknown
Flags:                           fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology cpuid pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm rdseed adx smap xsaveopt md_clear
Cpu Property Value
Brand Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
Vendor :Intel
Architecture :Broadwell
Model Family: 0x06, Model: 0x4f, Stepping: 0x01, Type: 0x00
Cores 2 physical cores, 2 logical cores (on executing CPU)
No Hyperthreading hardware capability detected
Clock Frequencies Not supported by CPU
Data Cache Level 1:3 : (32, 256, 51200) kbytes
64 byte cache line size
Address Size 48 bits virtual, 46 bits physical
SIMD 256 bit = 32 byte max. SIMD vector size
Time Stamp Counter TSC is accessible via rdtsc
TSC increased at every clock cycle (non-invariant TSC)
Perf. Monitoring Performance Monitoring Counters (PMC) are not supported
Hypervisor Yes, Microsoft

@github-actions
Copy link
Contributor

Benchmark result

Judge result

Benchmark Report for /home/runner/work/ITensors.jl/ITensors.jl

Job Properties

  • Time of benchmarks:
    • Target: 18 Mar 2021 - 20:15
    • Baseline: 18 Mar 2021 - 20:26
  • Package commits:
    • Target: 68892c
    • Baseline: 2e6fcb
  • Julia commits:
    • Target: 69fcb5
    • Baseline: 69fcb5
  • Julia command flags:
    • Target: None
    • Baseline: None
  • Environment variables:
    • Target: None
    • Baseline: None

Results

A ratio greater than 1.0 denotes a possible regression (marked with ❌), while a ratio less
than 1.0 denotes a possible improvement (marked with ✅). Only significant results - results
that indicate possible regressions or improvements - are shown below (thus, an empty table means that all
benchmark results remained invariant between builds).

ID time ratio memory ratio
["autompo", "Quartic Hamiltonian"] 0.91 (5%) ✅ 0.83 (1%) ✅
["autompo", "Quartic QN Hamiltonian"] 1.13 (5%) ❌ 1.14 (1%) ❌
["contract", "matmul_100"] 1.19 (5%) ❌ 1.02 (1%) ❌
["contract", "matmul_20"] 4.88 (5%) ❌ 1.33 (1%) ❌
["contract", "matmul_40"] 2.31 (5%) ❌ 1.12 (1%) ❌
["contract", "matmul_60"] 1.72 (5%) ❌ 1.06 (1%) ❌
["contract", "matmul_80"] 1.39 (5%) ❌ 1.03 (1%) ❌
["contract", "matmul_inplace_100"] 1.38 (5%) ❌ 3.55 (1%) ❌
["contract", "matmul_inplace_20"] 11.84 (5%) ❌ 3.55 (1%) ❌
["contract", "matmul_inplace_40"] 4.29 (5%) ❌ 3.55 (1%) ❌
["contract", "matmul_inplace_60"] 2.14 (5%) ❌ 3.55 (1%) ❌
["contract", "matmul_inplace_80"] 1.85 (5%) ❌ 3.55 (1%) ❌
["dmrg", "1d_S=1_heisenberg_qn"] 1.08 (5%) ❌ 1.02 (1%) ❌
["indexset", "constructor", "function"] 1.31 (5%) ❌ 1.04 (1%) ❌
["indexset", "filter", "function"] 0.00 (5%) ✅ 0.00 (1%) ✅
["indexset", "filter", "kwargs"] 0.00 (5%) ✅ 0.04 (1%) ✅
["indexset", "uniqueinds", "3_inputs"] 1.83 (5%) ❌ 1.70 (1%) ❌
["indexset", "uniqueinds", "filter_not_tags"] 1.02 (5%) 1.07 (1%) ❌
["indexset", "uniqueinds", "filter_tags"] 1.09 (5%) ❌ 1.11 (1%) ❌
["indexset", "uniqueinds", "nofilter0"] 1.15 (5%) ❌ 3.20 (1%) ❌
["indexset", "uniqueinds", "nofilter2"] 0.95 (5%) 1.07 (1%) ❌
["inplace", "axpy!"] 1.73 (5%) ❌ 1.44 (1%) ❌
["op", "op QN"] 4.02 (5%) ❌ 1.91 (1%) ❌
["op", "op"] 2.81 (5%) ❌ 1.48 (1%) ❌

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["autompo"]
  • ["contract"]
  • ["dmrg"]
  • ["indexset", "constructor"]
  • ["indexset", "filter"]
  • ["indexset", "uniqueinds"]
  • ["inplace"]
  • ["op"]
  • ["tagset"]

Julia versioninfo

Target

Julia Version 1.5.4
Commit 69fcb5745b (2021-03-11 19:13 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1040-azure #42-Ubuntu SMP Fri Feb 5 15:39:06 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz: 
              speed         user         nice          sys         idle          irq
       #1  2294 MHz      48152 s          0 s       8194 s      66998 s          0 s
       #2  2294 MHz      56609 s          0 s       5152 s      62433 s          0 s
       
  Memory: 6.7913818359375 GB (2678.43359375 MB free)
  Uptime: 1251.0 sec
  Load Avg:  1.26806640625  1.31982421875  0.91650390625
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-9.0.1 (ORCJIT, broadwell)

Baseline

Julia Version 1.5.4
Commit 69fcb5745b (2021-03-11 19:13 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1040-azure #42-Ubuntu SMP Fri Feb 5 15:39:06 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz: 
              speed         user         nice          sys         idle          irq
       #1  2294 MHz      91383 s          0 s       9814 s      88561 s          0 s
       #2  2294 MHz      86695 s          0 s       9329 s      94588 s          0 s
       
  Memory: 6.7913818359375 GB (2785.8046875 MB free)
  Uptime: 1916.0 sec
  Load Avg:  1.1318359375  1.255859375  1.0869140625
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-9.0.1 (ORCJIT, broadwell)

Target result

Benchmark Report for /home/runner/work/ITensors.jl/ITensors.jl

Job Properties

  • Time of benchmark: 18 Mar 2021 - 20:15
  • Package commit: 68892c
  • Julia commit: 69fcb5
  • Julia command flags: None
  • Environment variables: None

Results

Below is a table of this job's results, obtained by running the benchmarks.
The values listed in the ID column have the structure [parent_group, child_group, ..., key], and can be used to
index into the BaseBenchmarks suite to retrieve the corresponding benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true"
time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
An empty cell means that the value was zero.

ID time GC time memory allocations
["autompo", "Quartic Hamiltonian"] 6.572 s (5%) 327.005 ms 1.48 GiB (1%) 18765391
["autompo", "Quartic QN Hamiltonian"] 21.256 s (5%) 4.234 s 10.84 GiB (1%) 89142158
["contract", "heff_2site"] 7.406 ms (5%) 19.42 MiB (1%) 312
["contract", "matmul_100"] 85.401 μs (5%) 82.02 KiB (1%) 48
["contract", "matmul_20"] 15.600 μs (5%) 7.06 KiB (1%) 47
["contract", "matmul_40"] 24.301 μs (5%) 16.44 KiB (1%) 47
["contract", "matmul_60"] 44.101 μs (5%) 32.02 KiB (1%) 48
["contract", "matmul_80"] 55.301 μs (5%) 53.89 KiB (1%) 48
["contract", "matmul_inplace_100"] 92.901 μs (5%) 4.27 KiB (1%) 59
["contract", "matmul_inplace_20"] 22.501 μs (5%) 4.27 KiB (1%) 59
["contract", "matmul_inplace_40"] 33.500 μs (5%) 4.27 KiB (1%) 59
["contract", "matmul_inplace_60"] 46.200 μs (5%) 4.27 KiB (1%) 59
["contract", "matmul_inplace_80"] 64.001 μs (5%) 4.27 KiB (1%) 59
["dmrg", "1d_S=1_heisenberg"] 30.816 s (5%) 2.808 s 38.63 GiB (1%) 3428357
["dmrg", "1d_S=1_heisenberg_qn"] 18.475 s (5%) 1.789 s 11.61 GiB (1%) 62756106
["indexset", "constructor", "function"] 733.835 ns (5%) 2.05 KiB (1%) 9
["indexset", "filter", "function"] 1.900 μs (5%) 1.58 KiB (1%) 4
["indexset", "filter", "kwargs"] 555.635 ns (5%) 1.38 KiB (1%) 4
["indexset", "uniqueinds", "3_inputs"] 1.080 μs (5%) 1.44 KiB (1%) 16
["indexset", "uniqueinds", "filter_not_tags"] 738.963 ns (5%) 1.36 KiB (1%) 15
["indexset", "uniqueinds", "filter_tags"] 528.582 ns (5%) 960 bytes (1%) 6
["indexset", "uniqueinds", "nofilter0"] 2.544 μs (5%) 256 bytes (1%) 4
["indexset", "uniqueinds", "nofilter2"] 487.717 ns (5%) 1.25 KiB (1%) 7
["inplace", "axpy!"] 23.301 μs (5%) 3.25 KiB (1%) 37
["op", "op QN"] 26.501 μs (5%) 12.84 KiB (1%) 123
["op", "op"] 9.000 μs (5%) 5.08 KiB (1%) 50
["tagset", "tagset"] 366.010 ns (5%) 336 bytes (1%) 9
["tagset", "tagset_unicode"] 491.545 ns (5%) 336 bytes (1%) 9

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["autompo"]
  • ["contract"]
  • ["dmrg"]
  • ["indexset", "constructor"]
  • ["indexset", "filter"]
  • ["indexset", "uniqueinds"]
  • ["inplace"]
  • ["op"]
  • ["tagset"]

Julia versioninfo

Julia Version 1.5.4
Commit 69fcb5745b (2021-03-11 19:13 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1040-azure #42-Ubuntu SMP Fri Feb 5 15:39:06 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz: 
              speed         user         nice          sys         idle          irq
       #1  2294 MHz      48152 s          0 s       8194 s      66998 s          0 s
       #2  2294 MHz      56609 s          0 s       5152 s      62433 s          0 s
       
  Memory: 6.7913818359375 GB (2678.43359375 MB free)
  Uptime: 1251.0 sec
  Load Avg:  1.26806640625  1.31982421875  0.91650390625
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-9.0.1 (ORCJIT, broadwell)

Baseline result

Benchmark Report for /home/runner/work/ITensors.jl/ITensors.jl

Job Properties

  • Time of benchmark: 18 Mar 2021 - 20:26
  • Package commit: 2e6fcb
  • Julia commit: 69fcb5
  • Julia command flags: None
  • Environment variables: None

Results

Below is a table of this job's results, obtained by running the benchmarks.
The values listed in the ID column have the structure [parent_group, child_group, ..., key], and can be used to
index into the BaseBenchmarks suite to retrieve the corresponding benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true"
time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
An empty cell means that the value was zero.

ID time GC time memory allocations
["autompo", "Quartic Hamiltonian"] 7.212 s (5%) 440.660 ms 1.77 GiB (1%) 32096481
["autompo", "Quartic QN Hamiltonian"] 18.883 s (5%) 4.033 s 9.50 GiB (1%) 92243197
["contract", "heff_2site"] 7.236 ms (5%) 19.41 MiB (1%) 212
["contract", "matmul_100"] 72.001 μs (5%) 80.25 KiB (1%) 23
["contract", "matmul_20"] 3.200 μs (5%) 5.30 KiB (1%) 22
["contract", "matmul_40"] 10.501 μs (5%) 14.67 KiB (1%) 22
["contract", "matmul_60"] 25.700 μs (5%) 30.25 KiB (1%) 23
["contract", "matmul_80"] 39.801 μs (5%) 52.13 KiB (1%) 23
["contract", "matmul_inplace_100"] 67.202 μs (5%) 1.20 KiB (1%) 12
["contract", "matmul_inplace_20"] 1.900 μs (5%) 1.20 KiB (1%) 12
["contract", "matmul_inplace_40"] 7.800 μs (5%) 1.20 KiB (1%) 12
["contract", "matmul_inplace_60"] 21.600 μs (5%) 1.20 KiB (1%) 12
["contract", "matmul_inplace_80"] 34.601 μs (5%) 1.20 KiB (1%) 12
["dmrg", "1d_S=1_heisenberg"] 29.688 s (5%) 3.091 s 38.55 GiB (1%) 2206549
["dmrg", "1d_S=1_heisenberg_qn"] 17.101 s (5%) 1.973 s 11.34 GiB (1%) 60137270
["indexset", "constructor", "function"] 559.727 ns (5%) 1.97 KiB (1%) 8
["indexset", "filter", "function"] 3.587 s (5%) 841.84 KiB (1%) 16672
["indexset", "filter", "function_order"] 0.001 ns (5%) 224 bytes (1%) 1
["indexset", "filter", "kwargs"] 209.763 ms (5%) 33.82 KiB (1%) 745
["indexset", "filter", "order_kwargs"] 0.001 ns (5%) 112 bytes (1%) 1
["indexset", "uniqueinds", "3_inputs"] 590.000 ns (5%) 864 bytes (1%) 5
["indexset", "uniqueinds", "filter_not_tags"] 724.402 ns (5%) 1.27 KiB (1%) 14
["indexset", "uniqueinds", "filter_tags"] 483.527 ns (5%) 864 bytes (1%) 5
["indexset", "uniqueinds", "nofilter0"] 2.222 μs (5%) 80 bytes (1%) 1
["indexset", "uniqueinds", "nofilter2"] 511.241 ns (5%) 1.17 KiB (1%) 6
["indexset", "uniqueinds", "order0"] 100.000 ns (5%)
["indexset", "uniqueinds", "order2"] 100.000 ns (5%) 224 bytes (1%) 1
["indexset", "uniqueinds", "order_3_inputs"] 200.000 ns (5%) 112 bytes (1%) 1
["indexset", "uniqueinds", "order_filter_not_tags"] 300.000 ns (5%) 544 bytes (1%) 10
["indexset", "uniqueinds", "order_filter_tags"] 100.000 ns (5%) 112 bytes (1%) 1
["inplace", "axpy!"] 13.500 μs (5%) 2.25 KiB (1%) 24
["op", "op QN"] 6.600 μs (5%) 6.73 KiB (1%) 88
["op", "op"] 3.200 μs (5%) 3.44 KiB (1%) 40
["tagset", "tagset"] 377.505 ns (5%) 336 bytes (1%) 9
["tagset", "tagset_unicode"] 513.767 ns (5%) 336 bytes (1%) 9

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["autompo"]
  • ["contract"]
  • ["dmrg"]
  • ["indexset", "constructor"]
  • ["indexset", "filter"]
  • ["indexset", "uniqueinds"]
  • ["inplace"]
  • ["op"]
  • ["tagset"]

Julia versioninfo

Julia Version 1.5.4
Commit 69fcb5745b (2021-03-11 19:13 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1040-azure #42-Ubuntu SMP Fri Feb 5 15:39:06 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz: 
              speed         user         nice          sys         idle          irq
       #1  2294 MHz      91383 s          0 s       9814 s      88561 s          0 s
       #2  2294 MHz      86695 s          0 s       9329 s      94588 s          0 s
       
  Memory: 6.7913818359375 GB (2785.8046875 MB free)
  Uptime: 1916.0 sec
  Load Avg:  1.1318359375  1.255859375  1.0869140625
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-9.0.1 (ORCJIT, broadwell)

Runtime information

Runtime Info
BLAS #threads 2
BLAS.vendor() openblas64
Sys.CPU_THREADS 2

lscpu output:

Architecture:                    x86_64
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
Address sizes:                   46 bits physical, 48 bits virtual
CPU(s):                          2
On-line CPU(s) list:             0,1
Thread(s) per core:              1
Core(s) per socket:              2
Socket(s):                       1
NUMA node(s):                    1
Vendor ID:                       GenuineIntel
CPU family:                      6
Model:                           79
Model name:                      Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
Stepping:                        1
CPU MHz:                         2294.688
BogoMIPS:                        4589.37
Hypervisor vendor:               Microsoft
Virtualization type:             full
L1d cache:                       64 KiB
L1i cache:                       64 KiB
L2 cache:                        512 KiB
L3 cache:                        50 MiB
NUMA node0 CPU(s):               0,1
Vulnerability Itlb multihit:     KVM: Vulnerable
Vulnerability L1tf:              Mitigation; PTE Inversion
Vulnerability Mds:               Mitigation; Clear CPU buffers; SMT Host state unknown
Vulnerability Meltdown:          Mitigation; PTI
Vulnerability Spec store bypass: Vulnerable
Vulnerability Spectre v1:        Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:        Mitigation; Full generic retpoline, STIBP disabled, RSB filling
Vulnerability Srbds:             Not affected
Vulnerability Tsx async abort:   Mitigation; Clear CPU buffers; SMT Host state unknown
Flags:                           fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology cpuid pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm rdseed adx smap xsaveopt md_clear
Cpu Property Value
Brand Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
Vendor :Intel
Architecture :Broadwell
Model Family: 0x06, Model: 0x4f, Stepping: 0x01, Type: 0x00
Cores 2 physical cores, 2 logical cores (on executing CPU)
No Hyperthreading hardware capability detected
Clock Frequencies Not supported by CPU
Data Cache Level 1:3 : (32, 256, 51200) kbytes
64 byte cache line size
Address Size 48 bits virtual, 46 bits physical
SIMD 256 bit = 32 byte max. SIMD vector size
Time Stamp Counter TSC is accessible via rdtsc
TSC increased at every clock cycle (non-invariant TSC)
Perf. Monitoring Performance Monitoring Counters (PMC) are not supported
Hypervisor Yes, Microsoft

@kshyatt
Copy link
Contributor Author

kshyatt commented Mar 18, 2021

OK, good to go with a squash and merge if this passes?

@mtfishman mtfishman merged commit 59afbf3 into master Mar 18, 2021
@mtfishman
Copy link
Member

Well that was epic. Thanks again for getting this done!

@kshyatt kshyatt deleted the ksh/deparameter branch March 18, 2021 21:45
@kshyatt
Copy link
Contributor Author

kshyatt commented Mar 18, 2021

Thanks again for the reviews. Look forward to the coming feature film about this PR in theaters near you summer of 2021 😎 .

@kshyatt
Copy link
Contributor Author

kshyatt commented Mar 18, 2021

I'll try to get ITensorsGPU.jl (which I've been neglecting) harmonized with this as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
code simplification Issues related to simplifying code in the library. performance Issues related to performance
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Remove tensor order as type parameter for ITensor{N} and IndexSet{N}
4 participants