Come rallentare la velocità di clock del processore


12

Di recente ho acquistato un nuovo MacBook Pro che a volte va troppo veloce. Programma spesso per Mathematica , e sul mio vecchio MacBook Pro 2007 di solito ho la sensazione di un codice inefficiente quando gira lentamente (è quando decido "Accidenti, ho scritto un codice di immondizia. Forse dovrei passare un paio d'ore a perfezionarlo "). Tuttavia, sul mio nuovo Mac, tutto funziona alla perfezione.

C'è un interruttore sul Mac che mi consente di rallentare la CPU, diciamo a 1 GHz?


Spostiamo la discussione estesa per chattare .
bmike


Ricordo immediatamente questo fumetto: xkcd.com/1172
solo il

Risposte:


19

Non penso che sia possibile manipolare la barra della velocità di clock minima, semplicemente a causa della relazione diretta tra potenza, frequenza e velocità di clock di un microprocessore. Ovviamente l'orologio ha un intervallo, quindi per esempio per eseguire simulazioni il sistema impiega più potenza per correre più veloce sotto l'intervallo e quindi quando smetti di simulare vedi il calo.

Una soluzione : in alternativa hai preso in considerazione l'esecuzione di programmi all'interno di MAC OS ma su un virtualizzatore (ad es. Virtual box)? È quindi possibile limitare il numero di core / RAM dedicati all'esecuzione del secondo sistema operativo. In tal caso, i programmi possono essere forzati molto più lentamente; perché il virtualizzatore ha risorse molto più basse. Questo ti darà molta più flessibilità e in caso di guasto, puoi tornare indietro e modificare le impostazioni del virtualizzatore. Ancora più interessante, è possibile portare le impostazioni del pacchetto in esecuzione sul virtualizzatore su un altro computer ed eseguirlo anche lì, avendo ovviamente il virtualizzatore lì.


3
VirtualBox non è un emulatore. È virtualizzatore. Ecco perché si chiama "VirtualBox". Virtualizza la CPU, non la emula. QEmu, ad esempio, è un emulatore. (Anche se può utilizzare la virtualizzazione, e lo farà per impostazione predefinita, se possibile.)
Jörg W Mittag

1
@ JörgWMittag Non è un virtualizzatore. Si chiama hypervisor di tipo 2.
Max Ried il

1
@DaveRose Una VM non è necessaria perché limiti di conteggio del processore (affinità), memoria, tempo massimo della CPU e molte altre linee di risorse possono essere impostati per un singolo processo attraverso la riga di comando usando le utilità unix ulimit e sysctl - Non ricordo se queste le utility sono installate per impostazione predefinita, potrebbe essere necessario installare gli strumenti di sviluppo della riga di comando tramite XCode. Dovresti impostare ulimit ed eseguire Mathematica dalla shell
crasic il

25

Se la tua preoccupazione è quanto sia efficiente il tuo software, lasciami suggerire una soluzione più orientata all'ingegneria che ti consentirà di mantenere il tuo MacBook alla massima velocità:

Usa il profiler integrato in Mathematica . Ciò ti consentirà di identificare le parti dei tuoi calcoli che consumano più tempo senza dover ricorrere a misurazioni sul posto di lavoro che funzionano solo su hardware lento.


1
In che modo questo rallenterebbe il codice su un Mac e non su un altro? Sono buone informazioni, ma non sembrano rilevanti per questa discussione.
bmike

@bmike Questa è una buona informazione. Non sapevo del profiler di Mathematica. Sebbene non risponda direttamente alla mia domanda, può essere utile per renderla non necessaria (+1). Forse sarebbe stato meglio lasciarlo come commento.
QuantumDot

6
@bmike non rallenta nulla, risolve il problema che l'OP sta effettivamente cercando di capire, ovvero se il suo codice Mathematica è efficiente.
Nekomatic

1

La profilazione, come suggerito nella risposta di Blrfl, è il modo più appropriato per identificare se il tuo codice Mathematica è efficiente. Tuttavia, se vuoi davvero rallentarne l'esecuzione, potresti essere in grado di farlo cambiando la priorità del processo Mathematica. Non ho provato questo, ma potresti trovare informazioni utili o software tra questi link:

Esiste un modo per impostare la priorità di un processo in Mac OS X?

Come "rinominare" permanentemente un processo su Mac OS X (o iOS, ecc.)?

Appriority (precedentemente Renicer) di Northern Softworks

Alcune di queste discussioni sono un po 'vecchie, quindi potrebbe essere necessario sperimentare o cercare ulteriormente per trovare ciò che funziona sul tuo Mac e OS X versione. Inoltre, potresti scoprire che la tecnica funziona in modo più efficace se imposti sul Mac qualche altra attività di elaborazione pesante da eseguire contemporaneamente, ad esempio la conversione di un file video di grandi dimensioni.


La modifica della priorità di un processo non è una garanzia che verrà eseguita lentamente. È solo un suggerimento per il sistema operativo che se c'è contesa per il tempo del processore, i processi con priorità più alte iniziano per primi. Senza che nulla si frapponga, un processo a bassa priorità verrà eseguito alla massima velocità.
Blrfl,

1

Sfortunatamente no. Non è possibile modificare la velocità di clock sui computer Macintosh. Non hanno un BIOS allo stesso modo delle schede madri Windows, quindi l'utente non può in alcun modo modificare la velocità di clock o giocherellare con i dispositivi I / O.

Il motivo è principalmente perché su un Mac, non è necessario modificare manualmente queste cose. L'hardware è già pre-costruito e il sistema operativo sa a quale hardware sarà / può essere collegato.


Mac OS X PU change cambiare dinamicamente la velocità di clock del processore, ad esempio per dare priorità alle prestazioni quando è collegato rispetto alla durata della batteria quando è a batteria, quindi questo non è proprio corretto - o almeno se è corretto è per la ragione sbagliata, cioè il sistema operativo non lo fa rendere questa impostazione facilmente accessibile.
Nekomatic

Buon punto. Ho modificato il post per chiarire questo
JamEngulfer

0

Sì, ma non è consigliato. La velocità di clock è controllata dal sistema operativo e dal processore stesso a causa di una serie di fattori, tra cui carico del processore, temperatura e disponibilità di energia.

Se riduci la batteria al 10-20%, scolleghi qualsiasi fonte di alimentazione esterna e riscaldi il laptop fino alla sua temperatura operativa massima, 95F (35C) , entrerà sicuramente in uno stato di alimentazione inferiore, incluso ridurre significativamente l'orologio del processore. Un piccolo tappetino riscaldante, come quelli usati per il mal di schiena, sotto il laptop può essere sufficiente e durante l'inverno può essere molto comodo per te.

Tuttavia, sarebbe meglio usare gli strumenti corretti per l'ottimizzazione delle prestazioni. Sì, puoi simulare il tuo vecchio ambiente e quindi utilizzare il tuo orologio interno, tuttavia il software che stai utilizzando ha orologi, timer e altri strumenti per comprendere le prestazioni del tuo lavoro. Dato che è probabile che tu possa aggiornare di nuovo tra diversi anni, o che tu possa utilizzare diversi computer e piattaforme di elaborazione nel frattempo, usare stampelle come emulatori non è una buona soluzione a lungo termine.

Ti suggerisco invece di utilizzare gli strumenti integrati. L'uso regolare ti consentirà di utilizzarli senza troppi sforzi aggiuntivi, in modo da poterli integrare al volo nel tuo software.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.