2012-07-27 19 views
6

Domyślnie dyrektywa OpenMP:OMP - więcej wątków niż liczba procesorów?

opm_get_num_threads podaje liczbę wątków równoważnych procesorom/rdzeniom.

Mam 8 rdzeń maszyny, więc daje mi 8 wątków. Czy to maksimum? Czy mogę uzyskać więcej wątków niż 8, jeśli celowo określę więcej niż 8?

Dzięki

Odpowiedz

7

Można ustawić dowolną liczbę wątków, jak chcesz z:

int threads = 16; 
omp_set_num_threads(threads); 

http://msdn.microsoft.com/en-US/library/e16bady3%28v=vs.80%29

Ale upewnij się, że są świadomi wad korzystania z więcej wątków niż są rdzenie logiczne w systemie.

+2

Troszczyć się, aby podzielić się tym, czym są wady, a nie tylko niejasno nawiązywać do nich? –

+4

@LexiR Istnieje wiele problemów związanych z wątkami: planowanie, przełączniki kontekstu, rywalizacja w pamięci podręcznej itp. Nie można powiedzieć, że nigdy nie lepiej używać więcej wątków niż rdzeni logicznych. Ale warto wiedzieć, co może się stać, jeśli zostanie niewłaściwie wykorzystany. – Mysticial

+2

Po co naprawiać liczbę wątków w kodzie? Co powiesz na starą dobrą zmienną środowiskową 'OMP_NUM_THREADS'? –

Powiązane problemy