Mam dlugi vector danych. Dziele go na kawalki i procesuje na osobnym korzystajac z std::launch::async. Nie ma data dependencies. Jezeli kawalkow jest 1000 to 1000 threadow zostanie odpalonych. Pytanie, czy moge zaufac schedulerowi, ze to jakos ogarnie, czy lepiej napisac semafor taki jak tu: https://www.reddit.com/r/cpp_questions/comments/5ih1g8/how_do_i_limit_the_number_of_threads_used_by/ i ograniczyc liczbe watkow do liczny rdzeni cpu? Martwie sie o to ze wzgledu na context switching.
@erwit: Najlepiej użyć sensownej biblioteki. Programowanie na wątkach nie jest proste i bardzo łatwo o trudny do wykrycia błąd. Jeśli nie Boost, to może TBB albo przynajmniej OpenMP? W icc and gcc dostępny domyślnie, w clang też już powinien być standardowo.
Niestety, ale obecnie algorytmy w C++17 są mocno ograniczone i trudno określić liczbę wątków lub chunk size.
Mirki z #prawo #ochronadanych : Czy #gdpr rozroznia przechowywanie danych od ich *JEDNORAZOWEGO* przetworzenia? Mam algorytm ktory dostaje informacje, przetwarza ja i zapomina o niej. Czy taki algorytm wg gdpr podlega takim samym restrykcja jak trzymanie danych w bazie?
#statystyka #matematyka #algorytmy
https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Welford's_online_algorithm