diff --git a/src/bsq.rs b/src/bsq.rs index b6ab22c..0f21a9b 100644 --- a/src/bsq.rs +++ b/src/bsq.rs @@ -79,13 +79,13 @@ pub fn run( bucket_size: usize, density: f32, runs: usize, - n_len: (usize, usize), ) -> Vec { + print!("#"); (0..runs) .map(|_| { let grid = create_grid(grid_size, grid_size, density); let mut bucket = Bucket::new(grid_size, grid_size, bucket_size); - + /*println!( "({}) [{:>3}/{:>3}] gs={grid_size} bs={bucket_size} d={density:.1}", chrono::Local::now().format("%a %b %e %T"), diff --git a/src/main.rs b/src/main.rs index 316a4f4..d9d6fc5 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,6 +1,6 @@ use itertools::Itertools; use rayon::iter::ParallelIterator; -use rayon::prelude::ParallelBridge; +use rayon::prelude::IntoParallelIterator; mod bsq; const RUNS: usize = 256; @@ -15,27 +15,26 @@ struct Run { } fn main() { - let len = (1..13) - .cartesian_product(1..13) - .filter(|&(grid_size, chunk_size)| (grid_size - 5 <= chunk_size && chunk_size <= grid_size)) - .flat_map(|t| std::iter::repeat(t).zip((1..10).map(|i| i as f32 / 10.0))) - .count(); - - let params = (1..13) - .cartesian_product(1..13) - .filter(|&(grid_size, chunk_size)| (grid_size - 5 <= chunk_size && chunk_size <= grid_size)) - .flat_map(|t| std::iter::repeat(t).zip((1..10).map(|i| i as f32 / 10.0))) - .map(|((grid_size, chunk_size), density)| (1 << grid_size, 1 << chunk_size, density)); + let params = (1..10) + .cartesian_product(1..10) + .filter(|&(grid_size, chunk_size)| (grid_size - 4 < chunk_size && chunk_size < grid_size)) + .flat_map(|t| std::iter::repeat(t).zip((1..8).map(|i| i as f32 / 8.0))) + .map(|((grid_size, chunk_size), density)| (1 << grid_size, 1 << chunk_size, density)) + .collect_vec(); + println!("len = {}", params.len()); let res = params - .enumerate() - .par_bridge() - .map(|(n, (gridsize, chunksize, density))| Run { + .into_par_iter() + .map(|(gridsize, chunksize, density)| Run { chunksize, gridsize, density, runs: RUNS, - results: bsq::run(gridsize, chunksize, density, RUNS, (n, len)), + results: bsq::run(gridsize, chunksize, density, RUNS), }) .collect::>(); - serde_json::to_writer(std::fs::File::open(format!("./data-{}.json", chrono::Local::now().format("%s"))).unwrap(), &res).unwrap(); + serde_json::to_writer( + std::fs::File::open(format!("./data-{}.json", chrono::Local::now().format("%s"))).unwrap(), + &res, + ) + .unwrap(); }