Originally posted by ZoLKoRn
View Post
รู้สึกว่าจะเริ่มยาวล่ะสำหรับ 32bit กับ 64bit...
จริงๆแล้วถ้าในกรณีของน้องไมค์น่ะ ถือว่าสอบผ่านแล้วครับแม้ว่าเขาจะใช้ 64bit แต่ไม่ได้ใช้ Mem All ก็สามารถให้เป็นอันดับ 1 ได้ เพราะอะไร ?
สำหรับ LinX ที่จริงแล้วจะเป็นโปรแกรม stress RAM มากกว่า CPU แต่ในการแข่งลีกนี้เป็นการเน้นที่ความเร็วซีพียูมันจึงมีปัญหาเล็กๆน้อยขึ้นมา
เจ้าขอกระทู้เขาก็ไม่อยากให้เกิดปัญหาอะไรหรอก เขาเองก็ไม่ผิดอะไรด้วย แต่ที่มีปัญหาเพราะความไม่ยอมกันของแต่ละท่าน และจากความไม่เข้า
ใจในตัวโปรแกรม...
คำว่า Mem All สำหรับ LinX นั้นจริงๆแล้วจะเป็นการปรับระดับของค่า Problem Size มากกว่า เพราะหากเราใช้ค่า Problem Size มากเท่าไหร่
ระบบก็จะดึงแรมมาใช้มากขึ้น จรงนี้เองเป็นข้อจำกัดของ Windows 32bit เพราะว่าตัว Windows จะสามารถดึงแรมมาใช้มากสุดเพียง 3.5GB
ขึ้นอยู่กับเครื่องแต่ละคนและ Windows ก็ยังจะมีฟีเจอร์ที่จะมีการจองพื้นที่แรมเอาไว้ใช้งาน ดังนั้นสังเกตว่าแม้เครื่องเราจะมีแรม 4GB ที่ติดตั้ง
และ Windows มองเห็น 3.xxGB แต่ทำไมเวลาเลือก Mem All แล้วมันไม่ดึงแรมมาทดสอบที่ 3.0GB หรือมากกว่า แต่ได้เพียงประมาณ 1.8GB
ซึ่งตรงนี้ก็เท่ากับว่าเราจะใช้ Problem Size ที่ระดับประมาณ 155xx Problem Size และจะใช้เวลาในการ Stress CPU ประมาณลูปละ 40-50วินาที
ดังนั้นเมื่อเลือกให้ทดสอบที่ 20loops ก็จะใช้เวลาทั้งหมดไม่เกิน 20 นาที...
แสดงว่าจากการบังคับ Mem ALL ที่ Windows 32bit ระบบของท่านจะ Burn CPU จริงๆแค่ประมาณ 20 นาทีและ Burn RAM ไปที่ 20 นาที
เช่นกัน แถมยังมีช่วงพักระหว่าง Loops อีกประมาณ 10 วินาที (ต้องเปิด Task Manager ดูจะเห็นว่าเสร็จหนึ่ง Loop ซีพียูจะดรอบลงไปไม่ถึง 100%
ประมาณ 10 วินาทีนิดหรือน้อยกว่า)
ต่อมาถ้าเป็น Windows 64bit ล่ะ.... กรณีที่บอกว่าต้องรันอย่างน้อย 20loops และใช้ Mem ALL เท่ากับว่าภาระของคนที่ใช้ Windows 64bit
จะหนักกว่ามาก เพราะเมื่อกด Mem ALL แล้ว LinX จะสามารถดึงแรมระบบจากทั้งหมด 4GB (กรณี Dual-Channel) มาใช้มากกว่า 3GB เพราะ
ตัว Windows เห็นแรมครบทั้ง 4GB ที่ติดตั้งลงไป เมื่อดึงแรมมาใช้มากค่า Problem Size ที่ใช้ก็จะมากกว่าที่รันบน 32bit ตัวอย่างเช่นถ้าใช้แรม
ที่ 3GB ค่า Problem Size จะอยุ่ที่ 200xx Problem Size เมื่อเป็นเช่นนี้ในการ Stress หรือสั่งให้ซีพียูคำนวณค่าก็จะนานขึ้นคือจะใช้เวลาต่อ
Loop ประมาณ 110 วินาทีหรือเกือบๆ 2 นาทีต่อ loop ดังนั้นหากบังคับรันที่ 20 loops ก็เท่ากับจะใช้เวลาทั้งหมด 40 นาทีโดยประมาณ
บทสรุปง่ายๆจะได้ว่า.....
ในระบบเดียวกันถ้าใช้ 32bit จะใช้ Problem Size ได้ประมาณ 15xxx แล้วใช้แรมประมาณ 1.8GB ใช้เวลาทดสอบประมาณ 20 นาที
ในระบบเดียวกันถ้าใช้ 64bit จะใช้ Problem Size ได้ประมาณ 20xxx แล้วใช้แรมประมาณ 3.0GB ใช้เวลาทดสอบประมาณ 40 นาที
สรุปแล้วใครดูดีกว่ากัน ???
ดังนั้นตรงนี้ผมจึงอยากเสนอว่า ถ้าจะให้เป็นธรรมที่สุดและง่ายต่อเจ้าของกระทู้สำหรับกติกาในปีหน้า ควรเปลี่ยนจากการบังคับ Mem ALL และ 20 Loops
ไปเป็นการกำหนดขนาดของ Problem Size แทนจะง่ายกว่า และถ้าจะให้ใช้ผลร่วมกันระหว่าง 32bit และ 64bit ก็ใช้ได้ โดยการกำหนดขนาดของ
Problem Size สูงสุดเท่าที่ 32bit จะใช้ได้คือประมาณ 15xxx และกำหนดมาได้อีกว่าให้รันกี่ Loops ซึ่งเวลาที่ออกมาทั้ง 64bit และ 32bit ก็
จะเท่าๆกัน ใช้แรมในระดับที่เท่าๆกัน ซึ่งจะแฟร์ทั้งสองฝ่าย แต่...การรันแบบนี้จะเอาค่า Flops ของ 32bit และ 64bit มาเทียบกันไม่ได้เท่านั้นเอง แต่ก็
ลีกทดสอบตรงนี้ไม่ได้เน้นและสนใจ เพราะจะเน้นไปที่ความเร็วของ CPU เป็นหลัก ใช่หรือไม่ ?
ข้างล่างนี้เป็นตัวอย่างจากที่ผมรันมาทั้ง 32bit และ 64bit ที่ระบบชุดเดียวกัน ซึ่งจะเห็นได้ชัดเจนขึ้นจากที่อธิบายมาทั้งหมด ให้สังเกตุที่เรื่องของ
Problem Size และเวลาในแต่ละลูปจนถึงเวลาสุทธิ
จริงๆแล้วถ้าในกรณีของน้องไมค์น่ะ ถือว่าสอบผ่านแล้วครับแม้ว่าเขาจะใช้ 64bit แต่ไม่ได้ใช้ Mem All ก็สามารถให้เป็นอันดับ 1 ได้ เพราะอะไร ?
สำหรับ LinX ที่จริงแล้วจะเป็นโปรแกรม stress RAM มากกว่า CPU แต่ในการแข่งลีกนี้เป็นการเน้นที่ความเร็วซีพียูมันจึงมีปัญหาเล็กๆน้อยขึ้นมา
เจ้าขอกระทู้เขาก็ไม่อยากให้เกิดปัญหาอะไรหรอก เขาเองก็ไม่ผิดอะไรด้วย แต่ที่มีปัญหาเพราะความไม่ยอมกันของแต่ละท่าน และจากความไม่เข้า
ใจในตัวโปรแกรม...
คำว่า Mem All สำหรับ LinX นั้นจริงๆแล้วจะเป็นการปรับระดับของค่า Problem Size มากกว่า เพราะหากเราใช้ค่า Problem Size มากเท่าไหร่
ระบบก็จะดึงแรมมาใช้มากขึ้น จรงนี้เองเป็นข้อจำกัดของ Windows 32bit เพราะว่าตัว Windows จะสามารถดึงแรมมาใช้มากสุดเพียง 3.5GB
ขึ้นอยู่กับเครื่องแต่ละคนและ Windows ก็ยังจะมีฟีเจอร์ที่จะมีการจองพื้นที่แรมเอาไว้ใช้งาน ดังนั้นสังเกตว่าแม้เครื่องเราจะมีแรม 4GB ที่ติดตั้ง
และ Windows มองเห็น 3.xxGB แต่ทำไมเวลาเลือก Mem All แล้วมันไม่ดึงแรมมาทดสอบที่ 3.0GB หรือมากกว่า แต่ได้เพียงประมาณ 1.8GB
ซึ่งตรงนี้ก็เท่ากับว่าเราจะใช้ Problem Size ที่ระดับประมาณ 155xx Problem Size และจะใช้เวลาในการ Stress CPU ประมาณลูปละ 40-50วินาที
ดังนั้นเมื่อเลือกให้ทดสอบที่ 20loops ก็จะใช้เวลาทั้งหมดไม่เกิน 20 นาที...
แสดงว่าจากการบังคับ Mem ALL ที่ Windows 32bit ระบบของท่านจะ Burn CPU จริงๆแค่ประมาณ 20 นาทีและ Burn RAM ไปที่ 20 นาที
เช่นกัน แถมยังมีช่วงพักระหว่าง Loops อีกประมาณ 10 วินาที (ต้องเปิด Task Manager ดูจะเห็นว่าเสร็จหนึ่ง Loop ซีพียูจะดรอบลงไปไม่ถึง 100%
ประมาณ 10 วินาทีนิดหรือน้อยกว่า)
ต่อมาถ้าเป็น Windows 64bit ล่ะ.... กรณีที่บอกว่าต้องรันอย่างน้อย 20loops และใช้ Mem ALL เท่ากับว่าภาระของคนที่ใช้ Windows 64bit
จะหนักกว่ามาก เพราะเมื่อกด Mem ALL แล้ว LinX จะสามารถดึงแรมระบบจากทั้งหมด 4GB (กรณี Dual-Channel) มาใช้มากกว่า 3GB เพราะ
ตัว Windows เห็นแรมครบทั้ง 4GB ที่ติดตั้งลงไป เมื่อดึงแรมมาใช้มากค่า Problem Size ที่ใช้ก็จะมากกว่าที่รันบน 32bit ตัวอย่างเช่นถ้าใช้แรม
ที่ 3GB ค่า Problem Size จะอยุ่ที่ 200xx Problem Size เมื่อเป็นเช่นนี้ในการ Stress หรือสั่งให้ซีพียูคำนวณค่าก็จะนานขึ้นคือจะใช้เวลาต่อ
Loop ประมาณ 110 วินาทีหรือเกือบๆ 2 นาทีต่อ loop ดังนั้นหากบังคับรันที่ 20 loops ก็เท่ากับจะใช้เวลาทั้งหมด 40 นาทีโดยประมาณ
บทสรุปง่ายๆจะได้ว่า.....
ในระบบเดียวกันถ้าใช้ 32bit จะใช้ Problem Size ได้ประมาณ 15xxx แล้วใช้แรมประมาณ 1.8GB ใช้เวลาทดสอบประมาณ 20 นาที
ในระบบเดียวกันถ้าใช้ 64bit จะใช้ Problem Size ได้ประมาณ 20xxx แล้วใช้แรมประมาณ 3.0GB ใช้เวลาทดสอบประมาณ 40 นาที
สรุปแล้วใครดูดีกว่ากัน ???
ดังนั้นตรงนี้ผมจึงอยากเสนอว่า ถ้าจะให้เป็นธรรมที่สุดและง่ายต่อเจ้าของกระทู้สำหรับกติกาในปีหน้า ควรเปลี่ยนจากการบังคับ Mem ALL และ 20 Loops
ไปเป็นการกำหนดขนาดของ Problem Size แทนจะง่ายกว่า และถ้าจะให้ใช้ผลร่วมกันระหว่าง 32bit และ 64bit ก็ใช้ได้ โดยการกำหนดขนาดของ
Problem Size สูงสุดเท่าที่ 32bit จะใช้ได้คือประมาณ 15xxx และกำหนดมาได้อีกว่าให้รันกี่ Loops ซึ่งเวลาที่ออกมาทั้ง 64bit และ 32bit ก็
จะเท่าๆกัน ใช้แรมในระดับที่เท่าๆกัน ซึ่งจะแฟร์ทั้งสองฝ่าย แต่...การรันแบบนี้จะเอาค่า Flops ของ 32bit และ 64bit มาเทียบกันไม่ได้เท่านั้นเอง แต่ก็
ลีกทดสอบตรงนี้ไม่ได้เน้นและสนใจ เพราะจะเน้นไปที่ความเร็วของ CPU เป็นหลัก ใช่หรือไม่ ?
ข้างล่างนี้เป็นตัวอย่างจากที่ผมรันมาทั้ง 32bit และ 64bit ที่ระบบชุดเดียวกัน ซึ่งจะเห็นได้ชัดเจนขึ้นจากที่อธิบายมาทั้งหมด ให้สังเกตุที่เรื่องของ
Problem Size และเวลาในแต่ละลูปจนถึงเวลาสุทธิ
Problem size โคตรต่ำ แหะๆ กำหนดเป็นขั้นต่ำก็คงลำบาก มีเวลานั่งคิดก่อนถึงปีหน้า
นี่ครับ จับภาพมาสดๆ บู๊ตมาใหม่ๆได้แค่นี้

Comment