Tags:

วันนึ้เริ่มต้นเขียนรายงานโครงการเพื่อชาติกันหน่อยว่าทีมงานทำไปถึงไหนแล้ว ? สถาปัตยกรรมที่ใช้เป็นอย่างไร ? แนวทางการแก้ปัญหาที่เกิดขึ้น ? โดยมีหน่วยงานที่เกี่ยวข้องเพื่อสนับสนุนงานนี้ได้แก่

ระบบนี้แต่ก่อนประมวลผลด้วยโปรแกรมจำลองแบบลำดับชื่อ 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 นาที โดยมีช่วงเวลาดังนี้

  • รวบรวมข้อมูลแผ่นดินไหว (~10 นาที)
  • จำลองสถานการณ์ด้วยโปรแกรมคอมพิวเตอร์ (น้อยกว่า 50 นาที)
  • วิเคราะห์ผมลัพธ์และออกประกาศเตือนภัย (~10 นาที)
  • เตือนภัยและอพยพประชาชนออกจากพื้นที่เสี่ยงภัย (20 นาที)

ยังมีเรื่องราวของการทำ precomputed database สำหรับฐานข้อมูลการเตือนภัยคลื่นสึนามิล่วงหน้า (อ้างอิงตามรอยแยกของแผ่นเปลือกโลก) ที่จะอัปเดทให้ภายหลังครับ

ปล. คงพูดได้เต็มปากเต็มคำว่า ทีมงาน blognone นี่ใจกว้างดีแท้ ที่ให้ทั้งคนอ่านคนเขียนเข้ามาร่วมหมกมุ่นชุมนุม จนกลายเป็นชุมชนใหญ่โตและมีเหยี่ยวข่าวไอทีที่มีศักยภาพชนิด "ไทยทำไทยใช้ไทยเจริญ" กันเลยทีเดียว ไม่ว่าจะเป็นข่าวระดับนานาชาติ หรือ ระดับชาติ ก็หาอ่านกันง่ายผ่านเว็บที่นี่ที่เดียว ขอบคุณครับ

Get latest news from Blognone

Comments

By: winggundamth
ContributorAndroidUbuntuIn Love
on 17 October 2008 - 18:21 #68396
winggundamth's picture

ยินดีครับ ที่เห็นอะไรที่เป็นรูปธรรมเสียที

ว่าแต่ต้องมีการซ้อมเหมือนซ้อมหนีไฟบนอาคารด้วยไหมเนี่ยครับ

I will change the world, to the better day.


I will change the world, to the better day.

By: lagus
iPhone
on 17 October 2008 - 18:43 #68402
lagus's picture

ว้าว อยากเห็นหน้าตาโปรแกรมนีจังว่าจะเริมหรูขนาดไหน

notz-dev :: RIA Develop & Design

By: lew
FounderJusci's WriterMEconomicsAndroid
on 18 October 2008 - 03:19 #68429
lew's picture

ย่อหน้าแรกเอาไว้เป็น ปล. หรือใส่เป็นคอมเมนต์ดีกว่านะครับ เวลาคนอ่านจะได้เห็นเนื้อหาเลย

แต่ยังไงก็ขอรับคำชมไว้ครับ :D

LewCPE


lewcpe.com, @wasonliw

By: mindpeterpan on 18 October 2008 - 04:05 #68430

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

ส่วนการซ้อม ฯ ก็เป็นอีกกระบวนการหนึ่งครับ ^.^ ระบบบอกเพียงว่าต้องอพยพไปไกลเท่าไหร่ ที่ไหน ? เมื่อไหร่ ? ของพื้นที่เสี่ยงภัยถึงจะปลอดภัย และคลื่นสูง ณ ชายฝั่งเพียงใด ? พร้อมกับมีภาพเคลื่อนไหวสามมิติเสมือนจริงให้ดูประกอบเป็นแนวทางการอพยพด้วยครับ

คงต้องช่วยกันหลายฝ่าย "อย่างคนมีกึ๋น" เค้าทำกัน :)

By: Conductor
WriterAndroid
on 18 October 2008 - 12:37 #68451

mk ส่งข่าวนี้ให้ดูเมื่อวานแต่ไม่มีเวลาให้ความเห็น

  1. ด้วยสมการคลื่น สามารถจำลองการเคลื่อนที่ของคลื่นสึนามิด้วยโน๊ตบุ๊คธรรมดา มีการตรวจสอบกับโมเดลที่ใช้คอมพิวเตอร์สมรรถนะสูงคำนวณแล้วหลายๆอันทั่วโลก แต่ก็มีพารามิเตอร์สำคัญคือ DEM ของพื้นทะเล (ความลึก) -- [อ้างอิง]
  2. โอกาสเกิดแผ่นดินไหวรุนแรงนั้น อยู่ในรอยแยกในทะเลอันดามันซึ่งรู้พิกัดแน่นอน สามารถจำลองเวลาการแพร่กระจายคลื่นไว้ก่อนล่วงหน้าได้หากรู้พิกัดของศูนย์กลางแผ่นดินไหว (epicenter) และสามารถทำเป็นตารางเวลาคลื่อนเข้าฝั่งที่ตำบลต่างๆ เทียบกับพิกัดของ epicenter ไว้ล่วงหน้าได้
  3. มีศูนย์ศึกษาแผ่นดินไหวบางแห่งที่เริ่มคำนวณแก้ moment tensor และ centroid depth เพื่อหาตำแหน่งคร่าวๆ ของ epicenter เมื่อได้รับข้อมูลจากสถานีวัดแผ่นดินไหวเพียง 25 สถานี เช่น geofon ใช้เวลาประมาณ 5 นาที -- ข้อมูลนี้ถึงจะไม่เที่ยงตรงก็ไม่เป็นไร แต่ทำให้สามารถประเมินความแรงและความลึก ว่ามีโอกาสเกิดสึนามิมากน้อยแค่ไหน
  4. ปัจจุบันศูนย์เตือนภัยพิบัติแห่งชาติใช้วิธีการนี้อยู่ เนื่องจากไม่ต้องการนำชีวิตคนไปเสี่ยง ยิ่งเตือนได้เร็ว ก็จะยิ่งอพยพได้เร็ว
By: mindpeterpan on 18 October 2008 - 13:27 #68457 Reply to:68451

เยี่ยมครับ ได้ข้อมูลเพิ่มขึ้นอีก นอกเหนือจากระบบจะประมวลผลแบบ real time แล้ว ในเบื้องต้นยังอ้างอิงฐานข้อมูลคลื่นสึนามิที่คำนวณผลล่วงหน้าไว้ก่อนที่จะเกิดขึ้นจริง (ตามข้อ 2. ที่คุณ Conductor ได้กล่าวไว้ครับ) แนวทางคือทดลองด้วยการจำลองตามรอยแยกจำนวน 800 กรณีโดยประมาณ ซึ่่งเชื่อว่าครอบคลุมสำหรับประเทศไทย (โดยปรกติการทดลองจะเทียบผลการทดลองกับเหตุการณ์จริงที่เกิดขึ้นอย่างที่ภูเก็ตล่าสุดครับ)

ฐานข้อมูล (Precomputed database) เป็นส่วนที่ช่วยให้ตัดสินใจได้เร็วขึ้นเพื่อออกประกาศเตือนภัย ขณะเดียวกันเราก็ประมวลผลแบบ real time ไปในตัวด้วย เพื่อรับรองการเตือนภัยเหล่านั้น

ผลิตผลที่น่าสนใจจากโครงการนี้คือ การทำ Inundation Map ที่สามารถระบุพื้นที่ชัดเจนผ่านการแสดงผลด้วยภาพสามมิติเสมือนจริง ไม่เพียงคำกล่าวหรือหนังสือประกาศเตือนภัย แต่ประชาชนติดตามข้อมูลได้ทันท่วงที (หากรวมเข้ากับแผนที่ของ Google Earth หรือ Point Asia ได้ก็คงดี ซึ่งเป็นแผนงานในอนาคต)

ระบบไม่เพียงใช้เฉพาะการจำลองสึนามิเท่านั้น เพราะ skeleton ลักษณะนี้ใช้ได้กับการเตือนภัยอย่างอื่นเช่น ดินถล่ม น้ำท่วม และอย่างอื่นเท่าที่สามารถนำมาพิจารณาได้ ขึ้นอยู่กับว่าจะเอาอะไรมาใส่ :)

By: somsak_sr
ContributorAndroidUbuntu
on 19 October 2008 - 01:26 #68512 Reply to:68457
somsak_sr's picture

โอ๊ะๆ ดีจังครับที่งานคืบหน้าไปได้ด้วยดี

อยากจะถามว่ารัน 50 นาทีนี่ต้องใช้กี่โหนดถึงจะทันเหรอครับ

By: mindpeterpan on 19 October 2008 - 02:25 #68517 Reply to:68512

เท่าที่จำได้รันที่ 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)

By: somsak_sr
ContributorAndroidUbuntu
on 19 October 2008 - 02:42 #68522 Reply to:68517
somsak_sr's picture

โอ้โห 300 เครื่องนี่ TERA คงให้ไม่ได้นะครับเพราะมีแค่ 192 เครื่องเอง :) แต่ถ้า 300 CPU น่าจะพอได้ครับ (75 เครื่อง) แต่ผมว่าคงนานเหมือนกันกว่าจะได้รันเพราะคิวงานค่อนข้างเยอะทีเดียว (ถึงจะอยู่ special แต่มันก็ต้องรองานทีได้รันไปแล้วเสร็จก่อนครับ) อาจจะต้องมาดูเรื่องประมาณว่าถ้าเกิดแผ่นดินไหวจริงๆจะมีกระบวนการอะไรยังไงเป็นพิเศษไหมครับ

By: mindpeterpan on 19 October 2008 - 12:38 #68535

คืออย่างนี้ครับพี่ 300 กว่า CPU (ขอโทษครับพิมพ์ผิด)อยู่ที่ 32-35 นาที และที่ทำการทดลองมันเป็น case ที่ซับซ้อนมาก มี region ที่ซ้อนกันเยอะ สำคัญคือ เราเคยมีปัญหาที่แก้ไม่ตกในเรื่อง inter-network connection ระหว่างโหนดตอนใช้ที่ TERA ครับ แต่ในความเป็นจริงเมื่อเกิดแผ่นดินไหวคงไม่ถึง 300 cpu ครับเพราะน่าจะแบ่งงานให้ balance เยอะขึ้น ตอนนี้ที่รัน 300 CPU ก็ยังใช้ CPU ไม่คุ้มค่าเท่าไหร่ครับ

มีประการที่น่าจะต้องพิจารณาเร่งด่วนดังนี้ครับ

  1. ความเร็วเครือข่ายภายใน
  2. พื้นที่ฮาร์ดดิส ตอนนี้หมดแล้วครับ เกินโควต้าไปเรียบร้อย (กำลังซื้อเพิ่ม)
  3. กลยุทธ์ในการถ่ายโอนข้อมูลระหว่าง TERA และระบบพอร์ทัล (อนาคตผมก็ไม่ทราบว่าผู้ใหญ่เค้าจะเอาไปไว้ที่ไหน และถ้าถ่ายโอนได้เร็วก็ยิ่งดีมากๆ)
  4. ขนาดไฟล์ 30 GB ต่อ 1 case ก็จริง แต่ visualization ก็ต้องประมาณ 30 GB ด้วย เพราะข้อมูล output จาก simulation ยังเอามาทำ visualization ไม่ได้ ต้องผ่านขั้นตอน data transformation ก่อนซึ่งจะทำให้ data ดังกล่าวมี reusability ที่ดีมากครับ
By: sugree
FounderWriterAndroidBlackberry
on 19 October 2008 - 22:46 #68610 Reply to:68535

ปัญหา interconnection นี่เป็นยังไงครับ

  1. bandwidth
  2. latency
By: mindpeterpan on 20 October 2008 - 12:28 #68686 Reply to:68610

ช่วงแรกที่ทดสอบเราใช้ Tsubame ได้รับผลที่ดีครับ (เนื่องจากตอนนั้นเรายังไม่ได้ติดต่อขอใช้ Thaigrid) เวลาที่ใช้อยู่ภายใน 50 นาที

จากนั้นเริ่มทดสอบที่ Thaigrid พบปัญหานิดนึงเช่น Intel FORTRAN Compiler เวอร์ชันต่างจากของ Tsubame และความเร็วในการส่ง message ระหว่างโหนดต่างจาก Tsubame แต่เราก็ตรวจสอบและจัดการกับการส่ง message ใหม่ ทำให้การรับส่งข้อมูลระหว่างโหนดน้อยลง

วันพุธที่ 22 นี้จะทดสอบที่ Thaigrid อีกครั้งครับ รัน case ที่มีความสูงคลื่นแบบ extreme ซึ่งจะทำให้เห็นผลชัดเจนว่า ปัญหาของ Compiler กับจุดทศนิยมของ Thaigrid และ Tsubame มีส่วนทำให้ผลคาดเคลื่อนหรือไม่

ส่วนเรื่องเวลาที่เกี่ยวข้องกับการส่งข้อมูลระหว่างโหนด จะนำมาบอกต่อให้ฟังครับ ตอนนี้ Focus ไปที่ผลการทดลองซึ่งน่าจะให้ผลการทดลองใกล้เคียงกับ Code แบบ Sequential การที่เราอ้างอิงผลกับแบบ sequential เนื่องจากผลลัพธ์ใกล้เคียงกับเหตุการณ์จริงมากที่สุด แล้วจะมารายงานว่า ทุกอย่างเป็นอย่างไรครับ :)

By: javaboom
WriteriPhone
on 19 October 2008 - 13:33 #68538
javaboom's picture

ขอให้คุณความดีของการอุทิศในการพัฒนาครั้งนี้ นำผลดีตอบแทนแก่ทีมพัฒนาและผู้ที่เกี่ยวข้องด้วยนะครับ

JavaBoom (Boom is not Java, but Java was boom)
http://javaboom.wordpress.com


My Blog

By: materaj
AndroidUbuntu
on 20 October 2008 - 11:54 #68680

ดีใจครับที่พัฒนาได้อย่างต่อเนื่อง จะรอดูความคืบหน้าครับ พี่ยอด

By: chaba_bkk
Android
on 22 October 2008 - 11:39 #68980

รีบติดต่อขอใช้ศูนย์ไทยกริด ดีกว่าครับ

ได้ข่าวว่าจะหมดสัญญาเช่าพื้นที่ กับ ม.เกษตร แล้วเดี๋ยวจะติดต่อ หรือขอใช้งานไ้ด้ยากครับ

เป็นกำลังใจให้ทีมงานพัฒนา และผู้เกี่ยวข้องทุกคนนะครับ

ไทยทำไทยใช้ไทยเจริญ
It's my life. Open your mind for the future.