Kullanmak std::for_each
olan std::execution::par
yapıların vektör olarak temsil büyük giriş karmaşık hesaplama yapmak için. Hesaplamanın donanım ile ilgili herhangi bir gecikmeye ihtiyacı yoktur (örneğin ağ veya disk IO), "sadece CPU" hesaplamasıdır. Benim için, donanım olanlara sahip daha fazla işletim sistemi iş parçacığı oluşturmanın bir anlamı olmadığı mantıklı görünüyor; ancak, Visual C ++ 2019 ortalama 50 iş parçacığı oluşturur ve bazen yalnızca 12 donanım iş parçacığı olsa bile 500'e kadar iş parçacığı oluşturur.
Paralel konuları sınırlamak için bir yol var mı sayısı hardware_concurrency
ile std::for_each
ve std::execution::par
ya saymak makul konuları ile kullanım özel koduna oluşturmak için tek yol std::thread
?
std::for_each
ve <algorithm>
üstbilgi diğer algoritmalar olmasıdır . Arkadaki ana fikir std::execution::par
, paralel kodu sıralı olana kadar basit hale getirmek ve mevcut algoritmaların minimum kod ve anlambilim değişiklikleri ile paralelleştirilmesidir.