การเปรียบเทียบวิธีการวนซ้ำ: จำนวนการวนซ้ำเทียบกับเวลาของ cpu


14

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


4
ฉันตั้งคำถามใหม่ของคุณเพื่อให้ชัดเจนยิ่งขึ้น โปรดตรวจสอบให้แน่ใจว่าฉันไม่ได้เปลี่ยนความหมายของคุณในทางใดทางหนึ่ง
Godric Seer

3
@GodricSeer การแก้ไขของคุณได้ปรับปรุงคำถามของฉัน ขอบคุณ
srijan

คำตอบ:


12

โดยทั่วไปการเปรียบเทียบประสิทธิภาพทั้งสองวิธีมีที่ของพวกเขา

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

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

ใช่แล้วมันสมเหตุสมผลแล้วที่จะให้ทั้งสองหมายเลข [1] และฉันเคยเห็นบ่อยๆในสิ่งพิมพ์ นอกจากนี้ยังมีตัวเลือกที่สาม:

  • เปรียบเทียบตัวเลขของการดำเนินงานระดับประถมศึกษา หากทั้งสองซ้ำประกอบด้วยชนิดเดียวกันของการดำเนินงานที่มีราคาแพงอย่างเหมาะสม แต่ต้องมีจำนวนที่แตกต่างกัน (อาจจะไม่ได้จำนวนเท่ากันในแต่ละซ้ำ) ก็จะทำให้ความรู้สึกที่จะนับรวมจำนวนของการดำเนินการเหล่านี้ ในกรณีของคุณผู้สมัครที่น่าจะเป็นการคูณเมทริกซ์เวกเตอร์หรือเมทริกซ์เมทริกซ์

[1] นำเสนอสถิติอย่างแน่นอนในการรันหลายครั้ง หากคุณแสดงถึงวิธีการอย่าลืมใส่ค่าเบี่ยงเบนมาตรฐานด้วย


5
อย่าใช้วิธี! หากคุณมีคะแนนทดสอบเพียงพอกับอินพุตแบบสุ่มให้วางแผนการแจกแจง
Bill Barth

1
@BillBarth - จุดดีแม้ว่าอาจจะไม่เป็นไปได้เสมอ แต่การให้ค่าเบี่ยงเบนมาตรฐานพร้อมกับค่าเฉลี่ยควรเป็นไปได้เสมอ ในความเป็นจริงสถิติที่นำเสนอสำหรับการรายงานประสิทธิภาพดูเหมือนคำถามติดตามที่ยอดเยี่ยม
Christian Clason

@BillBarth คุณทำได้ดี แต่ฉันใช้เมทริกซ์ทดสอบหลายตัวเพื่อเพิ่มลำดับ ในกรณีเช่นนี้มันเป็นไปไม่ได้ที่จะพล็อตเรื่องการกระจายตัวตั้งแต่นั้นมาฉันต้องพล็อตการกระจายสำหรับเมทริกซ์ทดสอบอื่น ๆ ทั้งหมด นั่นคือเหตุผลที่ฉันต้องการจัดระเบียบพวกเขา ขอบคุณสำหรับความคิดเห็นของคุณ
srijan

1
@srijan: คุณจะมีข้อมูลคุณควรพล็อตฮิสโตแกรมสำหรับตัวคุณเองทุกที่ที่คุณสามารถทำได้ คุณไม่ต้องเผยแพร่พวกเขาทั้งหมด แต่ฉันสัญญากับคุณว่ากราฟของการแจกแจงจะบอกคุณมากกว่าทะเลของตัวเลขหรือเพียงแค่ค่าเฉลี่ยเท่าที่เคยมีมา
Bill Barth

ฉันจะรวมเวลาดำเนินการต่อการทำซ้ำ เนื่องจากแต่ละเมทริกซ์นั้นแตกต่างกันคุณสามารถมีจำนวนการวนซ้ำที่แตกต่างกันซึ่งมีเวลาดำเนินการต่างกัน ร่วมกับสิ่งที่ @Cristian พูดเวลาดำเนินการต่อการทำซ้ำจะเป็นประโยชน์
jbcolmenares

4

ฉันพบว่าจำนวนการวนซ้ำเป็นตัวชี้วัดที่ทำให้เข้าใจผิดเพราะมันบ่งบอกถึง "ความเร็ว" เมื่อไม่ใช่ สำหรับตัวอย่างง่ายๆของการเปรียบเทียบผู้มีเงื่อนไขเบื้องต้นที่แตกต่างกันสองสามคนที่แสดงความแตกต่างนี้ดูที่นี่: http://www.dealii.org/developer/doxygen/deal.II/step_6.html#Possibilitiesforextensions


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

สิ่งที่ฉันพูดคือเรามักจะแสดง "จำนวนการทำซ้ำ" ให้เท่ากับ "เวลาที่ใช้ CPU" ซึ่งหมายความว่าวิธีที่ต้องใช้การทำซ้ำน้อยลงก็เร็วขึ้นเช่นกัน แต่นั่นไม่เป็นความจริงตามที่แสดงโดยตัวเลขที่ฉันเชื่อมโยง
Wolfgang Bangerth

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

2

ในกรณีที่ยังไม่ชัดเจนในคำตอบอื่น ๆ จำนวนซ้ำของสิ่งที่ดีสำหรับการเป็นข้อโต้แย้งใหญ่

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

ตัวอย่างเช่นมีแนวโน้มที่จะเพิกเฉยต่อค่าใช้จ่ายในการคำนวณดัชนีอาเรย์ซึ่งอาจรวมถึงเวลาส่วนใหญ่ของ CPU

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

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