ทำไมรันนานเป็นปี ?

ช่วงนี้งานยุ่งครับไม่มีเวลามาอัพเดทอะไรใหม่ๆ เลยขอเอา comment ของผม ที่ผมใส่ไว้ในข่าวชื่อ จับตาดูคลื่นลูกใหม่ในนามว่า Blue Waters จากไอบีเอ็ม ลงไว้ที่ Blognone มาให้อ่านแล้วกัน ข่าวนี้ก็เกี่ยวกับ Blue Waters ซูเปอร์คอมพิวเตอร์ความเร็วสูงที่คาดว่าจะเร็วกว่า Road Runner ที่เร็วที่สุดในปัจจุบันนี้ รายละเอียดไปอ่านในข่าวเอาเองครับ

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

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

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

ยกตัวอย่างงานเหล่านี้ เช่น พยากรณ์ภัยพิบัติ, จำลองเพื่อค้นหาวิธีการป้องกันภัยพิบัติ, ค้นหาหรือออกแบบยา, ค้นหาสูตรเคมีเพื่อสร้างผลิตภัณฑ์บางอย่าง (เช่น ตัวถังรถ/เครื่องบิน/ยานอวกาศ, กระจก, เครื่องสำอาง, …) เป็นต้น

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

มีงานบางประเภทที่มีผลลัพธ์เดียว (หรือกลุ่มเดียว) แต่ใช้เวลาประมวลผลนานมากๆ แต่เมื่อเวลาประมวลผลผ่านไปเป็นเดือนเป็นปี จนกระทั่งเขาต้องหยุดการประมวผลเพราะพบว่า ใช้เวลานานมากจนไม่คุ้มค่า เช่น เอางานอื่นมาทำอาจจะคุ้มกว่า เป็นต้น หรือนานมากจนเป็นที่พอใจ (เอ๊ะ มีด้วยเหรอ) งานแบบนี้ อาทิ เช่น งานที่ต้องการพิสูจน์ว่า ประมวลผลงานนี้แล้วจะใช้เวลานานไม่ต่ำกว่า T ดังนั้น ถ้าหากว่าประมวลผลเกินเวลา T ไปแล้ว เขาก็ถือว่าบรรลุวัตถุประสงค์ เป็นต้น เช่น ประมวลผลการถอดรหัสข้อมูลบางชนิด โดยเฉพาะเป็นการเข้า/ถอดรหัสสำหรับทางทหาร

ลองเข้าไปดู​ RSA Factoring Challenge เป็นแค่ปัญหาการถอดตัวประกอบ n = pq ( p <> q และ p กับ q เป็นจำนวนเฉพาะ) เขาให้ n มา แล้วให้เราหา p และ q ใครหาได้เป็นคนแรก ก็ได้มีชื่อ หรือได้ทั้งชื่อและได้เงินรางวัล

ซูเปอร์คอมพิวเตอร์ของไอบีเอ็มเคยทดสอบ (ผมหาแหล่งอ้างอิงยังไม่เจอนะครับ ว่าเป็นของไอบีเอ็ม ไม่เชื่อข้อมูลตรงนี้ก็ได้ แต่ผมเคยอ่านเจอมาเมื่อหลายปีก่อนใน textbook เล่มหนึ่ง) ระบบนี้ประมวลผลงานประเภท Cryptanalysis ในส่วน code breaker และ hash collision อยู่หลายตัว หลายตัวถูกจมตี (attack) หรือกล่าวแบบชาวบ้านคือ hack ได้แล้ว เช่น MD5 และ DES เป็นต้น แต่ก็มีหลายปัญหาที่ยังโจมตีไม่สำเร็จ

มีตัวอย่างหนึ่ง เช่น RSA-200 ประมวลผลบนคลัสเตอร์ 80 คอร์ เขาใช้เวลาแก้ปัญหาตั้งแต่ปี 2003 – 2005 อ้างอิง คลัสเตอร์ตัวนี้นับว่าเป็นซูเปอร์คอมพิวเตอร์ในสมัยนั้นได้ แต่ไม่ติด TOP500

4 thoughts on “ทำไมรันนานเป็นปี ?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s