วิธีลดความเร็วสัญญาณนาฬิกาของโปรเซสเซอร์


12

ฉันเพิ่งซื้อ MacBook Pro ใหม่ซึ่งบางครั้งก็เร็วเกินไป ฉันมักจะเขียนโปรแกรมสำหรับMathematicaและในปี 2007 MacBook Pro รุ่นเก่าของฉันฉันมักจะรู้สึกว่ารหัสไม่มีประสิทธิภาพเมื่อมันทำงานช้า (นั่นคือเมื่อฉันตัดสินใจว่า "gee ฉันเขียนรหัสขยะบางอย่าง) ฉันควรใช้เวลาสองชั่วโมง ") อย่างไรก็ตามสำหรับ Mac เครื่องใหม่ของฉันทุกอย่างทำงานได้อย่างรวดเร็ว

มีสวิตช์บน Mac ที่ให้ฉันชะลอความเร็ว CPU ไปที่ 1 GHz หรือไม่?


ขอย้ายการอภิปรายขยายการแชท
bmike

คุณควรดูที่apple.stackexchange.com/questions/24998/…
Max Ried

ฉันจำการ์ตูนนี้ได้ทันที: xkcd.com/1172
justhalf

คำตอบ:


19

ฉันไม่คิดว่ามันเป็นไปได้ที่จะจัดการกับแถบความเร็วสัญญาณนาฬิกาขั้นต่ำเพียงเพราะความสัมพันธ์โดยตรงระหว่างพลังงานความถี่และความเร็วสัญญาณนาฬิกาของโปรเซสเซอร์ไมโคร เห็นได้ชัดว่านาฬิกามีช่วงดังนั้นตัวอย่างเช่นสำหรับการจำลองการทำงานระบบใช้พลังงานมากขึ้นในการทำงานเร็วขึ้นภายใต้ช่วงและจากนั้นเมื่อคุณหยุดการจำลองที่คุณเห็นการลดลง

โซลูชัน : คุณพิจารณาอีกวิธีหนึ่งหรือไม่โดยรันโปรแกรมภายใน MAC OS แต่ใช้เวอร์ชวลไลเซอร์ (เช่นกล่องเสมือน) จากนั้นคุณสามารถ จำกัด จำนวนคอร์ / RAM ที่อุทิศให้กับการใช้งานระบบปฏิบัติการที่สอง ในกรณีนั้นโปรแกรมสามารถบังคับให้รันช้าลงมาก เนื่องจาก virtualizer มีทรัพยากรต่ำกว่ามาก สิ่งนี้จะช่วยให้คุณมีความยืดหยุ่นมากขึ้นและในกรณีที่เกิดความล้มเหลวคุณสามารถย้อนกลับและเปลี่ยนการตั้งค่า virtualizer ที่น่าสนใจคือคุณสามารถนำการตั้งค่าแบบแพคเกจที่ทำงานบนเวอร์ชวลไลเซอร์ไปยังเครื่องอื่นและรันที่นั่นได้เช่นกันโดยมีเวอร์ชวลไลเซอร์ที่แน่นอน


3
VirtualBox ไม่ใช่อีมูเลเตอร์ มันเป็น virtualizer นั่นคือเหตุผลที่เรียกว่า "VirtualBox" มันทำให้ซีพียูเสมือนจริง แต่ไม่ได้จำลอง ตัวอย่างเช่น QEmu เป็นอีมูเลเตอร์ (แม้ว่าจะสามารถใช้การจำลองเสมือนได้ แต่โดยค่าเริ่มต้นจะทำได้ถ้าเป็นไปได้)
Jörg W Mittag

1
@ JörgWMittagมันไม่ใช่ virtualizer มันเรียกว่าไฮเปอร์ไวเซอร์ประเภท 2
Max Ried

1
@DaveRose A vm ไม่จำเป็นเนื่องจากข้อ จำกัด เกี่ยวกับจำนวนตัวประมวลผล (affinity), หน่วยความจำ, เวลา cpu สูงสุดและ linits ทรัพยากรอื่น ๆ สามารถตั้งค่าสำหรับกระบวนการเดียวผ่านบรรทัดคำสั่งโดยใช้ยูทิลิตี้ unix ulimitและsysctl - ฉันจำไม่ได้ว่า ติดตั้งยูทิลิตี้ตามค่าเริ่มต้นคุณอาจต้องติดตั้งเครื่องมือสำหรับผู้พัฒนาบรรทัดคำสั่งผ่าน XCode คุณจะตั้ง ulimit และเรียกใช้ Mathematica จาก shell
crasic

25

หากข้อกังวลของคุณคือประสิทธิภาพของซอฟต์แวร์ของคุณฉันขอแนะนำวิธีแก้ปัญหาเชิงวิศวกรรมเพิ่มเติมที่จะทำให้ MacBook ของคุณทำงานได้อย่างเต็มประสิทธิภาพ:

ใช้Profiler ที่สร้างขึ้นใน Mathematica สิ่งนี้จะช่วยให้คุณระบุส่วนต่าง ๆ ของการคำนวณของคุณที่ใช้เวลามากที่สุดโดยไม่ต้องใช้การวัดที่นั่งแบบกางเกงที่ใช้กับฮาร์ดแวร์ที่ทำงานช้าเท่านั้น


1
สิ่งนี้จะทำให้โค้ดใน Mac เครื่องหนึ่งช้าลงและจะไม่ทำงานในอีกเครื่องได้อย่างไร มันเป็นข้อมูลที่ดี แต่ดูเหมือนจะไม่เกี่ยวข้องกับหัวข้อนี้
bmike

@bmike นี่เป็นข้อมูลที่ดี ฉันไม่รู้เกี่ยวกับ Mathematica profiler แม้ว่าจะไม่ตอบคำถามของฉันโดยตรง แต่อาจช่วยทำให้ไม่จำเป็น (+1) บางทีอาจจะเป็นความคิดเห็นที่ดีที่สุด
QuantumDot

6
@ เหมือนกับว่ามันไม่ทำให้อะไรช้าลงมันแก้ไขปัญหาที่ OP กำลังพยายามทำอยู่นั่นคือรหัส Mathematica ของเขา / เธอนั้นมีประสิทธิภาพหรือไม่
nekomatic

1

การทำโปรไฟล์ตามคำแนะนำในคำตอบของ Blrfl เป็นวิธีที่เหมาะสมกว่าในการระบุว่ารหัส Mathematica ของคุณมีประสิทธิภาพหรือไม่ อย่างไรก็ตามหากคุณต้องการชะลอการเรียกใช้งานคุณอาจทำได้โดยการเปลี่ยนลำดับความสำคัญของกระบวนการ Mathematica ฉันไม่ได้ลอง แต่คุณอาจพบข้อมูลหรือซอฟต์แวร์ที่เป็นประโยชน์ในลิงค์เหล่านี้:

มีวิธีใดที่จะกำหนดลำดับความสำคัญของกระบวนการใน Mac OS X หรือไม่?

วิธี "renice" กระบวนการอย่างถาวรใน Mac OS X (หรือ iOS ฯลฯ )

Appriority (Renicer เดิม) โดย Northern Softworks

การสนทนาบางส่วนนั้นค่อนข้างเก่าดังนั้นคุณอาจต้องทดลองหรือค้นหาเพิ่มเติมเพื่อค้นหาสิ่งที่ใช้ได้กับ Mac และ OS X เวอร์ชันของคุณ นอกจากนี้คุณอาจพบว่าเทคนิคนี้ทำงานได้อย่างมีประสิทธิภาพมากขึ้นถ้าคุณตั้งค่า Mac ของคุณให้ทำงานประมวลผลหนักอื่น ๆ ในเวลาเดียวกัน - แปลงไฟล์วิดีโอขนาดใหญ่


การเปลี่ยนลำดับความสำคัญของกระบวนการไม่รับประกันว่าจะทำงานช้า มันเป็นเพียงคำใบ้สำหรับระบบปฏิบัติการว่าหากมีการช่วงชิงเวลาโปรเซสเซอร์จะมีกระบวนการที่มีลำดับความสำคัญสูงกว่าก่อน กระบวนการที่ไม่มีลำดับความสำคัญต่ำจะทำงานที่ความเร็วสูงสุดโดยไม่มีสิ่งใดเข้ามา
Blrfl

1

น่าเสียดายที่ไม่มี คุณไม่สามารถเปลี่ยนความเร็วสัญญาณนาฬิกาในคอมพิวเตอร์ Macintosh พวกเขาไม่มี BIOS ในลักษณะเดียวกับที่เมนบอร์ด Windows ทำดังนั้นจึงไม่มีวิธีที่ผู้ใช้สามารถเปลี่ยนความเร็วนาฬิกาหรือซอกับสิ่ง I / O

เหตุผลส่วนใหญ่เป็นเพราะบน Mac คุณไม่จำเป็นต้องเปลี่ยนสิ่งเหล่านี้ด้วยตนเอง ฮาร์ดแวร์ได้ถูกสร้างไว้ล่วงหน้าแล้วและระบบปฏิบัติการจะรู้ว่าจะเชื่อมต่อกับฮาร์ดแวร์ใด


Mac OS X สามารถเปลี่ยนความเร็วสัญญาณนาฬิกาของหน่วยประมวลผลแบบไดนามิกตัวอย่างเช่นจัดลำดับความสำคัญของประสิทธิภาพเมื่อเสียบกับอายุการใช้งานของแบตเตอรี่เมื่อใช้แบตเตอรี่ดังนั้นจึงไม่ถูกต้องจริงๆ - หรืออย่างน้อยถ้าถูกต้องเพราะเหตุผลผิดเช่น OS ไม่ ไม่สามารถเข้าถึงการตั้งค่านี้ได้อย่างง่ายดาย
nekomatic

จุดดี. ฉันแก้ไขโพสต์เพื่อชี้แจงสิ่งนี้
JamEngulfer

0

ใช่ แต่มันไม่แนะนำ ความเร็วสัญญาณนาฬิกาถูกควบคุมโดยระบบปฏิบัติการและตัวประมวลผลเองเนื่องจากปัจจัยหลายอย่างรวมถึงตัวโหลดโปรเซสเซอร์อุณหภูมิและความพร้อมใช้งานของพลังงาน

หากคุณลดแบตเตอรีลงเหลือ 10-20% ให้ถอดแหล่งพลังงานภายนอกออกและทำให้แล็ปท็อปมีอุณหภูมิการทำงานสูงสุด95F (35C)มันจะเข้าสู่สถานะพลังงานที่ลดลงอย่างแน่นอนรวมถึงการลดนาฬิกาโปรเซสเซอร์ลงอย่างมาก แผ่นความร้อนขนาดเล็กเช่นที่ใช้สำหรับอาการปวดหลังด้านล่างของแล็ปท็อปอาจเพียงพอและในช่วงฤดูหนาวอาจจะสะดวกสบายสำหรับคุณ

อย่างไรก็ตามจะเป็นการดีกว่าถ้าใช้เครื่องมือที่ถูกต้องสำหรับการปรับประสิทธิภาพ ใช่คุณสามารถจำลองสภาพแวดล้อมแบบเก่าของคุณและใช้นาฬิกาภายในของคุณเองอย่างไรก็ตามซอฟต์แวร์ที่คุณใช้มีนาฬิกาตัวจับเวลาและเครื่องมืออื่น ๆ เพื่อทำความเข้าใจกับประสิทธิภาพการทำงานของคุณ ระบุว่าคุณอาจอัพเกรดอีกครั้งในอีกหลายปีหรือคุณอาจใช้คอมพิวเตอร์และแพลตฟอร์มการคำนวณต่าง ๆ ในช่วงเวลาระหว่างการใช้ crutches เช่นอีมูเลเตอร์ไม่ใช่วิธีแก้ปัญหาระยะยาวที่ดี

ฉันขอแนะนำให้คุณใช้ประโยชน์จากเครื่องมือในตัว การใช้งานปกติจะช่วยให้คุณสามารถใช้งานได้โดยไม่ต้องใช้ความพยายามมากเกินไปเพื่อให้คุณสามารถรวมเข้ากับซอฟต์แวร์ของคุณได้ทันที

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.