K д Я ☆ K * K u M เว้ยเฮ้ย View my profile


Midterm.... Dirichet มันเป็นยังงาย?

posted on 18 Dec 2008 18:07 by aniefefalus in CPEKMUTT

 

 

อ๊าก

 

 

ตารางสอบออกแล้ว แอ๊ว แอ๊ว แอ๊ว แอ๊ว ........................

 

 

ทำไม... พาราเรลสอบวันเดียวกับOS วะคะ -*- ช่างสร้างสรรค์  คนที่รู้จัก2อย่างนี้จะรู้ว่ามันนรกมากมาย 
แบบวิชามันเหมือนจะเกี่ยวเนื่องกันแบบกลายๆ  แต่พาราเรลไม่ลึกขนาด OS  เพราะง้น  มันก็จำแทนกันไม่ได้อยู่ดี  ก็ต้องจำๆไป  แค่ตอนนี้เรายังไม่ได้เริ่มจำ กร๊าก


ถ้าสอบวันเดียวกับยุ่นเราจะไม่บ่นเลยนะ  (คราวนี้ด่าถึงสววรค์ชั้นอธิการ  ท่องอ้วกแตกอ้วกแตน)

 

งั้นก็วันจันทร์หน้าแล้วดิ?  ทำไมเรายังทำตัวชิวอยู่เลยหว่า 555 

 

 

แถมยังง่วงๆปรือๆเหมือนคนขี้เซาเมาขี้ตา  เพราะนอนน้อยมาหลายคืน  ส่งงาน.... ยุ่น  OS(ถึงจะไม่ค่อยได้ช่วยเพื่อนทำก็เถอะ เอิ้ก  รู้สึกผิดT^T ) พาราเรลที่ทำโค้ดเผาๆ3คืนเสร็จ  ออกเน่าๆแต่ก็ใช้ได้ล่ะวะ

เดี๋ยวจะบรรยายตอนส่งให้ฟัง 555 ไม่อยากฟังก็ต้องฟัง  บังคับ *-*

 

เดี๋ยวชี้เเจงงานก่อน

พาราเรลคือการประมวลผลแบบขนาน  จะทำให้การวิเคราะห์คำสั่งโปรแกรมได้เร็วขึ้นเพราะมีจำนวนprocessorหลายตัว  ให้แบ่งงานกันทำแล้วก็ส่งข้อมูลที่ได้จากการคำนวณมาที่เครื่อง root เครื่องต้นทางที่ส่งงานทั้งหลายให้กับเครื่องลูกๆทั้งหลาย  อะไรเเบบเนี้ย

แล้วการบ้านอันที่คุณพี่แก๊ส  อาจารย์ที่สอนวิชานี้สั่งคือ  โปรแกรม dirichet (ดิริเข้)

 

คือการส่งผ่านความร้อนผ่านแผ่นเหล็กทางขอบ  โดยที่จะให้ความร้อนตรงขอบสม่ำเสมอ  แล้วก็ค่อยๆส่งความร้อนเข้าทางขอบจนถึงตรงกลาง  ส่งแต่ละครั้งก็คือจำนวนรอบเวลา  ยิ่งมาก  ความร้อนก็จะยิ่งแผเข้าตรงกลางมากเท่าขึ้น  จนกระทั่งทั้งแผ่นร้อนเท่ากันหมด 

 

ตัวอย่าง(ไม่ดิ  จริงๆก็ทำแบบนี้แล่ะ )

 

matrix  5x7

255         255         255         255         255         255         255

255             0             0             0             0             0         255

255             0             0             0             0             0         255

255             0             0             0             0             0         255       

255         255         255         255         255         255         255

 

ให้ 255 คือค่าความร้อนสูงสุดส่งจากขอบเข้าไป  เพราะฉะนั้นเมื่อค่าถึง255แล้วค่าก็จะไม่เปลี่ยน  เพราะมันร้อนที่สุดแล้ว  ยูโนว์?

แล้วก็คิดแบบนี้ค่ะ  สมมติเราจะเอาจุดไหนหาค่าความร้อน  เราก็เอาจุดรอบๆตัวมันอ่ะ  บวกกัน แล้วหาร8

255  255  255

255           0

255      0      0    ตัวหนาแดงคือจุดที่เราต้องการคิด

 

ก็จะได้เป็น  (255*5)/8  ถูกมั้ย  จะได้ 159 

255  255  255

255  159     0

255      0      0 

แบบนี  แล้วตัวต่อไปก็คิดแบบนี้ต่อไปเรื่อยๆ(คือจุดต่อจาก159อ่ะให้คิอว่าไอ้159เป็น0นะ  เพราะรอบแรกอยู่ให้คิอแต่ละตัวเวลาเท่ากัน  )

 

--- โวยวาย  เมื่อกี๊พิมพ์จะเสร็จแล้ว  เน็ทตัด  เลยหายเกลี้ยงเลย T[]T ---

 

 รอบแรก

255      255       255        255       255       255        255  
255      159         95          95         95       159        255  
255        95           0            0           0         95        255  
255      159         95          95         95       159        255  
255      255       255        255       255       255        255

 

รอบที่สอง

255     255        255        255       255       255        255  
255     183        139        119       139       183        255  
255     159          99          71         99       159        255  
255     183        139        119       139       183        255  
255     255        255        255       255       255        255

 

อะไรแบบเนี้ยยยยยยย   ก็จำนวนรอบมากค่าก็จะยิ่งเข้าใกล้ 255 มากขึ้น

นี่เอาโปรแกรมที่ทำมาคิดนะ  ขี้เกียจคิดเอง ฮ่าๆ 

 

มันฟังดูเหมือนง่ายนะ  แต่ว่ามันยากตรงที่อัลกอริทึ่ม  ว่าเราจะส่งข้อมูลไปที่processor อื่นๆไปทำอะไรบ้าง  แล้วก็ส่งข้อมูลกลับมา  แล้วก็ไอ้จำนวนแถวกับจำนวนหลักจะไม่ fixed ต่อให้เป็นกี่แถวกี่หลักก็ยังต้องคิดได้อยู่ 

 

ถ้ารันในจำนวน process ที่พี่เค้าจะเล่นไม่ได้ก็เจ๊ง

ถ้าคำนวณในแต่ละprocess ถูก แต่ส่งค่ามาผิดก็เจ๊ง

ถ้าส่งมาได้แต่รวมค่าทั้งหมดที่เครื่อง root ผิด  ก็เจ๊ง

ส่งค่าจากroot มาผิด  ก็  เจ๊ง

 

 

แสดงผลทั้งหมดออกมาเป็นอันเดียวไม่ได้    ก็

 

เจ๊ง

 

 

เอวัง  ประการฉะนี้  TvT  

 

 

แล้ววันอังคารที่ผ่านมาก็ถึงกำหนดส่งค่ะพี่น้อง  ไอ้โปรแกรมที่ทำเรานอยมาหลายวัน  บ้านช่องไม่กลับอยู่เผางานกะฝูงเพื่อน  ไฟลนตูดกันเลยทีเดียว  กว๊าก  ก็งมกับการส่งข้อมูลแบบคอลัมภ์  ตั้งวันนึงแถมคิดผิดอีกตะหาก -*- โคดเวงเลย

 

วิธีส่งงานของพี่แก๊ส  อาจารย์ที่สอนวิชานี้คือจะให้ส่งกับตัวพี่แก๊สแล้วก็กับพี่เบลล์(TA)  แล้วพี่เค้าก็โยน input file มาเป็นแบบนี้

 

มี  307 แถว !  521 หลัก !  วนทั้งหมด 500 รอบ

หน้าตาก็เหมือนกับที่เรายกตัวอย่างไปอ่ะ  แต่หน้าตาน่ากลั๊วน่ากลัวกว่านี้หลายร้อยล้านปีวองโกเล่

 

เอาวะ   หน้าตายังดูหล่อเหลามากกว่าไอ้อันที่พี่โยนมาให้ลองเทสต์โปรแกรมตัวเอง  อันที่โยนมาอันนั้นอ่ะ  นรกสันขวานมากมาย...

คือแบบ .....   ไม่เคยเห็นเท็กซ์ไฟล์ใหญ่ขนาด  19.5 MB มาก่อน.... 

 

แม่ง  ก็มีแค่เลข 0  กับเลข 255 เท่านั้นอ่ะนะ  ปาไปสิบเก้าเมก  เปิดไฟล์ทีนี่โหลดเป็นชาติ

อ่ะนะ  ก็เล่นมีหมื่นแถว  กับอีกพันกว่าหลัก  แหม่  จิ๊บๆ

 

แล้วเวลาลองรันนี่ก็  ให้ใช้วนเป็นหมื่นรอบ  ให้จั๊กจี้เล่นๆ 

 

อ่ะนะ  จั๊กจี้ไปป่ะ? 

 

 

ทำน้องชู ASUS เราค้างไปเลย

อีชู   RAM 2 GB  HDD 250 GB  ยังค้าง......

 

แบบเมาส์แน่นิ่ง   อาการย่ำแย่  แล้วเครื่องก็ดับไปอย่างสงบ...  อาเมน

 

 

 รู้สึกว่าเป็นครั้งแรกที่สงสารแลปทอปเอามากๆ 

ครั้งนี้อาจารย์ก็เลยหยวนให้  เอาแค่ร้อยกว่าๆพอ(เมตตาแล้วจริงๆ)   

 

แต่ว่าก่อนส่งนี่มีอาถรรพฺ์กับเพื่อนๆเรากันเกือบหมดเลยอ่ะ  แบบoutput file ออกมาไม่ได้ 
แค่output file ยังทำไม่ได้อ่ะ  ไม่รู้ทำไม  อาถรรพ์พาราเรลก่อนส่ง   อย่างเพื่อนเมเรานี่ก็คำนวณได้ค่าขยะออกมา  ทั้งๆที่เมื่อคืนเรากะมันก็ไถๆกันจนเสร็จ  ไม่มีอะไรผิดแล้วนะ  คอนเฟิร์ม! 

แต่ก็ดันมาเอ๋อก่อนส่งซะชิบ 

 

แต่ของเราไม่เป็นไรอ่ะ ^^  อีชูมันดวงแข็ง  แต่รันช้ากว่าเพื่อนไปหน่อย  แก้ไม่ได้อ่ะ  ทำไมเรารันอืดกว่าชาวบ้านวะ กว๊าก

พอถึงคิวเราส่ง

 

พี่เค้าก็ให้เรารันให้ output file ออกมา  แล้วพี่เค้าก็ดูๆผลที่ได้  พอดูแล้วว่ามันถูก(พี่แกก็ลากผ่านๆไปงั้นแล่ะ  เช็คคำตอบไปใยว่ามันถูกมั้ยตั้งหลายพันตัว ) 

พี่เค้าก็มาดูโค้ด 

 

เท่านั้นแล่ะ 

 

พี่แกก็  

 

 

 

ลบ ! 

 

 

 

 

 

 

 

O-o !!!!  ทำอะร๊ายยยยยยยยยยยยยยยยยยยยยย  ของคู้นนนนนนนนนนนนนนนนนนนนนนนนนน

 

 

 

พี่เค้าส่วนสำคัญยิ่งชีพของโปรแกรมไปอ่ะค่า!  ลบไป 1 บรรทัด  (อ่ะอย่ามาฮานะเคอะ โปรแกรมแต่ละอันนี่ถ้าลองไปลบซักตัวนึงของโค้ดแล้วล่ะก็  ชีวิตคุณจะบรรลัยทันทีเลยนะคะ!  แล้วยิ่งถ้าลบไปตอนที่ไม่รู้ตัวนี่  ชิหัยโคดๆค่า  )

แล้วพี่แกก็ให้เราพิมพ์ไอ้ส่วนนั้นอ่ะ  อีกทีนึง(เป็นวิธีการเช็คว่าลอกโค้ดรึว่าให้คนอื่นทำรึเปล่าของเค้าอ่ะ  ไม่ใช่ให้เราโชว์พาวอะไรหรอก) 

 

แล้วเราทำไงรู้มั้ยคะ ^^  พี่เบลล์แทบจะเอาโลห์มาประเคนให้กับวิธีเกรียนๆของเราเลยทีเดียว

 

 

เราก็...

 

 

 

 

 

 

 

 

 

CTRL   +  Z 

Undo  ซะเลย    ^^ แล้วโค้ดที่เคยอันตรธานหายไปนั้นก็ปรากฎขึ้นมาใหม่อีกครั้งแบบไม่ขาดตกบกพร่องใดๆทั้งสิ้น 

พี่เบลล์มองหน้าเราแทบจะงับหัวเราให้ขาดให้ได้  

 

เเล้วพี่เค้าก็ลบใหม่อีกรอบ 555  เราไม่แกล้งเค้าแล้วล่ะ  (พี่เบลล์เป็นพี่บัณฑิตเราปีนึงค่ะ  รุ่นเราเลยสนิทแล้วก็กล้าเล่นกับเค้า) 

เราก็เลยพิมพ์ๆไปตามที่ข้อนิ้วทั้ง 10 นิ้วของเรายังจดจำได้  โค้ดอันนี้ไม่ใช้สมองค่ะ  ใช้แค่นิ้วกับเมาส์ไถๆเอา  กร๊าก ๆ  ก็ไม่มีสมองอ่ะนะ  โฮะ

 

พอถูก พี่เค้าก็ลากๆๆๆ ไปดูส่วนอื่น  แล้วก็เอาอีกและ  ลบอีกและ

 

เราก็พิมพ์ใหม่อีกและ  แหม่ -*-  ดูบันเทิงเริงใจดีเนาะพี่เนาะ   แต่แล้วงานก็เข้าค่ะ  เราพิมพ์ MPI_Recv เป็น MPI_Isend 
พี่เบลล์ก็แกล้งเราอีก  อ้าว  ไหงพิมพ์ไม่เหมือนกันล่ะ 

เราก็แถๆไปว่าเราดู rank ไม่ทันอ่ะ  ก็พี่ลากโค้ดซะเร็วมองตามไม่ทันว่ามันอยู่ rank ไหน

 

พี่เค้าก็อืมๆ  แล้วก็เช็คเราผ่านไป  ทันใดนั้นเอง!  พี่แก๊สก็ปรากฎขึ้นอย่างผู้พิทักษ์แห่งหมอก !

 

หยุดก่อน   อธิบายให้ผมฟังก่อนสิครับ ^^   クフフ

ไอ้クフフ ไม่มีนะ  เรายังไม่อยากอธิบาย C++ ให้สัปป้าฟังหรอกนะ -*-  (ถ้าโกคุไม่ก็คุณฮิก็ว่าไปอย่าง  เอ้ย) 

 

 

เเล้วเราก็สวดสรภัญญะภาคภาษา C ให้เค้าฟัง  ฟังรู้เรื่องไม่รู้เรื่องเราไม่สนแระ  จะให้อธิบายภาษาชั้นสูงกว่านี้ก็ไม่สามารถจริงๆนะพี่  ก็ช้านเข้าใจอย่างเงี้ย 

 

แล้วพี่ก็เช็คขีดๆให้เรา  เอาเป็นว่าเราจะเข้าใจว่าของเราผ่านแล้วก็แล้วกันนะ  ฮ่าๆๆๆ  เอางั้นเลย

 

 

 

 

โอ้ว   ยาวเหยียด  จบเถอะเนาะ   บ่นอะไรไม่รู้ให้อ่านเยอะแยะ  เฮ่อ 

อ่านจนจบได้นี่   เข้าใจมั้ยอ่ะ?  กับภาษาที่เราเขียนๆไป  เราเขียนเองเรายังงงๆกับตัวเองเลยนะบางที  *-* 

 

โอย  พรุ่งนี้ส่ง Microsoft  Project  ทำยังไง  ทำไม่เปนนนนนน !!!!

 

 

ปล . อยากคอส   อยากไพรเวท  T^T  

ปล . เดือนหน้างานตรึม  มีรับน้อง  เลือกตั้ง  กว๊ากๆๆๆๆ    

Comment

Comment:

Tweet

เออ~

angry smile
ไม่ค่อยจะรู้เรื่องsad smile แต่ก็รู้ว่าเครียดค่ะ

ยังไงก็โชคดีน่ะค่ะconfused smile

#3 By on 2008-12-19 13:19

ctrl+z .. ทำไปได้ open-mounthed smile

วิธีนั้นก็สะดวกกว่าพิมพ์จริงๆ ล่ะนะ ฮ่าๆ
โชคดีกับข้อสอบน้อ big smile

#2 By tikyon on 2008-12-18 23:34

ฮ่าๆๆ

ไม่มีใครเม้นจิงๆด้วย

เพราะเค้าอ่านไม่รุเรื่องกันเฟ้ย

เอามาอัพทำม๊ายยยย


อ่านไปเราก็สะเทือนใจ (น้ำตาไหลไป)

ฮ่าๆๆ

อย่าไปเกร็ง งานต่อไปยากกว่า ฮ่าๆ

ปล . อยากคอส อยากไพรเวท T^T<-- อยากไปด้วย

#1 By แก๊งค์ล่าฉลามพม่า (202.44.8.100) on 2008-12-18 22:48