ITensors.jl icon indicating copy to clipboard operation
ITensors.jl copied to clipboard

Minimize the number of swaps when applying nonlocal gates to MPS/MPO

Open mtfishman opened this issue 4 years ago • 6 comments

This adds functionality for looking ahead to the next gate to decide the strategy for swapping. The logic is fairly simple, basically swap towards the position of the next gate if they don't overlap, and as close to the next gate as possible if they do overlap.

Unfortunately (and surprisingly), when compared head to head to the current strategy of always moving the gate to the left (or right), this more advanced strategy actually performs worse in general. Go figures, the best laid plans etc etc. I'll attach some benchmarks after I do some more testing.

mtfishman avatar May 21 '21 22:05 mtfishman

Benchmark result

Judge result

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

Job Properties

  • Time of benchmarks:
    • Target: 21 May 2021 - 22:21
    • Baseline: 21 May 2021 - 22:32
  • Package commits:
    • Target: cc41d6
    • Baseline: b06d73
  • Julia commits:
    • Target: 6aaede
    • Baseline: 6aaede
  • 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 :x:), while a ratio less than 1.0 denotes a possible improvement (marked with :white_check_mark:). 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
["getsetindex", "getindex indval end"] 0.93 (5%) :white_check_mark: 1.00 (1%)
["indexset", "set_functions", "unioninds, ITensor"] 1.06 (5%) :x: 1.00 (1%)
["inplace", "axpy!"] 0.93 (5%) :white_check_mark: 1.00 (1%)

Benchmark Group List

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

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

Julia versioninfo

Target

Julia Version 1.6.1
Commit 6aaedecc44 (2021-04-23 05:59 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1047-azure #49-Ubuntu SMP Thu Apr 22 14:30:37 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       5393 s          2 s       1371 s       4530 s          0 s
       #2  2095 MHz       6508 s          1 s        830 s       3977 s          0 s
       
  Memory: 6.791339874267578 GB (1274.48828125 MB free)
  Uptime: 1137.0 sec
  Load Avg:  1.12  1.29  1.0
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.1 (ORCJIT, skylake-avx512)

Baseline

Julia Version 1.6.1
Commit 6aaedecc44 (2021-04-23 05:59 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1047-azure #49-Ubuntu SMP Thu Apr 22 14:30:37 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      10069 s          2 s       2008 s       5730 s          0 s
       #2  2095 MHz       8302 s          1 s       1304 s       8216 s          0 s
       
  Memory: 6.791339874267578 GB (1712.5703125 MB free)
  Uptime: 1789.0 sec
  Load Avg:  1.05  1.17  1.07
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.1 (ORCJIT, skylake-avx512)

Target result

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

Job Properties

  • Time of benchmark: 21 May 2021 - 22:21
  • Package commit: cc41d6
  • Julia commit: 6aaede
  • 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"] 13.138 s (5%) 915.555 ms 2.66 GiB (1%) 35127970
["autompo", "Quartic QN Hamiltonian"] 24.875 s (5%) 3.585 s 10.94 GiB (1%) 96093929
["contract", "heff_2site"] 5.547 ms (5%) 19.42 MiB (1%) 216
["contract", "matmul_100"] 42.000 μs (5%) 81.20 KiB (1%) 24
["contract", "matmul_20"] 3.550 μs (5%) 6.25 KiB (1%) 23
["contract", "matmul_40"] 8.000 μs (5%) 15.62 KiB (1%) 23
["contract", "matmul_60"] 19.501 μs (5%) 31.20 KiB (1%) 24
["contract", "matmul_80"] 24.300 μs (5%) 53.08 KiB (1%) 24
["contract", "matmul_inplace_100"] 75.001 μs (5%) 314.69 KiB (1%) 24
["contract", "matmul_inplace_20"] 5.533 μs (5%) 14.88 KiB (1%) 20
["contract", "matmul_inplace_40"] 12.300 μs (5%) 52.38 KiB (1%) 20
["contract", "matmul_inplace_60"] 26.900 μs (5%) 114.69 KiB (1%) 24
["contract", "matmul_inplace_80"] 44.801 μs (5%) 202.19 KiB (1%) 24
["dmrg", "1d_S=1_heisenberg"] 22.410 s (5%) 942.986 ms 40.09 GiB (1%) 2183970
["dmrg", "1d_S=1_heisenberg_qn"] 13.553 s (5%) 1.067 s 11.48 GiB (1%) 56671421
["dmrg", "1d_S=1_heisenberg_qn_splitblocks"] 11.191 s (5%) 777.320 ms 8.93 GiB (1%) 46105931
["getsetindex", "getindex end"] 235.257 ns (5%) 528 bytes (1%) 5
["getsetindex", "getindex indval end"] 79.237 ns (5%) 272 bytes (1%) 3
["getsetindex", "getindex indval"] 75.129 ns (5%) 272 bytes (1%) 3
["getsetindex", "getindex"] 29.045 ns (5%) 16 bytes (1%) 1
["getsetindex", "setindex! end"] 316.455 ns (5%) 768 bytes (1%) 6
["getsetindex", "setindex! indval end"] 115.100 ns (5%) 480 bytes (1%) 3
["getsetindex", "setindex! indval"] 118.483 ns (5%) 480 bytes (1%) 3
["getsetindex", "setindex!"] 79.382 ns (5%) 224 bytes (1%) 1
["indexset", "constructor", "function"] 695.068 ns (5%) 1.47 KiB (1%) 10
["indexset", "constructor", "function, tuple"] 452.530 ns (5%) 1.31 KiB (1%) 7
["indexset", "filter", "function"] 182.863 ns (5%) 1.14 KiB (1%) 1
["indexset", "filter", "function, tuple"] 0.001 ns (5%)
["indexset", "filter", "kwargs"] 194.186 ns (5%) 1.14 KiB (1%) 1
["indexset", "set_functions", "commoninds, ITensor"] 396.005 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "noncommoninds, ITensor"] 485.719 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "prime, ITensor"] 313.116 ns (5%) 832 bytes (1%) 4
["indexset", "set_functions", "unioninds, ITensor"] 659.776 ns (5%) 2.53 KiB (1%) 6
["indexset", "set_functions", "uniqueinds", "3_inputs"] 900.000 ns (5%) 3.00 KiB (1%) 12
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] 390.645 ns (5%) 976 bytes (1%) 8
["indexset", "set_functions", "uniqueinds", "filter_tags"] 202.877 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter0"] 158.158 ns (5%) 368 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter2"] 174.669 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds, ITensor"] 704.808 ns (5%) 1.91 KiB (1%) 7
["inplace", "axpy!"] 22.200 μs (5%) 1.73 KiB (1%) 24
["op", "op QN"] 8.800 μs (5%) 10.55 KiB (1%) 109
["op", "op"] 5.200 μs (5%) 4.19 KiB (1%) 40
["tagset", "tagset"] 486.672 ns (5%) 336 bytes (1%) 9
["tagset", "tagset_unicode"] 713.146 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"]
  • ["getsetindex"]
  • ["indexset", "constructor"]
  • ["indexset", "filter"]
  • ["indexset", "set_functions"]
  • ["indexset", "set_functions", "uniqueinds"]
  • ["inplace"]
  • ["op"]
  • ["tagset"]

Julia versioninfo

Julia Version 1.6.1
Commit 6aaedecc44 (2021-04-23 05:59 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1047-azure #49-Ubuntu SMP Thu Apr 22 14:30:37 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       5393 s          2 s       1371 s       4530 s          0 s
       #2  2095 MHz       6508 s          1 s        830 s       3977 s          0 s
       
  Memory: 6.791339874267578 GB (1274.48828125 MB free)
  Uptime: 1137.0 sec
  Load Avg:  1.12  1.29  1.0
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.1 (ORCJIT, skylake-avx512)

Baseline result

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

Job Properties

  • Time of benchmark: 21 May 2021 - 22:32
  • Package commit: b06d73
  • Julia commit: 6aaede
  • 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"] 13.133 s (5%) 964.224 ms 2.66 GiB (1%) 35127975
["autompo", "Quartic QN Hamiltonian"] 23.862 s (5%) 3.363 s 10.99 GiB (1%) 96522437
["contract", "heff_2site"] 5.646 ms (5%) 19.42 MiB (1%) 216
["contract", "matmul_100"] 41.601 μs (5%) 81.20 KiB (1%) 24
["contract", "matmul_20"] 3.487 μs (5%) 6.25 KiB (1%) 23
["contract", "matmul_40"] 8.100 μs (5%) 15.62 KiB (1%) 23
["contract", "matmul_60"] 19.700 μs (5%) 31.20 KiB (1%) 24
["contract", "matmul_80"] 23.800 μs (5%) 53.08 KiB (1%) 24
["contract", "matmul_inplace_100"] 73.301 μs (5%) 314.69 KiB (1%) 24
["contract", "matmul_inplace_20"] 5.350 μs (5%) 14.88 KiB (1%) 20
["contract", "matmul_inplace_40"] 12.000 μs (5%) 52.38 KiB (1%) 20
["contract", "matmul_inplace_60"] 27.000 μs (5%) 114.69 KiB (1%) 24
["contract", "matmul_inplace_80"] 44.501 μs (5%) 202.19 KiB (1%) 24
["dmrg", "1d_S=1_heisenberg"] 22.814 s (5%) 796.976 ms 40.09 GiB (1%) 2183970
["dmrg", "1d_S=1_heisenberg_qn"] 13.338 s (5%) 1.019 s 11.47 GiB (1%) 56671229
["getsetindex", "getindex end"] 243.907 ns (5%) 528 bytes (1%) 5
["getsetindex", "getindex indval end"] 84.815 ns (5%) 272 bytes (1%) 3
["getsetindex", "getindex indval"] 76.877 ns (5%) 272 bytes (1%) 3
["getsetindex", "getindex"] 30.151 ns (5%) 16 bytes (1%) 1
["getsetindex", "setindex! end"] 322.078 ns (5%) 768 bytes (1%) 6
["getsetindex", "setindex! indval end"] 113.458 ns (5%) 480 bytes (1%) 3
["getsetindex", "setindex! indval"] 116.503 ns (5%) 480 bytes (1%) 3
["getsetindex", "setindex!"] 79.382 ns (5%) 224 bytes (1%) 1
["indexset", "constructor", "function"] 663.593 ns (5%) 1.47 KiB (1%) 10
["indexset", "constructor", "function, tuple"] 470.207 ns (5%) 1.31 KiB (1%) 7
["indexset", "filter", "function"] 181.672 ns (5%) 1.14 KiB (1%) 1
["indexset", "filter", "function, tuple"] 0.001 ns (5%)
["indexset", "filter", "kwargs"] 187.739 ns (5%) 1.14 KiB (1%) 1
["indexset", "set_functions", "commoninds, ITensor"] 394.505 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "noncommoninds, ITensor"] 468.883 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "prime, ITensor"] 307.869 ns (5%) 832 bytes (1%) 4
["indexset", "set_functions", "unioninds, ITensor"] 624.724 ns (5%) 2.53 KiB (1%) 6
["indexset", "set_functions", "uniqueinds", "3_inputs"] 915.789 ns (5%) 3.00 KiB (1%) 12
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] 387.695 ns (5%) 976 bytes (1%) 8
["indexset", "set_functions", "uniqueinds", "filter_tags"] 202.399 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter0"] 153.676 ns (5%) 368 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter2"] 173.469 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds, ITensor"] 715.075 ns (5%) 1.91 KiB (1%) 7
["inplace", "axpy!"] 24.000 μs (5%) 1.73 KiB (1%) 24
["op", "op QN"] 8.800 μs (5%) 10.55 KiB (1%) 109
["op", "op"] 5.167 μs (5%) 4.19 KiB (1%) 40
["tagset", "tagset"] 507.185 ns (5%) 336 bytes (1%) 9
["tagset", "tagset_unicode"] 720.445 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"]
  • ["getsetindex"]
  • ["indexset", "constructor"]
  • ["indexset", "filter"]
  • ["indexset", "set_functions"]
  • ["indexset", "set_functions", "uniqueinds"]
  • ["inplace"]
  • ["op"]
  • ["tagset"]

Julia versioninfo

Julia Version 1.6.1
Commit 6aaedecc44 (2021-04-23 05:59 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1047-azure #49-Ubuntu SMP Thu Apr 22 14:30:37 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      10069 s          2 s       2008 s       5730 s          0 s
       #2  2095 MHz       8302 s          1 s       1304 s       8216 s          0 s
       
  Memory: 6.791339874267578 GB (1712.5703125 MB free)
  Uptime: 1789.0 sec
  Load Avg:  1.05  1.17  1.07
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.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.078
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

github-actions[bot] avatar May 21 '21 22:05 github-actions[bot]

Benchmark result

Judge result

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

Job Properties

  • Time of benchmarks:
    • Target: 25 May 2021 - 16:22
    • Baseline: 25 May 2021 - 16:33
  • Package commits:
    • Target: 65aa4f
    • Baseline: 060128
  • Julia commits:
    • Target: 6aaede
    • Baseline: 6aaede
  • 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 :x:), while a ratio less than 1.0 denotes a possible improvement (marked with :white_check_mark:). 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
["contract", "matmul_100"] 1.08 (5%) :x: 1.00 (1%)
["contract", "matmul_20"] 1.13 (5%) :x: 1.00 (1%)
["contract", "matmul_80"] 0.92 (5%) :white_check_mark: 1.00 (1%)
["contract", "matmul_inplace_40"] 1.06 (5%) :x: 1.00 (1%)
["getsetindex", "getindex indval"] 0.86 (5%) :white_check_mark: 1.00 (1%)
["getsetindex", "getindex"] 1.11 (5%) :x: 1.00 (1%)
["getsetindex", "setindex! indval"] 0.94 (5%) :white_check_mark: 1.00 (1%)
["indexset", "constructor", "function"] 0.88 (5%) :white_check_mark: 1.00 (1%)
["indexset", "constructor", "function, tuple"] 0.90 (5%) :white_check_mark: 1.00 (1%)
["indexset", "filter", "function"] 0.90 (5%) :white_check_mark: 1.00 (1%)
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] 0.86 (5%) :white_check_mark: 0.93 (1%) :white_check_mark:
["op", "op QN"] 1.15 (5%) :x: 1.00 (1%)
["tagset", "tagset"] 0.73 (5%) :white_check_mark: 0.62 (1%) :white_check_mark:
["tagset", "tagset_unicode"] 0.76 (5%) :white_check_mark: 0.62 (1%) :white_check_mark:

Benchmark Group List

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

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

Julia versioninfo

Target

Julia Version 1.6.1
Commit 6aaedecc44 (2021-04-23 05:59 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1047-azure #49-Ubuntu SMP Thu Apr 22 14:30:37 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       5753 s          1 s       1321 s       5084 s          0 s
       #2  2294 MHz       7358 s          1 s        839 s       3968 s          0 s
       
  Memory: 6.791339874267578 GB (1346.58203125 MB free)
  Uptime: 1222.0 sec
  Load Avg:  1.05  1.26  1.03
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.1 (ORCJIT, broadwell)

Baseline

Julia Version 1.6.1
Commit 6aaedecc44 (2021-04-23 05:59 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1047-azure #49-Ubuntu SMP Thu Apr 22 14:30:37 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      10904 s          1 s       2094 s       5942 s          0 s
       #2  2294 MHz       9121 s          1 s       1137 s       8682 s          0 s
       
  Memory: 6.791339874267578 GB (1681.84375 MB free)
  Uptime: 1901.0 sec
  Load Avg:  1.07  1.22  1.12
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.1 (ORCJIT, broadwell)

Target result

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

Job Properties

  • Time of benchmark: 25 May 2021 - 16:22
  • Package commit: 65aa4f
  • Julia commit: 6aaede
  • 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"] 12.077 s (5%) 820.675 ms 2.66 GiB (1%) 35127861
["autompo", "Quartic QN Hamiltonian"] 24.707 s (5%) 3.581 s 10.97 GiB (1%) 96345921
["contract", "heff_2site"] 7.188 ms (5%) 19.42 MiB (1%) 216
["contract", "matmul_100"] 63.100 μs (5%) 81.20 KiB (1%) 24
["contract", "matmul_20"] 4.243 μs (5%) 6.25 KiB (1%) 23
["contract", "matmul_40"] 11.900 μs (5%) 15.62 KiB (1%) 23
["contract", "matmul_60"] 26.300 μs (5%) 31.20 KiB (1%) 24
["contract", "matmul_80"] 36.800 μs (5%) 53.08 KiB (1%) 24
["contract", "matmul_inplace_100"] 106.300 μs (5%) 314.69 KiB (1%) 24
["contract", "matmul_inplace_20"] 6.100 μs (5%) 14.88 KiB (1%) 20
["contract", "matmul_inplace_40"] 18.200 μs (5%) 52.38 KiB (1%) 20
["contract", "matmul_inplace_60"] 40.800 μs (5%) 114.69 KiB (1%) 24
["contract", "matmul_inplace_80"] 66.700 μs (5%) 202.19 KiB (1%) 24
["dmrg", "1d_S=1_heisenberg"] 27.249 s (5%) 1.525 s 40.09 GiB (1%) 2180010
["dmrg", "1d_S=1_heisenberg_qn"] 16.969 s (5%) 1.326 s 11.48 GiB (1%) 56662709
["dmrg", "1d_S=1_heisenberg_qn_splitblocks"] 13.932 s (5%) 989.949 ms 8.93 GiB (1%) 46097227
["getsetindex", "getindex end"] 195.463 ns (5%) 528 bytes (1%) 5
["getsetindex", "getindex indval end"] 64.396 ns (5%) 272 bytes (1%) 3
["getsetindex", "getindex indval"] 55.647 ns (5%) 272 bytes (1%) 3
["getsetindex", "getindex"] 21.586 ns (5%) 16 bytes (1%) 1
["getsetindex", "setindex! end"] 240.003 ns (5%) 768 bytes (1%) 6
["getsetindex", "setindex! indval end"] 91.949 ns (5%) 480 bytes (1%) 3
["getsetindex", "setindex! indval"] 89.726 ns (5%) 480 bytes (1%) 3
["getsetindex", "setindex!"] 61.020 ns (5%) 224 bytes (1%) 1
["indexset", "constructor", "function"] 541.717 ns (5%) 1.47 KiB (1%) 10
["indexset", "constructor", "function, tuple"] 375.500 ns (5%) 1.31 KiB (1%) 7
["indexset", "filter", "function"] 184.910 ns (5%) 1.14 KiB (1%) 1
["indexset", "filter", "function, tuple"] 0.001 ns (5%)
["indexset", "filter", "kwargs"] 182.776 ns (5%) 1.14 KiB (1%) 1
["indexset", "set_functions", "commoninds, ITensor"] 347.668 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "noncommoninds, ITensor"] 415.505 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "prime, ITensor"] 266.871 ns (5%) 832 bytes (1%) 4
["indexset", "set_functions", "unioninds, ITensor"] 607.514 ns (5%) 2.53 KiB (1%) 6
["indexset", "set_functions", "uniqueinds", "3_inputs"] 831.250 ns (5%) 3.00 KiB (1%) 12
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] 256.631 ns (5%) 912 bytes (1%) 6
["indexset", "set_functions", "uniqueinds", "filter_tags"] 164.455 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter0"] 119.299 ns (5%) 368 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter2"] 150.173 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds, ITensor"] 575.269 ns (5%) 1.91 KiB (1%) 7
["inplace", "axpy!"] 12.900 μs (5%) 1.73 KiB (1%) 24
["op", "op QN"] 9.400 μs (5%) 10.55 KiB (1%) 109
["op", "op"] 3.657 μs (5%) 4.19 KiB (1%) 40
["tagset", "tagset"] 256.989 ns (5%) 208 bytes (1%) 5
["tagset", "tagset_unicode"] 408.045 ns (5%) 208 bytes (1%) 5

Benchmark Group List

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

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

Julia versioninfo

Julia Version 1.6.1
Commit 6aaedecc44 (2021-04-23 05:59 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1047-azure #49-Ubuntu SMP Thu Apr 22 14:30:37 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       5753 s          1 s       1321 s       5084 s          0 s
       #2  2294 MHz       7358 s          1 s        839 s       3968 s          0 s
       
  Memory: 6.791339874267578 GB (1346.58203125 MB free)
  Uptime: 1222.0 sec
  Load Avg:  1.05  1.26  1.03
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.1 (ORCJIT, broadwell)

Baseline result

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

Job Properties

  • Time of benchmark: 25 May 2021 - 16:33
  • Package commit: 060128
  • Julia commit: 6aaede
  • 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"] 12.588 s (5%) 897.548 ms 2.66 GiB (1%) 35127980
["autompo", "Quartic QN Hamiltonian"] 25.068 s (5%) 3.512 s 10.93 GiB (1%) 96079362
["contract", "heff_2site"] 6.938 ms (5%) 19.42 MiB (1%) 216
["contract", "matmul_100"] 58.601 μs (5%) 81.20 KiB (1%) 24
["contract", "matmul_20"] 3.743 μs (5%) 6.25 KiB (1%) 23
["contract", "matmul_40"] 11.600 μs (5%) 15.62 KiB (1%) 23
["contract", "matmul_60"] 26.100 μs (5%) 31.20 KiB (1%) 24
["contract", "matmul_80"] 40.100 μs (5%) 53.08 KiB (1%) 24
["contract", "matmul_inplace_100"] 102.601 μs (5%) 314.69 KiB (1%) 24
["contract", "matmul_inplace_20"] 6.100 μs (5%) 14.88 KiB (1%) 20
["contract", "matmul_inplace_40"] 17.200 μs (5%) 52.38 KiB (1%) 20
["contract", "matmul_inplace_60"] 39.800 μs (5%) 114.69 KiB (1%) 24
["contract", "matmul_inplace_80"] 64.600 μs (5%) 202.19 KiB (1%) 24
["dmrg", "1d_S=1_heisenberg"] 27.017 s (5%) 1.408 s 40.09 GiB (1%) 2183970
["dmrg", "1d_S=1_heisenberg_qn"] 16.695 s (5%) 1.285 s 11.47 GiB (1%) 56671229
["getsetindex", "getindex end"] 189.714 ns (5%) 528 bytes (1%) 5
["getsetindex", "getindex indval end"] 66.938 ns (5%) 272 bytes (1%) 3
["getsetindex", "getindex indval"] 64.396 ns (5%) 272 bytes (1%) 3
["getsetindex", "getindex"] 19.478 ns (5%) 16 bytes (1%) 1
["getsetindex", "setindex! end"] 239.051 ns (5%) 768 bytes (1%) 6
["getsetindex", "setindex! indval end"] 96.292 ns (5%) 480 bytes (1%) 3
["getsetindex", "setindex! indval"] 95.763 ns (5%) 480 bytes (1%) 3
["getsetindex", "setindex!"] 59.491 ns (5%) 224 bytes (1%) 1
["indexset", "constructor", "function"] 616.583 ns (5%) 1.47 KiB (1%) 10
["indexset", "constructor", "function, tuple"] 417.005 ns (5%) 1.31 KiB (1%) 7
["indexset", "filter", "function"] 205.184 ns (5%) 1.14 KiB (1%) 1
["indexset", "filter", "function, tuple"] 0.001 ns (5%)
["indexset", "filter", "kwargs"] 187.654 ns (5%) 1.14 KiB (1%) 1
["indexset", "set_functions", "commoninds, ITensor"] 362.154 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "noncommoninds, ITensor"] 426.000 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "prime, ITensor"] 277.607 ns (5%) 832 bytes (1%) 4
["indexset", "set_functions", "unioninds, ITensor"] 605.786 ns (5%) 2.53 KiB (1%) 6
["indexset", "set_functions", "uniqueinds", "3_inputs"] 803.141 ns (5%) 3.00 KiB (1%) 12
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] 298.394 ns (5%) 976 bytes (1%) 8
["indexset", "set_functions", "uniqueinds", "filter_tags"] 172.477 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter0"] 120.000 ns (5%) 368 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter2"] 150.744 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds, ITensor"] 581.726 ns (5%) 1.91 KiB (1%) 7
["inplace", "axpy!"] 12.800 μs (5%) 1.73 KiB (1%) 24
["op", "op QN"] 8.200 μs (5%) 10.55 KiB (1%) 109
["op", "op"] 3.843 μs (5%) 4.19 KiB (1%) 40
["tagset", "tagset"] 350.371 ns (5%) 336 bytes (1%) 9
["tagset", "tagset_unicode"] 538.698 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"]
  • ["getsetindex"]
  • ["indexset", "constructor"]
  • ["indexset", "filter"]
  • ["indexset", "set_functions"]
  • ["indexset", "set_functions", "uniqueinds"]
  • ["inplace"]
  • ["op"]
  • ["tagset"]

Julia versioninfo

Julia Version 1.6.1
Commit 6aaedecc44 (2021-04-23 05:59 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1047-azure #49-Ubuntu SMP Thu Apr 22 14:30:37 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      10904 s          1 s       2094 s       5942 s          0 s
       #2  2294 MHz       9121 s          1 s       1137 s       8682 s          0 s
       
  Memory: 6.791339874267578 GB (1681.84375 MB free)
  Uptime: 1901.0 sec
  Load Avg:  1.07  1.22  1.12
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.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:               Vulnerable: Clear CPU buffers attempted, no microcode; 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:   Vulnerable: Clear CPU buffers attempted, no microcode; 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
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[bot] avatar May 25 '21 16:05 github-actions[bot]

Good to see this, though I'm also surprised it doesn't give a speedup.

Does it take into account how gates (usually) act on multiple sites, so additionally looking ahead in terms of how one might want to put the ortho center on either the leftmost or rightmost site of a gate after it acts? I'm thinking of a case like where gates repeatedly act on sites 3,4 then on 4,5, then again on 3,4, then 4,5, over and over. The ideal strategy would be to always put the ortho center on site 4 after applying either of these gates.

emstoudenmire avatar May 25 '21 17:05 emstoudenmire

Benchmark result

Judge result

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

Job Properties

  • Time of benchmarks:
    • Target: 25 May 2021 - 17:50
    • Baseline: 25 May 2021 - 18:01
  • Package commits:
    • Target: 79c3d0
    • Baseline: 060128
  • Julia commits:
    • Target: 6aaede
    • Baseline: 6aaede
  • 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 :x:), while a ratio less than 1.0 denotes a possible improvement (marked with :white_check_mark:). 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
["contract", "matmul_inplace_80"] 1.05 (5%) :x: 1.00 (1%)
["getsetindex", "getindex end"] 1.11 (5%) :x: 1.00 (1%)
["getsetindex", "setindex!"] 1.08 (5%) :x: 1.00 (1%)
["indexset", "constructor", "function"] 0.88 (5%) :white_check_mark: 1.00 (1%)
["indexset", "constructor", "function, tuple"] 1.45 (5%) :x: 1.00 (1%)
["indexset", "filter", "function"] 1.06 (5%) :x: 1.00 (1%)
["indexset", "set_functions", "commoninds, ITensor"] 1.05 (5%) :x: 1.00 (1%)
["indexset", "set_functions", "prime, ITensor"] 1.12 (5%) :x: 1.00 (1%)
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] 0.87 (5%) :white_check_mark: 0.93 (1%) :white_check_mark:
["op", "op QN"] 0.90 (5%) :white_check_mark: 1.00 (1%)
["tagset", "tagset"] 0.78 (5%) :white_check_mark: 0.62 (1%) :white_check_mark:
["tagset", "tagset_unicode"] 0.76 (5%) :white_check_mark: 0.62 (1%) :white_check_mark:

Benchmark Group List

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

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

Julia versioninfo

Target

Julia Version 1.6.1
Commit 6aaedecc44 (2021-04-23 05:59 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1047-azure #49-Ubuntu SMP Thu Apr 22 14:30:37 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz: 
              speed         user         nice          sys         idle          irq
       #1  2397 MHz       4498 s          2 s       1167 s       6212 s          0 s
       #2  2397 MHz       8220 s          1 s       1068 s       2607 s          0 s
       
  Memory: 6.791339874267578 GB (903.14453125 MB free)
  Uptime: 1194.0 sec
  Load Avg:  1.02  1.17  0.94
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.1 (ORCJIT, haswell)

Baseline

Julia Version 1.6.1
Commit 6aaedecc44 (2021-04-23 05:59 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1047-azure #49-Ubuntu SMP Thu Apr 22 14:30:37 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz: 
              speed         user         nice          sys         idle          irq
       #1  2397 MHz       6278 s          2 s       1605 s      10798 s          0 s
       #2  2397 MHz      13276 s          1 s       1757 s       3682 s          0 s
       
  Memory: 6.791339874267578 GB (1397.5 MB free)
  Uptime: 1877.0 sec
  Load Avg:  1.03  1.16  1.06
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.1 (ORCJIT, haswell)

Target result

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

Job Properties

  • Time of benchmark: 25 May 2021 - 17:50
  • Package commit: 79c3d0
  • Julia commit: 6aaede
  • 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"] 12.525 s (5%) 911.629 ms 2.66 GiB (1%) 35127853
["autompo", "Quartic QN Hamiltonian"] 25.670 s (5%) 4.023 s 10.93 GiB (1%) 96048315
["contract", "heff_2site"] 6.254 ms (5%) 19.42 MiB (1%) 216
["contract", "matmul_100"] 56.303 μs (5%) 81.20 KiB (1%) 24
["contract", "matmul_20"] 3.613 μs (5%) 6.25 KiB (1%) 23
["contract", "matmul_40"] 10.400 μs (5%) 15.62 KiB (1%) 23
["contract", "matmul_60"] 25.001 μs (5%) 31.20 KiB (1%) 24
["contract", "matmul_80"] 34.701 μs (5%) 53.08 KiB (1%) 24
["contract", "matmul_inplace_100"] 98.304 μs (5%) 314.69 KiB (1%) 24
["contract", "matmul_inplace_20"] 5.820 μs (5%) 14.88 KiB (1%) 20
["contract", "matmul_inplace_40"] 16.101 μs (5%) 52.38 KiB (1%) 20
["contract", "matmul_inplace_60"] 37.602 μs (5%) 114.69 KiB (1%) 24
["contract", "matmul_inplace_80"] 63.003 μs (5%) 202.19 KiB (1%) 24
["dmrg", "1d_S=1_heisenberg"] 25.646 s (5%) 1.583 s 40.09 GiB (1%) 2180010
["dmrg", "1d_S=1_heisenberg_qn"] 15.515 s (5%) 1.342 s 11.48 GiB (1%) 56662709
["dmrg", "1d_S=1_heisenberg_qn_splitblocks"] 12.553 s (5%) 984.313 ms 8.93 GiB (1%) 46097227
["getsetindex", "getindex end"] 231.487 ns (5%) 528 bytes (1%) 5
["getsetindex", "getindex indval end"] 66.531 ns (5%) 272 bytes (1%) 3
["getsetindex", "getindex indval"] 64.818 ns (5%) 272 bytes (1%) 3
["getsetindex", "getindex"] 23.494 ns (5%) 16 bytes (1%) 1
["getsetindex", "setindex! end"] 276.483 ns (5%) 768 bytes (1%) 6
["getsetindex", "setindex! indval end"] 99.791 ns (5%) 480 bytes (1%) 3
["getsetindex", "setindex! indval"] 100.003 ns (5%) 480 bytes (1%) 3
["getsetindex", "setindex!"] 70.686 ns (5%) 224 bytes (1%) 1
["indexset", "constructor", "function"] 686.333 ns (5%) 1.47 KiB (1%) 10
["indexset", "constructor", "function, tuple"] 589.919 ns (5%) 1.31 KiB (1%) 7
["indexset", "filter", "function"] 222.563 ns (5%) 1.14 KiB (1%) 1
["indexset", "filter", "function, tuple"] 0.001 ns (5%)
["indexset", "filter", "kwargs"] 190.326 ns (5%) 1.14 KiB (1%) 1
["indexset", "set_functions", "commoninds, ITensor"] 407.502 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "noncommoninds, ITensor"] 461.824 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "prime, ITensor"] 311.231 ns (5%) 832 bytes (1%) 4
["indexset", "set_functions", "unioninds, ITensor"] 640.932 ns (5%) 2.53 KiB (1%) 6
["indexset", "set_functions", "uniqueinds", "3_inputs"] 895.552 ns (5%) 3.00 KiB (1%) 12
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] 298.030 ns (5%) 912 bytes (1%) 6
["indexset", "set_functions", "uniqueinds", "filter_tags"] 184.897 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter0"] 137.644 ns (5%) 368 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter2"] 167.469 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds, ITensor"] 662.523 ns (5%) 1.91 KiB (1%) 7
["inplace", "axpy!"] 14.300 μs (5%) 1.73 KiB (1%) 24
["op", "op QN"] 9.500 μs (5%) 10.55 KiB (1%) 109
["op", "op"] 4.543 μs (5%) 4.19 KiB (1%) 40
["tagset", "tagset"] 307.329 ns (5%) 208 bytes (1%) 5
["tagset", "tagset_unicode"] 474.000 ns (5%) 208 bytes (1%) 5

Benchmark Group List

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

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

Julia versioninfo

Julia Version 1.6.1
Commit 6aaedecc44 (2021-04-23 05:59 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1047-azure #49-Ubuntu SMP Thu Apr 22 14:30:37 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz: 
              speed         user         nice          sys         idle          irq
       #1  2397 MHz       4498 s          2 s       1167 s       6212 s          0 s
       #2  2397 MHz       8220 s          1 s       1068 s       2607 s          0 s
       
  Memory: 6.791339874267578 GB (903.14453125 MB free)
  Uptime: 1194.0 sec
  Load Avg:  1.02  1.17  0.94
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.1 (ORCJIT, haswell)

Baseline result

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

Job Properties

  • Time of benchmark: 25 May 2021 - 18:1
  • Package commit: 060128
  • Julia commit: 6aaede
  • 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"] 12.796 s (5%) 971.431 ms 2.66 GiB (1%) 35127970
["autompo", "Quartic QN Hamiltonian"] 24.612 s (5%) 3.632 s 10.95 GiB (1%) 96181507
["contract", "heff_2site"] 6.191 ms (5%) 19.42 MiB (1%) 216
["contract", "matmul_100"] 56.603 μs (5%) 81.20 KiB (1%) 24
["contract", "matmul_20"] 3.713 μs (5%) 6.25 KiB (1%) 23
["contract", "matmul_40"] 10.100 μs (5%) 15.62 KiB (1%) 23
["contract", "matmul_60"] 24.801 μs (5%) 31.20 KiB (1%) 24
["contract", "matmul_80"] 34.301 μs (5%) 53.08 KiB (1%) 24
["contract", "matmul_inplace_100"] 95.804 μs (5%) 314.69 KiB (1%) 24
["contract", "matmul_inplace_20"] 5.840 μs (5%) 14.88 KiB (1%) 20
["contract", "matmul_inplace_40"] 15.901 μs (5%) 52.38 KiB (1%) 20
["contract", "matmul_inplace_60"] 37.201 μs (5%) 114.69 KiB (1%) 24
["contract", "matmul_inplace_80"] 60.002 μs (5%) 202.19 KiB (1%) 24
["dmrg", "1d_S=1_heisenberg"] 26.465 s (5%) 1.424 s 40.09 GiB (1%) 2183970
["dmrg", "1d_S=1_heisenberg_qn"] 15.395 s (5%) 1.331 s 11.47 GiB (1%) 56671229
["getsetindex", "getindex end"] 208.156 ns (5%) 528 bytes (1%) 5
["getsetindex", "getindex indval end"] 68.708 ns (5%) 272 bytes (1%) 3
["getsetindex", "getindex indval"] 68.212 ns (5%) 272 bytes (1%) 3
["getsetindex", "getindex"] 22.992 ns (5%) 16 bytes (1%) 1
["getsetindex", "setindex! end"] 288.245 ns (5%) 768 bytes (1%) 6
["getsetindex", "setindex! indval end"] 98.838 ns (5%) 480 bytes (1%) 3
["getsetindex", "setindex! indval"] 101.747 ns (5%) 480 bytes (1%) 3
["getsetindex", "setindex!"] 65.477 ns (5%) 224 bytes (1%) 1
["indexset", "constructor", "function"] 778.601 ns (5%) 1.47 KiB (1%) 10
["indexset", "constructor", "function, tuple"] 406.581 ns (5%) 1.31 KiB (1%) 7
["indexset", "filter", "function"] 210.188 ns (5%) 1.14 KiB (1%) 1
["indexset", "filter", "function, tuple"] 0.001 ns (5%)
["indexset", "filter", "kwargs"] 195.092 ns (5%) 1.14 KiB (1%) 1
["indexset", "set_functions", "commoninds, ITensor"] 387.238 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "noncommoninds, ITensor"] 466.352 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "prime, ITensor"] 278.888 ns (5%) 832 bytes (1%) 4
["indexset", "set_functions", "unioninds, ITensor"] 658.545 ns (5%) 2.53 KiB (1%) 6
["indexset", "set_functions", "uniqueinds", "3_inputs"] 864.224 ns (5%) 3.00 KiB (1%) 12
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] 340.934 ns (5%) 976 bytes (1%) 8
["indexset", "set_functions", "uniqueinds", "filter_tags"] 190.391 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter0"] 137.532 ns (5%) 368 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter2"] 165.333 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds, ITensor"] 659.114 ns (5%) 1.91 KiB (1%) 7
["inplace", "axpy!"] 14.000 μs (5%) 1.73 KiB (1%) 24
["op", "op QN"] 10.600 μs (5%) 10.55 KiB (1%) 109
["op", "op"] 4.329 μs (5%) 4.19 KiB (1%) 40
["tagset", "tagset"] 393.512 ns (5%) 336 bytes (1%) 9
["tagset", "tagset_unicode"] 622.474 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"]
  • ["getsetindex"]
  • ["indexset", "constructor"]
  • ["indexset", "filter"]
  • ["indexset", "set_functions"]
  • ["indexset", "set_functions", "uniqueinds"]
  • ["inplace"]
  • ["op"]
  • ["tagset"]

Julia versioninfo

Julia Version 1.6.1
Commit 6aaedecc44 (2021-04-23 05:59 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1047-azure #49-Ubuntu SMP Thu Apr 22 14:30:37 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz: 
              speed         user         nice          sys         idle          irq
       #1  2397 MHz       6278 s          2 s       1605 s      10798 s          0 s
       #2  2397 MHz      13276 s          1 s       1757 s       3682 s          0 s
       
  Memory: 6.791339874267578 GB (1397.5 MB free)
  Uptime: 1877.0 sec
  Load Avg:  1.03  1.16  1.06
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.1 (ORCJIT, haswell)

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:                           63
Model name:                      Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz
Stepping:                        2
CPU MHz:                         2397.217
BogoMIPS:                        4794.43
Hypervisor vendor:               Microsoft
Virtualization type:             full
L1d cache:                       64 KiB
L1i cache:                       64 KiB
L2 cache:                        512 KiB
L3 cache:                        30 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:   Not affected
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 invpcid_single pti fsgsbase bmi1 avx2 smep bmi2 erms invpcid xsaveopt md_clear
Cpu Property Value
Brand Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz
Vendor :Intel
Architecture :Haswell
Model Family: 0x06, Model: 0x3f, Stepping: 0x02, 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, 30720) 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[bot] avatar May 25 '21 18:05 github-actions[bot]

Yeah, I also added logic for looking ahead to the next gate to determine where to put the orthogonality center, I forgot to mention that. The logic is here, though it looks like it isn't specialized for the case where the gates overlap right now so I'll have to add that.

mtfishman avatar May 25 '21 18:05 mtfishman

Benchmark result

Judge result

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

Job Properties

  • Time of benchmarks:
    • Target: 25 May 2021 - 20:19
    • Baseline: 25 May 2021 - 20:31
  • Package commits:
    • Target: 2528fd
    • Baseline: 060128
  • Julia commits:
    • Target: 6aaede
    • Baseline: 6aaede
  • 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 :x:), while a ratio less than 1.0 denotes a possible improvement (marked with :white_check_mark:). 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%) :white_check_mark: 1.00 (1%)
["autompo", "Quartic QN Hamiltonian"] 0.94 (5%) :white_check_mark: 1.00 (1%)
["contract", "matmul_inplace_40"] 1.07 (5%) :x: 1.00 (1%)
["dmrg", "1d_S=1_heisenberg"] 0.83 (5%) :white_check_mark: 1.00 (1%)
["dmrg", "1d_S=1_heisenberg_qn"] 0.80 (5%) :white_check_mark: 1.00 (1%)
["getsetindex", "getindex end"] 0.87 (5%) :white_check_mark: 1.00 (1%)
["getsetindex", "getindex indval end"] 0.84 (5%) :white_check_mark: 1.00 (1%)
["getsetindex", "setindex! indval end"] 0.92 (5%) :white_check_mark: 1.00 (1%)
["indexset", "filter", "function"] 0.93 (5%) :white_check_mark: 1.00 (1%)
["indexset", "filter", "kwargs"] 0.92 (5%) :white_check_mark: 1.00 (1%)
["indexset", "set_functions", "noncommoninds, ITensor"] 1.07 (5%) :x: 1.00 (1%)
["indexset", "set_functions", "prime, ITensor"] 1.05 (5%) :x: 1.00 (1%)
["indexset", "set_functions", "unioninds, ITensor"] 0.81 (5%) :white_check_mark: 1.00 (1%)
["indexset", "set_functions", "uniqueinds", "3_inputs"] 1.10 (5%) :x: 1.00 (1%)
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] 0.88 (5%) :white_check_mark: 0.93 (1%) :white_check_mark:
["inplace", "axpy!"] 0.92 (5%) :white_check_mark: 1.00 (1%)
["tagset", "tagset"] 0.69 (5%) :white_check_mark: 0.62 (1%) :white_check_mark:
["tagset", "tagset_unicode"] 0.78 (5%) :white_check_mark: 0.62 (1%) :white_check_mark:

Benchmark Group List

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

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

Julia versioninfo

Target

Julia Version 1.6.1
Commit 6aaedecc44 (2021-04-23 05:59 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1047-azure #49-Ubuntu SMP Thu Apr 22 14:30:37 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz: 
              speed         user         nice          sys         idle          irq
       #1  2397 MHz       7126 s          1 s       1148 s       4616 s          0 s
       #2  2397 MHz       5884 s          1 s       1107 s       5917 s          0 s
       
  Memory: 6.791339874267578 GB (1220.41015625 MB free)
  Uptime: 1297.0 sec
  Load Avg:  1.05  1.22  0.99
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.1 (ORCJIT, haswell)

Baseline

Julia Version 1.6.1
Commit 6aaedecc44 (2021-04-23 05:59 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1047-azure #49-Ubuntu SMP Thu Apr 22 14:30:37 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz: 
              speed         user         nice          sys         idle          irq
       #1  2397 MHz      13277 s          1 s       1817 s       5027 s          0 s
       #2  2397 MHz       7077 s          1 s       1563 s      11490 s          0 s
       
  Memory: 6.791339874267578 GB (1190.59765625 MB free)
  Uptime: 2021.0 sec
  Load Avg:  1.04  1.19  1.09
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.1 (ORCJIT, haswell)

Target result

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

Job Properties

  • Time of benchmark: 25 May 2021 - 20:19
  • Package commit: 2528fd
  • Julia commit: 6aaede
  • 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"] 13.181 s (5%) 1.023 s 2.66 GiB (1%) 35127856
["autompo", "Quartic QN Hamiltonian"] 26.678 s (5%) 4.170 s 10.96 GiB (1%) 96270224
["contract", "heff_2site"] 6.675 ms (5%) 19.42 MiB (1%) 216
["contract", "matmul_100"] 57.803 μs (5%) 81.20 KiB (1%) 24
["contract", "matmul_20"] 3.638 μs (5%) 6.25 KiB (1%) 23
["contract", "matmul_40"] 10.601 μs (5%) 15.62 KiB (1%) 23
["contract", "matmul_60"] 26.101 μs (5%) 31.20 KiB (1%) 24
["contract", "matmul_80"] 36.002 μs (5%) 53.08 KiB (1%) 24
["contract", "matmul_inplace_100"] 101.404 μs (5%) 314.69 KiB (1%) 24
["contract", "matmul_inplace_20"] 6.100 μs (5%) 14.88 KiB (1%) 20
["contract", "matmul_inplace_40"] 17.300 μs (5%) 52.38 KiB (1%) 20
["contract", "matmul_inplace_60"] 38.401 μs (5%) 114.69 KiB (1%) 24
["contract", "matmul_inplace_80"] 65.604 μs (5%) 202.19 KiB (1%) 24
["dmrg", "1d_S=1_heisenberg"] 25.648 s (5%) 1.510 s 40.09 GiB (1%) 2180010
["dmrg", "1d_S=1_heisenberg_qn"] 16.190 s (5%) 1.485 s 11.48 GiB (1%) 56662709
["dmrg", "1d_S=1_heisenberg_qn_splitblocks"] 14.228 s (5%) 1.186 s 8.93 GiB (1%) 46097219
["getsetindex", "getindex end"] 219.166 ns (5%) 528 bytes (1%) 5
["getsetindex", "getindex indval end"] 67.727 ns (5%) 272 bytes (1%) 3
["getsetindex", "getindex indval"] 69.666 ns (5%) 272 bytes (1%) 3
["getsetindex", "getindex"] 23.117 ns (5%) 16 bytes (1%) 1
["getsetindex", "setindex! end"] 276.534 ns (5%) 768 bytes (1%) 6
["getsetindex", "setindex! indval end"] 98.619 ns (5%) 480 bytes (1%) 3
["getsetindex", "setindex! indval"] 102.017 ns (5%) 480 bytes (1%) 3
["getsetindex", "setindex!"] 68.245 ns (5%) 224 bytes (1%) 1
["indexset", "constructor", "function"] 612.244 ns (5%) 1.47 KiB (1%) 10
["indexset", "constructor", "function, tuple"] 423.633 ns (5%) 1.31 KiB (1%) 7
["indexset", "filter", "function"] 196.170 ns (5%) 1.14 KiB (1%) 1
["indexset", "filter", "function, tuple"] 0.001 ns (5%)
["indexset", "filter", "kwargs"] 190.443 ns (5%) 1.14 KiB (1%) 1
["indexset", "set_functions", "commoninds, ITensor"] 395.515 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "noncommoninds, ITensor"] 493.421 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "prime, ITensor"] 297.288 ns (5%) 832 bytes (1%) 4
["indexset", "set_functions", "unioninds, ITensor"] 637.017 ns (5%) 2.53 KiB (1%) 6
["indexset", "set_functions", "uniqueinds", "3_inputs"] 929.471 ns (5%) 3.00 KiB (1%) 12
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] 301.367 ns (5%) 912 bytes (1%) 6
["indexset", "set_functions", "uniqueinds", "filter_tags"] 196.173 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter0"] 140.031 ns (5%) 368 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter2"] 170.889 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds, ITensor"] 669.506 ns (5%) 1.91 KiB (1%) 7
["inplace", "axpy!"] 13.801 μs (5%) 1.73 KiB (1%) 24
["op", "op QN"] 9.600 μs (5%) 10.55 KiB (1%) 109
["op", "op"] 4.386 μs (5%) 4.19 KiB (1%) 40
["tagset", "tagset"] 303.700 ns (5%) 208 bytes (1%) 5
["tagset", "tagset_unicode"] 478.550 ns (5%) 208 bytes (1%) 5

Benchmark Group List

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

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

Julia versioninfo

Julia Version 1.6.1
Commit 6aaedecc44 (2021-04-23 05:59 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1047-azure #49-Ubuntu SMP Thu Apr 22 14:30:37 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz: 
              speed         user         nice          sys         idle          irq
       #1  2397 MHz       7126 s          1 s       1148 s       4616 s          0 s
       #2  2397 MHz       5884 s          1 s       1107 s       5917 s          0 s
       
  Memory: 6.791339874267578 GB (1220.41015625 MB free)
  Uptime: 1297.0 sec
  Load Avg:  1.05  1.22  0.99
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.1 (ORCJIT, haswell)

Baseline result

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

Job Properties

  • Time of benchmark: 25 May 2021 - 20:31
  • Package commit: 060128
  • Julia commit: 6aaede
  • 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"] 14.189 s (5%) 1.094 s 2.66 GiB (1%) 35127975
["autompo", "Quartic QN Hamiltonian"] 28.507 s (5%) 4.394 s 10.95 GiB (1%) 96179230
["contract", "heff_2site"] 6.674 ms (5%) 19.42 MiB (1%) 216
["contract", "matmul_100"] 59.219 μs (5%) 81.20 KiB (1%) 24
["contract", "matmul_20"] 3.525 μs (5%) 6.25 KiB (1%) 23
["contract", "matmul_40"] 10.402 μs (5%) 15.62 KiB (1%) 23
["contract", "matmul_60"] 25.301 μs (5%) 31.20 KiB (1%) 24
["contract", "matmul_80"] 36.801 μs (5%) 53.08 KiB (1%) 24
["contract", "matmul_inplace_100"] 103.103 μs (5%) 314.69 KiB (1%) 24
["contract", "matmul_inplace_20"] 6.060 μs (5%) 14.88 KiB (1%) 20
["contract", "matmul_inplace_40"] 16.203 μs (5%) 52.38 KiB (1%) 20
["contract", "matmul_inplace_60"] 38.401 μs (5%) 114.69 KiB (1%) 24
["contract", "matmul_inplace_80"] 64.502 μs (5%) 202.19 KiB (1%) 24
["dmrg", "1d_S=1_heisenberg"] 30.906 s (5%) 1.848 s 40.09 GiB (1%) 2183970
["dmrg", "1d_S=1_heisenberg_qn"] 20.318 s (5%) 1.866 s 11.47 GiB (1%) 56671229
["getsetindex", "getindex end"] 251.943 ns (5%) 528 bytes (1%) 5
["getsetindex", "getindex indval end"] 80.231 ns (5%) 272 bytes (1%) 3
["getsetindex", "getindex indval"] 67.318 ns (5%) 272 bytes (1%) 3
["getsetindex", "getindex"] 23.317 ns (5%) 16 bytes (1%) 1
["getsetindex", "setindex! end"] 281.415 ns (5%) 768 bytes (1%) 6
["getsetindex", "setindex! indval end"] 106.820 ns (5%) 480 bytes (1%) 3
["getsetindex", "setindex! indval"] 104.562 ns (5%) 480 bytes (1%) 3
["getsetindex", "setindex!"] 70.506 ns (5%) 224 bytes (1%) 1
["indexset", "constructor", "function"] 606.133 ns (5%) 1.47 KiB (1%) 10
["indexset", "constructor", "function, tuple"] 411.070 ns (5%) 1.31 KiB (1%) 7
["indexset", "filter", "function"] 209.839 ns (5%) 1.14 KiB (1%) 1
["indexset", "filter", "function, tuple"] 0.001 ns (5%)
["indexset", "filter", "kwargs"] 206.093 ns (5%) 1.14 KiB (1%) 1
["indexset", "set_functions", "commoninds, ITensor"] 382.510 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "noncommoninds, ITensor"] 461.939 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "prime, ITensor"] 282.109 ns (5%) 832 bytes (1%) 4
["indexset", "set_functions", "unioninds, ITensor"] 785.578 ns (5%) 2.53 KiB (1%) 6
["indexset", "set_functions", "uniqueinds", "3_inputs"] 841.235 ns (5%) 3.00 KiB (1%) 12
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] 342.090 ns (5%) 976 bytes (1%) 8
["indexset", "set_functions", "uniqueinds", "filter_tags"] 198.840 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter0"] 137.437 ns (5%) 368 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter2"] 172.603 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds, ITensor"] 646.812 ns (5%) 1.91 KiB (1%) 7
["inplace", "axpy!"] 15.001 μs (5%) 1.73 KiB (1%) 24
["op", "op QN"] 9.600 μs (5%) 10.55 KiB (1%) 109
["op", "op"] 4.400 μs (5%) 4.19 KiB (1%) 40
["tagset", "tagset"] 437.341 ns (5%) 336 bytes (1%) 9
["tagset", "tagset_unicode"] 613.634 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"]
  • ["getsetindex"]
  • ["indexset", "constructor"]
  • ["indexset", "filter"]
  • ["indexset", "set_functions"]
  • ["indexset", "set_functions", "uniqueinds"]
  • ["inplace"]
  • ["op"]
  • ["tagset"]

Julia versioninfo

Julia Version 1.6.1
Commit 6aaedecc44 (2021-04-23 05:59 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.2 LTS
  uname: Linux 5.4.0-1047-azure #49-Ubuntu SMP Thu Apr 22 14:30:37 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz: 
              speed         user         nice          sys         idle          irq
       #1  2397 MHz      13277 s          1 s       1817 s       5027 s          0 s
       #2  2397 MHz       7077 s          1 s       1563 s      11490 s          0 s
       
  Memory: 6.791339874267578 GB (1190.59765625 MB free)
  Uptime: 2021.0 sec
  Load Avg:  1.04  1.19  1.09
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.1 (ORCJIT, haswell)

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:                           63
Model name:                      Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz
Stepping:                        2
CPU MHz:                         2397.224
BogoMIPS:                        4794.44
Hypervisor vendor:               Microsoft
Virtualization type:             full
L1d cache:                       64 KiB
L1i cache:                       64 KiB
L2 cache:                        512 KiB
L3 cache:                        30 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:   Not affected
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 invpcid_single pti fsgsbase bmi1 avx2 smep bmi2 erms invpcid xsaveopt md_clear
Cpu Property Value
Brand Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz
Vendor :Intel
Architecture :Haswell
Model Family: 0x06, Model: 0x3f, Stepping: 0x02, 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, 30720) 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[bot] avatar May 25 '21 20:05 github-actions[bot]