Pracuję w laboratorium i napisałem wielowątkowy program obliczeniowy, w C++ 11 przy użyciu std::thread
. Teraz mam możliwość uruchomienia mojego programu na serwerze z wieloma procesorami.Jak skorzystać z multi-cpu w C++?
Serwer:
- Runs Ubuntu Server
- posiada 40 procesorów Intel
ja nic o programowaniu wieloprocesorowych znać. Pierwszy pomysł, który przychodzi mi do głowy, aby uruchomić 40 aplikacji, a następnie skleić ich wyniki razem. Jest to możliwe, ale chcę wiedzieć więcej o moich możliwościach.
- Jeśli skompiluję mój kod na serwerze przez jego kompilator gcc, czy wynikowa aplikacja korzysta z wielu procesorów?
- Jeśli # 1 odpowiedź zależy, w jaki sposób mogę to sprawdzić?
Dziękujemy!
Jeśli program ma wiele wątków już wtedy system operacyjny będzie automatycznie planować te wątki na różnych procesorach. Będziesz ograniczony ilością wątków. Jeśli utworzysz 10 wątków, twój program będzie ograniczony do maksymalnie 10 procesorów. –
Jeśli każdy „Wynik” jest całkowicie niezależny od wszystkich innych, to ja faktycznie napisać jeden wniosek wątek, a następnie uruchomić go za pomocą 'parallel' (patrz' sudo apt-get install równoległego, człowiek parallel') – v010dya
wyjściowa dla off-site zasoby są poza tematem na SO. Usunąłem twoje pytania dotyczące bibliotek i innych zasobów, ponieważ pozostała część pytania jest możliwa do odzyskania. – Puppy