c ++ - Brug kun det rigtige antal logiske processorer

Indlæg af Hanne Mølgaard Plasc

Problem



Er der en måde, jeg kan (ved hjælp af tbb fra intel) angive antallet af logiske processorer, der anvendes af deres parallelle sløjfer? Ligesom det vil jeg gerne kunne registrere antal logiske processorer og angive, hvor mange af dem jeg gerne vil bruge til denne opgave.

Bedste reference


Jeg går ud fra, at du mener tråde, og ikke processorer.


int main()
{
    tbb::task\_scheduler\_init init(num\_threads);
    ...
}


Selvom jeg stadig synes, det er bedre at bare lade TBB håndtere det automatisk.


EDIT: Baseret på kommentarer, hvad du vil have, er dette:


int main()
{
    struct tbb\_set\_affinity : public tbb::task\_scheduler\_observer
    {
         tbb\_set\_affinity(){observe(true);}
         void on\_scheduler\_entry(bool is\_worker)
         {
            SetThreadAffinityMask(...);
         }
   } tbb\_set\_affinity;

   tbb::task\_scheduler\_init init(num\_processors);
   ...
}