Published April 2, 2024 | Version v0.4.0
Software Open

GregDMeyer/dynamite: v0.4.0

  • 1. Massachusetts Institute of Technology
  • 2. Harvard University

Description

Added

  • Detailed example scripts (in examples/scripts)
  • Operator.expectation(), convenience function to compute the expectation value of the operator with respect to a state
  • dynamite.tools.MPI_COMM_WORLD() which returns PETSc's MPI communicator object
  • Operator.precompute_diagonal flag allows user to tune whether the matrix diagonal should be precomputed and saved, for shell matrices
  • State.entanglement_entropy member function (a more convenient way of using computations.entanglement_entropy, which also remains)
  • tools.get_memory_usage which can measure memory usage on a total, per rank, or per node basis
  • Multi-GPU parallelism via GPU-aware MPI

Removed

  • --track_memory flag to benchmark.py---now memory usage is always reported by the benchmarking script
  • tools.get_max_memory_usage and tools.get_cur_memory_usage in favor of a single function tools.get_memory_usage

Changed

  • Operator.msc_size renamed to Operator.nterms, and now invokes a call to Operator.reduce_msc()
  • shell matrix-vector multiplications are now considerably faster
  • Improved automatic version check; no longer leaves .dynamite files in working directory
  • GPU builds now automatically switch to CPU if a GPU is not found (and print a warning)
  • Changed default bind mount location for Docker images to the container user's home directory, /home/dnm
  • Renamed some values of which argument of eigsolve(): smallestlowest and largesthighest
  • Shift-invert ("target") eigsolving on GPU disabled, as PETSc does not support it well

Fixed

  • Explicit subspace sometimes failed conservation check even when operator was actually conserved
  • Build was broken with Cython 3
  • Work around broken petsc4py and slepc4py builds with pip>=23.1 (see PETSc issue)
  • Operator.__str__ and Operator.table() were formatted poorly for operators with complex coefficients
  • various issues in dynamite.extras
  • Performance was bad on Ampere (e.g. A100) GPUs unless a particular SLEPc flag was set. The flag is now automatically set.

Files

GregDMeyer/dynamite-v0.4.0.zip

Files (381.2 kB)

Name Size Download all
md5:444d6e1e89c4909b6c1c0583289f956b
381.2 kB Preview Download

Additional details

Related works