2010-09-24 18 views

Odpowiedz

18

Od TBB wersji 2.2 harmonogram zadanie zostanie automatycznie zainicjowany i na starcie dbać o liczbie wątków do wykorzystania, jeśli chcemy ręcznie zmienić ten numer, można użyć jednej z następujących metod:

Podczas tworzenia harmonogramu, można określić liczbę wątków jak

tbb::task_scheduler_init init(nthread); 

jeszcze można użyć

tbb::task_scheduler_init init(tbb::task_scheduler_init::automatic); 

W tym przypadku, Program planujący tbb tworzy tyle wątków, ile rdzeni procesora.

+1

Musisz utrzymuj przy życiu obiekt 'tbb :: task_scheduler_init' lub wróci on automatycznie. –

+2

Ponadto obiekt harmonogramu zadań wpływa tylko na zadania TBB uruchomione z bieżącego wątku. Podczas tworzenia kolejnych zadań z innego wątku potrzebujesz innego 'tbb :: task_scheduler_init'. –

0

Dokumetacja mówi "zależna od konfiguracji sprzętowej". Prawdopodobnie dostępna jest tylko liczba rdzeni procesora.

9

Udzielanie TBB decydowania o liczbie wątków w puli jest zalecaną opcją - zwykle tworzy tyle wątków roboczych, ile logicznych procesorów na komputerze - patrz Class reference for tbb::task_scheduler_init.

Nie jest łatwo dowiedzieć się, ile wątków roboczych istnieje lub wykonuje zadania w danym momencie - jest to świadomy wybór projektu. Od Intel's TBB Parallel Programming Course:

Skąd wiadomo, ile wątków jest dostępnych?

Nie pytaj!

  • Nawet planista wie, jak wiele wątków są naprawdę dostępne
  • Nie mogą być inne procesy uruchomione na komputerze
  • Rutyna może być zagnieżdżona wewnątrz innych równoległych procedur
Powiązane problemy