Jak spowolnić taktowanie procesora

12

Niedawno kupiłem nowego MacBooka Pro, który czasem działa zbyt szybko. Często programuję dla Mathematica , a na moim starym MacBooku 2007 zwykle odczuwałem niewydajność kodu, gdy działa on wolno (to wtedy decyduję "rany, napisałem trochę śmieci. Może powinienem poświęcić kilka godzin na jego dopracowanie „). Jednak na moim nowym komputerze Mac wszystko działa szybko.

Czy na Macu jest przełącznik, który pozwala mi spowolnić procesor do, powiedzmy, 1 GHz?

Kropka kwantowa
źródło
Przenieśmy rozszerzoną dyskusję na czat .
bmike
Powinieneś rzucić
Max Ried
Od razu pamiętam ten komiks: xkcd.com/1172
justhalf

Odpowiedzi:

19

Nie sądzę, że można manipulować paskiem minimalnej częstotliwości zegara, po prostu ze względu na bezpośredni związek między mocą, częstotliwością i prędkością zegara mikroprocesora. Oczywiście zegar ma zakres, więc na przykład do uruchamiania symulacji system potrzebuje więcej mocy, aby szybciej pracować w tym zakresie, a kiedy przestaniesz symulować, zobaczysz spadek.

Rozwiązanie : Czy alternatywnie zastanawiałeś się nad uruchomieniem programów w systemie MAC OS, ale na wirtualizatorze (np. Wirtualnym urządzeniu)? Następnie możesz ograniczyć liczbę rdzeni / pamięci RAM przeznaczonych do uruchomienia drugiego systemu operacyjnego. W takim przypadku programy mogą zostać zmuszone do uruchomienia znacznie wolniej; ponieważ wirtualizator ma znacznie niższy zasób. Zapewni to znacznie większą elastyczność, aw przypadku awarii możesz wrócić i zmienić ustawienia wirtualizatora. Co ciekawsze, możesz przenieść spakowane ustawienia, które działają na wirtualizatorze na inną maszynę i tam też uruchomić, oczywiście mając tam wirtualizator.

o-0
źródło
3
VirtualBox nie jest emulatorem. To wirtualizator. Dlatego nazywa się „VirtualBox”. Wirtualizuje procesor, nie emuluje go. Na przykład QEmu to emulator. (Chociaż może korzystać z wirtualizacji i domyślnie zrobi to, jeśli to możliwe.)
Jörg W Mittag
1
@ JörgWMittag To nie jest wirtualizator. Nazywa się to hypervisor typu 2.
Max Ried
1
@DaveRose VM jest niepotrzebne, ponieważ limity liczby procesorów (powinowactwo), pamięci, maksymalnego czasu procesora i wielu innych linii zasobów można ustawić dla jednego procesu za pomocą wiersza poleceń za pomocą narzędzi uniksowych ulimit i sysctl - nie pamiętam, czy te narzędzia są instalowane domyślnie może być konieczne zainstalowanie narzędzi programistycznych z wiersza poleceń za pośrednictwem XCode.
Ustawiłeś
25

Jeśli zastanawiasz się, jak wydajne jest twoje oprogramowanie, pozwól, że zasugeruję bardziej techniczne rozwiązanie, które pozwoli ci utrzymać MacBooka na pełnej prędkości:

Użyj profilera wbudowanego w Mathematica . Umożliwi to identyfikację części obliczeń, które pochłaniają najwięcej czasu bez konieczności uciekania się do pomiarów siedzeń spodni, które działają tylko na wolnym sprzęcie.

Blrfl
źródło
1
Jak to spowolniłoby kod na jednym komputerze Mac, a nie na innym? To dobra informacja, ale nie wydaje się odpowiednia dla tego wątku.
bmike
@bmike To dobra informacja. Nie wiedziałem o profilerze Mathematica. Chociaż nie odpowiada bezpośrednio na moje pytanie, może pomóc uczynić je niepotrzebnymi (+1). Być może najlepiej byłoby zostawić komentarz.
QuantumDot
6
@mike nie spowalnia niczego, rozwiązuje problem, na który OP próbuje się dostać, tj. czy jego kod Mathematica jest wydajny, czy nie.
nekomatic
1

Profilowanie, jak sugeruje odpowiedź Blrfl, jest bardziej odpowiednim sposobem na stwierdzenie, czy Twój kod Mathematica jest wydajny. Jeśli jednak naprawdę chcesz spowolnić jego wykonanie, możesz to zrobić, zmieniając priorytet procesu Mathematica. Nie próbowałem tego, ale możesz znaleźć pomocne informacje lub oprogramowanie wśród tych linków:

Czy jest jakiś sposób, aby ustawić priorytet procesu w Mac OS X?

Jak trwale „przywrócić” proces na Mac OS X (lub iOS itp.)?

Appriority (wcześniej Renicer) od Northern Softworks

Niektóre z tych dyskusji są jednak nieco stare, więc może być konieczne eksperymentowanie lub dalsze wyszukiwanie, aby sprawdzić, co działa na komputerach Mac i OS X. Może się okazać, że technika ta działa bardziej efektywnie, jeśli ustawisz w tym samym czasie na komputerze Mac inne zadanie związane z intensywnym przetwarzaniem - na przykład konwersja dużego pliku wideo.

nekomatic
źródło
Zmiana priorytetu procesu nie gwarantuje, że będzie on działał wolno. Jest to tylko wskazówka dla systemu operacyjnego, że jeśli istnieje spór o czas procesora, procesy o wyższych priorytetach zaczynają się jako pierwsze. Bez przeszkód proces o niskim priorytecie będzie przebiegał z pełną prędkością.
Blrfl
1

Niestety nie. Nie można zmienić szybkości zegara na komputerach Macintosh. Nie mają systemu BIOS w taki sam sposób, jak płyty główne systemu Windows, więc nie ma możliwości, aby użytkownik mógł zmienić częstotliwość zegara lub manipulować przy urządzeniach we / wy.

Powodem tego jest głównie to, że na komputerze Mac nie trzeba ręcznie zmieniać tych rzeczy. Sprzęt jest już wstępnie zbudowany, a system operacyjny wie, do jakiego sprzętu będzie / może zostać podłączony.

JamEngulfer
źródło
Mac OS X MOŻE dynamicznie zmieniać prędkość zegara procesora, na przykład w celu priorytetyzacji wydajności po podłączeniu do żywotności baterii w przypadku baterii, więc to nie jest naprawdę poprawne - a przynajmniej jeśli jest poprawne, to z niewłaściwego powodu, tj. System operacyjny nie robi nie udostępniaj tego ustawienia łatwo.
nekomatic
Słuszna uwaga. Zredagowałem post, aby to wyjaśnić
JamEngulfer
0

Tak, ale nie jest to zalecane. Szybkość zegara jest kontrolowana przez system operacyjny i sam procesor ze względu na szereg czynników, w tym obciążenie procesora, temperaturę i dostępność energii.

Jeśli zmniejszysz baterię do 10-20%, odłączysz jakiekolwiek zewnętrzne źródło zasilania i ogrzejesz laptopa do maksymalnej temperatury roboczej 95F (35C) , z pewnością przejdzie on w stan niższej mocy, w tym znacznie skróci zegar procesora. Może wystarczyć niewielka podkładka grzewcza, na przykład stosowana w bólu pleców, pod laptopem, a zimą może być dla Ciebie bardzo wygodna.

Lepiej byłoby jednak użyć odpowiednich narzędzi do dostrajania wydajności. Tak, możesz symulować swoje stare środowisko, a tym samym korzystać z własnego zegara wewnętrznego, jednak oprogramowanie, którego używasz, ma zegary, timery i inne narzędzia do zrozumienia wydajności pracy. Biorąc pod uwagę, że prawdopodobnie za kilka lat będziesz mógł dokonać ponownej aktualizacji lub w międzyczasie będziesz mógł korzystać z różnych komputerów i platform komputerowych, używanie kul, takich jak emulatory, nie jest dobrym rozwiązaniem długoterminowym.

Sugeruję zamiast tego skorzystać z wbudowanych narzędzi. Regularne używanie pozwoli ci z nich korzystać bez nadmiernego wysiłku, dzięki czemu będziesz mógł je zintegrować z oprogramowaniem na bieżąco.

Adam Davis
źródło