ความเห็น: 1
เพิ่มความเร็วการคำนวณโดยใช้ DOS
ช่วงปีสองปีนี้ ผมทำวิจัยเกี่ยวกับการทำ stochastic simulation PK/PD แล้วมีปัญหาว่า เครื่องทำงานไม่เร็วพอ เวลาทำก็ใช้วิชวลเบสิกในเอ๊กเซล ซึ่งว่าไปแล้วมันก็เร็วนั่นแหละ แต่ความที่ใช้งานหนักมาก ก็จะทำให้โปรแกรมอืด แล้วทำให้ทำงานอย่างอื่นในเครื่องนั้นลำบาก รันแบบสองงานก็เหมือนมันจะแฮงค์ไปเลย
มาถึงจุดหนึ่ง ผมมานั่งคิดว่า เครื่องที่ผมใช้มันเป็น 4-core ซึ่งปรกติถ้ารันโปรแกรมเล็ก ๆ ที่เป็น DOS-compatible ซึ่งเป็นระบบปฎิบัติการที่โบราณสุด ๆ มันจะครองการคำนวณแค่ core เดียว
นั่นหมายความว่า ถ้าผมรันโปรแกรมใน DOS 4 งานพร้อมกัน มันจะแยกย้ายไปใช้แต่ละ core เป็นเอกเทศ ลองทดสอบดู ก็เป็นเช่นนั้นจริง ๆ
ทีนี้งานที่ผมทำ แต่เดิมเหมือนกับคำนวณทดสอบความเป็นไปได้แบบเรียงลำดับในหลายร้อยสถานการณ์ ผมก็ใช้วิธีว่า เขียนโปรแกรมที่รันใน DOS ได้ให้มันคำนวณแบบสุ่มสถานการณ์แล้วบันทึกลง text file
รันงานใน DOS (ใช้ Basic compiler) ผมลองจับเวลาดู จะช้ากว่ารันโดยใช้วิชวลเบสิกแบบหารสอง
แต่พอผมรันงานแบบขนาน 4 งานพร้อมกันแล้วเข้านอน ตื่นขึ้นมาก็เอา text file รายงานผลที่ได้ทั้งหมดมาเชื่อมต่อกัน แล้วไปเรียงข้อมูลเสียใหม่ มันกลายเป็นว่า ผมทำงานเร็วขึ้น 4 เท่า ซึ่งคิดสะระตะแล้ว ก็เป็นว่า ผมสามารถเร่งให้งานเสร็จเร็วขึ้นกว่าเดิมเท่าตัว
และที่ดีกว่านั้น ถ้าผมรันทิ้งไว้หลายเครื่อง ผมสามารถเร่งความเร็วการคำนวณได้อีกหลายเท่า
ดูไปแล้ว ของเก่า ถ้าใช้เป็น ผลก็อาจน่าทึ่งทีเดียว
บันทึกอื่นๆ
- เก่ากว่า « มอบหมายงานนักศึกษา 562-201 DIS ป...
28 กุมภาพันธ์ 2556 22:42
#84587
ตอนที่รันด้วย excel นั้น excel ใช้การทำงานกี่ core ครับ โปรแกรมคำนวณบางโปรแกรมจะใช้ความสามารถของการมีหลาย core ได้ ซึ่งเราอาจจะต้องระบุ/กำหนดว่าให้โปรแกรมนัิน ๆ ทำงานกี่ core พร้อม ๆ กัน
เราเอง