Skip to content

Commit

Permalink
[Emu-MPS] tdvp benchmark - only docs (#13)
Browse files Browse the repository at this point in the history
  • Loading branch information
sgrava authored Jan 23, 2025
1 parent a505c43 commit 603e096
Show file tree
Hide file tree
Showing 16 changed files with 183 additions and 98 deletions.
2 changes: 1 addition & 1 deletion docs/advanced/convergence.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Validating correctness of the results from a simulation

By limiting the bond dimension of the state, systems of arbitrary size can be simulated ([memory consumption](./memory.md)). However, when truncation of the state hits the hard cap of `max_bond_dim`, control over the error incurred by truncation is lost, and care must be taken that the results are still accurate. By setting `max_bond_dim = 1600` `extra_krylov_tolerance=1e-5` and `precision=1e-6`, we were able to run the adiabatic pulse from the [benchmarks](../benchmarks/index.md#sequences-used) for a 7x7 grid. For an analysis of the performance, see the [benchmark page](../benchmarks/performance.md#performance-for-a-7x7-grid). This is a pulse that creates an antiferromagnetic state for smaller grids. However, whether or not a state is still effectively adiabatic depends on the energy gap of the system, and this decreases with system size. This example is instructive because lack of antiferromagnetic structure for larger systems does not automatically mean that the simulation was not accurate. The obtained qubit density was
By limiting the bond dimension of the state, systems of arbitrary size can be simulated ([memory consumption](./resource_estimation.md)). However, when truncation of the state hits the hard cap of `max_bond_dim`, control over the error incurred by truncation is lost, and care must be taken that the results are still accurate. By setting `max_bond_dim = 1600` `extra_krylov_tolerance=1e-5` and `precision=1e-6`, we were able to run the adiabatic pulse from the [benchmarks](../benchmarks/index.md#sequences-used) for a 7x7 grid. For an analysis of the performance, see the [benchmark page](../benchmarks/performance.md#performance-for-a-7x7-grid). This is a pulse that creates an antiferromagnetic state for smaller grids. However, whether or not a state is still effectively adiabatic depends on the energy gap of the system, and this decreases with system size. This example is instructive because lack of antiferromagnetic structure for larger systems does not automatically mean that the simulation was not accurate. The obtained qubit density was

<table>
<tr><td>0.87 </td><td> 0.47 </td><td> 0.62 </td><td> 0.56 </td><td> 0.62 </td><td> 0.47 </td><td> 0.87 </td></tr>
Expand Down
6 changes: 3 additions & 3 deletions docs/advanced/index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#Advanced topics
You have reached the advanced topics. Links to the individual pages discussing the various topics can be found in the sidebar to the left.
The content here all relates to the inner workings of emu-mps and is more conceptual in nature. You will not find information here about
The content here all relates to the inner workings of _EMU-MPS_ and is more conceptual in nature. You will not find information here about
how to actually run a simulation, but rather

- What Hamiltonian the emulator uses for time-evolution
Expand All @@ -9,6 +9,6 @@ how to actually run a simulation, but rather
- What sources of error TDVP incurs
- What the various configuration parameters mean mathematically
- How to determine whether your results are accurate
- How to estimate the memory consumption of a simulation in advance
- How to estimate the memory consumption and the runtime of a simulation in advance

For the experienced user, this will help get the most out of emu-mps.
For the experienced user, this will help get the most out of _EMU-MPS_.
71 changes: 0 additions & 71 deletions docs/advanced/memory.md

This file was deleted.

2 changes: 1 addition & 1 deletion docs/advanced/mps/index.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# The MPS representation of a state
As opposed to state vector solvers (of the Master/Schrödinger equation), tensor network based approaches use adaptive data structures, which in the case of _EMU-MPS_ are called [matrix product state/operator (MPS/MPO)](http://tensornetwork.org/mps/). They are adaptive in the sense that the memory used to store such a state/operator does not only depend on the dimension of the state space, but also on the specific state you're trying to represent. In many relevant use cases, this makes representation more memory-efficient, which allows pushing for higher number of qubits compared to state vector solvers. However, it has the drawback that the cost of the simulation is less predictable since there is no _a priori_ method to know how much information is going to be relevant at the next step of the solver. The are configurable hard caps on memory consumption built into _EMU-MPS_ ([see here](../memory.md)), but when these are hit it becomes necessary to check for validity of the results ([see here](../convergence.md)).
As opposed to state vector solvers (of the Master/Schrödinger equation), tensor network based approaches use adaptive data structures, which in the case of _EMU-MPS_ are called [matrix product state/operator (MPS/MPO)](http://tensornetwork.org/mps/). They are adaptive in the sense that the memory used to store such a state/operator does not only depend on the dimension of the state space, but also on the specific state you're trying to represent. In many relevant use cases, this makes representation more memory-efficient, which allows pushing for higher number of qubits compared to state vector solvers. However, it has the drawback that the cost of the simulation is less predictable since there is no _a priori_ method to know how much information is going to be relevant at the next step of the solver. The are configurable hard caps on memory consumption built into _EMU-MPS_ ([see here](../resource_estimation.md)), but when these are hit it becomes necessary to check for validity of the results ([see here](../convergence.md)).

The take-home message is that a reasonable way to assess _EMU-MPS_ performance is by __benchmarking relevant and meaningful sequences/use-cases__ ([see here](../../benchmarks/index.md)).

Expand Down
Loading

0 comments on commit 603e096

Please sign in to comment.