Como diminuir a velocidade do clock do processador

12

Recentemente, comprei um novo MacBook Pro, que às vezes é rápido demais. Eu costumo programar para o Mathematica e, no meu antigo MacBook Pro de 2007, geralmente sinto um código ineficiente quando executado lentamente (é quando eu decido "caramba, escrevi um código de lixo. Talvez devesse passar algumas horas ajustando-o "). No entanto, no meu novo Mac, tudo corre muito rápido.

Existe um interruptor no Mac que permita diminuir a velocidade da CPU para, digamos, 1 GHz?

Ponto quântico
fonte
Vamos passar a discussão estendida para o chat .
Bmike
Você deve dar uma olhada em apple.stackexchange.com/questions/24998/…
Max Ried
Lembro-me imediatamente deste quadrinho: xkcd.com/1172
justhalf

Respostas:

19

Eu não acho que é possível manipular a barra de velocidade mínima do relógio, simplesmente por causa da relação direta entre potência, frequência e velocidade do relógio de um microprocessador. Obviamente, o relógio tem um alcance, portanto, por exemplo, para executar simulações, o sistema gasta mais energia para correr mais rápido abaixo do intervalo e, quando você para de simular, vê a queda.

Solução : Como alternativa, você considerou executar os programas no MAC OS, mas em um virtualizador (por exemplo, caixa virtual)? Você pode limitar o número de núcleos / RAM dedicados à execução do segundo sistema operacional. Nesse caso, os programas podem ser forçados a rodar muito mais devagar; porque o virtualizador tem recursos muito mais baixos. Isso lhe dará muito mais flexibilidade e, em caso de falha, você pode voltar e alterar as configurações do virtualizador. O mais interessante é que você pode trazer as configurações empacotadas que são executadas no virtualizador para outra máquina e executá-las lá, tendo o virtualizador lá, é claro.

o-0
fonte
3
VirtualBox não é um emulador. É virtualizador. É por isso que se chama "VirtualBox". Ele virtualiza a CPU, não a emula. QEmu, por exemplo, é um emulador. (Embora possa usar a virtualização, e vontade por padrão fazê-lo, se possível.)
Jörg W Mittag
1
@ JörgWMittag Não é um virtualizador. É chamado de hipervisor tipo 2.
Max Ried
1
@DaveRose Uma vm é desnecessária porque os limites de contagem de processadores (afinidade), memória, tempo máximo da CPU e muitas outras linhas de recursos podem ser configurados para um único processo através da linha de comando usando utilitários unix ulimit e sysctl - não me lembro se estes Como os utilitários são instalados por padrão, pode ser necessário instalar as ferramentas do desenvolvedor de linha de comando por meio do XCode. Você deve definir ulimit e executar Mathematica do shell
crasic
25

Se sua preocupação é com a eficiência do seu software, deixe-me sugerir uma solução mais orientada para a engenharia que permitirá manter o seu MacBook funcionando a toda velocidade:

Use o criador de perfil incorporado no Mathematica . Isso permitirá que você identifique as partes de seus cálculos que consomem mais tempo sem ter que recorrer a medições simples que funcionam apenas em hardware lento.

Blrfl
fonte
1
Como isso desaceleraria o código em um Mac e não em outro? É uma boa informação, mas não parece relevante para esta discussão.
bmike
@bmike Esta é uma boa informação. Eu não sabia sobre o profiler do Mathematica. Embora não responda diretamente à minha pergunta, ela pode ajudar a torná-la desnecessária (+1). Talvez fosse melhor deixar um comentário.
precisa saber é o seguinte
6
O @bmike não diminui a velocidade, trata do problema que o OP está tentando resolver, isto é, se o seu código Mathematica é eficiente ou não.
nekomatic
1

A criação de perfil, conforme sugerido na resposta de Blrfl, é a maneira mais apropriada de identificar se seu código do Mathematica é ou não eficiente. No entanto, se você realmente quiser diminuir a execução, poderá fazê-lo alterando a prioridade do processo do Mathematica. Eu não tentei isso, mas você pode encontrar informações ou software úteis entre esses links:

Existe alguma maneira de definir a prioridade de um processo no Mac OS X?

Como "renovar" permanentemente um processo no Mac OS X (ou iOS, etc)?

Appriority (anteriormente Renicer) pela Northern Softworks

Algumas dessas discussões são um pouco antigas, portanto, talvez seja necessário experimentar ou pesquisar mais para descobrir o que funciona na versão do seu Mac e OS X. Além disso, você pode achar que a técnica funciona de forma mais eficaz se você configurar outra tarefa de processamento pesado para o seu Mac ao mesmo tempo - por exemplo, convertendo um grande arquivo de vídeo.

nekomatic
fonte
Alterar a prioridade de um processo não é uma garantia de que ele será executado lentamente. É apenas uma dica para o sistema operacional de que, se houver uma disputa pelo tempo do processador, os processos com prioridades mais altas serão os primeiros. Sem que nada atrapalhe, um processo de baixa prioridade será executado a toda velocidade.
Blrfl
1

Infelizmente não. Você não pode alterar a velocidade do relógio em computadores Macintosh. Eles não possuem um BIOS da mesma maneira que as placas-mãe do Windows, portanto não há como o usuário mudar a velocidade do relógio ou mexer nas coisas de E / S.

A razão para isso é principalmente porque, em um Mac, você não precisa alterar manualmente essas coisas. O hardware já está pré-fabricado e o sistema operacional sabe a que hardware será / poderá ser conectado.

JamEngulfer
fonte
O Mac OS X PODE alterar a velocidade do clock do processador dinamicamente, por exemplo, para priorizar o desempenho quando conectado versus a duração da bateria quando estiver com bateria, portanto, isso não está realmente correto - ou pelo menos se estiver correto, é pelo motivo errado, ou seja, o SO não torne essa configuração facilmente acessível.
Nekomatic
Bom ponto. Eu editei o post para esclarecer isso
JamEngulfer
0

Sim, mas não é aconselhável. A velocidade do relógio é controlada pelo sistema operacional e pelo próprio processador devido a vários fatores, incluindo carga do processador, temperatura e disponibilidade de energia.

Se você reduzir a bateria para 10-20%, desconectar qualquer fonte de energia externa e aquecer o laptop até a temperatura máxima de operação, 95F (35C) , ele certamente entrará em um estado de energia mais baixo, incluindo a redução significativa do clock do processador. Uma pequena almofada de aquecimento, como as usadas para dores nas costas, abaixo do laptop pode ser suficiente e, durante o inverno, pode ser muito confortável para você.

No entanto, seria melhor usar as ferramentas corretas para ajustar o desempenho. Sim, você pode simular seu ambiente antigo e, assim, usar seu próprio relógio interno; no entanto, o software que você está usando possui relógios, cronômetros e outras ferramentas para entender o desempenho do seu trabalho. Dado que você provavelmente poderá atualizar novamente em vários anos ou usar diferentes computadores e plataformas de computação nesse período, usar muletas como emuladores não é uma boa solução a longo prazo.

Sugiro que você use as ferramentas integradas. O uso regular permitirá que você os use sem muito esforço adicional, para que você possa integrá-los ao seu software em tempo real.

Adam Davis
fonte