ITensors.jl
ITensors.jl copied to clipboard
Add a general function for writing and reading Arrays of ITensor objects as well as more compact save/load interface
Add a general function for writing and reading Arrays of ITensor objects.
Also adds an experimental feature for automatically parsing a type when reading from a file with ITensors.read
, as well as a more compact syntax ITensors.save
/ITensors.load
which avoids having to open a file.
For example:
i = Index(2)
A = randomITensor(i)
B = randomITensor(i)
C = randomITensor(i)
D = randomITensor(i)
X = [A B; C D]
# Original syntax with new `Array{ITensor}` reading/writing functionality
h5open("data.h5", "w") do file
@write file X
end
X̃ = h5open("data.h5", "r") do file
read(file, "X", Array{ITensor})
end
@show all(X .== X̃)
# Automatically parse the type, requires using the
# unexported `ITensors.read` function
X̃ = h5open("data.h5", "r") do file
ITensors.read(file, "X")
end
@show all(X .== X̃)
# New more compact `ITensors.save`/`ITensors.load` syntax
ITensors.save("data.h5", "X", X)
X̃ = ITensors.load("data.h5", "X")
@show all(X .== X̃)
Benchmark result
Judge result
Benchmark Report for /home/runner/work/ITensors.jl/ITensors.jl
Job Properties
- Time of benchmarks:
- Target: 2 Sep 2021 - 17:03
- Baseline: 2 Sep 2021 - 17:12
- Package commits:
- Target: 6085ea
- Baseline: e80e3a
- Julia commits:
- Target: 1b93d5
- Baseline: 1b93d5
- Julia command flags:
- Target: None
- Baseline: None
- Environment variables:
- Target: None
- Baseline: None
Results
A ratio greater than 1.0
denotes a possible regression (marked with :x:), while a ratio less
than 1.0
denotes a possible improvement (marked with :white_check_mark:). Only significant results - results
that indicate possible regressions or improvements - are shown below (thus, an empty table means that all
benchmark results remained invariant between builds).
ID | time ratio | memory ratio |
---|---|---|
["dmrg", "1d_S=1_heisenberg"] |
0.93 (5%) :white_check_mark: | 1.00 (1%) |
["getsetindex", "getindex end"] |
1.15 (5%) :x: | 1.00 (1%) |
["getsetindex", "setindex! end"] |
1.06 (5%) :x: | 1.00 (1%) |
["indexset", "constructor", "function"] |
1.18 (5%) :x: | 1.00 (1%) |
["indexset", "filter", "function"] |
0.92 (5%) :white_check_mark: | 1.00 (1%) |
["indexset", "set_functions", "commoninds, ITensor"] |
0.94 (5%) :white_check_mark: | 1.00 (1%) |
["indexset", "set_functions", "prime, ITensor"] |
0.93 (5%) :white_check_mark: | 1.00 (1%) |
["indexset", "set_functions", "uniqueinds", "3_inputs"] |
0.89 (5%) :white_check_mark: | 1.00 (1%) |
["tagset", "tagset"] |
0.91 (5%) :white_check_mark: | 1.00 (1%) |
["tagset", "tagset_unicode"] |
0.95 (5%) :white_check_mark: | 1.00 (1%) |
Benchmark Group List
Here's a list of all the benchmark groups executed by this job:
-
["autompo"]
-
["contract"]
-
["dmrg"]
-
["getsetindex"]
-
["indexset", "constructor"]
-
["indexset", "filter"]
-
["indexset", "set_functions"]
-
["indexset", "set_functions", "uniqueinds"]
-
["inplace"]
-
["op"]
-
["tagset"]
Julia versioninfo
Target
Julia Version 1.6.2
Commit 1b93d53fc4 (2021-07-14 15:36 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
Ubuntu 20.04.3 LTS
uname: Linux 5.8.0-1040-azure #43~20.04.1-Ubuntu SMP Mon Aug 2 22:06:11 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 4307 s 0 s 804 s 4528 s 0 s
#2 2095 MHz 5704 s 0 s 933 s 3024 s 0 s
Memory: 6.790924072265625 GB (868.32421875 MB free)
Uptime: 971.0 sec
Load Avg: 1.05 1.21 0.91
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-11.0.1 (ORCJIT, skylake-avx512)
Baseline
Julia Version 1.6.2
Commit 1b93d53fc4 (2021-07-14 15:36 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
Ubuntu 20.04.3 LTS
uname: Linux 5.8.0-1040-azure #43~20.04.1-Ubuntu SMP Mon Aug 2 22:06:11 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 6451 s 0 s 1531 s 6839 s 0 s
#2 2095 MHz 8909 s 0 s 1121 s 4813 s 0 s
Memory: 6.790924072265625 GB (1216.39453125 MB free)
Uptime: 1490.0 sec
Load Avg: 1.06 1.22 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: 2 Sep 2021 - 17:3
- Package commit: 6085ea
- Julia commit: 1b93d5
- Julia command flags: None
- Environment variables: None
Results
Below is a table of this job's results, obtained by running the benchmarks.
The values listed in the ID
column have the structure [parent_group, child_group, ..., key]
, and can be used to
index into the BaseBenchmarks suite to retrieve the corresponding benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true"
time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
An empty cell means that the value was zero.
ID | time | GC time | memory | allocations |
---|---|---|---|---|
["autompo", "Quartic Hamiltonian"] |
12.749 s (5%) | 895.506 ms | 2.66 GiB (1%) | 35124265 |
["autompo", "Quartic QN Hamiltonian"] |
24.493 s (5%) | 3.524 s | 10.96 GiB (1%) | 96254417 |
["contract", "heff_2site"] |
5.608 ms (5%) | 19.40 MiB (1%) | 180 | |
["contract", "matmul_100"] |
42.301 μs (5%) | 79.80 KiB (1%) | 15 | |
["contract", "matmul_20"] |
3.225 μs (5%) | 4.84 KiB (1%) | 14 | |
["contract", "matmul_40"] |
7.600 μs (5%) | 14.22 KiB (1%) | 14 | |
["contract", "matmul_60"] |
18.201 μs (5%) | 29.80 KiB (1%) | 15 | |
["contract", "matmul_80"] |
24.000 μs (5%) | 51.67 KiB (1%) | 15 | |
["contract", "matmul_inplace_100"] |
55.101 μs (5%) | 158.28 KiB (1%) | 20 | |
["contract", "matmul_inplace_20"] |
3.525 μs (5%) | 8.38 KiB (1%) | 18 | |
["contract", "matmul_inplace_40"] |
8.000 μs (5%) | 27.12 KiB (1%) | 18 | |
["contract", "matmul_inplace_60"] |
19.900 μs (5%) | 58.28 KiB (1%) | 20 | |
["contract", "matmul_inplace_80"] |
33.300 μs (5%) | 102.03 KiB (1%) | 20 | |
["dmrg", "1d_S=1_heisenberg"] |
22.289 s (5%) | 936.116 ms | 38.51 GiB (1%) | 1930852 |
["dmrg", "1d_S=1_heisenberg_qn"] |
13.729 s (5%) | 1.150 s | 11.87 GiB (1%) | 64754196 |
["getsetindex", "getindex end"] |
214.078 ns (5%) | 512 bytes (1%) | 5 | |
["getsetindex", "getindex indval end"] |
67.527 ns (5%) | 256 bytes (1%) | 3 | |
["getsetindex", "getindex indval"] |
72.336 ns (5%) | 272 bytes (1%) | 3 | |
["getsetindex", "getindex"] |
27.035 ns (5%) | 16 bytes (1%) | 1 | |
["getsetindex", "setindex! end"] |
310.660 ns (5%) | 752 bytes (1%) | 6 | |
["getsetindex", "setindex! indval end"] |
106.010 ns (5%) | 464 bytes (1%) | 3 | |
["getsetindex", "setindex! indval"] |
113.731 ns (5%) | 480 bytes (1%) | 3 | |
["getsetindex", "setindex!"] |
69.714 ns (5%) | 224 bytes (1%) | 1 | |
["indexset", "constructor", "function"] |
678.579 ns (5%) | 1.47 KiB (1%) | 10 | |
["indexset", "constructor", "function, tuple"] |
407.040 ns (5%) | 1.31 KiB (1%) | 7 | |
["indexset", "filter", "function"] |
182.217 ns (5%) | 1.14 KiB (1%) | 1 | |
["indexset", "filter", "function, tuple"] |
0.001 ns (5%) | |||
["indexset", "filter", "kwargs"] |
181.969 ns (5%) | 1.14 KiB (1%) | 1 | |
["indexset", "set_functions", "commoninds, ITensor"] |
364.563 ns (5%) | 1.45 KiB (1%) | 5 | |
["indexset", "set_functions", "noncommoninds, ITensor"] |
457.365 ns (5%) | 1.45 KiB (1%) | 5 | |
["indexset", "set_functions", "prime, ITensor"] |
133.717 ns (5%) | 688 bytes (1%) | 3 | |
["indexset", "set_functions", "unioninds, ITensor"] |
573.601 ns (5%) | 2.53 KiB (1%) | 6 | |
["indexset", "set_functions", "uniqueinds", "3_inputs"] |
854.081 ns (5%) | 3.00 KiB (1%) | 12 | |
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] |
300.004 ns (5%) | 912 bytes (1%) | 6 | |
["indexset", "set_functions", "uniqueinds", "filter_tags"] |
191.895 ns (5%) | 688 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds", "nofilter0"] |
152.487 ns (5%) | 368 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds", "nofilter2"] |
158.765 ns (5%) | 688 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds, ITensor"] |
636.089 ns (5%) | 1.91 KiB (1%) | 7 | |
["inplace", "axpy!"] |
14.600 μs (5%) | 1.73 KiB (1%) | 24 | |
["op", "op QN"] |
7.567 μs (5%) | 10.05 KiB (1%) | 105 | |
["op", "op"] |
4.286 μs (5%) | 3.69 KiB (1%) | 36 | |
["tagset", "tagset"] |
331.081 ns (5%) | 208 bytes (1%) | 5 | |
["tagset", "tagset_unicode"] |
512.840 ns (5%) | 208 bytes (1%) | 5 |
Benchmark Group List
Here's a list of all the benchmark groups executed by this job:
-
["autompo"]
-
["contract"]
-
["dmrg"]
-
["getsetindex"]
-
["indexset", "constructor"]
-
["indexset", "filter"]
-
["indexset", "set_functions"]
-
["indexset", "set_functions", "uniqueinds"]
-
["inplace"]
-
["op"]
-
["tagset"]
Julia versioninfo
Julia Version 1.6.2
Commit 1b93d53fc4 (2021-07-14 15:36 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
Ubuntu 20.04.3 LTS
uname: Linux 5.8.0-1040-azure #43~20.04.1-Ubuntu SMP Mon Aug 2 22:06:11 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 4307 s 0 s 804 s 4528 s 0 s
#2 2095 MHz 5704 s 0 s 933 s 3024 s 0 s
Memory: 6.790924072265625 GB (868.32421875 MB free)
Uptime: 971.0 sec
Load Avg: 1.05 1.21 0.91
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: 2 Sep 2021 - 17:12
- Package commit: e80e3a
- Julia commit: 1b93d5
- Julia command flags: None
- Environment variables: None
Results
Below is a table of this job's results, obtained by running the benchmarks.
The values listed in the ID
column have the structure [parent_group, child_group, ..., key]
, and can be used to
index into the BaseBenchmarks suite to retrieve the corresponding benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true"
time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
An empty cell means that the value was zero.
ID | time | GC time | memory | allocations |
---|---|---|---|---|
["autompo", "Quartic Hamiltonian"] |
12.854 s (5%) | 907.098 ms | 2.66 GiB (1%) | 35124275 |
["autompo", "Quartic QN Hamiltonian"] |
23.988 s (5%) | 3.431 s | 10.95 GiB (1%) | 96211830 |
["contract", "heff_2site"] |
5.814 ms (5%) | 19.40 MiB (1%) | 180 | |
["contract", "matmul_100"] |
41.500 μs (5%) | 79.80 KiB (1%) | 15 | |
["contract", "matmul_20"] |
3.350 μs (5%) | 4.84 KiB (1%) | 14 | |
["contract", "matmul_40"] |
7.767 μs (5%) | 14.22 KiB (1%) | 14 | |
["contract", "matmul_60"] |
18.100 μs (5%) | 29.80 KiB (1%) | 15 | |
["contract", "matmul_80"] |
23.801 μs (5%) | 51.67 KiB (1%) | 15 | |
["contract", "matmul_inplace_100"] |
56.301 μs (5%) | 158.28 KiB (1%) | 20 | |
["contract", "matmul_inplace_20"] |
3.475 μs (5%) | 8.38 KiB (1%) | 18 | |
["contract", "matmul_inplace_40"] |
8.100 μs (5%) | 27.12 KiB (1%) | 18 | |
["contract", "matmul_inplace_60"] |
19.900 μs (5%) | 58.28 KiB (1%) | 20 | |
["contract", "matmul_inplace_80"] |
33.200 μs (5%) | 102.03 KiB (1%) | 20 | |
["dmrg", "1d_S=1_heisenberg"] |
24.040 s (5%) | 1.032 s | 38.51 GiB (1%) | 1930852 |
["dmrg", "1d_S=1_heisenberg_qn"] |
14.230 s (5%) | 1.142 s | 11.87 GiB (1%) | 64754388 |
["getsetindex", "getindex end"] |
186.669 ns (5%) | 512 bytes (1%) | 5 | |
["getsetindex", "getindex indval end"] |
68.867 ns (5%) | 256 bytes (1%) | 3 | |
["getsetindex", "getindex indval"] |
73.976 ns (5%) | 272 bytes (1%) | 3 | |
["getsetindex", "getindex"] |
27.337 ns (5%) | 16 bytes (1%) | 1 | |
["getsetindex", "setindex! end"] |
292.627 ns (5%) | 752 bytes (1%) | 6 | |
["getsetindex", "setindex! indval end"] |
103.864 ns (5%) | 464 bytes (1%) | 3 | |
["getsetindex", "setindex! indval"] |
108.325 ns (5%) | 480 bytes (1%) | 3 | |
["getsetindex", "setindex!"] |
72.280 ns (5%) | 224 bytes (1%) | 1 | |
["indexset", "constructor", "function"] |
575.007 ns (5%) | 1.47 KiB (1%) | 10 | |
["indexset", "constructor", "function, tuple"] |
416.588 ns (5%) | 1.31 KiB (1%) | 7 | |
["indexset", "filter", "function"] |
198.129 ns (5%) | 1.14 KiB (1%) | 1 | |
["indexset", "filter", "function, tuple"] |
0.001 ns (5%) | |||
["indexset", "filter", "kwargs"] |
182.714 ns (5%) | 1.14 KiB (1%) | 1 | |
["indexset", "set_functions", "commoninds, ITensor"] |
387.383 ns (5%) | 1.45 KiB (1%) | 5 | |
["indexset", "set_functions", "noncommoninds, ITensor"] |
469.041 ns (5%) | 1.45 KiB (1%) | 5 | |
["indexset", "set_functions", "prime, ITensor"] |
144.459 ns (5%) | 688 bytes (1%) | 3 | |
["indexset", "set_functions", "unioninds, ITensor"] |
589.331 ns (5%) | 2.53 KiB (1%) | 6 | |
["indexset", "set_functions", "uniqueinds", "3_inputs"] |
959.459 ns (5%) | 3.00 KiB (1%) | 12 | |
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] |
302.087 ns (5%) | 912 bytes (1%) | 6 | |
["indexset", "set_functions", "uniqueinds", "filter_tags"] |
187.089 ns (5%) | 688 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds", "nofilter0"] |
147.880 ns (5%) | 368 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds", "nofilter2"] |
160.826 ns (5%) | 688 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds, ITensor"] |
666.462 ns (5%) | 1.91 KiB (1%) | 7 | |
["inplace", "axpy!"] |
14.400 μs (5%) | 1.73 KiB (1%) | 24 | |
["op", "op QN"] |
7.700 μs (5%) | 10.05 KiB (1%) | 105 | |
["op", "op"] |
4.371 μs (5%) | 3.69 KiB (1%) | 36 | |
["tagset", "tagset"] |
363.068 ns (5%) | 208 bytes (1%) | 5 | |
["tagset", "tagset_unicode"] |
540.647 ns (5%) | 208 bytes (1%) | 5 |
Benchmark Group List
Here's a list of all the benchmark groups executed by this job:
-
["autompo"]
-
["contract"]
-
["dmrg"]
-
["getsetindex"]
-
["indexset", "constructor"]
-
["indexset", "filter"]
-
["indexset", "set_functions"]
-
["indexset", "set_functions", "uniqueinds"]
-
["inplace"]
-
["op"]
-
["tagset"]
Julia versioninfo
Julia Version 1.6.2
Commit 1b93d53fc4 (2021-07-14 15:36 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
Ubuntu 20.04.3 LTS
uname: Linux 5.8.0-1040-azure #43~20.04.1-Ubuntu SMP Mon Aug 2 22:06:11 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 6451 s 0 s 1531 s 6839 s 0 s
#2 2095 MHz 8909 s 0 s 1121 s 4813 s 0 s
Memory: 6.790924072265625 GB (1216.39453125 MB free)
Uptime: 1490.0 sec
Load Avg: 1.06 1.22 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.077
BogoMIPS: 4190.15
Hypervisor vendor: Microsoft
Virtualization type: full
L1d cache: 64 KiB
L1i cache: 64 KiB
L2 cache: 2 MiB
L3 cache: 35.8 MiB
NUMA node0 CPU(s): 0,1
Vulnerability Itlb multihit: KVM: Mitigation: VMX unsupported
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 |
Some follow up thoughts:
- I created a function
hdf5_type
with definitions likehdf5_type(::Type{<:Index}) = Index
. The idea is that it takes a general parametric ITensor type and returns the type which will be used in the"type"
attribute in the HDF5 file. I think this could be used in other definitions ofHDF5.write
. - I think we could make a wrapper around
HDF5.read(file, name, ITensors.AutoType)
, for example we could define our ownITensors.read
which is called asITensors.read(file, name)
which callsHDF5.read(file, name, ITensors.AutoType)
. - I noticed that there are limitations with specifying the type being read too strictly, for example
read(file, "X", Index{Int})
doesn't work right now, and neither doesread(file, "X", Array{Index{Int}})
. I think it would be good to support that, but points to the challenge involved with having to pass the type, so theITensors.AutoType
version may be better in general.
In the latest commit I added ITensors.read
which automatically determines the type by eval
ing the "type"
attribute, used as follows:
i = Index(2)
A = randomITensor(i)
B = randomITensor(i)
C = randomITensor(i)
D = randomITensor(i)
X = [A B; C D]
h5open("data.h5", "w") do file
@write file X
end
X̃ = h5open("data.h5", "r") do file
ITensors.read(file, "X")
end
@show all(X .== X̃)
This works with any ITensor type.
I like the macro syntax @write
/@read
in HDF5.jl, perhaps we can also introduce ITensors.@read
.
In fact, what I like even more is the save
/load
interface in JLD.jl
and JLD2.jl
where you don't have to open a file. Perhaps we could define our own ITensors.save
and ITensors.load
that wraps h5open
and read
/write
.
Benchmark result
Judge result
Benchmark Report for /home/runner/work/ITensors.jl/ITensors.jl
Job Properties
- Time of benchmarks:
- Target: 2 Sep 2021 - 19:19
- Baseline: 2 Sep 2021 - 19:28
- Package commits:
- Target: 64c7e9
- Baseline: e80e3a
- Julia commits:
- Target: 1b93d5
- Baseline: 1b93d5
- Julia command flags:
- Target: None
- Baseline: None
- Environment variables:
- Target: None
- Baseline: None
Results
A ratio greater than 1.0
denotes a possible regression (marked with :x:), while a ratio less
than 1.0
denotes a possible improvement (marked with :white_check_mark:). Only significant results - results
that indicate possible regressions or improvements - are shown below (thus, an empty table means that all
benchmark results remained invariant between builds).
ID | time ratio | memory ratio |
---|---|---|
["contract", "matmul_100"] |
1.06 (5%) :x: | 1.00 (1%) |
["contract", "matmul_inplace_40"] |
1.13 (5%) :x: | 1.00 (1%) |
["getsetindex", "getindex"] |
0.86 (5%) :white_check_mark: | 1.00 (1%) |
["getsetindex", "setindex! indval"] |
1.13 (5%) :x: | 1.00 (1%) |
["getsetindex", "setindex!"] |
1.15 (5%) :x: | 1.00 (1%) |
["indexset", "constructor", "function"] |
1.14 (5%) :x: | 1.00 (1%) |
["indexset", "filter", "function"] |
0.94 (5%) :white_check_mark: | 1.00 (1%) |
["indexset", "filter", "kwargs"] |
0.94 (5%) :white_check_mark: | 1.00 (1%) |
["indexset", "set_functions", "commoninds, ITensor"] |
1.12 (5%) :x: | 1.00 (1%) |
["indexset", "set_functions", "prime, ITensor"] |
0.90 (5%) :white_check_mark: | 1.00 (1%) |
["indexset", "set_functions", "unioninds, ITensor"] |
0.90 (5%) :white_check_mark: | 1.00 (1%) |
["indexset", "set_functions", "uniqueinds", "3_inputs"] |
1.08 (5%) :x: | 1.00 (1%) |
["indexset", "set_functions", "uniqueinds", "filter_tags"] |
1.11 (5%) :x: | 1.00 (1%) |
["indexset", "set_functions", "uniqueinds", "nofilter2"] |
0.89 (5%) :white_check_mark: | 1.00 (1%) |
["op", "op"] |
1.13 (5%) :x: | 1.00 (1%) |
["tagset", "tagset"] |
0.80 (5%) :white_check_mark: | 1.00 (1%) |
["tagset", "tagset_unicode"] |
0.94 (5%) :white_check_mark: | 1.00 (1%) |
Benchmark Group List
Here's a list of all the benchmark groups executed by this job:
-
["autompo"]
-
["contract"]
-
["dmrg"]
-
["getsetindex"]
-
["indexset", "constructor"]
-
["indexset", "filter"]
-
["indexset", "set_functions"]
-
["indexset", "set_functions", "uniqueinds"]
-
["inplace"]
-
["op"]
-
["tagset"]
Julia versioninfo
Target
Julia Version 1.6.2
Commit 1b93d53fc4 (2021-07-14 15:36 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
Ubuntu 20.04.3 LTS
uname: Linux 5.8.0-1040-azure #43~20.04.1-Ubuntu SMP Mon Aug 2 22:06:11 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 6719 s 0 s 791 s 2251 s 0 s
#2 2095 MHz 3019 s 0 s 879 s 5869 s 0 s
Memory: 6.790920257568359 GB (1149.12890625 MB free)
Uptime: 982.0 sec
Load Avg: 1.04 1.17 0.85
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-11.0.1 (ORCJIT, skylake-avx512)
Baseline
Julia Version 1.6.2
Commit 1b93d53fc4 (2021-07-14 15:36 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
Ubuntu 20.04.3 LTS
uname: Linux 5.8.0-1040-azure #43~20.04.1-Ubuntu SMP Mon Aug 2 22:06:11 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 8909 s 0 s 1421 s 4437 s 0 s
#2 2095 MHz 5977 s 0 s 1128 s 7666 s 0 s
Memory: 6.790920257568359 GB (1443.5703125 MB free)
Uptime: 1483.0 sec
Load Avg: 1.04 1.18 1.0
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: 2 Sep 2021 - 19:19
- Package commit: 64c7e9
- Julia commit: 1b93d5
- Julia command flags: None
- Environment variables: None
Results
Below is a table of this job's results, obtained by running the benchmarks.
The values listed in the ID
column have the structure [parent_group, child_group, ..., key]
, and can be used to
index into the BaseBenchmarks suite to retrieve the corresponding benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true"
time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
An empty cell means that the value was zero.
ID | time | GC time | memory | allocations |
---|---|---|---|---|
["autompo", "Quartic Hamiltonian"] |
12.523 s (5%) | 869.111 ms | 2.66 GiB (1%) | 35124270 |
["autompo", "Quartic QN Hamiltonian"] |
23.677 s (5%) | 3.433 s | 10.99 GiB (1%) | 96500143 |
["contract", "heff_2site"] |
5.359 ms (5%) | 19.40 MiB (1%) | 180 | |
["contract", "matmul_100"] |
40.000 μs (5%) | 79.80 KiB (1%) | 15 | |
["contract", "matmul_20"] |
3.188 μs (5%) | 4.84 KiB (1%) | 14 | |
["contract", "matmul_40"] |
6.975 μs (5%) | 14.22 KiB (1%) | 14 | |
["contract", "matmul_60"] |
16.600 μs (5%) | 29.80 KiB (1%) | 15 | |
["contract", "matmul_80"] |
23.501 μs (5%) | 51.67 KiB (1%) | 15 | |
["contract", "matmul_inplace_100"] |
54.601 μs (5%) | 158.28 KiB (1%) | 20 | |
["contract", "matmul_inplace_20"] |
3.513 μs (5%) | 8.38 KiB (1%) | 18 | |
["contract", "matmul_inplace_40"] |
8.367 μs (5%) | 27.12 KiB (1%) | 18 | |
["contract", "matmul_inplace_60"] |
18.300 μs (5%) | 58.28 KiB (1%) | 20 | |
["contract", "matmul_inplace_80"] |
31.201 μs (5%) | 102.03 KiB (1%) | 20 | |
["dmrg", "1d_S=1_heisenberg"] |
21.638 s (5%) | 907.279 ms | 38.51 GiB (1%) | 1930852 |
["dmrg", "1d_S=1_heisenberg_qn"] |
13.506 s (5%) | 1.164 s | 11.87 GiB (1%) | 64754388 |
["getsetindex", "getindex end"] |
191.000 ns (5%) | 512 bytes (1%) | 5 | |
["getsetindex", "getindex indval end"] |
68.482 ns (5%) | 256 bytes (1%) | 3 | |
["getsetindex", "getindex indval"] |
68.061 ns (5%) | 272 bytes (1%) | 3 | |
["getsetindex", "getindex"] |
22.992 ns (5%) | 16 bytes (1%) | 1 | |
["getsetindex", "setindex! end"] |
285.511 ns (5%) | 752 bytes (1%) | 6 | |
["getsetindex", "setindex! indval end"] |
94.851 ns (5%) | 464 bytes (1%) | 3 | |
["getsetindex", "setindex! indval"] |
104.814 ns (5%) | 480 bytes (1%) | 3 | |
["getsetindex", "setindex!"] |
70.620 ns (5%) | 224 bytes (1%) | 1 | |
["indexset", "constructor", "function"] |
591.859 ns (5%) | 1.47 KiB (1%) | 10 | |
["indexset", "constructor", "function, tuple"] |
413.573 ns (5%) | 1.31 KiB (1%) | 7 | |
["indexset", "filter", "function"] |
161.058 ns (5%) | 1.14 KiB (1%) | 1 | |
["indexset", "filter", "function, tuple"] |
0.001 ns (5%) | |||
["indexset", "filter", "kwargs"] |
168.699 ns (5%) | 1.14 KiB (1%) | 1 | |
["indexset", "set_functions", "commoninds, ITensor"] |
366.510 ns (5%) | 1.45 KiB (1%) | 5 | |
["indexset", "set_functions", "noncommoninds, ITensor"] |
429.447 ns (5%) | 1.45 KiB (1%) | 5 | |
["indexset", "set_functions", "prime, ITensor"] |
125.431 ns (5%) | 688 bytes (1%) | 3 | |
["indexset", "set_functions", "unioninds, ITensor"] |
520.561 ns (5%) | 2.53 KiB (1%) | 6 | |
["indexset", "set_functions", "uniqueinds", "3_inputs"] |
856.158 ns (5%) | 3.00 KiB (1%) | 12 | |
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] |
305.695 ns (5%) | 912 bytes (1%) | 6 | |
["indexset", "set_functions", "uniqueinds", "filter_tags"] |
183.122 ns (5%) | 688 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds", "nofilter0"] |
127.154 ns (5%) | 368 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds", "nofilter2"] |
141.322 ns (5%) | 688 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds, ITensor"] |
634.152 ns (5%) | 1.91 KiB (1%) | 7 | |
["inplace", "axpy!"] |
14.400 μs (5%) | 1.73 KiB (1%) | 24 | |
["op", "op QN"] |
7.550 μs (5%) | 10.05 KiB (1%) | 105 | |
["op", "op"] |
4.100 μs (5%) | 3.69 KiB (1%) | 36 | |
["tagset", "tagset"] |
289.338 ns (5%) | 208 bytes (1%) | 5 | |
["tagset", "tagset_unicode"] |
444.455 ns (5%) | 208 bytes (1%) | 5 |
Benchmark Group List
Here's a list of all the benchmark groups executed by this job:
-
["autompo"]
-
["contract"]
-
["dmrg"]
-
["getsetindex"]
-
["indexset", "constructor"]
-
["indexset", "filter"]
-
["indexset", "set_functions"]
-
["indexset", "set_functions", "uniqueinds"]
-
["inplace"]
-
["op"]
-
["tagset"]
Julia versioninfo
Julia Version 1.6.2
Commit 1b93d53fc4 (2021-07-14 15:36 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
Ubuntu 20.04.3 LTS
uname: Linux 5.8.0-1040-azure #43~20.04.1-Ubuntu SMP Mon Aug 2 22:06:11 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 6719 s 0 s 791 s 2251 s 0 s
#2 2095 MHz 3019 s 0 s 879 s 5869 s 0 s
Memory: 6.790920257568359 GB (1149.12890625 MB free)
Uptime: 982.0 sec
Load Avg: 1.04 1.17 0.85
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: 2 Sep 2021 - 19:28
- Package commit: e80e3a
- Julia commit: 1b93d5
- Julia command flags: None
- Environment variables: None
Results
Below is a table of this job's results, obtained by running the benchmarks.
The values listed in the ID
column have the structure [parent_group, child_group, ..., key]
, and can be used to
index into the BaseBenchmarks suite to retrieve the corresponding benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true"
time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
An empty cell means that the value was zero.
ID | time | GC time | memory | allocations |
---|---|---|---|---|
["autompo", "Quartic Hamiltonian"] |
12.458 s (5%) | 928.852 ms | 2.66 GiB (1%) | 35124267 |
["autompo", "Quartic QN Hamiltonian"] |
23.201 s (5%) | 3.304 s | 10.94 GiB (1%) | 96145434 |
["contract", "heff_2site"] |
5.308 ms (5%) | 19.40 MiB (1%) | 180 | |
["contract", "matmul_100"] |
37.900 μs (5%) | 79.80 KiB (1%) | 15 | |
["contract", "matmul_20"] |
3.188 μs (5%) | 4.84 KiB (1%) | 14 | |
["contract", "matmul_40"] |
6.875 μs (5%) | 14.22 KiB (1%) | 14 | |
["contract", "matmul_60"] |
16.500 μs (5%) | 29.80 KiB (1%) | 15 | |
["contract", "matmul_80"] |
22.500 μs (5%) | 51.67 KiB (1%) | 15 | |
["contract", "matmul_inplace_100"] |
53.500 μs (5%) | 158.28 KiB (1%) | 20 | |
["contract", "matmul_inplace_20"] |
3.413 μs (5%) | 8.38 KiB (1%) | 18 | |
["contract", "matmul_inplace_40"] |
7.434 μs (5%) | 27.12 KiB (1%) | 18 | |
["contract", "matmul_inplace_60"] |
18.100 μs (5%) | 58.28 KiB (1%) | 20 | |
["contract", "matmul_inplace_80"] |
31.500 μs (5%) | 102.03 KiB (1%) | 20 | |
["dmrg", "1d_S=1_heisenberg"] |
22.067 s (5%) | 934.773 ms | 38.51 GiB (1%) | 1930852 |
["dmrg", "1d_S=1_heisenberg_qn"] |
13.158 s (5%) | 1.165 s | 11.87 GiB (1%) | 64754196 |
["getsetindex", "getindex end"] |
194.521 ns (5%) | 512 bytes (1%) | 5 | |
["getsetindex", "getindex indval end"] |
67.660 ns (5%) | 256 bytes (1%) | 3 | |
["getsetindex", "getindex indval"] |
68.672 ns (5%) | 272 bytes (1%) | 3 | |
["getsetindex", "getindex"] |
26.808 ns (5%) | 16 bytes (1%) | 1 | |
["getsetindex", "setindex! end"] |
280.072 ns (5%) | 752 bytes (1%) | 6 | |
["getsetindex", "setindex! indval end"] |
93.777 ns (5%) | 464 bytes (1%) | 3 | |
["getsetindex", "setindex! indval"] |
92.514 ns (5%) | 480 bytes (1%) | 3 | |
["getsetindex", "setindex!"] |
61.444 ns (5%) | 224 bytes (1%) | 1 | |
["indexset", "constructor", "function"] |
517.386 ns (5%) | 1.47 KiB (1%) | 10 | |
["indexset", "constructor", "function, tuple"] |
411.060 ns (5%) | 1.31 KiB (1%) | 7 | |
["indexset", "filter", "function"] |
171.211 ns (5%) | 1.14 KiB (1%) | 1 | |
["indexset", "filter", "function, tuple"] |
0.001 ns (5%) | |||
["indexset", "filter", "kwargs"] |
179.712 ns (5%) | 1.14 KiB (1%) | 1 | |
["indexset", "set_functions", "commoninds, ITensor"] |
328.170 ns (5%) | 1.45 KiB (1%) | 5 | |
["indexset", "set_functions", "noncommoninds, ITensor"] |
429.970 ns (5%) | 1.45 KiB (1%) | 5 | |
["indexset", "set_functions", "prime, ITensor"] |
139.873 ns (5%) | 688 bytes (1%) | 3 | |
["indexset", "set_functions", "unioninds, ITensor"] |
577.228 ns (5%) | 2.53 KiB (1%) | 6 | |
["indexset", "set_functions", "uniqueinds", "3_inputs"] |
792.965 ns (5%) | 3.00 KiB (1%) | 12 | |
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] |
297.565 ns (5%) | 912 bytes (1%) | 6 | |
["indexset", "set_functions", "uniqueinds", "filter_tags"] |
165.251 ns (5%) | 688 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds", "nofilter0"] |
124.122 ns (5%) | 368 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds", "nofilter2"] |
158.433 ns (5%) | 688 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds, ITensor"] |
608.640 ns (5%) | 1.91 KiB (1%) | 7 | |
["inplace", "axpy!"] |
14.700 μs (5%) | 1.73 KiB (1%) | 24 | |
["op", "op QN"] |
7.575 μs (5%) | 10.05 KiB (1%) | 105 | |
["op", "op"] |
3.643 μs (5%) | 3.69 KiB (1%) | 36 | |
["tagset", "tagset"] |
363.560 ns (5%) | 208 bytes (1%) | 5 | |
["tagset", "tagset_unicode"] |
471.722 ns (5%) | 208 bytes (1%) | 5 |
Benchmark Group List
Here's a list of all the benchmark groups executed by this job:
-
["autompo"]
-
["contract"]
-
["dmrg"]
-
["getsetindex"]
-
["indexset", "constructor"]
-
["indexset", "filter"]
-
["indexset", "set_functions"]
-
["indexset", "set_functions", "uniqueinds"]
-
["inplace"]
-
["op"]
-
["tagset"]
Julia versioninfo
Julia Version 1.6.2
Commit 1b93d53fc4 (2021-07-14 15:36 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
Ubuntu 20.04.3 LTS
uname: Linux 5.8.0-1040-azure #43~20.04.1-Ubuntu SMP Mon Aug 2 22:06:11 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 8909 s 0 s 1421 s 4437 s 0 s
#2 2095 MHz 5977 s 0 s 1128 s 7666 s 0 s
Memory: 6.790920257568359 GB (1443.5703125 MB free)
Uptime: 1483.0 sec
Load Avg: 1.04 1.18 1.0
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: Mitigation: VMX unsupported
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 Report
Merging #735 (bd3d1ab) into main (e80e3a4) will increase coverage by
0.08%
. The diff coverage is83.83%
.
@@ Coverage Diff @@
## main #735 +/- ##
==========================================
+ Coverage 76.53% 76.62% +0.08%
==========================================
Files 84 85 +1
Lines 9666 9705 +39
==========================================
+ Hits 7398 7436 +38
- Misses 2268 2269 +1
Impacted Files | Coverage Δ | |
---|---|---|
src/ITensors.jl | 30.00% <ø> (ø) |
|
src/argsdict/argsdict.jl | 0.00% <ø> (ø) |
|
src/developer_tools.jl | 0.00% <0.00%> (ø) |
|
src/smallstring.jl | 61.53% <0.00%> (ø) |
|
src/itensor.jl | 85.31% <50.00%> (ø) |
|
src/indexset.jl | 77.44% <60.00%> (ø) |
|
src/NDTensors/dense.jl | 78.49% <66.66%> (ø) |
|
src/index.jl | 73.64% <71.42%> (ø) |
|
src/NDTensors/blocksparse/blocksparse.jl | 63.73% <80.00%> (ø) |
|
src/readwrite_array.jl | 94.73% <94.73%> (ø) |
|
... and 9 more |
Continue to review full report at Codecov.
Legend - Click here to learn more
Δ = absolute <relative> (impact)
,ø = not affected
,? = missing data
Powered by Codecov. Last update e80e3a4...bd3d1ab. Read the comment docs.
Ok, probably the last change. In the latest I added the more compact ITensors.save
/ITensors.load
syntax, inspired by save
/load
defined in JLD
/JLD2
:
i = Index(2)
A = randomITensor(i)
B = randomITensor(i)
C = randomITensor(i)
D = randomITensor(i)
X = [A B; C D]
ITensors.save("data.h5", "X", X)
X̃ = ITensors.load("data.h5", "X")
@show all(X .== X̃)
I guess the PR has diverged a bit from the original goal. @emstoudenmire, let me know what you think of both the Array{ITensor}
read/write functionality as well as the more compact ITensors.save
/ITensors.load
interface.
Benchmark result
Judge result
Benchmark Report for /home/runner/work/ITensors.jl/ITensors.jl
Job Properties
- Time of benchmarks:
- Target: 2 Sep 2021 - 19:43
- Baseline: 2 Sep 2021 - 19:51
- Package commits:
- Target: f45cf5
- Baseline: e80e3a
- Julia commits:
- Target: 1b93d5
- Baseline: 1b93d5
- Julia command flags:
- Target: None
- Baseline: None
- Environment variables:
- Target: None
- Baseline: None
Results
A ratio greater than 1.0
denotes a possible regression (marked with :x:), while a ratio less
than 1.0
denotes a possible improvement (marked with :white_check_mark:). Only significant results - results
that indicate possible regressions or improvements - are shown below (thus, an empty table means that all
benchmark results remained invariant between builds).
ID | time ratio | memory ratio |
---|---|---|
["contract", "matmul_80"] |
1.06 (5%) :x: | 1.00 (1%) |
["contract", "matmul_inplace_100"] |
1.05 (5%) :x: | 1.00 (1%) |
["contract", "matmul_inplace_20"] |
1.10 (5%) :x: | 1.00 (1%) |
["contract", "matmul_inplace_40"] |
1.06 (5%) :x: | 1.00 (1%) |
["getsetindex", "setindex! end"] |
1.05 (5%) :x: | 1.00 (1%) |
["indexset", "constructor", "function"] |
1.05 (5%) :x: | 1.00 (1%) |
["indexset", "constructor", "function, tuple"] |
1.14 (5%) :x: | 1.00 (1%) |
["indexset", "set_functions", "commoninds, ITensor"] |
1.06 (5%) :x: | 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.2
Commit 1b93d53fc4 (2021-07-14 15:36 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
Ubuntu 20.04.3 LTS
uname: Linux 5.8.0-1040-azure #43~20.04.1-Ubuntu SMP Mon Aug 2 22:06:11 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 7006 s 0 s 778 s 1651 s 0 s
#2 2095 MHz 1844 s 0 s 832 s 6755 s 0 s
Memory: 6.790920257568359 GB (955.69921875 MB free)
Uptime: 948.0 sec
Load Avg: 1.12 1.19 0.83
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-11.0.1 (ORCJIT, skylake-avx512)
Baseline
Julia Version 1.6.2
Commit 1b93d53fc4 (2021-07-14 15:36 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
Ubuntu 20.04.3 LTS
uname: Linux 5.8.0-1040-azure #43~20.04.1-Ubuntu SMP Mon Aug 2 22:06:11 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 11017 s 0 s 1280 s 1748 s 0 s
#2 2095 MHz 2532 s 0 s 1176 s 10318 s 0 s
Memory: 6.790920257568359 GB (963.30078125 MB free)
Uptime: 1409.0 sec
Load Avg: 1.09 1.22 1.0
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: 2 Sep 2021 - 19:43
- Package commit: f45cf5
- Julia commit: 1b93d5
- 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"] |
10.922 s (5%) | 804.069 ms | 2.66 GiB (1%) | 35124260 |
["autompo", "Quartic QN Hamiltonian"] |
20.869 s (5%) | 3.109 s | 10.93 GiB (1%) | 96015842 |
["contract", "heff_2site"] |
4.628 ms (5%) | 19.40 MiB (1%) | 180 | |
["contract", "matmul_100"] |
32.602 μs (5%) | 79.80 KiB (1%) | 15 | |
["contract", "matmul_20"] |
2.600 μs (5%) | 4.84 KiB (1%) | 14 | |
["contract", "matmul_40"] |
6.280 μs (5%) | 14.22 KiB (1%) | 14 | |
["contract", "matmul_60"] |
15.300 μs (5%) | 29.80 KiB (1%) | 15 | |
["contract", "matmul_80"] |
19.901 μs (5%) | 51.67 KiB (1%) | 15 | |
["contract", "matmul_inplace_100"] |
47.802 μs (5%) | 158.28 KiB (1%) | 20 | |
["contract", "matmul_inplace_20"] |
3.050 μs (5%) | 8.38 KiB (1%) | 18 | |
["contract", "matmul_inplace_40"] |
7.026 μs (5%) | 27.12 KiB (1%) | 18 | |
["contract", "matmul_inplace_60"] |
15.000 μs (5%) | 58.28 KiB (1%) | 20 | |
["contract", "matmul_inplace_80"] |
28.601 μs (5%) | 102.03 KiB (1%) | 20 | |
["dmrg", "1d_S=1_heisenberg"] |
19.771 s (5%) | 879.974 ms | 38.51 GiB (1%) | 1930852 |
["dmrg", "1d_S=1_heisenberg_qn"] |
11.869 s (5%) | 1.098 s | 11.87 GiB (1%) | 64754388 |
["getsetindex", "getindex end"] |
168.969 ns (5%) | 512 bytes (1%) | 5 | |
["getsetindex", "getindex indval end"] |
51.831 ns (5%) | 256 bytes (1%) | 3 | |
["getsetindex", "getindex indval"] |
55.411 ns (5%) | 272 bytes (1%) | 3 | |
["getsetindex", "getindex"] |
18.738 ns (5%) | 16 bytes (1%) | 1 | |
["getsetindex", "setindex! end"] |
225.741 ns (5%) | 752 bytes (1%) | 6 | |
["getsetindex", "setindex! indval end"] |
81.358 ns (5%) | 464 bytes (1%) | 3 | |
["getsetindex", "setindex! indval"] |
83.337 ns (5%) | 480 bytes (1%) | 3 | |
["getsetindex", "setindex!"] |
55.266 ns (5%) | 224 bytes (1%) | 1 | |
["indexset", "constructor", "function"] |
466.010 ns (5%) | 1.47 KiB (1%) | 10 | |
["indexset", "constructor", "function, tuple"] |
356.263 ns (5%) | 1.31 KiB (1%) | 7 | |
["indexset", "filter", "function"] |
152.771 ns (5%) | 1.14 KiB (1%) | 1 | |
["indexset", "filter", "function, tuple"] |
0.001 ns (5%) | |||
["indexset", "filter", "kwargs"] |
164.052 ns (5%) | 1.14 KiB (1%) | 1 | |
["indexset", "set_functions", "commoninds, ITensor"] |
295.598 ns (5%) | 1.45 KiB (1%) | 5 | |
["indexset", "set_functions", "noncommoninds, ITensor"] |
337.864 ns (5%) | 1.45 KiB (1%) | 5 | |
["indexset", "set_functions", "prime, ITensor"] |
117.921 ns (5%) | 688 bytes (1%) | 3 | |
["indexset", "set_functions", "unioninds, ITensor"] |
461.755 ns (5%) | 2.53 KiB (1%) | 6 | |
["indexset", "set_functions", "uniqueinds", "3_inputs"] |
686.650 ns (5%) | 3.00 KiB (1%) | 12 | |
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] |
228.663 ns (5%) | 912 bytes (1%) | 6 | |
["indexset", "set_functions", "uniqueinds", "filter_tags"] |
139.229 ns (5%) | 688 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds", "nofilter0"] |
107.456 ns (5%) | 368 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds", "nofilter2"] |
123.836 ns (5%) | 688 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds, ITensor"] |
501.057 ns (5%) | 1.91 KiB (1%) | 7 | |
["inplace", "axpy!"] |
10.900 μs (5%) | 1.73 KiB (1%) | 24 | |
["op", "op QN"] |
5.667 μs (5%) | 10.05 KiB (1%) | 105 | |
["op", "op"] |
3.088 μs (5%) | 3.69 KiB (1%) | 36 | |
["tagset", "tagset"] |
246.642 ns (5%) | 208 bytes (1%) | 5 | |
["tagset", "tagset_unicode"] |
382.773 ns (5%) | 208 bytes (1%) | 5 |
Benchmark Group List
Here's a list of all the benchmark groups executed by this job:
-
["autompo"]
-
["contract"]
-
["dmrg"]
-
["getsetindex"]
-
["indexset", "constructor"]
-
["indexset", "filter"]
-
["indexset", "set_functions"]
-
["indexset", "set_functions", "uniqueinds"]
-
["inplace"]
-
["op"]
-
["tagset"]
Julia versioninfo
Julia Version 1.6.2
Commit 1b93d53fc4 (2021-07-14 15:36 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
Ubuntu 20.04.3 LTS
uname: Linux 5.8.0-1040-azure #43~20.04.1-Ubuntu SMP Mon Aug 2 22:06:11 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 7006 s 0 s 778 s 1651 s 0 s
#2 2095 MHz 1844 s 0 s 832 s 6755 s 0 s
Memory: 6.790920257568359 GB (955.69921875 MB free)
Uptime: 948.0 sec
Load Avg: 1.12 1.19 0.83
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: 2 Sep 2021 - 19:51
- Package commit: e80e3a
- Julia commit: 1b93d5
- 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"] |
10.849 s (5%) | 829.128 ms | 2.66 GiB (1%) | 35124257 |
["autompo", "Quartic QN Hamiltonian"] |
20.631 s (5%) | 3.063 s | 10.95 GiB (1%) | 96167775 |
["contract", "heff_2site"] |
4.468 ms (5%) | 19.40 MiB (1%) | 180 | |
["contract", "matmul_100"] |
32.101 μs (5%) | 79.80 KiB (1%) | 15 | |
["contract", "matmul_20"] |
2.533 μs (5%) | 4.84 KiB (1%) | 14 | |
["contract", "matmul_40"] |
6.220 μs (5%) | 14.22 KiB (1%) | 14 | |
["contract", "matmul_60"] |
15.200 μs (5%) | 29.80 KiB (1%) | 15 | |
["contract", "matmul_80"] |
18.800 μs (5%) | 51.67 KiB (1%) | 15 | |
["contract", "matmul_inplace_100"] |
45.401 μs (5%) | 158.28 KiB (1%) | 20 | |
["contract", "matmul_inplace_20"] |
2.775 μs (5%) | 8.38 KiB (1%) | 18 | |
["contract", "matmul_inplace_40"] |
6.650 μs (5%) | 27.12 KiB (1%) | 18 | |
["contract", "matmul_inplace_60"] |
15.101 μs (5%) | 58.28 KiB (1%) | 20 | |
["contract", "matmul_inplace_80"] |
27.501 μs (5%) | 102.03 KiB (1%) | 20 | |
["dmrg", "1d_S=1_heisenberg"] |
20.169 s (5%) | 920.363 ms | 38.51 GiB (1%) | 1930852 |
["dmrg", "1d_S=1_heisenberg_qn"] |
11.729 s (5%) | 1.052 s | 11.87 GiB (1%) | 64754196 |
["getsetindex", "getindex end"] |
163.974 ns (5%) | 512 bytes (1%) | 5 | |
["getsetindex", "getindex indval end"] |
53.254 ns (5%) | 256 bytes (1%) | 3 | |
["getsetindex", "getindex indval"] |
54.390 ns (5%) | 272 bytes (1%) | 3 | |
["getsetindex", "getindex"] |
18.938 ns (5%) | 16 bytes (1%) | 1 | |
["getsetindex", "setindex! end"] |
214.862 ns (5%) | 752 bytes (1%) | 6 | |
["getsetindex", "setindex! indval end"] |
79.795 ns (5%) | 464 bytes (1%) | 3 | |
["getsetindex", "setindex! indval"] |
81.587 ns (5%) | 480 bytes (1%) | 3 | |
["getsetindex", "setindex!"] |
53.443 ns (5%) | 224 bytes (1%) | 1 | |
["indexset", "constructor", "function"] |
442.655 ns (5%) | 1.47 KiB (1%) | 10 | |
["indexset", "constructor", "function, tuple"] |
312.955 ns (5%) | 1.31 KiB (1%) | 7 | |
["indexset", "filter", "function"] |
158.172 ns (5%) | 1.14 KiB (1%) | 1 | |
["indexset", "filter", "function, tuple"] |
0.001 ns (5%) | |||
["indexset", "filter", "kwargs"] |
156.995 ns (5%) | 1.14 KiB (1%) | 1 | |
["indexset", "set_functions", "commoninds, ITensor"] |
278.727 ns (5%) | 1.45 KiB (1%) | 5 | |
["indexset", "set_functions", "noncommoninds, ITensor"] |
339.266 ns (5%) | 1.45 KiB (1%) | 5 | |
["indexset", "set_functions", "prime, ITensor"] |
113.577 ns (5%) | 688 bytes (1%) | 3 | |
["indexset", "set_functions", "unioninds, ITensor"] |
463.796 ns (5%) | 2.53 KiB (1%) | 6 | |
["indexset", "set_functions", "uniqueinds", "3_inputs"] |
680.280 ns (5%) | 3.00 KiB (1%) | 12 | |
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] |
231.354 ns (5%) | 912 bytes (1%) | 6 | |
["indexset", "set_functions", "uniqueinds", "filter_tags"] |
139.934 ns (5%) | 688 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds", "nofilter0"] |
106.855 ns (5%) | 368 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds", "nofilter2"] |
123.612 ns (5%) | 688 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds, ITensor"] |
490.176 ns (5%) | 1.91 KiB (1%) | 7 | |
["inplace", "axpy!"] |
10.800 μs (5%) | 1.73 KiB (1%) | 24 | |
["op", "op QN"] |
5.867 μs (5%) | 10.05 KiB (1%) | 105 | |
["op", "op"] |
3.088 μs (5%) | 3.69 KiB (1%) | 36 | |
["tagset", "tagset"] |
246.899 ns (5%) | 208 bytes (1%) | 5 | |
["tagset", "tagset_unicode"] |
378.340 ns (5%) | 208 bytes (1%) | 5 |
Benchmark Group List
Here's a list of all the benchmark groups executed by this job:
-
["autompo"]
-
["contract"]
-
["dmrg"]
-
["getsetindex"]
-
["indexset", "constructor"]
-
["indexset", "filter"]
-
["indexset", "set_functions"]
-
["indexset", "set_functions", "uniqueinds"]
-
["inplace"]
-
["op"]
-
["tagset"]
Julia versioninfo
Julia Version 1.6.2
Commit 1b93d53fc4 (2021-07-14 15:36 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
Ubuntu 20.04.3 LTS
uname: Linux 5.8.0-1040-azure #43~20.04.1-Ubuntu SMP Mon Aug 2 22:06:11 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 11017 s 0 s 1280 s 1748 s 0 s
#2 2095 MHz 2532 s 0 s 1176 s 10318 s 0 s
Memory: 6.790920257568359 GB (963.30078125 MB free)
Uptime: 1409.0 sec
Load Avg: 1.09 1.22 1.0
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.145
BogoMIPS: 4190.29
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: Mitigation: VMX unsupported
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 |
Benchmark result
Judge result
Benchmark Report for /home/runner/work/ITensors.jl/ITensors.jl
Job Properties
- Time of benchmarks:
- Target: 2 Sep 2021 - 19:53
- Baseline: 2 Sep 2021 - 20:01
- Package commits:
- Target: c7eb31
- Baseline: e80e3a
- Julia commits:
- Target: 1b93d5
- Baseline: 1b93d5
- Julia command flags:
- Target: None
- Baseline: None
- Environment variables:
- Target: None
- Baseline: None
Results
A ratio greater than 1.0
denotes a possible regression (marked with :x:), while a ratio less
than 1.0
denotes a possible improvement (marked with :white_check_mark:). Only significant results - results
that indicate possible regressions or improvements - are shown below (thus, an empty table means that all
benchmark results remained invariant between builds).
ID | time ratio | memory ratio |
---|---|---|
["contract", "matmul_20"] |
1.17 (5%) :x: | 1.00 (1%) |
["contract", "matmul_40"] |
0.95 (5%) :white_check_mark: | 1.00 (1%) |
["contract", "matmul_60"] |
1.26 (5%) :x: | 1.00 (1%) |
["contract", "matmul_inplace_100"] |
1.14 (5%) :x: | 1.00 (1%) |
["contract", "matmul_inplace_20"] |
1.21 (5%) :x: | 1.00 (1%) |
["contract", "matmul_inplace_40"] |
1.15 (5%) :x: | 1.00 (1%) |
["contract", "matmul_inplace_60"] |
1.22 (5%) :x: | 1.00 (1%) |
["contract", "matmul_inplace_80"] |
1.21 (5%) :x: | 1.00 (1%) |
["getsetindex", "getindex indval"] |
1.13 (5%) :x: | 1.00 (1%) |
["getsetindex", "getindex"] |
0.83 (5%) :white_check_mark: | 1.00 (1%) |
["getsetindex", "setindex! end"] |
0.91 (5%) :white_check_mark: | 1.00 (1%) |
["getsetindex", "setindex! indval"] |
0.83 (5%) :white_check_mark: | 1.00 (1%) |
["indexset", "set_functions", "commoninds, ITensor"] |
1.07 (5%) :x: | 1.00 (1%) |
["indexset", "set_functions", "noncommoninds, ITensor"] |
1.15 (5%) :x: | 1.00 (1%) |
["indexset", "set_functions", "prime, ITensor"] |
1.09 (5%) :x: | 1.00 (1%) |
["indexset", "set_functions", "unioninds, ITensor"] |
1.26 (5%) :x: | 1.00 (1%) |
["indexset", "set_functions", "uniqueinds", "3_inputs"] |
0.90 (5%) :white_check_mark: | 1.00 (1%) |
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] |
0.87 (5%) :white_check_mark: | 1.00 (1%) |
["indexset", "set_functions", "uniqueinds", "nofilter0"] |
0.87 (5%) :white_check_mark: | 1.00 (1%) |
["indexset", "set_functions", "uniqueinds, ITensor"] |
1.25 (5%) :x: | 1.00 (1%) |
["inplace", "axpy!"] |
1.24 (5%) :x: | 1.00 (1%) |
["op", "op"] |
1.42 (5%) :x: | 1.00 (1%) |
["tagset", "tagset"] |
1.50 (5%) :x: | 1.00 (1%) |
["tagset", "tagset_unicode"] |
1.24 (5%) :x: | 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.2
Commit 1b93d53fc4 (2021-07-14 15:36 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
Ubuntu 20.04.3 LTS
uname: Linux 5.8.0-1040-azure #43~20.04.1-Ubuntu SMP Mon Aug 2 22:06:11 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 4516 s 0 s 568 s 4075 s 0 s
#2 2095 MHz 5422 s 0 s 1117 s 2634 s 0 s
Memory: 6.790924072265625 GB (817.6484375 MB free)
Uptime: 922.0 sec
Load Avg: 1.04 1.18 0.87
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-11.0.1 (ORCJIT, skylake-avx512)
Baseline
Julia Version 1.6.2
Commit 1b93d53fc4 (2021-07-14 15:36 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
Ubuntu 20.04.3 LTS
uname: Linux 5.8.0-1040-azure #43~20.04.1-Ubuntu SMP Mon Aug 2 22:06:11 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 5278 s 0 s 960 s 7948 s 0 s
#2 2095 MHz 9873 s 0 s 1600 s 2743 s 0 s
Memory: 6.790924072265625 GB (1216.26953125 MB free)
Uptime: 1427.0 sec
Load Avg: 1.06 1.2 1.02
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: 2 Sep 2021 - 19:53
- Package commit: c7eb31
- Julia commit: 1b93d5
- Julia command flags: None
- Environment variables: None
Results
Below is a table of this job's results, obtained by running the benchmarks.
The values listed in the ID
column have the structure [parent_group, child_group, ..., key]
, and can be used to
index into the BaseBenchmarks suite to retrieve the corresponding benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true"
time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
An empty cell means that the value was zero.
ID | time | GC time | memory | allocations |
---|---|---|---|---|
["autompo", "Quartic Hamiltonian"] |
12.765 s (5%) | 816.415 ms | 2.66 GiB (1%) | 35124257 |
["autompo", "Quartic QN Hamiltonian"] |
23.866 s (5%) | 3.341 s | 10.98 GiB (1%) | 96390065 |
["contract", "heff_2site"] |
5.329 ms (5%) | 19.40 MiB (1%) | 180 | |
["contract", "matmul_100"] |
40.201 μs (5%) | 79.80 KiB (1%) | 15 | |
["contract", "matmul_20"] |
3.212 μs (5%) | 4.84 KiB (1%) | 14 | |
["contract", "matmul_40"] |
7.434 μs (5%) | 14.22 KiB (1%) | 14 | |
["contract", "matmul_60"] |
19.100 μs (5%) | 29.80 KiB (1%) | 15 | |
["contract", "matmul_80"] |
24.504 μs (5%) | 51.67 KiB (1%) | 15 | |
["contract", "matmul_inplace_100"] |
56.901 μs (5%) | 158.28 KiB (1%) | 20 | |
["contract", "matmul_inplace_20"] |
3.575 μs (5%) | 8.38 KiB (1%) | 18 | |
["contract", "matmul_inplace_40"] |
8.050 μs (5%) | 27.12 KiB (1%) | 18 | |
["contract", "matmul_inplace_60"] |
19.000 μs (5%) | 58.28 KiB (1%) | 20 | |
["contract", "matmul_inplace_80"] |
34.100 μs (5%) | 102.03 KiB (1%) | 20 | |
["dmrg", "1d_S=1_heisenberg"] |
22.068 s (5%) | 905.681 ms | 38.51 GiB (1%) | 1930852 |
["dmrg", "1d_S=1_heisenberg_qn"] |
14.103 s (5%) | 1.119 s | 11.87 GiB (1%) | 64754388 |
["getsetindex", "getindex end"] |
166.302 ns (5%) | 512 bytes (1%) | 5 | |
["getsetindex", "getindex indval end"] |
56.149 ns (5%) | 256 bytes (1%) | 3 | |
["getsetindex", "getindex indval"] |
61.045 ns (5%) | 272 bytes (1%) | 3 | |
["getsetindex", "getindex"] |
22.591 ns (5%) | 16 bytes (1%) | 1 | |
["getsetindex", "setindex! end"] |
226.725 ns (5%) | 752 bytes (1%) | 6 | |
["getsetindex", "setindex! indval end"] |
80.726 ns (5%) | 464 bytes (1%) | 3 | |
["getsetindex", "setindex! indval"] |
83.566 ns (5%) | 480 bytes (1%) | 3 | |
["getsetindex", "setindex!"] |
57.439 ns (5%) | 224 bytes (1%) | 1 | |
["indexset", "constructor", "function"] |
468.718 ns (5%) | 1.47 KiB (1%) | 10 | |
["indexset", "constructor", "function, tuple"] |
322.116 ns (5%) | 1.31 KiB (1%) | 7 | |
["indexset", "filter", "function"] |
151.667 ns (5%) | 1.14 KiB (1%) | 1 | |
["indexset", "filter", "function, tuple"] |
0.001 ns (5%) | |||
["indexset", "filter", "kwargs"] |
154.508 ns (5%) | 1.14 KiB (1%) | 1 | |
["indexset", "set_functions", "commoninds, ITensor"] |
302.005 ns (5%) | 1.45 KiB (1%) | 5 | |
["indexset", "set_functions", "noncommoninds, ITensor"] |
441.929 ns (5%) | 1.45 KiB (1%) | 5 | |
["indexset", "set_functions", "prime, ITensor"] |
139.772 ns (5%) | 688 bytes (1%) | 3 | |
["indexset", "set_functions", "unioninds, ITensor"] |
585.043 ns (5%) | 2.53 KiB (1%) | 6 | |
["indexset", "set_functions", "uniqueinds", "3_inputs"] |
696.586 ns (5%) | 3.00 KiB (1%) | 12 | |
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] |
229.171 ns (5%) | 912 bytes (1%) | 6 | |
["indexset", "set_functions", "uniqueinds", "filter_tags"] |
140.395 ns (5%) | 688 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds", "nofilter0"] |
109.781 ns (5%) | 368 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds", "nofilter2"] |
127.904 ns (5%) | 688 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds, ITensor"] |
682.680 ns (5%) | 1.91 KiB (1%) | 7 | |
["inplace", "axpy!"] |
15.700 μs (5%) | 1.73 KiB (1%) | 24 | |
["op", "op QN"] |
5.567 μs (5%) | 10.05 KiB (1%) | 105 | |
["op", "op"] |
4.329 μs (5%) | 3.69 KiB (1%) | 36 | |
["tagset", "tagset"] |
366.005 ns (5%) | 208 bytes (1%) | 5 | |
["tagset", "tagset_unicode"] |
471.829 ns (5%) | 208 bytes (1%) | 5 |
Benchmark Group List
Here's a list of all the benchmark groups executed by this job:
-
["autompo"]
-
["contract"]
-
["dmrg"]
-
["getsetindex"]
-
["indexset", "constructor"]
-
["indexset", "filter"]
-
["indexset", "set_functions"]
-
["indexset", "set_functions", "uniqueinds"]
-
["inplace"]
-
["op"]
-
["tagset"]
Julia versioninfo
Julia Version 1.6.2
Commit 1b93d53fc4 (2021-07-14 15:36 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
Ubuntu 20.04.3 LTS
uname: Linux 5.8.0-1040-azure #43~20.04.1-Ubuntu SMP Mon Aug 2 22:06:11 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 4516 s 0 s 568 s 4075 s 0 s
#2 2095 MHz 5422 s 0 s 1117 s 2634 s 0 s
Memory: 6.790924072265625 GB (817.6484375 MB free)
Uptime: 922.0 sec
Load Avg: 1.04 1.18 0.87
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: 2 Sep 2021 - 20:1
- Package commit: e80e3a
- Julia commit: 1b93d5
- Julia command flags: None
- Environment variables: None
Results
Below is a table of this job's results, obtained by running the benchmarks.
The values listed in the ID
column have the structure [parent_group, child_group, ..., key]
, and can be used to
index into the BaseBenchmarks suite to retrieve the corresponding benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true"
time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
An empty cell means that the value was zero.
ID | time | GC time | memory | allocations |
---|---|---|---|---|
["autompo", "Quartic Hamiltonian"] |
12.576 s (5%) | 912.973 ms | 2.66 GiB (1%) | 35124273 |
["autompo", "Quartic QN Hamiltonian"] |
23.334 s (5%) | 3.312 s | 10.94 GiB (1%) | 96101432 |
["contract", "heff_2site"] |
5.202 ms (5%) | 19.40 MiB (1%) | 180 | |
["contract", "matmul_100"] |
39.501 μs (5%) | 79.80 KiB (1%) | 15 | |
["contract", "matmul_20"] |
2.750 μs (5%) | 4.84 KiB (1%) | 14 | |
["contract", "matmul_40"] |
7.833 μs (5%) | 14.22 KiB (1%) | 14 | |
["contract", "matmul_60"] |
15.100 μs (5%) | 29.80 KiB (1%) | 15 | |
["contract", "matmul_80"] |
24.200 μs (5%) | 51.67 KiB (1%) | 15 | |
["contract", "matmul_inplace_100"] |
50.101 μs (5%) | 158.28 KiB (1%) | 20 | |
["contract", "matmul_inplace_20"] |
2.950 μs (5%) | 8.38 KiB (1%) | 18 | |
["contract", "matmul_inplace_40"] |
6.975 μs (5%) | 27.12 KiB (1%) | 18 | |
["contract", "matmul_inplace_60"] |
15.600 μs (5%) | 58.28 KiB (1%) | 20 | |
["contract", "matmul_inplace_80"] |
28.100 μs (5%) | 102.03 KiB (1%) | 20 | |
["dmrg", "1d_S=1_heisenberg"] |
22.709 s (5%) | 891.722 ms | 38.51 GiB (1%) | 1930852 |
["dmrg", "1d_S=1_heisenberg_qn"] |
13.794 s (5%) | 1.148 s | 11.87 GiB (1%) | 64754196 |
["getsetindex", "getindex end"] |
160.756 ns (5%) | 512 bytes (1%) | 5 | |
["getsetindex", "getindex indval end"] |
53.587 ns (5%) | 256 bytes (1%) | 3 | |
["getsetindex", "getindex indval"] |
54.193 ns (5%) | 272 bytes (1%) | 3 | |
["getsetindex", "getindex"] |
27.108 ns (5%) | 16 bytes (1%) | 1 | |
["getsetindex", "setindex! end"] |
248.587 ns (5%) | 752 bytes (1%) | 6 | |
["getsetindex", "setindex! indval end"] |
83.815 ns (5%) | 464 bytes (1%) | 3 | |
["getsetindex", "setindex! indval"] |
100.215 ns (5%) | 480 bytes (1%) | 3 | |
["getsetindex", "setindex!"] |
55.683 ns (5%) | 224 bytes (1%) | 1 | |
["indexset", "constructor", "function"] |
487.736 ns (5%) | 1.47 KiB (1%) | 10 | |
["indexset", "constructor", "function, tuple"] |
320.613 ns (5%) | 1.31 KiB (1%) | 7 | |
["indexset", "filter", "function"] |
152.935 ns (5%) | 1.14 KiB (1%) | 1 | |
["indexset", "filter", "function, tuple"] |
0.001 ns (5%) | |||
["indexset", "filter", "kwargs"] |
154.808 ns (5%) | 1.14 KiB (1%) | 1 | |
["indexset", "set_functions", "commoninds, ITensor"] |
283.010 ns (5%) | 1.45 KiB (1%) | 5 | |
["indexset", "set_functions", "noncommoninds, ITensor"] |
384.854 ns (5%) | 1.45 KiB (1%) | 5 | |
["indexset", "set_functions", "prime, ITensor"] |
127.818 ns (5%) | 688 bytes (1%) | 3 | |
["indexset", "set_functions", "unioninds, ITensor"] |
463.647 ns (5%) | 2.53 KiB (1%) | 6 | |
["indexset", "set_functions", "uniqueinds", "3_inputs"] |
775.897 ns (5%) | 3.00 KiB (1%) | 12 | |
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] |
264.171 ns (5%) | 912 bytes (1%) | 6 | |
["indexset", "set_functions", "uniqueinds", "filter_tags"] |
145.236 ns (5%) | 688 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds", "nofilter0"] |
126.408 ns (5%) | 368 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds", "nofilter2"] |
127.381 ns (5%) | 688 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds, ITensor"] |
546.013 ns (5%) | 1.91 KiB (1%) | 7 | |
["inplace", "axpy!"] |
12.700 μs (5%) | 1.73 KiB (1%) | 24 | |
["op", "op QN"] |
5.700 μs (5%) | 10.05 KiB (1%) | 105 | |
["op", "op"] |
3.043 μs (5%) | 3.69 KiB (1%) | 36 | |
["tagset", "tagset"] |
244.505 ns (5%) | 208 bytes (1%) | 5 | |
["tagset", "tagset_unicode"] |
379.011 ns (5%) | 208 bytes (1%) | 5 |
Benchmark Group List
Here's a list of all the benchmark groups executed by this job:
-
["autompo"]
-
["contract"]
-
["dmrg"]
-
["getsetindex"]
-
["indexset", "constructor"]
-
["indexset", "filter"]
-
["indexset", "set_functions"]
-
["indexset", "set_functions", "uniqueinds"]
-
["inplace"]
-
["op"]
-
["tagset"]
Julia versioninfo
Julia Version 1.6.2
Commit 1b93d53fc4 (2021-07-14 15:36 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
Ubuntu 20.04.3 LTS
uname: Linux 5.8.0-1040-azure #43~20.04.1-Ubuntu SMP Mon Aug 2 22:06:11 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 5278 s 0 s 960 s 7948 s 0 s
#2 2095 MHz 9873 s 0 s 1600 s 2743 s 0 s
Memory: 6.790924072265625 GB (1216.26953125 MB free)
Uptime: 1427.0 sec
Load Avg: 1.06 1.2 1.02
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.090
BogoMIPS: 4190.18
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: Mitigation: VMX unsupported
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 |
In the latest, I added a fallback to the version of ITensors.read
where no type is specified, so that if there is no "type"
attribute in the file it is assumed that the HDF5 file was not made by ITensor and tries to use the general HDF5.read
function. This allows you to do:
julia> x = [1, 2, 3]; ITensors.save("data.h5", "x", x); ITensors.load("data.h5", "x")
3-element Vector{Int64}:
1
2
3
julia> x = Index(2); ITensors.save("data.h5", "x", x); ITensors.load("data.h5", "x")
(dim=2|id=800)
which I think makes it more useful. A design question that comes up is, what defines the minimal structure of the file such that it is an "ITensor" HDF5 file? I would think ideally there would actually be some sort of "ITensor" attribute that we could check for, but for now the check is basically:
type_string = try
@suppress_err begin
g = open_group(parent, name)
type_attribute = attributes(g)["type"]
HDF5.read(type_attribute)
end
catch
# If the file doesn't have the format
# expected of ITensor HDF5 files, return `nothing`
return nothing
end
i.e. it sees if there is a group with the variable name and if it has the "type"
attribute. It turns out that Julia types saved with HDF5 don't have a group with the variable name, so that already fails.
Also in the latest I added support for saving Array
s of MPS
/MPO
, which is useful for things like boundary MPS.
Benchmark result
Judge result
Benchmark Report for /home/runner/work/ITensors.jl/ITensors.jl
Job Properties
- Time of benchmarks:
- Target: 2 Sep 2021 - 22:58
- Baseline: 2 Sep 2021 - 23:05
- Package commits:
- Target: e34a80
- Baseline: e80e3a
- Julia commits:
- Target: 1b93d5
- Baseline: 1b93d5
- Julia command flags:
- Target: None
- Baseline: None
- Environment variables:
- Target: None
- Baseline: None
Results
A ratio greater than 1.0
denotes a possible regression (marked with :x:), while a ratio less
than 1.0
denotes a possible improvement (marked with :white_check_mark:). Only significant results - results
that indicate possible regressions or improvements - are shown below (thus, an empty table means that all
benchmark results remained invariant between builds).
ID | time ratio | memory ratio |
---|---|---|
["contract", "matmul_100"] |
1.13 (5%) :x: | 1.00 (1%) |
["contract", "matmul_20"] |
1.11 (5%) :x: | 1.00 (1%) |
["contract", "matmul_40"] |
1.10 (5%) :x: | 1.00 (1%) |
["contract", "matmul_60"] |
1.08 (5%) :x: | 1.00 (1%) |
["contract", "matmul_80"] |
1.12 (5%) :x: | 1.00 (1%) |
["contract", "matmul_inplace_100"] |
1.09 (5%) :x: | 1.00 (1%) |
["contract", "matmul_inplace_40"] |
1.11 (5%) :x: | 1.00 (1%) |
["contract", "matmul_inplace_80"] |
1.18 (5%) :x: | 1.00 (1%) |
["getsetindex", "getindex end"] |
1.19 (5%) :x: | 1.00 (1%) |
["getsetindex", "getindex indval"] |
1.14 (5%) :x: | 1.00 (1%) |
["getsetindex", "getindex"] |
1.17 (5%) :x: | 1.00 (1%) |
["getsetindex", "setindex! end"] |
1.16 (5%) :x: | 1.00 (1%) |
["getsetindex", "setindex! indval end"] |
1.17 (5%) :x: | 1.00 (1%) |
["getsetindex", "setindex! indval"] |
1.13 (5%) :x: | 1.00 (1%) |
["getsetindex", "setindex!"] |
1.09 (5%) :x: | 1.00 (1%) |
["indexset", "constructor", "function"] |
1.16 (5%) :x: | 1.00 (1%) |
["indexset", "constructor", "function, tuple"] |
1.11 (5%) :x: | 1.00 (1%) |
["indexset", "filter", "function"] |
1.11 (5%) :x: | 1.00 (1%) |
["indexset", "set_functions", "commoninds, ITensor"] |
1.06 (5%) :x: | 1.00 (1%) |
["indexset", "set_functions", "noncommoninds, ITensor"] |
1.12 (5%) :x: | 1.00 (1%) |
["indexset", "set_functions", "prime, ITensor"] |
1.09 (5%) :x: | 1.00 (1%) |
["indexset", "set_functions", "unioninds, ITensor"] |
1.12 (5%) :x: | 1.00 (1%) |
["indexset", "set_functions", "uniqueinds", "3_inputs"] |
1.15 (5%) :x: | 1.00 (1%) |
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] |
1.12 (5%) :x: | 1.00 (1%) |
["indexset", "set_functions", "uniqueinds", "filter_tags"] |
1.07 (5%) :x: | 1.00 (1%) |
["indexset", "set_functions", "uniqueinds, ITensor"] |
1.13 (5%) :x: | 1.00 (1%) |
["inplace", "axpy!"] |
0.79 (5%) :white_check_mark: | 1.00 (1%) |
["op", "op QN"] |
1.18 (5%) :x: | 1.00 (1%) |
["op", "op"] |
1.16 (5%) :x: | 1.00 (1%) |
["tagset", "tagset"] |
1.13 (5%) :x: | 1.00 (1%) |
["tagset", "tagset_unicode"] |
1.17 (5%) :x: | 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.2
Commit 1b93d53fc4 (2021-07-14 15:36 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
Ubuntu 20.04.3 LTS
uname: Linux 5.8.0-1040-azure #43~20.04.1-Ubuntu SMP Mon Aug 2 22:06:11 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 6839 s 0 s 768 s 2857 s 0 s
#2 2095 MHz 1744 s 0 s 826 s 7888 s 0 s
Memory: 6.790924072265625 GB (988.296875 MB free)
Uptime: 1052.0 sec
Load Avg: 1.05 1.17 0.82
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-11.0.1 (ORCJIT, skylake-avx512)
Baseline
Julia Version 1.6.2
Commit 1b93d53fc4 (2021-07-14 15:36 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
Ubuntu 20.04.3 LTS
uname: Linux 5.8.0-1040-azure #43~20.04.1-Ubuntu SMP Mon Aug 2 22:06:11 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 10855 s 0 s 1274 s 2958 s 0 s
#2 2095 MHz 2437 s 0 s 1182 s 11448 s 0 s
Memory: 6.790924072265625 GB (1179.34765625 MB free)
Uptime: 1514.0 sec
Load Avg: 1.05 1.17 0.98
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: 2 Sep 2021 - 22:58
- Package commit: e34a80
- Julia commit: 1b93d5
- 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"] |
11.374 s (5%) | 821.158 ms | 2.66 GiB (1%) | 35124263 |
["autompo", "Quartic QN Hamiltonian"] |
21.661 s (5%) | 3.193 s | 10.94 GiB (1%) | 96137561 |
["contract", "heff_2site"] |
4.384 ms (5%) | 19.40 MiB (1%) | 180 | |
["contract", "matmul_100"] |
35.602 μs (5%) | 79.80 KiB (1%) | 15 | |
["contract", "matmul_20"] |
2.778 μs (5%) | 4.84 KiB (1%) | 14 | |
["contract", "matmul_40"] |
6.700 μs (5%) | 14.22 KiB (1%) | 14 | |
["contract", "matmul_60"] |
16.101 μs (5%) | 29.80 KiB (1%) | 15 | |
["contract", "matmul_80"] |
21.102 μs (5%) | 51.67 KiB (1%) | 15 | |
["contract", "matmul_inplace_100"] |
48.702 μs (5%) | 158.28 KiB (1%) | 20 | |
["contract", "matmul_inplace_20"] |
2.813 μs (5%) | 8.38 KiB (1%) | 18 | |
["contract", "matmul_inplace_40"] |
7.401 μs (5%) | 27.12 KiB (1%) | 18 | |
["contract", "matmul_inplace_60"] |
15.501 μs (5%) | 58.28 KiB (1%) | 20 | |
["contract", "matmul_inplace_80"] |
30.002 μs (5%) | 102.03 KiB (1%) | 20 | |
["dmrg", "1d_S=1_heisenberg"] |
19.636 s (5%) | 858.387 ms | 38.51 GiB (1%) | 1930852 |
["dmrg", "1d_S=1_heisenberg_qn"] |
12.199 s (5%) | 1.115 s | 11.87 GiB (1%) | 64754196 |
["getsetindex", "getindex end"] |
194.479 ns (5%) | 512 bytes (1%) | 5 | |
["getsetindex", "getindex indval end"] |
61.691 ns (5%) | 256 bytes (1%) | 3 | |
["getsetindex", "getindex indval"] |
61.126 ns (5%) | 272 bytes (1%) | 3 | |
["getsetindex", "getindex"] |
22.446 ns (5%) | 16 bytes (1%) | 1 | |
["getsetindex", "setindex! end"] |
247.940 ns (5%) | 752 bytes (1%) | 6 | |
["getsetindex", "setindex! indval end"] |
91.996 ns (5%) | 464 bytes (1%) | 3 | |
["getsetindex", "setindex! indval"] |
92.005 ns (5%) | 480 bytes (1%) | 3 | |
["getsetindex", "setindex!"] |
59.859 ns (5%) | 224 bytes (1%) | 1 | |
["indexset", "constructor", "function"] |
510.685 ns (5%) | 1.47 KiB (1%) | 10 | |
["indexset", "constructor", "function, tuple"] |
365.585 ns (5%) | 1.31 KiB (1%) | 7 | |
["indexset", "filter", "function"] |
165.680 ns (5%) | 1.14 KiB (1%) | 1 | |
["indexset", "filter", "function, tuple"] |
0.001 ns (5%) | |||
["indexset", "filter", "kwargs"] |
164.516 ns (5%) | 1.14 KiB (1%) | 1 | |
["indexset", "set_functions", "commoninds, ITensor"] |
310.702 ns (5%) | 1.45 KiB (1%) | 5 | |
["indexset", "set_functions", "noncommoninds, ITensor"] |
381.703 ns (5%) | 1.45 KiB (1%) | 5 | |
["indexset", "set_functions", "prime, ITensor"] |
125.475 ns (5%) | 688 bytes (1%) | 3 | |
["indexset", "set_functions", "unioninds, ITensor"] |
507.921 ns (5%) | 2.53 KiB (1%) | 6 | |
["indexset", "set_functions", "uniqueinds", "3_inputs"] |
782.233 ns (5%) | 3.00 KiB (1%) | 12 | |
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] |
263.691 ns (5%) | 912 bytes (1%) | 6 | |
["indexset", "set_functions", "uniqueinds", "filter_tags"] |
156.185 ns (5%) | 688 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds", "nofilter0"] |
123.154 ns (5%) | 368 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds", "nofilter2"] |
139.052 ns (5%) | 688 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds, ITensor"] |
549.515 ns (5%) | 1.91 KiB (1%) | 7 | |
["inplace", "axpy!"] |
12.700 μs (5%) | 1.73 KiB (1%) | 24 | |
["op", "op QN"] |
6.775 μs (5%) | 10.05 KiB (1%) | 105 | |
["op", "op"] |
3.575 μs (5%) | 3.69 KiB (1%) | 36 | |
["tagset", "tagset"] |
284.887 ns (5%) | 208 bytes (1%) | 5 | |
["tagset", "tagset_unicode"] |
445.525 ns (5%) | 208 bytes (1%) | 5 |
Benchmark Group List
Here's a list of all the benchmark groups executed by this job:
-
["autompo"]
-
["contract"]
-
["dmrg"]
-
["getsetindex"]
-
["indexset", "constructor"]
-
["indexset", "filter"]
-
["indexset", "set_functions"]
-
["indexset", "set_functions", "uniqueinds"]
-
["inplace"]
-
["op"]
-
["tagset"]
Julia versioninfo
Julia Version 1.6.2
Commit 1b93d53fc4 (2021-07-14 15:36 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
Ubuntu 20.04.3 LTS
uname: Linux 5.8.0-1040-azure #43~20.04.1-Ubuntu SMP Mon Aug 2 22:06:11 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 6839 s 0 s 768 s 2857 s 0 s
#2 2095 MHz 1744 s 0 s 826 s 7888 s 0 s
Memory: 6.790924072265625 GB (988.296875 MB free)
Uptime: 1052.0 sec
Load Avg: 1.05 1.17 0.82
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: 2 Sep 2021 - 23:5
- Package commit: e80e3a
- Julia commit: 1b93d5
- 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"] |
11.489 s (5%) | 837.679 ms | 2.66 GiB (1%) | 35124267 |
["autompo", "Quartic QN Hamiltonian"] |
21.750 s (5%) | 3.242 s | 10.90 GiB (1%) | 95822173 |
["contract", "heff_2site"] |
4.523 ms (5%) | 19.40 MiB (1%) | 180 | |
["contract", "matmul_100"] |
31.502 μs (5%) | 79.80 KiB (1%) | 15 | |
["contract", "matmul_20"] |
2.511 μs (5%) | 4.84 KiB (1%) | 14 | |
["contract", "matmul_40"] |
6.080 μs (5%) | 14.22 KiB (1%) | 14 | |
["contract", "matmul_60"] |
14.900 μs (5%) | 29.80 KiB (1%) | 15 | |
["contract", "matmul_80"] |
18.801 μs (5%) | 51.67 KiB (1%) | 15 | |
["contract", "matmul_inplace_100"] |
44.503 μs (5%) | 158.28 KiB (1%) | 20 | |
["contract", "matmul_inplace_20"] |
2.750 μs (5%) | 8.38 KiB (1%) | 18 | |
["contract", "matmul_inplace_40"] |
6.650 μs (5%) | 27.12 KiB (1%) | 18 | |
["contract", "matmul_inplace_60"] |
15.101 μs (5%) | 58.28 KiB (1%) | 20 | |
["contract", "matmul_inplace_80"] |
25.501 μs (5%) | 102.03 KiB (1%) | 20 | |
["dmrg", "1d_S=1_heisenberg"] |
20.150 s (5%) | 974.131 ms | 38.51 GiB (1%) | 1930852 |
["dmrg", "1d_S=1_heisenberg_qn"] |
11.987 s (5%) | 1.079 s | 11.87 GiB (1%) | 64754388 |
["getsetindex", "getindex end"] |
163.079 ns (5%) | 512 bytes (1%) | 5 | |
["getsetindex", "getindex indval end"] |
61.080 ns (5%) | 256 bytes (1%) | 3 | |
["getsetindex", "getindex indval"] |
53.778 ns (5%) | 272 bytes (1%) | 3 | |
["getsetindex", "getindex"] |
19.239 ns (5%) | 16 bytes (1%) | 1 | |
["getsetindex", "setindex! end"] |
212.966 ns (5%) | 752 bytes (1%) | 6 | |
["getsetindex", "setindex! indval end"] |
78.508 ns (5%) | 464 bytes (1%) | 3 | |
["getsetindex", "setindex! indval"] |
81.583 ns (5%) | 480 bytes (1%) | 3 | |
["getsetindex", "setindex!"] |
55.137 ns (5%) | 224 bytes (1%) | 1 | |
["indexset", "constructor", "function"] |
441.650 ns (5%) | 1.47 KiB (1%) | 10 | |
["indexset", "constructor", "function, tuple"] |
329.731 ns (5%) | 1.31 KiB (1%) | 7 | |
["indexset", "filter", "function"] |
148.991 ns (5%) | 1.14 KiB (1%) | 1 | |
["indexset", "filter", "function, tuple"] |
0.001 ns (5%) | |||
["indexset", "filter", "kwargs"] |
157.262 ns (5%) | 1.14 KiB (1%) | 1 | |
["indexset", "set_functions", "commoninds, ITensor"] |
293.908 ns (5%) | 1.45 KiB (1%) | 5 | |
["indexset", "set_functions", "noncommoninds, ITensor"] |
342.099 ns (5%) | 1.45 KiB (1%) | 5 | |
["indexset", "set_functions", "prime, ITensor"] |
115.442 ns (5%) | 688 bytes (1%) | 3 | |
["indexset", "set_functions", "unioninds, ITensor"] |
452.658 ns (5%) | 2.53 KiB (1%) | 6 | |
["indexset", "set_functions", "uniqueinds", "3_inputs"] |
682.911 ns (5%) | 3.00 KiB (1%) | 12 | |
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] |
236.334 ns (5%) | 912 bytes (1%) | 6 | |
["indexset", "set_functions", "uniqueinds", "filter_tags"] |
146.394 ns (5%) | 688 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds", "nofilter0"] |
123.039 ns (5%) | 368 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds", "nofilter2"] |
134.507 ns (5%) | 688 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds, ITensor"] |
486.624 ns (5%) | 1.91 KiB (1%) | 7 | |
["inplace", "axpy!"] |
16.000 μs (5%) | 1.73 KiB (1%) | 24 | |
["op", "op QN"] |
5.725 μs (5%) | 10.05 KiB (1%) | 105 | |
["op", "op"] |
3.075 μs (5%) | 3.69 KiB (1%) | 36 | |
["tagset", "tagset"] |
251.038 ns (5%) | 208 bytes (1%) | 5 | |
["tagset", "tagset_unicode"] |
379.520 ns (5%) | 208 bytes (1%) | 5 |
Benchmark Group List
Here's a list of all the benchmark groups executed by this job:
-
["autompo"]
-
["contract"]
-
["dmrg"]
-
["getsetindex"]
-
["indexset", "constructor"]
-
["indexset", "filter"]
-
["indexset", "set_functions"]
-
["indexset", "set_functions", "uniqueinds"]
-
["inplace"]
-
["op"]
-
["tagset"]
Julia versioninfo
Julia Version 1.6.2
Commit 1b93d53fc4 (2021-07-14 15:36 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
Ubuntu 20.04.3 LTS
uname: Linux 5.8.0-1040-azure #43~20.04.1-Ubuntu SMP Mon Aug 2 22:06:11 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 10855 s 0 s 1274 s 2958 s 0 s
#2 2095 MHz 2437 s 0 s 1182 s 11448 s 0 s
Memory: 6.790924072265625 GB (1179.34765625 MB free)
Uptime: 1514.0 sec
Load Avg: 1.05 1.17 0.98
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.169
BogoMIPS: 4190.33
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: Mitigation: VMX unsupported
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 |
Benchmark result
Judge result
Benchmark Report for /home/runner/work/ITensors.jl/ITensors.jl
Job Properties
- Time of benchmarks:
- Target: 3 Sep 2021 - 22:26
- Baseline: 3 Sep 2021 - 22:34
- Package commits:
- Target: 7eb003
- Baseline: e80e3a
- Julia commits:
- Target: 1b93d5
- Baseline: 1b93d5
- Julia command flags:
- Target: None
- Baseline: None
- Environment variables:
- Target: None
- Baseline: None
Results
A ratio greater than 1.0
denotes a possible regression (marked with :x:), while a ratio less
than 1.0
denotes a possible improvement (marked with :white_check_mark:). Only significant results - results
that indicate possible regressions or improvements - are shown below (thus, an empty table means that all
benchmark results remained invariant between builds).
ID | time ratio | memory ratio |
---|---|---|
["contract", "matmul_inplace_80"] |
1.06 (5%) :x: | 1.00 (1%) |
["dmrg", "1d_S=1_heisenberg"] |
0.95 (5%) :white_check_mark: | 1.00 (1%) |
["getsetindex", "getindex indval end"] |
1.06 (5%) :x: | 1.00 (1%) |
["indexset", "constructor", "function"] |
1.14 (5%) :x: | 1.00 (1%) |
["indexset", "constructor", "function, tuple"] |
1.12 (5%) :x: | 1.00 (1%) |
["indexset", "filter", "function"] |
0.92 (5%) :white_check_mark: | 1.00 (1%) |
["indexset", "filter", "kwargs"] |
0.93 (5%) :white_check_mark: | 1.00 (1%) |
["indexset", "set_functions", "commoninds, ITensor"] |
0.95 (5%) :white_check_mark: | 1.00 (1%) |
["indexset", "set_functions", "noncommoninds, ITensor"] |
0.95 (5%) :white_check_mark: | 1.00 (1%) |
["indexset", "set_functions", "prime, ITensor"] |
0.95 (5%) :white_check_mark: | 1.00 (1%) |
["indexset", "set_functions", "uniqueinds", "3_inputs"] |
1.06 (5%) :x: | 1.00 (1%) |
["op", "op QN"] |
0.89 (5%) :white_check_mark: | 1.00 (1%) |
Benchmark Group List
Here's a list of all the benchmark groups executed by this job:
-
["autompo"]
-
["contract"]
-
["dmrg"]
-
["getsetindex"]
-
["indexset", "constructor"]
-
["indexset", "filter"]
-
["indexset", "set_functions"]
-
["indexset", "set_functions", "uniqueinds"]
-
["inplace"]
-
["op"]
-
["tagset"]
Julia versioninfo
Target
Julia Version 1.6.2
Commit 1b93d53fc4 (2021-07-14 15:36 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
Ubuntu 20.04.3 LTS
uname: Linux 5.8.0-1040-azure #43~20.04.1-Ubuntu SMP Mon Aug 2 22:06:11 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 2854 s 1 s 829 s 6550 s 0 s
#2 2294 MHz 6415 s 1 s 692 s 3168 s 0 s
Memory: 6.790924072265625 GB (748.9609375 MB free)
Uptime: 1031.0 sec
Load Avg: 1.12 1.27 0.87
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-11.0.1 (ORCJIT, broadwell)
Baseline
Julia Version 1.6.2
Commit 1b93d53fc4 (2021-07-14 15:36 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
Ubuntu 20.04.3 LTS
uname: Linux 5.8.0-1040-azure #43~20.04.1-Ubuntu SMP Mon Aug 2 22:06:11 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 6904 s 1 s 1290 s 6668 s 0 s
#2 2294 MHz 7231 s 1 s 1062 s 6605 s 0 s
Memory: 6.790924072265625 GB (1357.65625 MB free)
Uptime: 1494.0 sec
Load Avg: 1.06 1.22 1.01
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: 3 Sep 2021 - 22:26
- Package commit: 7eb003
- Julia commit: 1b93d5
- 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"] |
10.418 s (5%) | 756.665 ms | 2.66 GiB (1%) | 35124273 |
["autompo", "Quartic QN Hamiltonian"] |
20.865 s (5%) | 3.124 s | 10.94 GiB (1%) | 96108926 |
["contract", "heff_2site"] |
6.222 ms (5%) | 19.40 MiB (1%) | 180 | |
["contract", "matmul_100"] |
56.900 μs (5%) | 79.80 KiB (1%) | 15 | |
["contract", "matmul_20"] |
3.513 μs (5%) | 4.84 KiB (1%) | 14 | |
["contract", "matmul_40"] |
10.100 μs (5%) | 14.22 KiB (1%) | 14 | |
["contract", "matmul_60"] |
25.000 μs (5%) | 29.80 KiB (1%) | 15 | |
["contract", "matmul_80"] |
35.000 μs (5%) | 51.67 KiB (1%) | 15 | |
["contract", "matmul_inplace_100"] |
78.900 μs (5%) | 158.28 KiB (1%) | 20 | |
["contract", "matmul_inplace_20"] |
4.214 μs (5%) | 8.38 KiB (1%) | 18 | |
["contract", "matmul_inplace_40"] |
12.300 μs (5%) | 27.12 KiB (1%) | 18 | |
["contract", "matmul_inplace_60"] |
31.000 μs (5%) | 58.28 KiB (1%) | 20 | |
["contract", "matmul_inplace_80"] |
51.401 μs (5%) | 102.03 KiB (1%) | 20 | |
["dmrg", "1d_S=1_heisenberg"] |
23.119 s (5%) | 1.252 s | 38.51 GiB (1%) | 1930852 |
["dmrg", "1d_S=1_heisenberg_qn"] |
15.085 s (5%) | 1.255 s | 11.87 GiB (1%) | 64754196 |
["getsetindex", "getindex end"] |
179.622 ns (5%) | 512 bytes (1%) | 5 | |
["getsetindex", "getindex indval end"] |
63.526 ns (5%) | 256 bytes (1%) | 3 | |
["getsetindex", "getindex indval"] |
60.082 ns (5%) | 272 bytes (1%) | 3 | |
["getsetindex", "getindex"] |
19.860 ns (5%) | 16 bytes (1%) | 1 | |
["getsetindex", "setindex! end"] |
230.598 ns (5%) | 752 bytes (1%) | 6 | |
["getsetindex", "setindex! indval end"] |
88.740 ns (5%) | 464 bytes (1%) | 3 | |
["getsetindex", "setindex! indval"] |
93.451 ns (5%) | 480 bytes (1%) | 3 | |
["getsetindex", "setindex!"] |
60.183 ns (5%) | 224 bytes (1%) | 1 | |
["indexset", "constructor", "function"] |
627.225 ns (5%) | 1.47 KiB (1%) | 10 | |
["indexset", "constructor", "function, tuple"] |
445.231 ns (5%) | 1.31 KiB (1%) | 7 | |
["indexset", "filter", "function"] |
189.939 ns (5%) | 1.14 KiB (1%) | 1 | |
["indexset", "filter", "function, tuple"] |
0.001 ns (5%) | |||
["indexset", "filter", "kwargs"] |
180.660 ns (5%) | 1.14 KiB (1%) | 1 | |
["indexset", "set_functions", "commoninds, ITensor"] |
346.700 ns (5%) | 1.45 KiB (1%) | 5 | |
["indexset", "set_functions", "noncommoninds, ITensor"] |
411.005 ns (5%) | 1.45 KiB (1%) | 5 | |
["indexset", "set_functions", "prime, ITensor"] |
120.783 ns (5%) | 688 bytes (1%) | 3 | |
["indexset", "set_functions", "unioninds, ITensor"] |
589.367 ns (5%) | 2.53 KiB (1%) | 6 | |
["indexset", "set_functions", "uniqueinds", "3_inputs"] |
821.287 ns (5%) | 3.00 KiB (1%) | 12 | |
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] |
267.048 ns (5%) | 912 bytes (1%) | 6 | |
["indexset", "set_functions", "uniqueinds", "filter_tags"] |
168.001 ns (5%) | 688 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds", "nofilter0"] |
121.895 ns (5%) | 368 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds", "nofilter2"] |
157.908 ns (5%) | 688 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds, ITensor"] |
570.005 ns (5%) | 1.91 KiB (1%) | 7 | |
["inplace", "axpy!"] |
12.400 μs (5%) | 1.73 KiB (1%) | 24 | |
["op", "op QN"] |
7.933 μs (5%) | 10.05 KiB (1%) | 105 | |
["op", "op"] |
3.175 μs (5%) | 3.69 KiB (1%) | 36 | |
["tagset", "tagset"] |
259.026 ns (5%) | 208 bytes (1%) | 5 | |
["tagset", "tagset_unicode"] |
411.005 ns (5%) | 208 bytes (1%) | 5 |
Benchmark Group List
Here's a list of all the benchmark groups executed by this job:
-
["autompo"]
-
["contract"]
-
["dmrg"]
-
["getsetindex"]
-
["indexset", "constructor"]
-
["indexset", "filter"]
-
["indexset", "set_functions"]
-
["indexset", "set_functions", "uniqueinds"]
-
["inplace"]
-
["op"]
-
["tagset"]
Julia versioninfo
Julia Version 1.6.2
Commit 1b93d53fc4 (2021-07-14 15:36 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
Ubuntu 20.04.3 LTS
uname: Linux 5.8.0-1040-azure #43~20.04.1-Ubuntu SMP Mon Aug 2 22:06:11 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 2854 s 1 s 829 s 6550 s 0 s
#2 2294 MHz 6415 s 1 s 692 s 3168 s 0 s
Memory: 6.790924072265625 GB (748.9609375 MB free)
Uptime: 1031.0 sec
Load Avg: 1.12 1.27 0.87
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: 3 Sep 2021 - 22:34
- Package commit: e80e3a
- Julia commit: 1b93d5
- 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"] |
10.826 s (5%) | 800.472 ms | 2.66 GiB (1%) | 35124267 |
["autompo", "Quartic QN Hamiltonian"] |
20.720 s (5%) | 2.996 s | 10.94 GiB (1%) | 96127664 |
["contract", "heff_2site"] |
6.261 ms (5%) | 19.40 MiB (1%) | 180 | |
["contract", "matmul_100"] |
55.900 μs (5%) | 79.80 KiB (1%) | 15 | |
["contract", "matmul_20"] |
3.500 μs (5%) | 4.84 KiB (1%) | 14 | |
["contract", "matmul_40"] |
10.100 μs (5%) | 14.22 KiB (1%) | 14 | |
["contract", "matmul_60"] |
25.100 μs (5%) | 29.80 KiB (1%) | 15 | |
["contract", "matmul_80"] |
34.400 μs (5%) | 51.67 KiB (1%) | 15 | |
["contract", "matmul_inplace_100"] |
76.800 μs (5%) | 158.28 KiB (1%) | 20 | |
["contract", "matmul_inplace_20"] |
4.114 μs (5%) | 8.38 KiB (1%) | 18 | |
["contract", "matmul_inplace_40"] |
12.100 μs (5%) | 27.12 KiB (1%) | 18 | |
["contract", "matmul_inplace_60"] |
30.000 μs (5%) | 58.28 KiB (1%) | 20 | |
["contract", "matmul_inplace_80"] |
48.400 μs (5%) | 102.03 KiB (1%) | 20 | |
["dmrg", "1d_S=1_heisenberg"] |
24.400 s (5%) | 1.326 s | 38.51 GiB (1%) | 1930852 |
["dmrg", "1d_S=1_heisenberg_qn"] |
14.765 s (5%) | 1.231 s | 11.87 GiB (1%) | 64754388 |
["getsetindex", "getindex end"] |
186.911 ns (5%) | 512 bytes (1%) | 5 | |
["getsetindex", "getindex indval end"] |
60.182 ns (5%) | 256 bytes (1%) | 3 | |
["getsetindex", "getindex indval"] |
58.664 ns (5%) | 272 bytes (1%) | 3 | |
["getsetindex", "getindex"] |
20.461 ns (5%) | 16 bytes (1%) | 1 | |
["getsetindex", "setindex! end"] |
241.686 ns (5%) | 752 bytes (1%) | 6 | |
["getsetindex", "setindex! indval end"] |
92.150 ns (5%) | 464 bytes (1%) | 3 | |
["getsetindex", "setindex! indval"] |
95.947 ns (5%) | 480 bytes (1%) | 3 | |
["getsetindex", "setindex!"] |
60.489 ns (5%) | 224 bytes (1%) | 1 | |
["indexset", "constructor", "function"] |
548.527 ns (5%) | 1.47 KiB (1%) | 10 | |
["indexset", "constructor", "function, tuple"] |
398.995 ns (5%) | 1.31 KiB (1%) | 7 | |
["indexset", "filter", "function"] |
206.761 ns (5%) | 1.14 KiB (1%) | 1 | |
["indexset", "filter", "function, tuple"] |
0.001 ns (5%) | |||
["indexset", "filter", "kwargs"] |
194.813 ns (5%) | 1.14 KiB (1%) | 1 | |
["indexset", "set_functions", "commoninds, ITensor"] |
365.639 ns (5%) | 1.45 KiB (1%) | 5 | |
["indexset", "set_functions", "noncommoninds, ITensor"] |
433.976 ns (5%) | 1.45 KiB (1%) | 5 | |
["indexset", "set_functions", "prime, ITensor"] |
127.422 ns (5%) | 688 bytes (1%) | 3 | |
["indexset", "set_functions", "unioninds, ITensor"] |
608.511 ns (5%) | 2.53 KiB (1%) | 6 | |
["indexset", "set_functions", "uniqueinds", "3_inputs"] |
772.340 ns (5%) | 3.00 KiB (1%) | 12 | |
["indexset", "set_functions", "uniqueinds", "filter_not_tags"] |
261.364 ns (5%) | 912 bytes (1%) | 6 | |
["indexset", "set_functions", "uniqueinds", "filter_tags"] |
176.607 ns (5%) | 688 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds", "nofilter0"] |
122.004 ns (5%) | 368 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds", "nofilter2"] |
155.569 ns (5%) | 688 bytes (1%) | 2 | |
["indexset", "set_functions", "uniqueinds, ITensor"] |
557.900 ns (5%) | 1.91 KiB (1%) | 7 | |
["inplace", "axpy!"] |
13.000 μs (5%) | 1.73 KiB (1%) | 24 | |
["op", "op QN"] |
8.867 μs (5%) | 10.05 KiB (1%) | 105 | |
["op", "op"] |
3.225 μs (5%) | 3.69 KiB (1%) | 36 | |
["tagset", "tagset"] |
264.470 ns (5%) | 208 bytes (1%) | 5 | |
["tagset", "tagset_unicode"] |
420.005 ns (5%) | 208 bytes (1%) | 5 |
Benchmark Group List
Here's a list of all the benchmark groups executed by this job:
-
["autompo"]
-
["contract"]
-
["dmrg"]
-
["getsetindex"]
-
["indexset", "constructor"]
-
["indexset", "filter"]
-
["indexset", "set_functions"]
-
["indexset", "set_functions", "uniqueinds"]
-
["inplace"]
-
["op"]
-
["tagset"]
Julia versioninfo
Julia Version 1.6.2
Commit 1b93d53fc4 (2021-07-14 15:36 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
Ubuntu 20.04.3 LTS
uname: Linux 5.8.0-1040-azure #43~20.04.1-Ubuntu SMP Mon Aug 2 22:06:11 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 6904 s 1 s 1290 s 6668 s 0 s
#2 2294 MHz 7231 s 1 s 1062 s 6605 s 0 s
Memory: 6.790924072265625 GB (1357.65625 MB free)
Uptime: 1494.0 sec
Load Avg: 1.06 1.22 1.01
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.687
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: Mitigation: VMX unsupported
Vulnerability L1tf: Mitigation; PTE Inversion
Vulnerability Mds: Vulnerable: Clear CPU buffers attempted, no microcode; SMT Host state unknown
Vulnerability Meltdown: Mitigation; PTI
Vulnerability Spec store bypass: Vulnerable
Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2: Mitigation; Full generic retpoline, STIBP disabled, RSB filling
Vulnerability Srbds: Not affected
Vulnerability Tsx async abort: Vulnerable: Clear CPU buffers attempted, no microcode; SMT Host state unknown
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology cpuid pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm rdseed adx smap xsaveopt
Cpu Property | Value |
---|---|
Brand | Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz |
Vendor | :Intel |
Architecture | :Broadwell |
Model | Family: 0x06, Model: 0x4f, Stepping: 0x01, Type: 0x00 |
Cores | 2 physical cores, 2 logical cores (on executing CPU) |
No Hyperthreading hardware capability detected | |
Clock Frequencies | Not supported by CPU |
Data Cache | Level 1:3 : (32, 256, 51200) kbytes |
64 byte cache line size | |
Address Size | 48 bits virtual, 46 bits physical |
SIMD | 256 bit = 32 byte max. SIMD vector size |
Time Stamp Counter | TSC is accessible via rdtsc |
TSC increased at every clock cycle (non-invariant TSC) | |
Perf. Monitoring | Performance Monitoring Counters (PMC) are not supported |
Hypervisor | Yes, Microsoft |
Ok I figured out my question about save/load. It is renamed to h5write/h5read. So I was able to answer my own question about the file behavior of h5write, which is "cw" and won't overwrite existing contents.
Great design ideas & missing features. This will make it all a lot nicer, and the AutoType feature is something I did have in mind to add eventually.
Here are two questions about the PR:
* Does the `ITensors.save` function append to an existing file? Or does it overwrite the file, so that afterward the data is only the one from the last call to `save`? (I couldn't find the source code for `ITensors.load` and `ITensors.save` for some reason.)
Yes, as you figured out I changed the name to ITensors.h5write
/ITensors.h5read
to match HDF5
and also changed the writing behavior to append to the file with "cw"
. save
and load
are actually functions defined in FileIO.jl which is supposed to help with automatically detecting file formats from file extensions, so it seems like HDF5.h5write
/HDF5.h5read
were a closer match for the functionality we are interested in.
* The issue you raised about `read` not working with types like `Index{Int}` is a good catch. Could we fix that by just changing the function signature to be more generic? We could still have an internal check inside the function that the actual type returned is the exact type (if concrete) passed by the user. It might be best as a bugfix or future PR.
Yes, the goal of the hdf5_type
is to take a general input type and turn it into a standardized type that is stored in the HDF5 file. So I think that should mostly solve this issue, it is just a matter of using it and testing it out. I think a question I was stuck on is that the writing functionality is simple (just map the type with hdf5_type
), but then when you are reading a file and you explicitly use the version that takes the type, there seemed to be some ambiguity about how specific you should be when specifying the type.
For example, if you save an Index{Int64}
, internally the type gets saved as Index
. Then if you load it with read(file, "index", Index{Vector{Pair{QN, Int64}}})
, probably that shouldn't work, because the type is wrong. So when reading the file, it doesn't make sense to map the type with hdf5_type
. My conclusion was that maybe we should just make the external interface the automated functions where you don't specify the type, and when reading the file it just takes the type very literally and it should match the type that is saved (otherwise I think it would add a decent amount of code complexity to determine that Index{Vector{Pair{QN, Int64}}}
is incorrect in that situation, since you would have to try to read the Index
first and then detect if the result matches the specified type in some way).
EDIT: I noticed you suggested checking if the input type is concrete and then if so comparing it. I think there are still cases where this may not work, like if you save a Dense{ComplexF64}
storage but the user specifies Dense{Float64}
. These are both abstract types, since they have other type parameters that aren't specified. I believe a simple thing to do would be to first read the storage S
, and then check if S isa Dense{Float64}
(i.e. use Julia's subtyping rules). This may work in general, I will have to think about if there are corner cases that don't work.
Another design question I have been thinking about is that in principle it is not necessary for us and other users with custom ITensor types to overload HDF5.read
and HDF5.write
. Instead we could overload our own ITensors.read
and ITensors.write
functions. I actually prefer this, since HDF5.read
doesn't really have an analogous version that accepts a type as the last input, from what I could see. For the time being, we could change over to overloading ITensors.read
/ITensors.write
internally, and make an internal HDF5.read
/HDF5.write
overload that calls the ITensors versions, and recommend overload ITensors.read
/ITensors.write
for custom types (I believe that will work, though I'll have to try it out and see if it all works smoothly and doesn't involve a bad case of piracy). @emstoudenmire do you have an opinion on this?