Aktywne Wpisy
thorgoth +166
Dios mio, właśnie się dowiedziałem że to jest nasza reprezentantka na Eurowizje.
Może i nie potrafi śpiewać ale za to wygląda bardzo radiowo.
#eurowizja #polska #rozowepaski
Może i nie potrafi śpiewać ale za to wygląda bardzo radiowo.
#eurowizja #polska #rozowepaski
Viado +971
Gastronomia w polsce:
- Oszukiwanie pracowników na hajs, praca bez umowy, nadgodziny
- Kawa za 17zł a woda za 10 xD
- Wciskanie klientom że wszystko jest kraftowe a kupujesz gotowe buły z makro
- Jak najmniejsze porcje żeby przez przypadek ktoś się nie najadł
- Dania robione na #!$%@? przez pijanego kucharza
- 10% haraczu jeśli przyprowadzisz do knajpy 3 znajomych
- Czekanie 15 minut na podanie menu przez kelnera
-
- Oszukiwanie pracowników na hajs, praca bez umowy, nadgodziny
- Kawa za 17zł a woda za 10 xD
- Wciskanie klientom że wszystko jest kraftowe a kupujesz gotowe buły z makro
- Jak najmniejsze porcje żeby przez przypadek ktoś się nie najadł
- Dania robione na #!$%@? przez pijanego kucharza
- 10% haraczu jeśli przyprowadzisz do knajpy 3 znajomych
- Czekanie 15 minut na podanie menu przez kelnera
-
Mam sobie obrazek i chcę na każdym pikselu wykonać jakąś operację. Mogę to zrobić np. tak:
for pixel in image.pixels_mut() {
// zrób coś z pikselem
}
Albo, równoważnie:
image.pixels_mut().for_each(|pixel| {
// zrób coś z pikselem
});
Akurat tak się złożyło, że każdy piksel mogę przetworzyć niezależnie od innych. Chciałbym wobec tego wykorzystać pełnię możliwości mojego wielordzeniowego procesora, puścić to na kilku wątkach i przetwarzać piksele równolegle. Jak to mogę zrobić?
Z pomocą przychodzi
rayon
- crate implementujący dużo ułatwień do zrównoleglania przetwarzania danych. W moim przypadku wystarczy zrobić tyle:use rayon::prelude::*;
image.pixels_mut().par_bridge().for_each(|pixel| {
// zrób coś z pikselem
});
To wszystko! Piksele będą teraz wrzucane do puli wątków i przetwarzane na tyle równolegle, na ile się da. Użycie procesora przy wykonywaniu - 100% ( ͡° ͜ʖ ͡°)
#programowanie
A w Ruście masz ( ͡° ͜ʖ ͡°) Jak spróbujesz coś takiego odstawić, to kod się nie skompiluje.
Np. załóżmy, że chciałbym zliczać przetworzone piksele:
let mut pixels_count: usize = 0;
zliczanie to pewnie na interlocked
fajnie ten rust wygląda