Używam std::for_eachz std::execution::pardo wykonywania złożonych obliczeń na ogromnych danych wejściowych reprezentowanych jako wektor struktur. Obliczenia nie wymagają żadnych opóźnień związanych ze sprzętem (na przykład IO sieci lub dysku), są obliczeniami „tylko procesora”. Dla mnie wydaje się logiczne, że nie ma sensu tworzyć więcej wątków systemu operacyjnego niż mamy wątki sprzętowe; jednak Visual C ++ 2019 tworzy średnio 50 wątków, a czasem nawet 500 wątków, nawet jeśli jest tylko 12 wątków sprzętowych.
Czy istnieje sposób, aby ograniczyć równoległe wątki liczyć do hardware_concurrencyz std::for_eachi std::execution::parczy jedynym sposobem na stworzenie racjonalne wątki liczyć jest użycie kodu niestandardowego z std::thread?
std::for_eachinne algorytmy z <algorithm>nagłówka. Główną ideą std::execution::parjest uczynienie kodu równoległego tak prostym jak kod sekwencyjny oraz zrównoleglenie istniejących algorytmów z minimalnymi zmianami kodu i semantyki.