วันนึ้เริ่มต้นเขียนรายงานโครงการเพื่อชาติกันหน่อยว่าทีมงานทำไปถึงไหนแล้ว ? สถาปัตยกรรมที่ใช้เป็นอย่างไร ? แนวทางการแก้ปัญหาที่เกิดขึ้น ? โดยมีหน่วยงานที่เกี่ยวข้องเพื่อสนับสนุนงานนี้ได้แก่
ระบบนี้แต่ก่อนประมวลผลด้วยโปรแกรมจำลองแบบลำดับชื่อ TUNAMI (Tohoku University Numerical Analysis Model for Investigation of tsunamis) ซึ่งใช้เวลาประมวลผลประมาณ 6-8 ชั่วโมง ปัจจุบันเราสามารถพัฒนาให้ประมวลผลแบบขนานบนคอมพิวเตอร์สมรรถนะสูงด้วยเวลาเพียง 35-40 นาที ทำให้แนวคิดการเตือนภัยล่วงหน้าก่อนที่คลื่นจะเข้าถึงชายฝั่งมีแนวโน้มเป็นจริงได้ (Realtime Simulation)
ปัญหาที่ถือว่าท้าทายไม่แพ้กันคือ ผลจากการจำลองจะได้จำนวนไฟล์ปริมาณมาก และมีขนาดไฟล์โดยประมาณ 30 GB ต่อ การจำลองหนึ่งครั้ง ทำให้การถ่ายโอนไฟล์จากเครื่องคอมพิวเตอร์สมรรถนะสูง (ทั้งที่ Tsubame และ Tera) ไปยังเครื่องเซิร์ฟเวอร์สำหรับทำ Visualization เพื่อทำภาพเสมือนจริงสามมิติ และท้ายสุดคือส่งผลลัพธ์ไปยังระบบพอร์ทัลเพื่อออกประกาศเตือนภัยเป็นจะไปไม่ได้เลยในเวลาที่จำกัด เนื่องจากแม้ว่าจะประมวลผลโปรแกรมจำลองแค่ 35-40 นาทีแต่เวลาในการทำภาพเสมือนจริงนั้นยาวนานไม่แพ้กัน
ดังนั้นขณะนี้เราจึงเปลี่ยนกลยุทธ์จากการทำ Visualization แบบลำดับไปเป็นแบบขนานอย่างง่าย ด้วยเห็นผลที่ว่าภาพเสมือนจริงแต่ละภาพไม่ขึ้นต่อกัน ดังนั้นจึงเป็นเรื่องที่ง่ายมากที่จะจับคู่ 1-50 ภาพต่อ 1 processor ซึ่งตอนนี้กำลังพัฒนาอยู่ครับ
สำหรับการเตือนภัยคลึ่นสึนามิในประเทศไทยเมื่อเกิดแผ่นเดินไหวใต้ท้องทะเล มีระยะเวลาไม่เกิน 90 นาที โดยมีช่วงเวลาดังนี้
ยังมีเรื่องราวของการทำ precomputed database สำหรับฐานข้อมูลการเตือนภัยคลื่นสึนามิล่วงหน้า (อ้างอิงตามรอยแยกของแผ่นเปลือกโลก) ที่จะอัปเดทให้ภายหลังครับ
ปล. คงพูดได้เต็มปากเต็มคำว่า ทีมงาน blognone นี่ใจกว้างดีแท้ ที่ให้ทั้งคนอ่านคนเขียนเข้ามาร่วมหมกมุ่นชุมนุม จนกลายเป็นชุมชนใหญ่โตและมีเหยี่ยวข่าวไอทีที่มีศักยภาพชนิด "ไทยทำไทยใช้ไทยเจริญ" กันเลยทีเดียว ไม่ว่าจะเป็นข่าวระดับนานาชาติ หรือ ระดับชาติ ก็หาอ่านกันง่ายผ่านเว็บที่นี่ที่เดียว ขอบคุณครับ
Comments
ยินดีครับ ที่เห็นอะไรที่เป็นรูปธรรมเสียที
ว่าแต่ต้องมีการซ้อมเหมือนซ้อมหนีไฟบนอาคารด้วยไหมเนี่ยครับ
I will change the world, to the better day.
I will change the world, to the better day.
ว้าว อยากเห็นหน้าตาโปรแกรมนีจังว่าจะเริมหรูขนาดไหน
notz-dev :: RIA Develop & Design
ย่อหน้าแรกเอาไว้เป็น ปล. หรือใส่เป็นคอมเมนต์ดีกว่านะครับ เวลาคนอ่านจะได้เห็นเนื้อหาเลย
แต่ยังไงก็ขอรับคำชมไว้ครับ :D
LewCPE
lewcpe.com, @wasonliw
ขอบคุณครับที่ช่วยแนะนำ ตัวพอร์ทัลไม่ได้เลิศหรูมากครับ เพียงแต่ผสมผสานเครื่องมือหลายชนิดเข้าด้วยกันเพื่อให้ "ประชาชน" ทำความเข้าใจผลกระทบของคลื่นสึนามิได้ง่าย
ส่วนการซ้อม ฯ ก็เป็นอีกกระบวนการหนึ่งครับ ^.^ ระบบบอกเพียงว่าต้องอพยพไปไกลเท่าไหร่ ที่ไหน ? เมื่อไหร่ ? ของพื้นที่เสี่ยงภัยถึงจะปลอดภัย และคลื่นสูง ณ ชายฝั่งเพียงใด ? พร้อมกับมีภาพเคลื่อนไหวสามมิติเสมือนจริงให้ดูประกอบเป็นแนวทางการอพยพด้วยครับ
คงต้องช่วยกันหลายฝ่าย "อย่างคนมีกึ๋น" เค้าทำกัน :)
mk ส่งข่าวนี้ให้ดูเมื่อวานแต่ไม่มีเวลาให้ความเห็น
เยี่ยมครับ ได้ข้อมูลเพิ่มขึ้นอีก นอกเหนือจากระบบจะประมวลผลแบบ real time แล้ว ในเบื้องต้นยังอ้างอิงฐานข้อมูลคลื่นสึนามิที่คำนวณผลล่วงหน้าไว้ก่อนที่จะเกิดขึ้นจริง (ตามข้อ 2. ที่คุณ Conductor ได้กล่าวไว้ครับ) แนวทางคือทดลองด้วยการจำลองตามรอยแยกจำนวน 800 กรณีโดยประมาณ ซึ่่งเชื่อว่าครอบคลุมสำหรับประเทศไทย (โดยปรกติการทดลองจะเทียบผลการทดลองกับเหตุการณ์จริงที่เกิดขึ้นอย่างที่ภูเก็ตล่าสุดครับ)
ฐานข้อมูล (Precomputed database) เป็นส่วนที่ช่วยให้ตัดสินใจได้เร็วขึ้นเพื่อออกประกาศเตือนภัย ขณะเดียวกันเราก็ประมวลผลแบบ real time ไปในตัวด้วย เพื่อรับรองการเตือนภัยเหล่านั้น
ผลิตผลที่น่าสนใจจากโครงการนี้คือ การทำ Inundation Map ที่สามารถระบุพื้นที่ชัดเจนผ่านการแสดงผลด้วยภาพสามมิติเสมือนจริง ไม่เพียงคำกล่าวหรือหนังสือประกาศเตือนภัย แต่ประชาชนติดตามข้อมูลได้ทันท่วงที (หากรวมเข้ากับแผนที่ของ Google Earth หรือ Point Asia ได้ก็คงดี ซึ่งเป็นแผนงานในอนาคต)
ระบบไม่เพียงใช้เฉพาะการจำลองสึนามิเท่านั้น เพราะ skeleton ลักษณะนี้ใช้ได้กับการเตือนภัยอย่างอื่นเช่น ดินถล่ม น้ำท่วม และอย่างอื่นเท่าที่สามารถนำมาพิจารณาได้ ขึ้นอยู่กับว่าจะเอาอะไรมาใส่ :)
โอ๊ะๆ ดีจังครับที่งานคืบหน้าไปได้ด้วยดี
อยากจะถามว่ารัน 50 นาทีนี่ต้องใช้กี่โหนดถึงจะทันเหรอครับ
เท่าที่จำได้รันที่ Tsubame ใช้ 300 กว่าโหนดครับ (ส่วนนี้อีกทีมนึงเค้าจะดูแลอยู่)
กำลังเอาไปทดสอบที่ Thaigrid ครับ รู้สึกว่าจะต้องปรับเรื่องคอมไพเลอร์ภาษาฟอร์เทรนนิดหน่อยเกี่ยวกับทศนิยมครับ และ code optimization (และจะมารายงานให้ทราบครับว่าเวลาที่ใช้เป็นเช่นไร)
ขณะนี้งานส่วนใหญ่ที่รันที่ Thaigrid จะเป็นการทดสอบโปรแกรมแบบ sequential มากกว่า และเก็บข้อมูลไปในตัว ตอนนี้กำลังโอนย้ายงานที่ Tsubame มาที่ Thaigrid เพราะที่ Tsubame จะปิดปรับปรุงเกี่ยวกับเครือข่ายและ N1GE ครับ
โปรแกรมจำลองจะมี 4 resolution ครับเริ่มตั้งแต่การคำนวณความลำเอียดต่ำใน region นอกสุด และในสุด ณ ตำแหน่งที่เป็น observation area จะเป็นความละเอียดสูงครับ ส่วนนี้ก็ใช้จำนวนโหนดเยอะหน่อย พูดถึง input ก็มีแค่ 30 MB กว่าๆ เทียบกับ output 30 GB ครับ (ยอมรับว่าปวดหัวเหมือนกันกับ output ขนาดนี้ T_T)
โอ้โห 300 เครื่องนี่ TERA คงให้ไม่ได้นะครับเพราะมีแค่ 192 เครื่องเอง :) แต่ถ้า 300 CPU น่าจะพอได้ครับ (75 เครื่อง) แต่ผมว่าคงนานเหมือนกันกว่าจะได้รันเพราะคิวงานค่อนข้างเยอะทีเดียว (ถึงจะอยู่ special แต่มันก็ต้องรองานทีได้รันไปแล้วเสร็จก่อนครับ) อาจจะต้องมาดูเรื่องประมาณว่าถ้าเกิดแผ่นดินไหวจริงๆจะมีกระบวนการอะไรยังไงเป็นพิเศษไหมครับ
คืออย่างนี้ครับพี่ 300 กว่า CPU (ขอโทษครับพิมพ์ผิด)อยู่ที่ 32-35 นาที และที่ทำการทดลองมันเป็น case ที่ซับซ้อนมาก มี region ที่ซ้อนกันเยอะ สำคัญคือ เราเคยมีปัญหาที่แก้ไม่ตกในเรื่อง inter-network connection ระหว่างโหนดตอนใช้ที่ TERA ครับ แต่ในความเป็นจริงเมื่อเกิดแผ่นดินไหวคงไม่ถึง 300 cpu ครับเพราะน่าจะแบ่งงานให้ balance เยอะขึ้น ตอนนี้ที่รัน 300 CPU ก็ยังใช้ CPU ไม่คุ้มค่าเท่าไหร่ครับ
มีประการที่น่าจะต้องพิจารณาเร่งด่วนดังนี้ครับ
ปัญหา interconnection นี่เป็นยังไงครับ
ช่วงแรกที่ทดสอบเราใช้ Tsubame ได้รับผลที่ดีครับ (เนื่องจากตอนนั้นเรายังไม่ได้ติดต่อขอใช้ Thaigrid) เวลาที่ใช้อยู่ภายใน 50 นาที
จากนั้นเริ่มทดสอบที่ Thaigrid พบปัญหานิดนึงเช่น Intel FORTRAN Compiler เวอร์ชันต่างจากของ Tsubame และความเร็วในการส่ง message ระหว่างโหนดต่างจาก Tsubame แต่เราก็ตรวจสอบและจัดการกับการส่ง message ใหม่ ทำให้การรับส่งข้อมูลระหว่างโหนดน้อยลง
วันพุธที่ 22 นี้จะทดสอบที่ Thaigrid อีกครั้งครับ รัน case ที่มีความสูงคลื่นแบบ extreme ซึ่งจะทำให้เห็นผลชัดเจนว่า ปัญหาของ Compiler กับจุดทศนิยมของ Thaigrid และ Tsubame มีส่วนทำให้ผลคาดเคลื่อนหรือไม่
ส่วนเรื่องเวลาที่เกี่ยวข้องกับการส่งข้อมูลระหว่างโหนด จะนำมาบอกต่อให้ฟังครับ ตอนนี้ Focus ไปที่ผลการทดลองซึ่งน่าจะให้ผลการทดลองใกล้เคียงกับ Code แบบ Sequential การที่เราอ้างอิงผลกับแบบ sequential เนื่องจากผลลัพธ์ใกล้เคียงกับเหตุการณ์จริงมากที่สุด แล้วจะมารายงานว่า ทุกอย่างเป็นอย่างไรครับ :)
ขอให้คุณความดีของการอุทิศในการพัฒนาครั้งนี้ นำผลดีตอบแทนแก่ทีมพัฒนาและผู้ที่เกี่ยวข้องด้วยนะครับ
JavaBoom (Boom is not Java, but Java was boom)
http://javaboom.wordpress.com
My Blog
ดีใจครับที่พัฒนาได้อย่างต่อเนื่อง จะรอดูความคืบหน้าครับ พี่ยอด
รีบติดต่อขอใช้ศูนย์ไทยกริด ดีกว่าครับ
ได้ข่าวว่าจะหมดสัญญาเช่าพื้นที่ กับ ม.เกษตร แล้วเดี๋ยวจะติดต่อ หรือขอใช้งานไ้ด้ยากครับ
เป็นกำลังใจให้ทีมงานพัฒนา และผู้เกี่ยวข้องทุกคนนะครับ
ไทยทำไทยใช้ไทยเจริญ
It's my life. Open your mind for the future.