プロセッサのクロック速度を遅くする方法


12

最近、ときどき速すぎる新しいMacBook Proを購入しました。私は頻繁にMathematica用にプログラミングし、古い2007年のMacBook Proでは、動作が遅くなると非効率的なコードを感じることがよくありました(つまり、「ガベージコードを書いたのです。 ")。しかし、私の新しいMacでは、すべてが高速に動作します。

MacにCPUをたとえば1 GHzに減速させるスイッチがありますか?


拡張ディスカッションをチャットに移動しましょう。
bmike


私はすぐにこの漫画を覚えています:xkcd.com/1172
ちょうど半分

回答:


19

マイクロプロセッサの電力、周波数、クロック速度の直接的な関係のため、最小クロック速度バーを操作することは不可能だと思います。明らかにクロックには範囲があるため、たとえばシミュレーションを実行する場合、システムは範囲内で高速に実行するためにより多くの電力を必要とし、シミュレーションを停止するとドロップが表示されます。

解決策:または、MAC OS内で仮想化プログラム(仮想ボックスなど)上でプログラムを実行することを検討しましたか?次に、2番目のOSの実行専用のコア/ RAMの数を制限できます。その場合、プログラムの実行速度をはるかに遅くすることができます。バーチャライザーのリソースがはるかに少ないためです。これにより、柔軟性が大幅に向上し、障害が発生した場合は、戻って仮想化設定を変更できます。さらに興味深いことに、バーチャライザーを使用することで、バーチャライザーで実行されるパッケージ化された設定を別のマシンに持ち込んで実行することもできます。


3
VirtualBoxはエミュレーターではありません。それはバーチャライザーです。それが「VirtualBox」と呼ばれる理由です。CPUを仮想化し、エミュレートしません。たとえば、QEmuはエミュレーターです。(ただし、仮想化を使用できますが、可能であればデフォルトで使用します。)
ヨルグWミットタグ

1
@JörgWMittagバーチャライザーではありません。タイプ2ハイパーバイザーと呼ばれます。
マックスリード

1
プロセッサ数(親和性)、メモリ、最大CPU時間、および他の多くのリソースlinits上の制限がUNIXユーティリティを使用して、コマンドラインから単一のプロセスを設定することができるので、@DaveRose A VMは不要であるのulimitsysctlを -私は、これらの場合には覚えていませんユーティリティはデフォルトでインストールされます。XCodeを介してコマンドライン開発者ツールをインストールする必要がある場合があります。ulimitを設定し、シェルからMathematicaを実行します
古典的な

25

ソフトウェアの効率が心配な場合は、MacBookをフルスピードで実行し続けることができる、よりエンジニアリング指向のソリューションを提案します。

Mathematicaに組み込まれているプロファイラを使用します。これにより、低速のハードウェアでのみ動作するズボンの測定に頼ることなく、最も時間を消費する計算の部分を特定できます。


1
これにより、あるMacではコードが遅くなり、別のMacでは遅くなりませんか?良い情報ですが、このスレッドには関係がないようです。
bmike

@bmikeこれは良い情報です。Mathematicaプロファイラーについて知りませんでした。私の質問に直接答えるわけではありませんが、不必要になる可能性があります(+1)。おそらくコメントとして残しておくのがベストでしょう。
-QuantumDot

6
@bmikeは何も遅くせず、OPが実際に取得しようとしている問題、つまりMathematicaコードが効率的かどうかに対処します。
nekomatic

1

Blrflの答えで示唆されているように、プロファイリングはMathematicaコードが効率的かどうかを識別するためのより適切な方法です。ただし、実行速度を本当に遅くしたい場合は、Mathematicaプロセスの優先度を変更することでこれを実行できる場合があります。私はこれを試していませんが、これらのリンクの中に役立つ情報やソフトウェアが見つかるかもしれません:

Mac OS Xでプロセスの優先度を設定する方法はありますか?

Mac OS X(またはiOSなど)でプロセスを永続的に「拒否」する方法は?

Northern SoftworksによるAppriority(以前のRenicer)

ただし、これらの議論の一部は少し古いため、お使いのMacおよびOS Xバージョンで機能するものを見つけるために、さらに実験または検索する必要がある場合があります。また、Macで他の重い処理タスクを同時に実行するように設定すると、この手法がより効果的に機能することがあります(大きなビデオファイルの変換など)。


プロセスの優先度を変更しても、プロセスの実行が遅くなる保証はありません。オペレーティングシステムにとって、プロセッサ時間の競合がある場合、優先度の高いプロセスが先に進むというヒントにすぎません。何も邪魔することなく、優先度の低いプロセスが最高速度で実行されます。
Blrfl

1

残念だけど違う。Macintoshコンピューターでクロック速度を変更することはできません。Windowsマザーボードと同じようなBIOSがないため、ユーザーがクロック速度を変更したり、I / Oをいじったりすることはできません。

これは主に、Macではこれらを手動で変更する必要がないためです。ハードウェアはすでに構築済みであり、OSはどのハードウェアに接続/接続できるかを認識しています。


マックOS Xは、CANあるいは少なくともそれが正しいかどうかは、OSのdoesnのすなわち間違った理由のためだ-バッテリーの電池寿命対に接続したときに、これは本当に正しいではありませんので、優先順位付けの性能に例えば、動的にプロセッサのクロック速度を変更しますこの設定をすぐにアクセスできるようにしないでください。
nekomatic

いい視点ね。これを明確にするために投稿を編集しました
-JamEngulfer

0

はい、しかしそれはお勧めできません。クロック速度は、プロセッサの負荷、温度、電力の可用性などの多くの要因により、OSとプロセッサ自体によって制御されます。

バッテリーを10-20%に減らし、外部電源を切断し、ラップトップを最大動作温度である95F(35C)加熱すると、プロセッサクロックの大幅な低下を含め、確実に低電力状態になります。背中の痛みに使用されるものなど、ラップトップの下にある小さな加熱パッドで十分な場合があり、冬の間は非常に快適です。

ただし、パフォーマンスチューニングには正しいツールを使用することをお勧めします。はい、古い環境をシミュレートして独自の内部クロックを使用できますが、使用しているソフトウェアには、作業のパフォーマンスを理解するためのクロック、タイマー、およびその他のツールがあります。数年後に再びアップグレードする可能性が高いこと、またはその間に異なるコンピューターとコンピューティングプラットフォームを使用する可能性があることを考えると、エミュレーターのような松葉杖を使用することは、長期的な解決策ではありません。

代わりに、組み込みのツールを使用することをお勧めします。定期的に使用すると、追加の労力をかけずにそれらを使用できるので、それらをすぐにソフトウェアに統合できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.