obliczenia równoległe

0

Cześć. W temacie współbieżności/równoległowości jestem jeszcze świeży więc chciałbym zadać wam kilka pytań.
Jestem w trakcie tworzenia algorytmu, który jest dość obliczeniożerny i chciałbym wykorzystać możliwość skorzystania z większej liczby rdzeni do obliczeń. Trochę już o tym poczytałem mam jednak pewne wątpliwości co i jak...
Moje główne pytanie brzmi, czy poza utworzeniem nowego wątku muszę jeszcze coś zrobić, by obliczenia mogły być wykonywane równocześnie na dwóch rdzeniach procesora? Tzn. czy ja muszę jeszcze dodatkowo jakoś poinformować system, żeby obliczenia danego wątku były przerzucone na drugi rdzeń, czy może jest to czynność automatyczna i wynika po prostu z możliwości wykorzystywanego procesora oraz systemu operacyjnego?
Drugie pytanie jest takie, czy da się sprawdzić ile komputer posiada rdzeni? Chodzi mi o M$ Windows.
Miałem jeszcze jakieś pytanie, ale chwilowo mi wyleciało :(
Z góry dziękuję za rozjaśnienie tej kwestii!

1

W kwestii wątków i rdzeni zdaj się na system operacyjny. To jego zadanie, aby przydzielić wszystkim procesom/wątkom czas procesora tak, aby było jak najlepiej. Zapewne chcesz poznać liczbę rdzeni po to, żeby uruchomić odpowiednią liczbę wątków? Jeżeli to możliwe, możesz spróbować skorzystać z podpowiedzi danej przez std::thread::hardware_concurrency z biblioteki standardowej.

0
Endrju napisał(a):

Zapewne chcesz poznać liczbę rdzeni po to, żeby uruchomić odpowiednią liczbę wątków?

Dokładnie po to ;-)

Ok, dzięki za info!
pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1