Skip to content

Add write-to-disk during DMRG with SerializedElementArrays.jl #648

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

Merged
merged 15 commits into from
May 12, 2021

Conversation

mtfishman
Copy link
Member

@mtfishman mtfishman commented May 6, 2021

This makes use of SerializedElementArrays.jl (in the process of being registered) to add an option to write the effective Hamiltonian environments to disk in DMRG. It is enabled with the interface:

dmrg(H, psi0, sweeps; write_when_maxdim_exceeds=1000)

Internally it introduces a new type DiskProjMPO which generally acts as a ProjMPO but stores the ITensor environments in a DiskVector, which is a vector where the elements are written to disk in a serialized format.

@mtfishman
Copy link
Member Author

mtfishman commented May 7, 2021

In that latest I added better memory caching of the most recently created environment tensors, so they don't have to be read from disk during Lanczos. This is good to go once SerializedElementArrays.jl gets registered.

@mtfishman mtfishman closed this May 10, 2021
@mtfishman mtfishman deleted the branch main May 10, 2021 13:40
@mtfishman mtfishman reopened this May 10, 2021
@mtfishman mtfishman changed the base branch from master to main May 10, 2021 13:54
@mtfishman mtfishman changed the title Add write-to-disk during DMRG with SerializedElementArrays Add write-to-disk during DMRG with SerializedElementArrays.jl May 10, 2021
@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: 12 May 2021 - 14:14
    • Baseline: 12 May 2021 - 14:24
  • Package commits:
    • Target: 9ff95f
    • Baseline: 9fe8d5
  • 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 ❌), 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
["contract", "matmul_40"] 1.10 (5%) ❌ 1.00 (1%)
["contract", "matmul_inplace_40"] 1.07 (5%) ❌ 1.00 (1%)
["getsetindex", "getindex"] 1.08 (5%) ❌ 1.00 (1%)
["indexset", "constructor", "function"] 0.84 (5%) ✅ 1.00 (1%)
["indexset", "set_functions", "prime, ITensor"] 1.07 (5%) ❌ 1.00 (1%)
["indexset", "set_functions", "uniqueinds", "nofilter0"] 1.16 (5%) ❌ 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-1046-azure #48-Ubuntu SMP Tue Apr 13 07:18:42 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       3865 s          1 s        703 s       4677 s          0 s
       #2  2095 MHz       6572 s          1 s        796 s       1906 s          0 s
       
  Memory: 6.791343688964844 GB (1929.73828125 MB free)
  Uptime: 933.0 sec
  Load Avg:  1.16  1.31  0.93
  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-1046-azure #48-Ubuntu SMP Tue Apr 13 07:18:42 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       5364 s          1 s       1117 s       8435 s          0 s
       #2  2095 MHz      11229 s          1 s       1044 s       2682 s          0 s
       
  Memory: 6.791343688964844 GB (2220.296875 MB free)
  Uptime: 1501.0 sec
  Load Avg:  1.16  1.24  1.06
  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: 12 May 2021 - 14:14
  • Package commit: 9ff95f
  • 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"] 6.021 s (5%) 301.373 ms 1.40 GiB (1%) 15818890
["autompo", "Quartic QN Hamiltonian"] 16.591 s (5%) 3.114 s 9.68 GiB (1%) 76786938
["contract", "heff_2site"] 5.935 ms (5%) 19.42 MiB (1%) 216
["contract", "matmul_100"] 45.200 μs (5%) 81.20 KiB (1%) 24
["contract", "matmul_20"] 3.638 μs (5%) 6.25 KiB (1%) 23
["contract", "matmul_40"] 8.667 μs (5%) 15.62 KiB (1%) 23
["contract", "matmul_60"] 20.300 μs (5%) 31.20 KiB (1%) 24
["contract", "matmul_80"] 25.801 μs (5%) 53.08 KiB (1%) 24
["contract", "matmul_inplace_100"] 80.200 μs (5%) 314.69 KiB (1%) 24
["contract", "matmul_inplace_20"] 5.860 μs (5%) 14.88 KiB (1%) 20
["contract", "matmul_inplace_40"] 12.900 μs (5%) 52.38 KiB (1%) 20
["contract", "matmul_inplace_60"] 29.400 μs (5%) 114.69 KiB (1%) 24
["contract", "matmul_inplace_80"] 51.800 μs (5%) 202.19 KiB (1%) 24
["dmrg", "1d_S=1_heisenberg"] 25.563 s (5%) 2.476 s 40.09 GiB (1%) 2174782
["dmrg", "1d_S=1_heisenberg_qn"] 14.969 s (5%) 1.611 s 11.47 GiB (1%) 56662431
["getsetindex", "getindex end"] 233.409 ns (5%) 528 bytes (1%) 5
["getsetindex", "getindex indval end"] 140.427 ns (5%) 352 bytes (1%) 6
["getsetindex", "getindex indval"] 73.512 ns (5%) 272 bytes (1%) 3
["getsetindex", "getindex"] 29.548 ns (5%) 16 bytes (1%) 1
["getsetindex", "setindex! end"] 307.786 ns (5%) 768 bytes (1%) 6
["getsetindex", "setindex! indval end"] 207.694 ns (5%) 784 bytes (1%) 7
["getsetindex", "setindex! indval"] 112.915 ns (5%) 480 bytes (1%) 3
["getsetindex", "setindex!"] 74.331 ns (5%) 224 bytes (1%) 1
["indexset", "constructor", "function"] 696.881 ns (5%) 1.47 KiB (1%) 10
["indexset", "constructor", "function, tuple"] 434.678 ns (5%) 1.31 KiB (1%) 7
["indexset", "filter", "function"] 179.858 ns (5%) 1.14 KiB (1%) 1
["indexset", "filter", "function, tuple"] 0.001 ns (5%)
["indexset", "filter", "kwargs"] 195.086 ns (5%) 1.14 KiB (1%) 1
["indexset", "set_functions", "commoninds, ITensor"] 398.505 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "noncommoninds, ITensor"] 470.413 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "prime, ITensor"] 309.473 ns (5%) 832 bytes (1%) 4
["indexset", "set_functions", "unioninds, ITensor"] 620.244 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"] 373.562 ns (5%) 976 bytes (1%) 8
["indexset", "set_functions", "uniqueinds", "filter_tags"] 195.165 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter0"] 175.001 ns (5%) 368 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter2"] 169.962 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds, ITensor"] 700.727 ns (5%) 1.91 KiB (1%) 7
["inplace", "axpy!"] 15.600 μs (5%) 1.73 KiB (1%) 24
["op", "op QN"] 8.500 μs (5%) 10.55 KiB (1%) 109
["op", "op"] 5.017 μs (5%) 4.19 KiB (1%) 40
["tagset", "tagset"] 476.536 ns (5%) 336 bytes (1%) 9
["tagset", "tagset_unicode"] 693.204 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-1046-azure #48-Ubuntu SMP Tue Apr 13 07:18:42 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       3865 s          1 s        703 s       4677 s          0 s
       #2  2095 MHz       6572 s          1 s        796 s       1906 s          0 s
       
  Memory: 6.791343688964844 GB (1929.73828125 MB free)
  Uptime: 933.0 sec
  Load Avg:  1.16  1.31  0.93
  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: 12 May 2021 - 14:24
  • Package commit: 9fe8d5
  • 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"] 5.928 s (5%) 299.291 ms 1.40 GiB (1%) 15818892
["autompo", "Quartic QN Hamiltonian"] 16.315 s (5%) 3.077 s 9.65 GiB (1%) 76556333
["contract", "heff_2site"] 5.925 ms (5%) 19.42 MiB (1%) 216
["contract", "matmul_100"] 43.801 μs (5%) 81.20 KiB (1%) 24
["contract", "matmul_20"] 3.625 μs (5%) 6.25 KiB (1%) 23
["contract", "matmul_40"] 7.900 μs (5%) 15.62 KiB (1%) 23
["contract", "matmul_60"] 20.200 μs (5%) 31.20 KiB (1%) 24
["contract", "matmul_80"] 25.000 μs (5%) 53.08 KiB (1%) 24
["contract", "matmul_inplace_100"] 78.301 μs (5%) 314.69 KiB (1%) 24
["contract", "matmul_inplace_20"] 6.160 μs (5%) 14.88 KiB (1%) 20
["contract", "matmul_inplace_40"] 12.000 μs (5%) 52.38 KiB (1%) 20
["contract", "matmul_inplace_60"] 28.801 μs (5%) 114.69 KiB (1%) 24
["contract", "matmul_inplace_80"] 49.701 μs (5%) 202.19 KiB (1%) 24
["dmrg", "1d_S=1_heisenberg"] 25.387 s (5%) 2.480 s 40.09 GiB (1%) 2174782
["dmrg", "1d_S=1_heisenberg_qn"] 14.650 s (5%) 1.552 s 11.47 GiB (1%) 56662239
["getsetindex", "getindex end"] 232.312 ns (5%) 528 bytes (1%) 5
["getsetindex", "getindex indval end"] 144.091 ns (5%) 352 bytes (1%) 6
["getsetindex", "getindex indval"] 73.204 ns (5%) 272 bytes (1%) 3
["getsetindex", "getindex"] 27.437 ns (5%) 16 bytes (1%) 1
["getsetindex", "setindex! end"] 311.288 ns (5%) 768 bytes (1%) 6
["getsetindex", "setindex! indval end"] 212.138 ns (5%) 784 bytes (1%) 7
["getsetindex", "setindex! indval"] 112.061 ns (5%) 480 bytes (1%) 3
["getsetindex", "setindex!"] 77.321 ns (5%) 224 bytes (1%) 1
["indexset", "constructor", "function"] 833.131 ns (5%) 1.47 KiB (1%) 10
["indexset", "constructor", "function, tuple"] 437.191 ns (5%) 1.31 KiB (1%) 7
["indexset", "filter", "function"] 185.039 ns (5%) 1.14 KiB (1%) 1
["indexset", "filter", "function, tuple"] 0.001 ns (5%)
["indexset", "filter", "kwargs"] 186.783 ns (5%) 1.14 KiB (1%) 1
["indexset", "set_functions", "commoninds, ITensor"] 392.505 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "noncommoninds, ITensor"] 455.107 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "prime, ITensor"] 289.777 ns (5%) 832 bytes (1%) 4
["indexset", "set_functions", "unioninds, ITensor"] 618.458 ns (5%) 2.53 KiB (1%) 6
["indexset", "set_functions", "uniqueinds", "3_inputs"] 907.692 ns (5%) 3.00 KiB (1%) 12
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] 376.928 ns (5%) 976 bytes (1%) 8
["indexset", "set_functions", "uniqueinds", "filter_tags"] 190.643 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter0"] 150.276 ns (5%) 368 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter2"] 165.877 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds, ITensor"] 671.950 ns (5%) 1.91 KiB (1%) 7
["inplace", "axpy!"] 15.600 μs (5%) 1.73 KiB (1%) 24
["op", "op QN"] 8.567 μs (5%) 10.55 KiB (1%) 109
["op", "op"] 4.950 μs (5%) 4.19 KiB (1%) 40
["tagset", "tagset"] 486.740 ns (5%) 336 bytes (1%) 9
["tagset", "tagset_unicode"] 704.088 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-1046-azure #48-Ubuntu SMP Tue Apr 13 07:18:42 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       5364 s          1 s       1117 s       8435 s          0 s
       #2  2095 MHz      11229 s          1 s       1044 s       2682 s          0 s
       
  Memory: 6.791343688964844 GB (2220.296875 MB free)
  Uptime: 1501.0 sec
  Load Avg:  1.16  1.24  1.06
  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.074
BogoMIPS:                        4190.14
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

@codecov-commenter
Copy link

codecov-commenter commented May 12, 2021

Codecov Report

Merging #648 (e454452) into main (bdfbd3c) will increase coverage by 0.08%.
The diff coverage is 76.11%.

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #648      +/-   ##
==========================================
+ Coverage   79.65%   79.73%   +0.08%     
==========================================
  Files          78       80       +2     
  Lines        8643     8692      +49     
==========================================
+ Hits         6885     6931      +46     
- Misses       1758     1761       +3     
Impacted Files Coverage Δ
src/ITensors.jl 30.00% <ø> (ø)
src/mps/projmpo.jl 100.00% <ø> (+33.72%) ⬆️
src/physics/sitetype.jl 95.74% <ø> (ø)
src/mps/abstractprojmpo.jl 71.56% <71.56%> (ø)
src/mps/dmrg.jl 84.68% <80.00%> (-0.23%) ⬇️
src/mps/diskprojmpo.jl 92.59% <92.59%> (ø)

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 bdfbd3c...e454452. Read the comment docs.

@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: 12 May 2021 - 14:49
    • Baseline: 12 May 2021 - 15:01
  • Package commits:
    • Target: c8a3ca
    • Baseline: 9fe8d5
  • 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 ❌), 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
["contract", "matmul_inplace_60"] 0.92 (5%) ✅ 1.00 (1%)
["getsetindex", "getindex indval"] 0.88 (5%) ✅ 1.00 (1%)
["getsetindex", "setindex! indval"] 0.83 (5%) ✅ 1.00 (1%)
["getsetindex", "setindex!"] 1.06 (5%) ❌ 1.00 (1%)
["indexset", "constructor", "function"] 0.88 (5%) ✅ 1.00 (1%)
["indexset", "constructor", "function, tuple"] 1.07 (5%) ❌ 1.00 (1%)
["indexset", "set_functions", "commoninds, ITensor"] 1.09 (5%) ❌ 1.00 (1%)
["indexset", "set_functions", "noncommoninds, ITensor"] 0.94 (5%) ✅ 1.00 (1%)
["indexset", "set_functions", "prime, ITensor"] 1.09 (5%) ❌ 1.00 (1%)
["indexset", "set_functions", "uniqueinds", "3_inputs"] 0.94 (5%) ✅ 1.00 (1%)
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] 0.89 (5%) ✅ 1.00 (1%)
["indexset", "set_functions", "uniqueinds", "nofilter0"] 0.91 (5%) ✅ 1.00 (1%)
["indexset", "set_functions", "uniqueinds", "nofilter2"] 0.91 (5%) ✅ 1.00 (1%)
["inplace", "axpy!"] 0.90 (5%) ✅ 1.00 (1%)
["op", "op QN"] 0.91 (5%) ✅ 1.00 (1%)
["op", "op"] 1.07 (5%) ❌ 1.00 (1%)
["tagset", "tagset"] 1.06 (5%) ❌ 1.00 (1%)
["tagset", "tagset_unicode"] 1.10 (5%) ❌ 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-1046-azure #48-Ubuntu SMP Tue Apr 13 07:18:42 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       9232 s          1 s        527 s       3290 s          0 s
       #2  2294 MHz       2976 s          1 s       1037 s       9016 s          0 s
       
  Memory: 6.791343688964844 GB (2030.37890625 MB free)
  Uptime: 1311.0 sec
  Load Avg:  1.15  1.3  0.95
  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-1046-azure #48-Ubuntu SMP Tue Apr 13 07:18:42 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      15160 s          1 s       1009 s       3803 s          0 s
       #2  2294 MHz       4554 s          1 s       1313 s      14076 s          0 s
       
  Memory: 6.791343688964844 GB (2280.453125 MB free)
  Uptime: 2004.0 sec
  Load Avg:  1.12  1.23  1.09
  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: 12 May 2021 - 14:49
  • Package commit: c8a3ca
  • 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"] 6.912 s (5%) 355.337 ms 1.40 GiB (1%) 15818897
["autompo", "Quartic QN Hamiltonian"] 20.300 s (5%) 3.429 s 9.72 GiB (1%) 77075384
["contract", "heff_2site"] 6.968 ms (5%) 19.42 MiB (1%) 216
["contract", "matmul_100"] 60.200 μs (5%) 81.20 KiB (1%) 24
["contract", "matmul_20"] 4.029 μs (5%) 6.25 KiB (1%) 23
["contract", "matmul_40"] 10.900 μs (5%) 15.62 KiB (1%) 23
["contract", "matmul_60"] 29.001 μs (5%) 31.20 KiB (1%) 24
["contract", "matmul_80"] 40.100 μs (5%) 53.08 KiB (1%) 24
["contract", "matmul_inplace_100"] 97.801 μs (5%) 314.69 KiB (1%) 24
["contract", "matmul_inplace_20"] 6.380 μs (5%) 14.88 KiB (1%) 20
["contract", "matmul_inplace_40"] 17.800 μs (5%) 52.38 KiB (1%) 20
["contract", "matmul_inplace_60"] 39.601 μs (5%) 114.69 KiB (1%) 24
["contract", "matmul_inplace_80"] 64.001 μs (5%) 202.19 KiB (1%) 24
["dmrg", "1d_S=1_heisenberg"] 31.822 s (5%) 3.113 s 40.09 GiB (1%) 2174782
["dmrg", "1d_S=1_heisenberg_qn"] 17.512 s (5%) 1.842 s 11.47 GiB (1%) 56662431
["getsetindex", "getindex end"] 230.922 ns (5%) 528 bytes (1%) 5
["getsetindex", "getindex indval end"] 147.130 ns (5%) 352 bytes (1%) 6
["getsetindex", "getindex indval"] 73.362 ns (5%) 272 bytes (1%) 3
["getsetindex", "getindex"] 28.213 ns (5%) 16 bytes (1%) 1
["getsetindex", "setindex! end"] 283.813 ns (5%) 768 bytes (1%) 6
["getsetindex", "setindex! indval end"] 226.794 ns (5%) 784 bytes (1%) 7
["getsetindex", "setindex! indval"] 116.668 ns (5%) 480 bytes (1%) 3
["getsetindex", "setindex!"] 79.627 ns (5%) 224 bytes (1%) 1
["indexset", "constructor", "function"] 675.764 ns (5%) 1.47 KiB (1%) 10
["indexset", "constructor", "function, tuple"] 500.000 ns (5%) 1.31 KiB (1%) 7
["indexset", "filter", "function"] 175.217 ns (5%) 1.14 KiB (1%) 1
["indexset", "filter", "function, tuple"] 0.001 ns (5%)
["indexset", "filter", "kwargs"] 163.725 ns (5%) 1.14 KiB (1%) 1
["indexset", "set_functions", "commoninds, ITensor"] 435.678 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "noncommoninds, ITensor"] 507.732 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "prime, ITensor"] 312.889 ns (5%) 832 bytes (1%) 4
["indexset", "set_functions", "unioninds, ITensor"] 661.297 ns (5%) 2.53 KiB (1%) 6
["indexset", "set_functions", "uniqueinds", "3_inputs"] 950.000 ns (5%) 3.00 KiB (1%) 12
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] 355.670 ns (5%) 976 bytes (1%) 8
["indexset", "set_functions", "uniqueinds", "filter_tags"] 206.556 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter0"] 151.387 ns (5%) 368 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter2"] 170.927 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds, ITensor"] 705.193 ns (5%) 1.91 KiB (1%) 7
["inplace", "axpy!"] 14.200 μs (5%) 1.73 KiB (1%) 24
["op", "op QN"] 10.601 μs (5%) 10.55 KiB (1%) 109
["op", "op"] 4.617 μs (5%) 4.19 KiB (1%) 40
["tagset", "tagset"] 425.893 ns (5%) 336 bytes (1%) 9
["tagset", "tagset_unicode"] 655.951 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-1046-azure #48-Ubuntu SMP Tue Apr 13 07:18:42 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       9232 s          1 s        527 s       3290 s          0 s
       #2  2294 MHz       2976 s          1 s       1037 s       9016 s          0 s
       
  Memory: 6.791343688964844 GB (2030.37890625 MB free)
  Uptime: 1311.0 sec
  Load Avg:  1.15  1.3  0.95
  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: 12 May 2021 - 15:1
  • Package commit: 9fe8d5
  • 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"] 6.942 s (5%) 346.122 ms 1.40 GiB (1%) 15818892
["autompo", "Quartic QN Hamiltonian"] 20.750 s (5%) 3.528 s 9.70 GiB (1%) 76946688
["contract", "heff_2site"] 6.950 ms (5%) 19.42 MiB (1%) 216
["contract", "matmul_100"] 62.201 μs (5%) 81.20 KiB (1%) 24
["contract", "matmul_20"] 3.986 μs (5%) 6.25 KiB (1%) 23
["contract", "matmul_40"] 11.300 μs (5%) 15.62 KiB (1%) 23
["contract", "matmul_60"] 29.100 μs (5%) 31.20 KiB (1%) 24
["contract", "matmul_80"] 40.301 μs (5%) 53.08 KiB (1%) 24
["contract", "matmul_inplace_100"] 97.301 μs (5%) 314.69 KiB (1%) 24
["contract", "matmul_inplace_20"] 6.400 μs (5%) 14.88 KiB (1%) 20
["contract", "matmul_inplace_40"] 18.100 μs (5%) 52.38 KiB (1%) 20
["contract", "matmul_inplace_60"] 42.901 μs (5%) 114.69 KiB (1%) 24
["contract", "matmul_inplace_80"] 67.100 μs (5%) 202.19 KiB (1%) 24
["dmrg", "1d_S=1_heisenberg"] 31.975 s (5%) 3.545 s 40.09 GiB (1%) 2174782
["dmrg", "1d_S=1_heisenberg_qn"] 18.144 s (5%) 1.982 s 11.47 GiB (1%) 56662431
["getsetindex", "getindex end"] 222.507 ns (5%) 528 bytes (1%) 5
["getsetindex", "getindex indval end"] 142.584 ns (5%) 352 bytes (1%) 6
["getsetindex", "getindex indval"] 83.709 ns (5%) 272 bytes (1%) 3
["getsetindex", "getindex"] 27.410 ns (5%) 16 bytes (1%) 1
["getsetindex", "setindex! end"] 278.008 ns (5%) 768 bytes (1%) 6
["getsetindex", "setindex! indval end"] 228.115 ns (5%) 784 bytes (1%) 7
["getsetindex", "setindex! indval"] 139.869 ns (5%) 480 bytes (1%) 3
["getsetindex", "setindex!"] 74.871 ns (5%) 224 bytes (1%) 1
["indexset", "constructor", "function"] 770.309 ns (5%) 1.47 KiB (1%) 10
["indexset", "constructor", "function, tuple"] 468.205 ns (5%) 1.31 KiB (1%) 7
["indexset", "filter", "function"] 173.491 ns (5%) 1.14 KiB (1%) 1
["indexset", "filter", "function, tuple"] 0.001 ns (5%)
["indexset", "filter", "kwargs"] 156.164 ns (5%) 1.14 KiB (1%) 1
["indexset", "set_functions", "commoninds, ITensor"] 398.995 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "noncommoninds, ITensor"] 541.758 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "prime, ITensor"] 286.671 ns (5%) 832 bytes (1%) 4
["indexset", "set_functions", "unioninds, ITensor"] 681.297 ns (5%) 2.53 KiB (1%) 6
["indexset", "set_functions", "uniqueinds", "3_inputs"] 1.008 μs (5%) 3.00 KiB (1%) 12
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] 398.034 ns (5%) 976 bytes (1%) 8
["indexset", "set_functions", "uniqueinds", "filter_tags"] 208.573 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter0"] 166.467 ns (5%) 368 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter2"] 188.107 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds, ITensor"] 700.000 ns (5%) 1.91 KiB (1%) 7
["inplace", "axpy!"] 15.700 μs (5%) 1.73 KiB (1%) 24
["op", "op QN"] 11.600 μs (5%) 10.55 KiB (1%) 109
["op", "op"] 4.300 μs (5%) 4.19 KiB (1%) 40
["tagset", "tagset"] 401.528 ns (5%) 336 bytes (1%) 9
["tagset", "tagset_unicode"] 593.706 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-1046-azure #48-Ubuntu SMP Tue Apr 13 07:18:42 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      15160 s          1 s       1009 s       3803 s          0 s
       #2  2294 MHz       4554 s          1 s       1313 s      14076 s          0 s
       
  Memory: 6.791343688964844 GB (2280.453125 MB free)
  Uptime: 2004.0 sec
  Load Avg:  1.12  1.23  1.09
  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.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

@mtfishman
Copy link
Member Author

Thanks for the comments, definitely the design could be a bit cleaner and use caching a bit better (particularly when making the environments, as you pointed out).

Note that it looks like the benchmark and documenter CI are working again since I've accounted for the change from master to main. Also updating my local version of JuliaFormatter to v0.14.1 and then formatting locally helped get that CI to pass.

@emstoudenmire
Copy link
Collaborator

Agreed. I didn't want to nitpick too much about that, but I do think for functions on abstract inputs, using getter and setter patterns is the best way to go, for one thing because then concrete types can execute code like updating caches within these without it having to be in the abstract logic (another more minor reason is so that the field names can be different among various concrete types, but that's pretty minor).

Good note about JuliaFormatter - probably that's why my recent PR didn't pass. Updating now...

@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: 12 May 2021 - 15:03
    • Baseline: 12 May 2021 - 15:13
  • Package commits:
    • Target: c5b78c
    • Baseline: 9fe8d5
  • 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 ❌), 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
["contract", "matmul_inplace_100"] 0.94 (5%) ✅ 1.00 (1%)
["contract", "matmul_inplace_80"] 1.06 (5%) ❌ 1.00 (1%)
["getsetindex", "getindex"] 0.85 (5%) ✅ 1.00 (1%)
["indexset", "constructor", "function"] 1.06 (5%) ❌ 1.00 (1%)
["indexset", "constructor", "function, tuple"] 1.20 (5%) ❌ 1.00 (1%)
["indexset", "filter", "function"] 0.78 (5%) ✅ 1.00 (1%)
["indexset", "filter", "kwargs"] 1.13 (5%) ❌ 1.00 (1%)
["indexset", "set_functions", "prime, ITensor"] 0.93 (5%) ✅ 1.00 (1%)
["indexset", "set_functions", "unioninds, ITensor"] 1.08 (5%) ❌ 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-1046-azure #48-Ubuntu SMP Tue Apr 13 07:18:42 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz: 
              speed         user         nice          sys         idle          irq
       #1  2394 MHz       4241 s          2 s       1002 s       3917 s          0 s
       #2  2394 MHz       6193 s          0 s        322 s       2637 s          0 s
       
  Memory: 6.791343688964844 GB (1714.12890625 MB free)
  Uptime: 922.0 sec
  Load Avg:  1.16  1.3  0.89
  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-1046-azure #48-Ubuntu SMP Tue Apr 13 07:18:42 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz: 
              speed         user         nice          sys         idle          irq
       #1  2394 MHz       7495 s          2 s       1272 s       6216 s          0 s
       #2  2394 MHz       9297 s          0 s        643 s       5034 s          0 s
       
  Memory: 6.791343688964844 GB (2135.44921875 MB free)
  Uptime: 1505.0 sec
  Load Avg:  1.15  1.25  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: 12 May 2021 - 15:3
  • Package commit: c5b78c
  • 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"] 5.451 s (5%) 290.326 ms 1.40 GiB (1%) 15818877
["autompo", "Quartic QN Hamiltonian"] 16.327 s (5%) 2.929 s 9.68 GiB (1%) 76824240
["contract", "heff_2site"] 6.065 ms (5%) 19.42 MiB (1%) 216
["contract", "matmul_100"] 52.401 μs (5%) 81.20 KiB (1%) 24
["contract", "matmul_20"] 3.462 μs (5%) 6.25 KiB (1%) 23
["contract", "matmul_40"] 9.700 μs (5%) 15.62 KiB (1%) 23
["contract", "matmul_60"] 24.101 μs (5%) 31.20 KiB (1%) 24
["contract", "matmul_80"] 33.601 μs (5%) 53.08 KiB (1%) 24
["contract", "matmul_inplace_100"] 87.001 μs (5%) 314.69 KiB (1%) 24
["contract", "matmul_inplace_20"] 5.383 μs (5%) 14.88 KiB (1%) 20
["contract", "matmul_inplace_40"] 15.500 μs (5%) 52.38 KiB (1%) 20
["contract", "matmul_inplace_60"] 36.100 μs (5%) 114.69 KiB (1%) 24
["contract", "matmul_inplace_80"] 59.000 μs (5%) 202.19 KiB (1%) 24
["dmrg", "1d_S=1_heisenberg"] 26.034 s (5%) 2.924 s 40.09 GiB (1%) 2174782
["dmrg", "1d_S=1_heisenberg_qn"] 14.508 s (5%) 1.656 s 11.47 GiB (1%) 56662431
["getsetindex", "getindex end"] 201.627 ns (5%) 528 bytes (1%) 5
["getsetindex", "getindex indval end"] 127.619 ns (5%) 352 bytes (1%) 6
["getsetindex", "getindex indval"] 63.333 ns (5%) 272 bytes (1%) 3
["getsetindex", "getindex"] 24.574 ns (5%) 16 bytes (1%) 1
["getsetindex", "setindex! end"] 273.174 ns (5%) 768 bytes (1%) 6
["getsetindex", "setindex! indval end"] 196.198 ns (5%) 784 bytes (1%) 7
["getsetindex", "setindex! indval"] 97.150 ns (5%) 480 bytes (1%) 3
["getsetindex", "setindex!"] 70.390 ns (5%) 224 bytes (1%) 1
["indexset", "constructor", "function"] 629.845 ns (5%) 1.47 KiB (1%) 10
["indexset", "constructor", "function, tuple"] 454.505 ns (5%) 1.31 KiB (1%) 7
["indexset", "filter", "function"] 149.600 ns (5%) 1.14 KiB (1%) 1
["indexset", "filter", "function, tuple"] 0.001 ns (5%)
["indexset", "filter", "kwargs"] 154.099 ns (5%) 1.14 KiB (1%) 1
["indexset", "set_functions", "commoninds, ITensor"] 362.042 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "noncommoninds, ITensor"] 445.231 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "prime, ITensor"] 280.064 ns (5%) 832 bytes (1%) 4
["indexset", "set_functions", "unioninds, ITensor"] 624.049 ns (5%) 2.53 KiB (1%) 6
["indexset", "set_functions", "uniqueinds", "3_inputs"] 865.116 ns (5%) 3.00 KiB (1%) 12
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] 337.996 ns (5%) 976 bytes (1%) 8
["indexset", "set_functions", "uniqueinds", "filter_tags"] 175.845 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter0"] 135.087 ns (5%) 368 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter2"] 160.245 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds, ITensor"] 604.603 ns (5%) 1.91 KiB (1%) 7
["inplace", "axpy!"] 14.000 μs (5%) 1.73 KiB (1%) 24
["op", "op QN"] 8.900 μs (5%) 10.55 KiB (1%) 109
["op", "op"] 4.329 μs (5%) 4.19 KiB (1%) 40
["tagset", "tagset"] 399.505 ns (5%) 336 bytes (1%) 9
["tagset", "tagset_unicode"] 598.882 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-1046-azure #48-Ubuntu SMP Tue Apr 13 07:18:42 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz: 
              speed         user         nice          sys         idle          irq
       #1  2394 MHz       4241 s          2 s       1002 s       3917 s          0 s
       #2  2394 MHz       6193 s          0 s        322 s       2637 s          0 s
       
  Memory: 6.791343688964844 GB (1714.12890625 MB free)
  Uptime: 922.0 sec
  Load Avg:  1.16  1.3  0.89
  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: 12 May 2021 - 15:13
  • Package commit: 9fe8d5
  • 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"] 5.499 s (5%) 307.941 ms 1.40 GiB (1%) 15818887
["autompo", "Quartic QN Hamiltonian"] 16.549 s (5%) 3.058 s 9.69 GiB (1%) 76842828
["contract", "heff_2site"] 6.059 ms (5%) 19.42 MiB (1%) 216
["contract", "matmul_100"] 53.100 μs (5%) 81.20 KiB (1%) 24
["contract", "matmul_20"] 3.388 μs (5%) 6.25 KiB (1%) 23
["contract", "matmul_40"] 9.900 μs (5%) 15.62 KiB (1%) 23
["contract", "matmul_60"] 24.600 μs (5%) 31.20 KiB (1%) 24
["contract", "matmul_80"] 34.700 μs (5%) 53.08 KiB (1%) 24
["contract", "matmul_inplace_100"] 92.601 μs (5%) 314.69 KiB (1%) 24
["contract", "matmul_inplace_20"] 5.450 μs (5%) 14.88 KiB (1%) 20
["contract", "matmul_inplace_40"] 15.500 μs (5%) 52.38 KiB (1%) 20
["contract", "matmul_inplace_60"] 36.100 μs (5%) 114.69 KiB (1%) 24
["contract", "matmul_inplace_80"] 55.901 μs (5%) 202.19 KiB (1%) 24
["dmrg", "1d_S=1_heisenberg"] 27.065 s (5%) 3.120 s 40.09 GiB (1%) 2174782
["dmrg", "1d_S=1_heisenberg_qn"] 14.779 s (5%) 1.782 s 11.47 GiB (1%) 56662431
["getsetindex", "getindex end"] 203.898 ns (5%) 528 bytes (1%) 5
["getsetindex", "getindex indval end"] 133.186 ns (5%) 352 bytes (1%) 6
["getsetindex", "getindex indval"] 60.834 ns (5%) 272 bytes (1%) 3
["getsetindex", "getindex"] 28.987 ns (5%) 16 bytes (1%) 1
["getsetindex", "setindex! end"] 268.601 ns (5%) 768 bytes (1%) 6
["getsetindex", "setindex! indval end"] 195.407 ns (5%) 784 bytes (1%) 7
["getsetindex", "setindex! indval"] 97.889 ns (5%) 480 bytes (1%) 3
["getsetindex", "setindex!"] 71.825 ns (5%) 224 bytes (1%) 1
["indexset", "constructor", "function"] 592.271 ns (5%) 1.47 KiB (1%) 10
["indexset", "constructor", "function, tuple"] 380.005 ns (5%) 1.31 KiB (1%) 7
["indexset", "filter", "function"] 193.015 ns (5%) 1.14 KiB (1%) 1
["indexset", "filter", "function, tuple"] 0.001 ns (5%)
["indexset", "filter", "kwargs"] 136.254 ns (5%) 1.14 KiB (1%) 1
["indexset", "set_functions", "commoninds, ITensor"] 356.023 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "noncommoninds, ITensor"] 425.633 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "prime, ITensor"] 301.537 ns (5%) 832 bytes (1%) 4
["indexset", "set_functions", "unioninds, ITensor"] 577.601 ns (5%) 2.53 KiB (1%) 6
["indexset", "set_functions", "uniqueinds", "3_inputs"] 825.581 ns (5%) 3.00 KiB (1%) 12
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] 333.192 ns (5%) 976 bytes (1%) 8
["indexset", "set_functions", "uniqueinds", "filter_tags"] 179.490 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter0"] 136.687 ns (5%) 368 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter2"] 159.759 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds, ITensor"] 614.948 ns (5%) 1.91 KiB (1%) 7
["inplace", "axpy!"] 14.200 μs (5%) 1.73 KiB (1%) 24
["op", "op QN"] 9.100 μs (5%) 10.55 KiB (1%) 109
["op", "op"] 4.443 μs (5%) 4.19 KiB (1%) 40
["tagset", "tagset"] 411.505 ns (5%) 336 bytes (1%) 9
["tagset", "tagset_unicode"] 603.376 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-1046-azure #48-Ubuntu SMP Tue Apr 13 07:18:42 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz: 
              speed         user         nice          sys         idle          irq
       #1  2394 MHz       7495 s          2 s       1272 s       6216 s          0 s
       #2  2394 MHz       9297 s          0 s        643 s       5034 s          0 s
       
  Memory: 6.791343688964844 GB (2135.44921875 MB free)
  Uptime: 1505.0 sec
  Load Avg:  1.15  1.25  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:                         2394.455
BogoMIPS:                        4788.91
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
Copy link
Contributor

Benchmark result

Judge result

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

Job Properties

  • Time of benchmarks:
    • Target: 12 May 2021 - 18:24
    • Baseline: 12 May 2021 - 18:34
  • Package commits:
    • Target: 47e524
    • Baseline: 9fe8d5
  • 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 ❌), 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
["contract", "matmul_100"] 1.11 (5%) ❌ 1.00 (1%)
["contract", "matmul_20"] 1.11 (5%) ❌ 1.00 (1%)
["contract", "matmul_60"] 1.08 (5%) ❌ 1.00 (1%)
["contract", "matmul_80"] 1.09 (5%) ❌ 1.00 (1%)
["contract", "matmul_inplace_100"] 1.06 (5%) ❌ 1.00 (1%)
["contract", "matmul_inplace_20"] 0.93 (5%) ✅ 1.00 (1%)
["contract", "matmul_inplace_40"] 1.07 (5%) ❌ 1.00 (1%)
["contract", "matmul_inplace_80"] 1.22 (5%) ❌ 1.00 (1%)
["getsetindex", "getindex end"] 1.17 (5%) ❌ 1.00 (1%)
["getsetindex", "getindex indval"] 1.07 (5%) ❌ 1.00 (1%)
["getsetindex", "getindex"] 1.22 (5%) ❌ 1.00 (1%)
["getsetindex", "setindex! indval end"] 0.95 (5%) ✅ 1.00 (1%)
["indexset", "constructor", "function"] 1.15 (5%) ❌ 1.00 (1%)
["indexset", "constructor", "function, tuple"] 1.06 (5%) ❌ 1.00 (1%)
["indexset", "filter", "function"] 1.41 (5%) ❌ 1.00 (1%)
["indexset", "filter", "kwargs"] 1.25 (5%) ❌ 1.00 (1%)
["indexset", "set_functions", "noncommoninds, ITensor"] 1.09 (5%) ❌ 1.00 (1%)
["indexset", "set_functions", "prime, ITensor"] 1.12 (5%) ❌ 1.00 (1%)
["indexset", "set_functions", "unioninds, ITensor"] 0.93 (5%) ✅ 1.00 (1%)
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] 0.90 (5%) ✅ 1.00 (1%)
["indexset", "set_functions", "uniqueinds", "nofilter2"] 1.05 (5%) ❌ 1.00 (1%)
["inplace", "axpy!"] 1.06 (5%) ❌ 1.00 (1%)
["op", "op QN"] 1.18 (5%) ❌ 1.00 (1%)
["tagset", "tagset"] 0.89 (5%) ✅ 1.00 (1%)
["tagset", "tagset_unicode"] 1.10 (5%) ❌ 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-1046-azure #48-Ubuntu SMP Tue Apr 13 07:18:42 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       4737 s          2 s        851 s       4569 s          0 s
       #2  2294 MHz       6811 s          0 s        603 s       2746 s          0 s
       
  Memory: 6.791343688964844 GB (2152.0625 MB free)
  Uptime: 1022.0 sec
  Load Avg:  1.11  1.31  0.94
  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-1046-azure #48-Ubuntu SMP Tue Apr 13 07:18:42 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      10494 s          2 s       1069 s       4865 s          0 s
       #2  2294 MHz       7934 s          0 s       1012 s       7474 s          0 s
       
  Memory: 6.791343688964844 GB (2227.421875 MB free)
  Uptime: 1650.0 sec
  Load Avg:  1.25  1.3  1.1
  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: 12 May 2021 - 18:24
  • Package commit: 47e524
  • 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"] 6.289 s (5%) 329.417 ms 1.40 GiB (1%) 15818895
["autompo", "Quartic QN Hamiltonian"] 18.312 s (5%) 3.229 s 9.66 GiB (1%) 76671588
["contract", "heff_2site"] 7.101 ms (5%) 19.42 MiB (1%) 216
["contract", "matmul_100"] 63.201 μs (5%) 81.20 KiB (1%) 24
["contract", "matmul_20"] 4.214 μs (5%) 6.25 KiB (1%) 23
["contract", "matmul_40"] 11.000 μs (5%) 15.62 KiB (1%) 23
["contract", "matmul_60"] 27.900 μs (5%) 31.20 KiB (1%) 24
["contract", "matmul_80"] 39.401 μs (5%) 53.08 KiB (1%) 24
["contract", "matmul_inplace_100"] 100.901 μs (5%) 314.69 KiB (1%) 24
["contract", "matmul_inplace_20"] 5.740 μs (5%) 14.88 KiB (1%) 20
["contract", "matmul_inplace_40"] 17.200 μs (5%) 52.38 KiB (1%) 20
["contract", "matmul_inplace_60"] 38.200 μs (5%) 114.69 KiB (1%) 24
["contract", "matmul_inplace_80"] 70.000 μs (5%) 202.19 KiB (1%) 24
["dmrg", "1d_S=1_heisenberg"] 29.623 s (5%) 3.257 s 40.09 GiB (1%) 2174782
["dmrg", "1d_S=1_heisenberg_qn"] 17.219 s (5%) 1.834 s 11.47 GiB (1%) 56662239
["getsetindex", "getindex end"] 211.527 ns (5%) 528 bytes (1%) 5
["getsetindex", "getindex indval end"] 117.811 ns (5%) 352 bytes (1%) 6
["getsetindex", "getindex indval"] 64.147 ns (5%) 272 bytes (1%) 3
["getsetindex", "getindex"] 24.322 ns (5%) 16 bytes (1%) 1
["getsetindex", "setindex! end"] 231.132 ns (5%) 768 bytes (1%) 6
["getsetindex", "setindex! indval end"] 183.287 ns (5%) 784 bytes (1%) 7
["getsetindex", "setindex! indval"] 94.558 ns (5%) 480 bytes (1%) 3
["getsetindex", "setindex!"] 60.883 ns (5%) 224 bytes (1%) 1
["indexset", "constructor", "function"] 723.783 ns (5%) 1.47 KiB (1%) 10
["indexset", "constructor", "function, tuple"] 397.480 ns (5%) 1.31 KiB (1%) 7
["indexset", "filter", "function"] 167.172 ns (5%) 1.14 KiB (1%) 1
["indexset", "filter", "function, tuple"] 0.001 ns (5%)
["indexset", "filter", "kwargs"] 142.663 ns (5%) 1.14 KiB (1%) 1
["indexset", "set_functions", "commoninds, ITensor"] 351.456 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "noncommoninds, ITensor"] 445.734 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "prime, ITensor"] 262.209 ns (5%) 832 bytes (1%) 4
["indexset", "set_functions", "unioninds, ITensor"] 554.396 ns (5%) 2.53 KiB (1%) 6
["indexset", "set_functions", "uniqueinds", "3_inputs"] 800.000 ns (5%) 3.00 KiB (1%) 12
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] 295.556 ns (5%) 976 bytes (1%) 8
["indexset", "set_functions", "uniqueinds", "filter_tags"] 165.426 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter0"] 118.094 ns (5%) 368 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter2"] 155.604 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds, ITensor"] 609.239 ns (5%) 1.91 KiB (1%) 7
["inplace", "axpy!"] 14.601 μs (5%) 1.73 KiB (1%) 24
["op", "op QN"] 10.600 μs (5%) 10.55 KiB (1%) 109
["op", "op"] 3.886 μs (5%) 4.19 KiB (1%) 40
["tagset", "tagset"] 344.064 ns (5%) 336 bytes (1%) 9
["tagset", "tagset_unicode"] 570.792 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-1046-azure #48-Ubuntu SMP Tue Apr 13 07:18:42 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       4737 s          2 s        851 s       4569 s          0 s
       #2  2294 MHz       6811 s          0 s        603 s       2746 s          0 s
       
  Memory: 6.791343688964844 GB (2152.0625 MB free)
  Uptime: 1022.0 sec
  Load Avg:  1.11  1.31  0.94
  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: 12 May 2021 - 18:34
  • Package commit: 9fe8d5
  • 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"] 6.308 s (5%) 329.915 ms 1.40 GiB (1%) 15818890
["autompo", "Quartic QN Hamiltonian"] 18.564 s (5%) 3.240 s 9.69 GiB (1%) 76874289
["contract", "heff_2site"] 6.928 ms (5%) 19.42 MiB (1%) 216
["contract", "matmul_100"] 56.900 μs (5%) 81.20 KiB (1%) 24
["contract", "matmul_20"] 3.800 μs (5%) 6.25 KiB (1%) 23
["contract", "matmul_40"] 10.500 μs (5%) 15.62 KiB (1%) 23
["contract", "matmul_60"] 25.900 μs (5%) 31.20 KiB (1%) 24
["contract", "matmul_80"] 36.001 μs (5%) 53.08 KiB (1%) 24
["contract", "matmul_inplace_100"] 94.901 μs (5%) 314.69 KiB (1%) 24
["contract", "matmul_inplace_20"] 6.140 μs (5%) 14.88 KiB (1%) 20
["contract", "matmul_inplace_40"] 16.100 μs (5%) 52.38 KiB (1%) 20
["contract", "matmul_inplace_60"] 38.600 μs (5%) 114.69 KiB (1%) 24
["contract", "matmul_inplace_80"] 57.501 μs (5%) 202.19 KiB (1%) 24
["dmrg", "1d_S=1_heisenberg"] 28.899 s (5%) 3.069 s 40.09 GiB (1%) 2174782
["dmrg", "1d_S=1_heisenberg_qn"] 16.749 s (5%) 1.837 s 11.47 GiB (1%) 56662239
["getsetindex", "getindex end"] 181.188 ns (5%) 528 bytes (1%) 5
["getsetindex", "getindex indval end"] 119.422 ns (5%) 352 bytes (1%) 6
["getsetindex", "getindex indval"] 60.164 ns (5%) 272 bytes (1%) 3
["getsetindex", "getindex"] 19.899 ns (5%) 16 bytes (1%) 1
["getsetindex", "setindex! end"] 240.566 ns (5%) 768 bytes (1%) 6
["getsetindex", "setindex! indval end"] 193.144 ns (5%) 784 bytes (1%) 7
["getsetindex", "setindex! indval"] 96.371 ns (5%) 480 bytes (1%) 3
["getsetindex", "setindex!"] 60.883 ns (5%) 224 bytes (1%) 1
["indexset", "constructor", "function"] 627.979 ns (5%) 1.47 KiB (1%) 10
["indexset", "constructor", "function, tuple"] 375.758 ns (5%) 1.31 KiB (1%) 7
["indexset", "filter", "function"] 118.761 ns (5%) 1.14 KiB (1%) 1
["indexset", "filter", "function, tuple"] 0.001 ns (5%)
["indexset", "filter", "kwargs"] 114.303 ns (5%) 1.14 KiB (1%) 1
["indexset", "set_functions", "commoninds, ITensor"] 351.947 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "noncommoninds, ITensor"] 408.045 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "prime, ITensor"] 233.461 ns (5%) 832 bytes (1%) 4
["indexset", "set_functions", "unioninds, ITensor"] 597.808 ns (5%) 2.53 KiB (1%) 6
["indexset", "set_functions", "uniqueinds", "3_inputs"] 826.942 ns (5%) 3.00 KiB (1%) 12
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] 328.004 ns (5%) 976 bytes (1%) 8
["indexset", "set_functions", "uniqueinds", "filter_tags"] 169.897 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter0"] 123.645 ns (5%) 368 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter2"] 148.088 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds, ITensor"] 586.962 ns (5%) 1.91 KiB (1%) 7
["inplace", "axpy!"] 13.801 μs (5%) 1.73 KiB (1%) 24
["op", "op QN"] 9.000 μs (5%) 10.55 KiB (1%) 109
["op", "op"] 3.714 μs (5%) 4.19 KiB (1%) 40
["tagset", "tagset"] 387.629 ns (5%) 336 bytes (1%) 9
["tagset", "tagset_unicode"] 517.416 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-1046-azure #48-Ubuntu SMP Tue Apr 13 07:18:42 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      10494 s          2 s       1069 s       4865 s          0 s
       #2  2294 MHz       7934 s          0 s       1012 s       7474 s          0 s
       
  Memory: 6.791343688964844 GB (2227.421875 MB free)
  Uptime: 1650.0 sec
  Load Avg:  1.25  1.3  1.1
  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.685
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

@emstoudenmire
Copy link
Collaborator

Sounds good - I'd approve merging this. The AbstractProjMPO code is a relatively minor thing as long as you think the code minimizes disk reads as much as possible (referencing your recent commits which reduce that).

@mtfishman
Copy link
Member Author

mtfishman commented May 12, 2021

In the latest, I improved memory caching within makeL! and makeR!.

Also more generally, when the position is off the edge of the system, I made lproj and rproj return an instance of a new type OneITensor which acts like:

(::OneITensor * A::ITensor) = A
(A::ITensor * ::OneITensor) = A

This is a poor man's version of: #618.

This allowed a big simplification of functions like product which had complicated nested if statements accounting for when we were at the edge of the system. Now, since lproj and rproj return OneITensor() that has no cost to contraction, the code can be written generically for those edge cases.

@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: 12 May 2021 - 19:53
    • Baseline: 12 May 2021 - 20:03
  • Package commits:
    • Target: 04590d
    • Baseline: 9fe8d5
  • 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 ❌), 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
["contract", "matmul_20"] 1.09 (5%) ❌ 1.00 (1%)
["contract", "matmul_40"] 1.08 (5%) ❌ 1.00 (1%)
["contract", "matmul_inplace_20"] 1.08 (5%) ❌ 1.00 (1%)
["contract", "matmul_inplace_40"] 1.06 (5%) ❌ 1.00 (1%)
["getsetindex", "getindex indval"] 1.06 (5%) ❌ 1.00 (1%)
["getsetindex", "getindex"] 0.95 (5%) ✅ 1.00 (1%)
["indexset", "filter", "function"] 1.28 (5%) ❌ 1.00 (1%)
["indexset", "filter", "kwargs"] 1.21 (5%) ❌ 1.00 (1%)
["indexset", "set_functions", "prime, ITensor"] 1.11 (5%) ❌ 1.00 (1%)
["indexset", "set_functions", "uniqueinds", "nofilter2"] 1.06 (5%) ❌ 1.00 (1%)
["op", "op QN"] 0.84 (5%) ✅ 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-1046-azure #48-Ubuntu SMP Tue Apr 13 07:18:42 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       3103 s          1 s        842 s       5312 s          0 s
       #2  2397 MHz       7310 s          1 s        538 s       1448 s          0 s
       
  Memory: 6.791343688964844 GB (2122.6875 MB free)
  Uptime: 935.0 sec
  Load Avg:  1.93  1.5  0.95
  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-1046-azure #48-Ubuntu SMP Tue Apr 13 07:18:42 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       6530 s          1 s       1280 s       7066 s          0 s
       #2  2397 MHz       9990 s          1 s        712 s       4214 s          0 s
       
  Memory: 6.791343688964844 GB (2010.21875 MB free)
  Uptime: 1497.0 sec
  Load Avg:  1.15  1.3  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: 12 May 2021 - 19:53
  • Package commit: 04590d
  • 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"] 5.597 s (5%) 301.511 ms 1.40 GiB (1%) 15818887
["autompo", "Quartic QN Hamiltonian"] 16.564 s (5%) 3.053 s 9.66 GiB (1%) 76664814
["contract", "heff_2site"] 6.022 ms (5%) 19.42 MiB (1%) 216
["contract", "matmul_100"] 54.002 μs (5%) 81.20 KiB (1%) 24
["contract", "matmul_20"] 3.775 μs (5%) 6.25 KiB (1%) 23
["contract", "matmul_40"] 10.600 μs (5%) 15.62 KiB (1%) 23
["contract", "matmul_60"] 25.101 μs (5%) 31.20 KiB (1%) 24
["contract", "matmul_80"] 33.601 μs (5%) 53.08 KiB (1%) 24
["contract", "matmul_inplace_100"] 88.003 μs (5%) 314.69 KiB (1%) 24
["contract", "matmul_inplace_20"] 5.917 μs (5%) 14.88 KiB (1%) 20
["contract", "matmul_inplace_40"] 16.501 μs (5%) 52.38 KiB (1%) 20
["contract", "matmul_inplace_60"] 35.101 μs (5%) 114.69 KiB (1%) 24
["contract", "matmul_inplace_80"] 58.703 μs (5%) 202.19 KiB (1%) 24
["dmrg", "1d_S=1_heisenberg"] 25.952 s (5%) 2.954 s 40.09 GiB (1%) 2185950
["dmrg", "1d_S=1_heisenberg_qn"] 14.714 s (5%) 1.727 s 11.48 GiB (1%) 56673599
["getsetindex", "getindex end"] 204.673 ns (5%) 528 bytes (1%) 5
["getsetindex", "getindex indval end"] 126.768 ns (5%) 352 bytes (1%) 6
["getsetindex", "getindex indval"] 65.611 ns (5%) 272 bytes (1%) 3
["getsetindex", "getindex"] 22.869 ns (5%) 16 bytes (1%) 1
["getsetindex", "setindex! end"] 271.887 ns (5%) 768 bytes (1%) 6
["getsetindex", "setindex! indval end"] 193.148 ns (5%) 784 bytes (1%) 7
["getsetindex", "setindex! indval"] 98.322 ns (5%) 480 bytes (1%) 3
["getsetindex", "setindex!"] 65.207 ns (5%) 224 bytes (1%) 1
["indexset", "constructor", "function"] 605.705 ns (5%) 1.47 KiB (1%) 10
["indexset", "constructor", "function, tuple"] 398.537 ns (5%) 1.31 KiB (1%) 7
["indexset", "filter", "function"] 199.420 ns (5%) 1.14 KiB (1%) 1
["indexset", "filter", "function, tuple"] 0.001 ns (5%)
["indexset", "filter", "kwargs"] 165.208 ns (5%) 1.14 KiB (1%) 1
["indexset", "set_functions", "commoninds, ITensor"] 373.599 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "noncommoninds, ITensor"] 433.186 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "prime, ITensor"] 287.425 ns (5%) 832 bytes (1%) 4
["indexset", "set_functions", "unioninds, ITensor"] 626.880 ns (5%) 2.53 KiB (1%) 6
["indexset", "set_functions", "uniqueinds", "3_inputs"] 854.253 ns (5%) 3.00 KiB (1%) 12
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] 340.638 ns (5%) 976 bytes (1%) 8
["indexset", "set_functions", "uniqueinds", "filter_tags"] 178.990 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter0"] 135.028 ns (5%) 368 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter2"] 164.178 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds, ITensor"] 630.705 ns (5%) 1.91 KiB (1%) 7
["inplace", "axpy!"] 13.401 μs (5%) 1.73 KiB (1%) 24
["op", "op QN"] 8.601 μs (5%) 10.55 KiB (1%) 109
["op", "op"] 4.272 μs (5%) 4.19 KiB (1%) 40
["tagset", "tagset"] 417.603 ns (5%) 336 bytes (1%) 9
["tagset", "tagset_unicode"] 602.295 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-1046-azure #48-Ubuntu SMP Tue Apr 13 07:18:42 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       3103 s          1 s        842 s       5312 s          0 s
       #2  2397 MHz       7310 s          1 s        538 s       1448 s          0 s
       
  Memory: 6.791343688964844 GB (2122.6875 MB free)
  Uptime: 935.0 sec
  Load Avg:  1.93  1.5  0.95
  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: 12 May 2021 - 20:3
  • Package commit: 9fe8d5
  • 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"] 5.380 s (5%) 307.202 ms 1.40 GiB (1%) 15818887
["autompo", "Quartic QN Hamiltonian"] 16.453 s (5%) 3.090 s 9.69 GiB (1%) 76836684
["contract", "heff_2site"] 5.967 ms (5%) 19.42 MiB (1%) 216
["contract", "matmul_100"] 52.202 μs (5%) 81.20 KiB (1%) 24
["contract", "matmul_20"] 3.450 μs (5%) 6.25 KiB (1%) 23
["contract", "matmul_40"] 9.800 μs (5%) 15.62 KiB (1%) 23
["contract", "matmul_60"] 24.201 μs (5%) 31.20 KiB (1%) 24
["contract", "matmul_80"] 34.501 μs (5%) 53.08 KiB (1%) 24
["contract", "matmul_inplace_100"] 86.804 μs (5%) 314.69 KiB (1%) 24
["contract", "matmul_inplace_20"] 5.467 μs (5%) 14.88 KiB (1%) 20
["contract", "matmul_inplace_40"] 15.500 μs (5%) 52.38 KiB (1%) 20
["contract", "matmul_inplace_60"] 36.201 μs (5%) 114.69 KiB (1%) 24
["contract", "matmul_inplace_80"] 56.503 μs (5%) 202.19 KiB (1%) 24
["dmrg", "1d_S=1_heisenberg"] 25.707 s (5%) 3.207 s 40.09 GiB (1%) 2174782
["dmrg", "1d_S=1_heisenberg_qn"] 14.740 s (5%) 1.915 s 11.47 GiB (1%) 56662431
["getsetindex", "getindex end"] 201.833 ns (5%) 528 bytes (1%) 5
["getsetindex", "getindex indval end"] 128.446 ns (5%) 352 bytes (1%) 6
["getsetindex", "getindex indval"] 61.824 ns (5%) 272 bytes (1%) 3
["getsetindex", "getindex"] 24.173 ns (5%) 16 bytes (1%) 1
["getsetindex", "setindex! end"] 274.697 ns (5%) 768 bytes (1%) 6
["getsetindex", "setindex! indval end"] 194.520 ns (5%) 784 bytes (1%) 7
["getsetindex", "setindex! indval"] 99.477 ns (5%) 480 bytes (1%) 3
["getsetindex", "setindex!"] 62.757 ns (5%) 224 bytes (1%) 1
["indexset", "constructor", "function"] 589.227 ns (5%) 1.47 KiB (1%) 10
["indexset", "constructor", "function, tuple"] 393.611 ns (5%) 1.31 KiB (1%) 7
["indexset", "filter", "function"] 155.404 ns (5%) 1.14 KiB (1%) 1
["indexset", "filter", "function, tuple"] 0.001 ns (5%)
["indexset", "filter", "kwargs"] 135.987 ns (5%) 1.14 KiB (1%) 1
["indexset", "set_functions", "commoninds, ITensor"] 364.165 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "noncommoninds, ITensor"] 454.789 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "prime, ITensor"] 257.833 ns (5%) 832 bytes (1%) 4
["indexset", "set_functions", "unioninds, ITensor"] 614.880 ns (5%) 2.53 KiB (1%) 6
["indexset", "set_functions", "uniqueinds", "3_inputs"] 856.651 ns (5%) 3.00 KiB (1%) 12
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] 340.188 ns (5%) 976 bytes (1%) 8
["indexset", "set_functions", "uniqueinds", "filter_tags"] 177.891 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter0"] 137.393 ns (5%) 368 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter2"] 155.342 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds, ITensor"] 622.750 ns (5%) 1.91 KiB (1%) 7
["inplace", "axpy!"] 13.900 μs (5%) 1.73 KiB (1%) 24
["op", "op QN"] 10.200 μs (5%) 10.55 KiB (1%) 109
["op", "op"] 4.229 μs (5%) 4.19 KiB (1%) 40
["tagset", "tagset"] 409.563 ns (5%) 336 bytes (1%) 9
["tagset", "tagset_unicode"] 602.864 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-1046-azure #48-Ubuntu SMP Tue Apr 13 07:18:42 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       6530 s          1 s       1280 s       7066 s          0 s
       #2  2397 MHz       9990 s          1 s        712 s       4214 s          0 s
       
  Memory: 6.791343688964844 GB (2010.21875 MB free)
  Uptime: 1497.0 sec
  Load Avg:  1.15  1.3  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.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
Copy link
Contributor

Benchmark result

Judge result

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

Job Properties

  • Time of benchmarks:
    • Target: 12 May 2021 - 20:09
    • Baseline: 12 May 2021 - 20:19
  • Package commits:
    • Target: d9f235
    • Baseline: 9fe8d5
  • 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 ❌), 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
["contract", "matmul_inplace_80"] 1.08 (5%) ❌ 1.00 (1%)
["getsetindex", "getindex indval end"] 1.13 (5%) ❌ 1.00 (1%)
["getsetindex", "getindex"] 1.16 (5%) ❌ 1.00 (1%)
["getsetindex", "setindex! indval"] 1.09 (5%) ❌ 1.00 (1%)
["indexset", "constructor", "function"] 1.13 (5%) ❌ 1.00 (1%)
["indexset", "filter", "function"] 0.91 (5%) ✅ 1.00 (1%)
["indexset", "set_functions", "commoninds, ITensor"] 0.94 (5%) ✅ 1.00 (1%)
["indexset", "set_functions", "prime, ITensor"] 0.93 (5%) ✅ 1.00 (1%)
["indexset", "set_functions", "unioninds, ITensor"] 0.93 (5%) ✅ 1.00 (1%)
["indexset", "set_functions", "uniqueinds, ITensor"] 1.06 (5%) ❌ 1.00 (1%)
["op", "op QN"] 0.79 (5%) ✅ 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-1046-azure #48-Ubuntu SMP Tue Apr 13 07:18:42 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz: 
              speed         user         nice          sys         idle          irq
       #1  2394 MHz       3962 s          2 s        666 s       6766 s          0 s
       #2  2394 MHz       6429 s          0 s        624 s       4361 s          0 s
       
  Memory: 6.791343688964844 GB (2313.3046875 MB free)
  Uptime: 1146.0 sec
  Load Avg:  1.27  1.33  0.9
  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-1046-azure #48-Ubuntu SMP Tue Apr 13 07:18:42 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz: 
              speed         user         nice          sys         idle          irq
       #1  2394 MHz       8760 s          2 s        875 s       7528 s          0 s
       #2  2394 MHz       7901 s          0 s       1000 s       8278 s          0 s
       
  Memory: 6.791343688964844 GB (2151.63671875 MB free)
  Uptime: 1724.0 sec
  Load Avg:  1.23  1.26  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: 12 May 2021 - 20:9
  • Package commit: d9f235
  • 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"] 5.548 s (5%) 293.414 ms 1.40 GiB (1%) 15818890
["autompo", "Quartic QN Hamiltonian"] 16.261 s (5%) 2.868 s 9.67 GiB (1%) 76729826
["contract", "heff_2site"] 6.229 ms (5%) 19.42 MiB (1%) 216
["contract", "matmul_100"] 53.100 μs (5%) 81.20 KiB (1%) 24
["contract", "matmul_20"] 3.438 μs (5%) 6.25 KiB (1%) 23
["contract", "matmul_40"] 9.600 μs (5%) 15.62 KiB (1%) 23
["contract", "matmul_60"] 23.800 μs (5%) 31.20 KiB (1%) 24
["contract", "matmul_80"] 34.600 μs (5%) 53.08 KiB (1%) 24
["contract", "matmul_inplace_100"] 89.800 μs (5%) 314.69 KiB (1%) 24
["contract", "matmul_inplace_20"] 5.400 μs (5%) 14.88 KiB (1%) 20
["contract", "matmul_inplace_40"] 15.400 μs (5%) 52.38 KiB (1%) 20
["contract", "matmul_inplace_60"] 36.200 μs (5%) 114.69 KiB (1%) 24
["contract", "matmul_inplace_80"] 59.100 μs (5%) 202.19 KiB (1%) 24
["dmrg", "1d_S=1_heisenberg"] 25.381 s (5%) 2.536 s 40.09 GiB (1%) 2185950
["dmrg", "1d_S=1_heisenberg_qn"] 14.346 s (5%) 1.553 s 11.48 GiB (1%) 56673599
["getsetindex", "getindex end"] 219.633 ns (5%) 528 bytes (1%) 5
["getsetindex", "getindex indval end"] 145.023 ns (5%) 352 bytes (1%) 6
["getsetindex", "getindex indval"] 64.322 ns (5%) 272 bytes (1%) 3
["getsetindex", "getindex"] 29.217 ns (5%) 16 bytes (1%) 1
["getsetindex", "setindex! end"] 267.791 ns (5%) 768 bytes (1%) 6
["getsetindex", "setindex! indval end"] 194.675 ns (5%) 784 bytes (1%) 7
["getsetindex", "setindex! indval"] 104.105 ns (5%) 480 bytes (1%) 3
["getsetindex", "setindex!"] 65.816 ns (5%) 224 bytes (1%) 1
["indexset", "constructor", "function"] 658.960 ns (5%) 1.47 KiB (1%) 10
["indexset", "constructor", "function, tuple"] 383.663 ns (5%) 1.31 KiB (1%) 7
["indexset", "filter", "function"] 165.031 ns (5%) 1.14 KiB (1%) 1
["indexset", "filter", "function, tuple"] 0.001 ns (5%)
["indexset", "filter", "kwargs"] 155.055 ns (5%) 1.14 KiB (1%) 1
["indexset", "set_functions", "commoninds, ITensor"] 378.049 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "noncommoninds, ITensor"] 450.251 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "prime, ITensor"] 270.345 ns (5%) 832 bytes (1%) 4
["indexset", "set_functions", "unioninds, ITensor"] 604.000 ns (5%) 2.53 KiB (1%) 6
["indexset", "set_functions", "uniqueinds", "3_inputs"] 873.333 ns (5%) 3.00 KiB (1%) 12
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] 336.444 ns (5%) 976 bytes (1%) 8
["indexset", "set_functions", "uniqueinds", "filter_tags"] 182.434 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter0"] 136.907 ns (5%) 368 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter2"] 167.750 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds, ITensor"] 661.078 ns (5%) 1.91 KiB (1%) 7
["inplace", "axpy!"] 13.600 μs (5%) 1.73 KiB (1%) 24
["op", "op QN"] 8.500 μs (5%) 10.55 KiB (1%) 109
["op", "op"] 4.300 μs (5%) 4.19 KiB (1%) 40
["tagset", "tagset"] 403.500 ns (5%) 336 bytes (1%) 9
["tagset", "tagset_unicode"] 601.130 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-1046-azure #48-Ubuntu SMP Tue Apr 13 07:18:42 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz: 
              speed         user         nice          sys         idle          irq
       #1  2394 MHz       3962 s          2 s        666 s       6766 s          0 s
       #2  2394 MHz       6429 s          0 s        624 s       4361 s          0 s
       
  Memory: 6.791343688964844 GB (2313.3046875 MB free)
  Uptime: 1146.0 sec
  Load Avg:  1.27  1.33  0.9
  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: 12 May 2021 - 20:19
  • Package commit: 9fe8d5
  • 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"] 5.573 s (5%) 309.712 ms 1.40 GiB (1%) 15818887
["autompo", "Quartic QN Hamiltonian"] 16.601 s (5%) 2.993 s 9.67 GiB (1%) 76722595
["contract", "heff_2site"] 6.211 ms (5%) 19.42 MiB (1%) 216
["contract", "matmul_100"] 52.700 μs (5%) 81.20 KiB (1%) 24
["contract", "matmul_20"] 3.462 μs (5%) 6.25 KiB (1%) 23
["contract", "matmul_40"] 9.700 μs (5%) 15.62 KiB (1%) 23
["contract", "matmul_60"] 24.000 μs (5%) 31.20 KiB (1%) 24
["contract", "matmul_80"] 34.600 μs (5%) 53.08 KiB (1%) 24
["contract", "matmul_inplace_100"] 89.100 μs (5%) 314.69 KiB (1%) 24
["contract", "matmul_inplace_20"] 5.350 μs (5%) 14.88 KiB (1%) 20
["contract", "matmul_inplace_40"] 15.300 μs (5%) 52.38 KiB (1%) 20
["contract", "matmul_inplace_60"] 35.600 μs (5%) 114.69 KiB (1%) 24
["contract", "matmul_inplace_80"] 54.700 μs (5%) 202.19 KiB (1%) 24
["dmrg", "1d_S=1_heisenberg"] 25.351 s (5%) 2.907 s 40.09 GiB (1%) 2174782
["dmrg", "1d_S=1_heisenberg_qn"] 14.311 s (5%) 1.728 s 11.47 GiB (1%) 56662431
["getsetindex", "getindex end"] 219.450 ns (5%) 528 bytes (1%) 5
["getsetindex", "getindex indval end"] 128.588 ns (5%) 352 bytes (1%) 6
["getsetindex", "getindex indval"] 65.647 ns (5%) 272 bytes (1%) 3
["getsetindex", "getindex"] 25.201 ns (5%) 16 bytes (1%) 1
["getsetindex", "setindex! end"] 276.687 ns (5%) 768 bytes (1%) 6
["getsetindex", "setindex! indval end"] 191.272 ns (5%) 784 bytes (1%) 7
["getsetindex", "setindex! indval"] 95.579 ns (5%) 480 bytes (1%) 3
["getsetindex", "setindex!"] 66.939 ns (5%) 224 bytes (1%) 1
["indexset", "constructor", "function"] 582.659 ns (5%) 1.47 KiB (1%) 10
["indexset", "constructor", "function, tuple"] 391.584 ns (5%) 1.31 KiB (1%) 7
["indexset", "filter", "function"] 180.491 ns (5%) 1.14 KiB (1%) 1
["indexset", "filter", "function, tuple"] 0.001 ns (5%)
["indexset", "filter", "kwargs"] 157.650 ns (5%) 1.14 KiB (1%) 1
["indexset", "set_functions", "commoninds, ITensor"] 403.902 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "noncommoninds, ITensor"] 464.824 ns (5%) 1.45 KiB (1%) 5
["indexset", "set_functions", "prime, ITensor"] 290.690 ns (5%) 832 bytes (1%) 4
["indexset", "set_functions", "unioninds, ITensor"] 646.286 ns (5%) 2.53 KiB (1%) 6
["indexset", "set_functions", "uniqueinds", "3_inputs"] 845.000 ns (5%) 3.00 KiB (1%) 12
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] 336.889 ns (5%) 976 bytes (1%) 8
["indexset", "set_functions", "uniqueinds", "filter_tags"] 180.498 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter0"] 137.698 ns (5%) 368 bytes (1%) 2
["indexset", "set_functions", "uniqueinds", "nofilter2"] 165.375 ns (5%) 688 bytes (1%) 2
["indexset", "set_functions", "uniqueinds, ITensor"] 625.749 ns (5%) 1.91 KiB (1%) 7
["inplace", "axpy!"] 13.600 μs (5%) 1.73 KiB (1%) 24
["op", "op QN"] 10.700 μs (5%) 10.55 KiB (1%) 109
["op", "op"] 4.371 μs (5%) 4.19 KiB (1%) 40
["tagset", "tagset"] 405.500 ns (5%) 336 bytes (1%) 9
["tagset", "tagset_unicode"] 593.785 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-1046-azure #48-Ubuntu SMP Tue Apr 13 07:18:42 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz: 
              speed         user         nice          sys         idle          irq
       #1  2394 MHz       8760 s          2 s        875 s       7528 s          0 s
       #2  2394 MHz       7901 s          0 s       1000 s       8278 s          0 s
       
  Memory: 6.791343688964844 GB (2151.63671875 MB free)
  Uptime: 1724.0 sec
  Load Avg:  1.23  1.26  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:                         2394.453
BogoMIPS:                        4788.90
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

@mtfishman mtfishman merged commit 4d91bb6 into main May 12, 2021
@mtfishman mtfishman deleted the write_to_disk branch May 12, 2021 20:57
achuchmala pushed a commit to achuchmala/ITensors.jl that referenced this pull request Apr 11, 2022
…sor#648)

* Add write-to-disk during DMRG with SerializedElementArrays. Introduces `AbstractProjMPO` supertype for `ProjMPO` and new type `DiskProjMPO` that saves the environment tensors on disk. New keyword argument for `dmrg` called `write_when_maxdim_exceeds` to enable.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants