Skip to content

Commit

Permalink
clean up
Browse files Browse the repository at this point in the history
  • Loading branch information
annamariadziubyna committed Feb 4, 2024
1 parent 7d2ec5e commit 6367dec
Show file tree
Hide file tree
Showing 8 changed files with 48 additions and 222 deletions.
4 changes: 0 additions & 4 deletions benchmarks/pegasus_bench3.jl
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,6 @@ function pegasus_sim(inst, trans, β, Layout, bd, ms, eng)
cluster_assignment_rule=pegasus_lattice((M, N, T))
)

# new_cl_h = clustered_hamiltonian_2site(cl_h, β)
# beliefs = belief_propagation(new_cl_h, β; tol=1e-6, iter=iter)
# cl_h = truncate_clustered_hamiltonian_2site_BP(cl_h, beliefs, cs; beta=β)

params = MpsParameters(bd, VAR_TOL, ms, TOL_SVD, ITERS_SVD, ITERS_VAR, DTEMP_MULT, METHOD)
search_params = SearchParameters(MAX_STATES, δp)

Expand Down
152 changes: 0 additions & 152 deletions benchmarks/pegasus_bench_bp.jl

This file was deleted.

63 changes: 29 additions & 34 deletions benchmarks/pegasus_bench_droplets.jl
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,14 @@ size = MPI.Comm_size(MPI.COMM_WORLD)
rank = MPI.Comm_rank(MPI.COMM_WORLD)

M, N, T = 7, 7, 3
INSTANCE_DIR = "$(@__DIR__)/../test/instances/pegasus_random/P8/CBFM-P/SpinGlass/single"
OUTPUT_DIR = "$(@__DIR__)/results/pegasus_random/P8/CBFM-P/droplets/P8_droplets_boundary_brute_force"
INSTANCE_DIR = "$(@__DIR__)/../test/instances/pegasus_random/P8/RCO/SpinGlass/single"
OUTPUT_DIR = "$(@__DIR__)/results/pegasus_random/P8/RCO/droplets/final_bench_notr"

if !Base.Filesystem.isdir(OUTPUT_DIR)
Base.Filesystem.mkpath(OUTPUT_DIR)
end

BETAS = [0.5,] #collect(0.2:0.1:1.0)
BETAS = 0.5 #collect(0.25:0.25:1.0)
LAYOUT = (GaugesEnergy,)
TRANSFORM = all_lattice_transformations

Expand All @@ -37,10 +37,10 @@ SPARSITY = Sparse
graduate_truncation = :graduate_truncate

INDβ = [3,] #[1, 2, 3]
MAX_STATES = 100
BOND_DIM = [4,]
# cs = 2^12
# iter = 1
MAX_STATES = [1024,]
BOND_DIM = [8, ]
# cs = 2^16
# iter = 2

MAX_SWEEPS = [0,]
VAR_TOL = 1E-16
Expand All @@ -50,31 +50,26 @@ ITERS_VAR = 1
DTEMP_MULT = 2
METHOD = :psvd_sparse
I = [1,]
eng = [60, ] #collect(0.01:1:1.01)
hamming_dist = 100
hamming_cutoff = 3
eng = [40, ] #collect(0.01:1:1.01) 60
hamming_dist = 74 #74 14
disable_logging(LogLevel(1))
BLAS.set_num_threads(1)

function pegasus_sim(inst, trans, β, Layout, bd, ms, eng, hamming_dist)
function pegasus_sim(inst, trans, β, Layout, bd, ms, eng, hamming_dist, mstates)
δp = 0.0

cl_h = clustered_hamiltonian(
ising_graph(INSTANCE_DIR * "/" * inst),
spectrum=brute_force_gpu,
spectrum=full_spectrum,
cluster_assignment_rule=pegasus_lattice((M, N, T))
)

# new_cl_h = clustered_hamiltonian_2site(cl_h, β)
# beliefs = belief_propagation(new_cl_h, β; tol=1e-6, iter=iter)
# cl_h = truncate_clustered_hamiltonian_2site_BP(cl_h, beliefs, cs; beta=β)

params = MpsParameters(bd, VAR_TOL, ms, TOL_SVD, ITERS_SVD, ITERS_VAR, DTEMP_MULT, METHOD)
search_params = SearchParameters(MAX_STATES, δp)
search_params = SearchParameters(mstates, δp)

net = PEPSNetwork{SquareCrossDoubleNode{Layout}, SPARSITY}(M, N, cl_h, trans)
ctr = MpsContractor{STRATEGY, GAUGE}(net, [β/6, β/3, β/2, β], graduate_truncation, params)
sol1, schmidts = low_energy_spectrum(ctr, search_params, merge_branches_blur(ctr, hamming_cutoff, :fit, SingleLayerDroplets(eng, hamming_dist, :hamming)))
sol1, schmidts = low_energy_spectrum(ctr, search_params, merge_branches(ctr, :nofit, SingleLayerDroplets(eng, hamming_dist, :hamming)))

sol2 = unpack_droplets(sol1, β)
ig_states = decode_clustered_hamiltonian_state.(Ref(cl_h), sol2.states)
Expand All @@ -85,15 +80,15 @@ function pegasus_sim(inst, trans, β, Layout, bd, ms, eng, hamming_dist)
sol1, ctr, cRAM, schmidts, ldrop, sol2, ig_states
end

function run_bench(inst::String, β::Real, t, l, bd, ms, eng, hamming_dist, i)
hash_name = hash(string(inst, β, t, l, bd, ms, eng, hamming_dist, i))
function run_bench(inst::String, β::Real, t, l, bd, ms, eng, hamming_dist, mstates, i)
hash_name = hash(string(inst, β, t, l, bd, ms, eng, hamming_dist, mstates, i))
out_path = string(OUTPUT_DIR, "/", hash_name, ".json")

if isfile(out_path)
println("Skipping for , $t, $l, $bd, $eng, $hamming_dist, $ms.")
println("Skipping for , $t, $l, $bd, $eng, $hamming_dist, $ms, $mstates.")
else
data = try
tic_toc = @elapsed sol, ctr, cRAM, schmidts, ldrop, droplets, ig_states = pegasus_sim(inst, t, β, l, bd, ms, eng, hamming_dist)
tic_toc = @elapsed sol, ctr, cRAM, schmidts, ldrop, droplets, ig_states = pegasus_sim(inst, t, β, l, bd, ms, eng, hamming_dist, mstates)

data = DataFrame(
:instance => inst,
Expand All @@ -104,7 +99,7 @@ function run_bench(inst::String, β::Real, t, l, bd, ms, eng, hamming_dist, i)
:probabilities => sol.probabilities,
:discarded_probability => sol.largest_discarded_probability,
:statistic => minimum(values(ctr.statistics)),
:max_states => MAX_STATES,
:max_states => mstates,
:bond_dim => bd,
:max_sweeps => ms,
:eng => eng,
Expand All @@ -131,18 +126,18 @@ function run_bench(inst::String, β::Real, t, l, bd, ms, eng, hamming_dist, i)
=> β,
:Layout => l,
:transform => t,
:max_states => MAX_STATES,
:max_states => mstates,
# :cl_states => cs,
:eng => eng,
:hamming_dist => hamming_dist,
:droplets => droplets,
:drop_eng => [droplets.energies],
:drop_states => [droplets.states],
:ig_states => [ig_states],
:drop_prob => [droplets.probabilities],
:drop_degeneracy => [droplets.degeneracy],
:drop_ldp => [droplets.largest_discarded_probability],
:drop_number => ldrop,
# :droplets => droplets,
# :drop_eng => [droplets.energies],
# :drop_states => [droplets.states],
# :ig_states => [ig_states],
# :drop_prob => [droplets.probabilities],
# :drop_degeneracy => [droplets.degeneracy],
# :drop_ldp => [droplets.largest_discarded_probability],
# :drop_number => ldrop,
:iters_svd => ITERS_SVD,
:iters_var => ITERS_VAR,
:dtemp_mult => DTEMP_MULT,
Expand All @@ -166,11 +161,11 @@ end

all_params = collect(
Iterators.product(
readdir(INSTANCE_DIR, join=false), BETAS, TRANSFORM, LAYOUT, BOND_DIM, MAX_SWEEPS, eng, hamming_dist, I)
readdir(INSTANCE_DIR, join=false), BETAS, TRANSFORM, LAYOUT, BOND_DIM, MAX_SWEEPS, eng, hamming_dist, MAX_STATES, I)
)

for i (1+rank):size:length(all_params)
run_bench(all_params[i]...)
GC.gc()
end
#run_bench(all_params[1]...)
#run_bench(all_params[1]...)
14 changes: 7 additions & 7 deletions benchmarks/square_diagonal_bench.jl
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@ size = MPI.Comm_size(MPI.COMM_WORLD)
rank = MPI.Comm_rank(MPI.COMM_WORLD)

M, N, T = 50,50, 1
INSTANCE_DIR = "$(@__DIR__)/../test/instances/square/50x50x1"
INSTANCE_DIR = "$(@__DIR__)/../test/instances/square/square_50x50/single"
OUTPUT_DIR = "$(@__DIR__)/results/square/50x50x1"
if !Base.Filesystem.isdir(OUTPUT_DIR)
Base.Filesystem.mkpath(OUTPUT_DIR)
end

BETAS = collect(2.0:1.0:5.0)
BETAS = 2.0
LAYOUT = (GaugesEnergy, )
TRANSFORM = all_lattice_transformations

Expand All @@ -36,8 +36,8 @@ SPARSITY = (Sparse, )
graduate_truncation = :graduate_truncate

INDβ = [3,] #[1, 2, 3]
MAX_STATES = [256,1024]
BOND_DIM = [8,10,12]
MAX_STATES = [256,]
BOND_DIM = [8,]
# cs = 2^12
# iter = 1

Expand All @@ -48,8 +48,8 @@ ITERS_SVD = 2
ITERS_VAR = 1
DTEMP_MULT = 2
METHOD = :psvd_sparse
eng = 50
hamming_dist = 156
eng = 80
hamming_dist = 156 #25 #56 #100
I = [1,]

disable_logging(LogLevel(1))
Expand All @@ -71,7 +71,7 @@ function pegasus_sim(inst, trans, β, Layout, st, sp, bd, ms, eng, hamming_dist,
ctr = MpsContractor{st, GAUGE}(net, [β/6, β/3, β/2, β], graduate_truncation, params)
clusters = split_into_clusters(ising_graph(INSTANCE_DIR * "/" * inst), super_square_lattice((M, N, T)))
# sol1, schmidts = low_energy_spectrum(ctr, search_params, merge_branches(ctr, :fit, SingleLayerDroplets(eng, hamming_dist, :hamming)))
sol1, schmidts = low_energy_spectrum(ctr, search_params, merge_branches(ctr, :fit, SingleLayerDroplets(eng, hamming_dist, :hamming)))
sol1, schmidts = low_energy_spectrum(ctr, search_params, merge_branches(ctr, :nofit, SingleLayerDroplets(eng, hamming_dist, :hamming)))

sol2 = unpack_droplets(sol1, β)
ig_states = decode_clustered_hamiltonian_state.(Ref(cl_h), sol2.states)
Expand Down
7 changes: 3 additions & 4 deletions debugg_and_profile/bench_truncate_pegasus.jl
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,8 @@ function bench(instance::String)
iter = 1
println("creating factor graph" )
cs = 1024

results_folder = "$(@__DIR__)/../test/instances/pegasus_random/P8/CBFM-P/SpinGlass/BP"
inst = "001"
@time begin
ig = ising_graph(instance)
cl_h = clustered_hamiltonian(
Expand All @@ -67,9 +68,7 @@ function bench(instance::String)
cluster_assignment_rule = pegasus_lattice((m, n, t))
)
end
new_cl_h = clustered_hamiltonian_2site(cl_h, β)
beliefs = belief_propagation(new_cl_h, β; tol=1e-6, iter=iter)
@time cl_h = truncate_clustered_hamiltonian_2site_BP(cl_h, beliefs, cs; beta = β)
@time cl_h = truncate_clustered_hamiltonian(cl_h, β, cs, results_folder, inst; tol=1e-6, iter=iter)

net = PEPSNetwork{SquareCrossDoubleNode{Layout}, Sparse}(m, n, cl_h, tran)
ctr = MpsContractor{Strategy, Gauge}(net, [β/6, β/3, β/2, β], :graduate_truncate, params; onGPU=onGPU)
Expand Down
8 changes: 3 additions & 5 deletions examples/truncation_BP.jl
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ Layout = GaugesEnergy
Gauge = NoUpdate
cl_states = [2^10,]
iter = 1
inst = "001"
results_folder = "$(@__DIR__)/../test/instances/pegasus_random/P4/CBFM-P/SpinGlass/BP"

for cs cl_states
println("===================================")
Expand All @@ -62,12 +64,8 @@ for cs ∈ cl_states
cluster_assignment_rule=pegasus_lattice((m, n, t))
)

new_cl_h = clustered_hamiltonian_2site(cl_h, β)
beliefs = belief_propagation(new_cl_h, β; iter=iter)
# println(beliefs)
@time cl_h = truncate_clustered_hamiltonian_2site_BP(cl_h, cs; beta = β, iter=iter)
@time cl_h = truncate_clustered_hamiltonian(cl_h, β, cs, results_folder, inst; tol=1e-6, iter=iter)
# @time cl_h = truncate_clustered_hamiltonian_2site_energy(cl_h, cs)

for v in vertices(cl_h)
println(length(get_prop(cl_h, v, :spectrum).states))
end
Expand Down
Loading

0 comments on commit 6367dec

Please sign in to comment.