Merge branch 'main' into multithreading

This commit is contained in:
teridax 2023-06-06 18:02:03 +02:00 committed by GitHub
commit 9bb2fcea52
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 1 deletions

View File

@ -1,3 +1,12 @@
# Programmentwurf
Die Beschreibung der Aufgabenstellung ist unter [Programmentwurf.md](https://github.com/programmieren-mit-rust/programmentwurf/blob/main/Programmentwurf.md) zu finden. Diese `Readme.md` ist durch etwas Sinnvolles zu ersetzen.
# WICHTIG!
Kleiner reminder, wenn ihr Sachen pushed in das repo, die eurer Anischt nach fertig sind (z.B für einen Pull-Request!), bitte mit den folgenden Commands auf Fehler/Warnings überprüfen:
- `cargo fmt` für formattierung
- `cargo clippy` für warnings
- `cargo test doc` für documentation tests
optional:
- `cargo test` für module tests
- `cargo bench` für benchmarks

View File

@ -37,6 +37,7 @@ fn dot(a: &[f64], b: &[f64]) -> f64 {
/// sized slices which then get passed ot their own thread to compute the partial dot product. After all threads have
/// finished the partial dot products will be summed to create the final result.
fn dot_parallel(a: Arc<Vec<f64>>, b: Arc<Vec<f64>>, threads: usize) {
let mut pool = ThreadPool::with_limit(threads);
// number of elements in each vector for each thread
@ -55,7 +56,7 @@ fn dot_parallel(a: Arc<Vec<f64>>, b: Arc<Vec<f64>>, threads: usize) {
dot(a, b)
});
}
pool.join_all();
black_box(pool.get_results().iter().sum::<f64>());