This commit is contained in:
Maix0 2023-08-21 00:31:14 +02:00
parent 976c7d0894
commit f5bcaa7792
2 changed files with 18 additions and 19 deletions

View file

@ -79,13 +79,13 @@ pub fn run(
bucket_size: usize,
density: f32,
runs: usize,
n_len: (usize, usize),
) -> Vec<std::time::Duration> {
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"),

View file

@ -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::<Vec<_>>();
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();
}