Tags:
Node Thumbnail

DZero เป็นโครงการทดลองด้านฟิสิกส์พลังงานสูง (High-energy physics) ต้องพึ่งพาการประมวลผลสมรรถนะสูงเพื่อคำนวณงานประเภท Simulation ที่มีจำนวนมากถึง 60,000 -100,000 งานต่อสัปดาห์ และงานทั้งหมดนี้จะถูกส่งไปประมวลผลยังเครือข่ายกริด * ที่มีคอมพิวเตอร์กระจายตัวอยู่ตามสถานที่ต่างๆถึง 23 แห่ง โดยในอดีตนั้น DZero ประสบปัญหาจากการที่เครือข่ายกริดดังกล่าวไม่มี storage สำหรับจัดเก็บข้อมูลขาเข้า (input data) ของงานที่จะนำไปประมวลผล ที่แล้วมา DZero จะแก้ปัญหาโดยส่งข้อมูลขาเข้าจากหน่วยงานของผู้ใช้ไปยังคอมพิวเตอร์ปลายทางที่อยู่ในเครือข่ายกริด ซึ่งจะมีการขนส่งข้อมูลขาเข้าเช่นนี้ทุกครั้งที่งานต้องการข้อมูล แต่มีปัญหาที่ตามมา คือ ความล้มเหลวในการประมวลผลของงานมีโอกาสเกิดขึ้นสูงมาก เพราะเครือข่ายระหว่างหน่วยงานของผู้ใช้ที่ DZero กับเครือข่ายกริดเป็นเครือข่ายแวนที่มีความเร็วและความน่าเชื่อถือต่ำ ทำให้เกิดโอกาสที่ข้อมูลขาเข้าส่งไปที่งานไม่ทันตามกำหนดเวลา (ช่วงเวลา time-out) แล้วเป็นผลให้การประมวลผลของงานนั้นล้มเหลวไปด้วย

Open Science Grid (OSG) ซึ่งเป็นสมาคมที่จัดเตรียมเครือข่ายกริดให้กับ DZero อาสาแก้ปัญหานี้โดยประสานงานกับองค์กรต่างๆที่เป็นสมาชิกของ OSG เพื่อสร้างพื้นที่จัดเก็บข้อมูลแบบ opportunistic storage อันเป็นวิธีการที่องค์กรสมาชิกแชร์พื้นที่ว่างของ storage ที่องค์กรยังไม่ได้นำพื้นที่เหล่านั้นไปใช้งาน โดย storage เหล่านี้ถูกติดตั้งอยู่บนคอมพิวเตอร์ที่แชร์พลังของโปรเซสเซอร์บนเครือข่ายกริดนั่นเอง สำหรับกรณี DZero นี้ OSG สามารถจัดสรรพื้นที่ว่างบน opportunistic storage ได้ถึง 1 TB และประโยชน์ที่ได้ตามมา คือ อัตราความสำเร็จในการประมวลผลของงานเพิ่มขึ้นจาก 30% ไปเป็น 85% เลยทีเดียว

ข่าวนี้อาจดูไม่น่าตื่นเต้นมากนัก เพราะหลักการของ opportunistic storage ไม่ใช่เรื่องแปลกใหม่ ซึ่งสามารถพบเห็นได้ในเครือข่ายแบบ peer-to-peer แต่จุดประสงค์ของการเสนอข่าวนี้ ผมอยากชี้ให้เห็นความจริงประการหนึ่งว่า หน่วยงานวิจัยที่เป็นผู้ใช้ของเครือข่ายกริดบางแห่ง ก็ประสบปัญหาคล้ายกับ DZero คือ มีงานที่ต้องใช้ข้อมูลขาเข้าขนาดใหญ่ หรือต้องส่งข้อมูลจำนวนมากไปประมวลผลที่งาน แต่ทว่า เครือข่ายกริดไม่มี storage สำหรับจัดเก็บข้อมูลเช่นนี้ได้ ทำให้ผู้ใช้จำเป็นต้องพัฒนาโปรแกรมของงานให้รับส่งข้อมูลระหว่างคอมพิวเตอร์ในหน่วยงานของตนกับเครือข่ายกริดทันทีที่งานต้องการข้อมูล ซึ่งจะทำให้เกิดปัญหาดังที่ DZero เคยพบเจอ นั่นคือ การประมวลผลล่าช้าและอาจเกิดความล้มเหลวในที่สุด

เครือข่ายกริดบางแห่งแก้ปัญหาโดยการลงทุนจัดซื้อ storage ความจุสูงเพื่ออุทิศไว้เป็นทรัพยากรกลางและแชร์ไว้ให้ผู้ใช้ของของเครือข่ายเข้ามาใช้งานได้ แต่เครือข่ายกริดบางแห่งก็ไม่สามารถลงทุนเช่นนีิ้ได้ ดังนั้น การใช้ storage ที่ว่างอยู่หรือยังไม่ได้ใช้งานในช่วงเวลาอันใกล้ เพื่อนำมาสร้าง opportunistic storage จะสามารถลดต้นทุนได้มากทีเดียว (รวมถึงลด TCO) และโดยปรกติ คอมพิวเตอร์ที่แชร์อยู่บนเครือข่ายกริดจะอุทิศพลังของโปรเซสเซอร์เป็นหลัก โดยเราเรียกคอมพิวเตอร์แบบนี้ว่า compute node โดย compute node ส่วนใหญ่มีพื้นที่ว่างของ storage ปริมาณหนึ่ง การแชร์และรวมพื้นที่ว่างระหว่าง compute node หลายๆเครื่องในเครือข่ายกริดเข้าด้วยกัน จะทำให้ได้ความจุของ storage ขนาดใหญ่ขึ้นมาได้ อีกทั้ง การใช้ระบบจัดการข้อมูลที่มีประสิทธิภาพเพื่อกระจายข้อมูลไปยัง storage ที่อยู่ใกล้ compute node มากขึ้น จะช่วยเพิ่มประสิทธิภาพในการประมวลผลบนเครือข่ายกริดได้เป็นอย่างมาก ทั้งนี้ งานวิจัยที่เกี่ยวข้องกับการจัดการข้อมูลที่กระจายตัวอยู่บนเครือข่ายกริด จะถูกจัดไว้ในหมวดงานวิจัยและพัฒนาที่เรียกว่า Data Grid

* เครือข่ายกริด (Grid network) หมายถึง กลุ่มขององค์กรที่แบ่งปันทรัพยากรคอมพิวเตอร์เพื่อการประมวลผลแบบ Grid Computing

ที่มา - INTERNATIONAL SCIENCE GRID THIS WEEK

UPDATE: จากแหล่งข่าวที่มากล่าว่า DZero ใช้ storage เพื่อทำ opportunistic storage จาก US-LHC Tier-2 ทั้งหมด 6 แห่ง และจะพยายามค้นหาพื้นที่ว่างจากที่อื่นๆเพิ่มอีก

Get latest news from Blognone

Comments

By: rbus
ContributoriPhoneAndroidUbuntu
on 20 October 2008 - 10:40 #68666

พูดถึง grid ที่เคยทำก็มีแต่ gridcontrol นี้และใน winApp
เกี่ยวอ่ะไรกันไหมเนี้ย ^^

By: ninja741 on 20 October 2008 - 15:09 #68714

1TB harddisk ก้อนเดียวเอง ซื้อ HDD มาใส่ง่ายกว่ามั้ย

By: javaboom
WriteriPhone
on 20 October 2008 - 16:44 #68728 Reply to:68714
javaboom's picture

คำถามคุณ ninja741 เป็นคำถามที่ดีมากครับ

ผมตอบได้ว่าแล้วแต่เหตุการณ์ครับ ถ้าเป็น Grid Computing แล้วเป็นเรื่องที่ลงทุนอะไรยากหน่อย หากแต่ละองค์กรสมาชิกในเครือข่ายกริดมีทุนน้อย หรืออาจจะมีทุนเยอะก็ตามที แต่เขาไม่ยอมแชร์ทุนนั้นให้กับคนอื่น ต้องดูลงไปในนโยบายของแต่ละองค์กรเลยครับ ว่าแต่ละแห่งจะยอมแชร์ทรัพยากรได้มากแค่ไหน รวมถึงเวลาไหนด้วย เขาอาจจะมี storage ขนาดใหญ่ก็ได้ แต่เขาไม่แชร์ให้คนอื่น เป็นต้น

จากกรณีของ DZero เขารันงานไปยัง 23 แห่ง อาจจะเป็นไปได้ว่า ข้อมูลขาเข้าจาก DZero ก็มีขนาดไม่ใหญ่มากเลย แต่ทว่าทุกองค์กรทั้ง 23 แห่งไม่มีพื้นที่ storage (ซึ่งจากแหล่งข่าวก็กล่าวเช่นนั้น) ไม่มีพื้นที่ว่างให้แม้แต่ไบต์เดียว คือยอมแชร์ CPU เพื่อให้ส่งโปรแกรมมารันเท่านั้น โดยติดตั้งโปรแกรมที่ทาง DZero ต้องการไว้อยู่แล้ว โดยที่ DZero เพียงแต่ส่งข้อมูลขาเข้าไปหาเท่านั้น

ถ้าจะลงทุนซื้อ storage ปัญหามีอยู่ว่า
1. ใครเป็นคนซื้อ ?
2. จะซื้อกี่ก้อน ?
3. จะเอา storage ไปไว้ ณ แห่งใด ?

ขอแจกแจงรายละเอียดทั้ง 3 ข้อ

  1. องค์กรทั้ง 23 แห่งที่ DZero ไปขอใช้งาน เขามีคอมของตัวเองอยู่แล้ว เขาจะซื้อ storage มาเพิ่มทำไม

  2. ถ้า DZero จะซื้อให้ 1 TB ดูเหมือนเป็นเรื่องไม่ยาก ราคาก็ไม่แพง แต่จะซื้อกี่ก้อน? ... ซื้อให้ครบ 23 ก้อน แล้วไปตั้งให้ 23 ที่เลยหรือ ? โอเคครับ ทำได้แต่มันมี TCO เพิ่มมา เมื่อเทียบกับขออนุญาตใช้พื้นที่ storage ที่ว่างอยู่ของทั้ง 23 แห่งมาน่าจะได้ประโยชน์กว่า ... High Performance Computing สมัยใหม่ไม่ได้คำนึงแค่เพียงพลังการประมวลผลด้วยทรัพยากรจำนวนมาก (เทียบง่ายๆคือ มีเงินมากเท่าไหร่ก็ทุ่มไปเท่านั้น) ถ้าจะเอาให้สุดยอดกว่านั้นก็คือ ใช้สิ่งที่มีอยู่ให้คุ้มค่าที่สุด ก็เป็นหลักเศรษฐศาสตร์ครับ ใช้อย่างเพียงพอ แล้วก็จะพอมีครับ

  3. วางไว้ที่ไหน ... ถ้าคิดซะว่าผมลงทุนซื้อ HDD 1 TB มาหนึ่งก้อน เพื่อประหยัด TCO แล้ว DZero จะวาง HDD ตัวนี้ไว้ที่ไหนดี ? ถ้าวางไว้ที่เดียว ก็เป็นเหตุให้เกิดคอขวดและทำให้การส่งข้อมูลผ่านแวนไปให้อีก 22 แห่งเกิดความล่าช้า

วิธี Opportunistic Storage โอกาสอันน้อยนิดก็ถือว่าเป็นกำไร

วิธีการของ Opportunistic Storage ก็คือ จองพื้นที่ให้มากสุดเท่าที่จะทำได้ ตามชื่อ Opportunistic ที่แปลว่าตามแต่โอกาสจะเอื้ออำนวย ดังนั้น ก็อาศัยหลักการอย่าง "ความน่าจะเป็น" มาช่วยในการกระจายข้อมูลไปตามที่ต่างๆ แต่ถ้าจะให้ดีก็บวก scheduling ที่ฉลาดๆสำหรับกระจายข้อมูลด้วย มันอาจจะกระจายได้ไม่ครบทั้ง 23 ที่ เพราะบางแห่งอาจจะให้พื้นที่ storage ไม่ได้ ดังนั้น ก็เอาให้ได้เยอะเท่าไหร่เท่ากัน แล้วอาศัยหลักการที่ว่า ข้อมูลขาเข้าอยู่ใกล้ที่ไหน ก็เลือกเอา compute node ที่นั่น คือ เลือก compute node ที่ใกล้กับ storage ของข้อมูลขาเข้าที่สุดหรืออาจจะมี connection ที่ดีที่สุด (เช่น เป็น WAN ความเร็วสูง) ถ้าหาก compute node ที่อยู่ใกล้ที่สุดมันยุ่งอยู่ (มันมีงานอื่นประมวลผลอยู่) ก็เลือก compute node ตัวที่อยู่ใกล้เป็นอันดับถัดไปนั่นเอง

UPDATE: จากแหล่งข่าวที่มากล่าว่า DZero ใช้ storage เพื่อทำ opportunistic storage จาก US-LHC Tier-2 ทั้งหมด 6 แห่ง และจะพยายามค้นหาพื้นที่ว่างจากที่อื่นๆเพิ่มอีก

ขอบคุณสำหรับคำถามดีๆครับ

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


My Blog

By: darkleonic
ContributorAndroidWindowsIn Love
on 20 October 2008 - 18:09 #68747 Reply to:68728
darkleonic's picture

เยี่ยมครับ
กะว่าจะมาถามเรื่องนี้เหมือนกัน
ขอบคุณมากครับ


I need healing.

By: ninja741 on 20 October 2008 - 20:37 #68761 Reply to:68728

ผมมองว่ามันไม่คุ้มค่ากับค่า Operate ค่า maintain นะคับ

องค์กรที่ไม่ได้เป็นองค์กรธุรกิจ ชอบที่จะประหยัดค่าใช้จ่าย หรือใช้อุปกรณ์ให้คุ้มค่าทุกเม็ด แต่ยอมที่จะเปลืองทรัพยากรที่มองไม่เห็น อย่างแรงงานคนที่ลงแรงลงไป ซึ่งตรงข้ามกับแนวคิด,ค่านิยมขององค์กรด้านธุรกิจอย่างชัดเจน

คิดแบบบ้านๆ HDD 1TB ราคาประมาณ 4000บาท(500*2) 23ที่ก็ประมาณ แสนนึง+สำรองนิดหน่อยอายุการใช้งาน 2ปี สบายๆ

แต่แสนนึงเอามาจ้างแรงงานในโซนยโรป อเมริกา เงินเดีือนเด็กพึ่งจบอย่างมากก็ไ้ด้แค่ 4 เดือน

ผมมั่นใจว่าโครงการแบบนี้ runซัก 2 ปีใช้้ แรงงานในการ operate, maintain เกินกว่าเวลางาน 4 เดือนแน่นอน

By: javaboom
WriteriPhone
on 20 October 2008 - 22:45 #68768 Reply to:68761
javaboom's picture

องค์กรที่ไม่ได้เป็นองค์กรธุรกิจ ชอบที่จะประหยัดค่าใช้จ่าย หรือใช้อุปกรณ์ให้คุ้มค่าทุกเม็ด แต่ยอมที่จะเปลืองทรัพยากรที่มองไม่เห็น อย่างแรงงานคนที่ลงแรงลงไป ซึ่งตรงข้ามกับแนวคิด,ค่านิยมขององค์กรด้านธุรกิจอย่างชัดเจน

ผมไม่เห็นด้วยครับ เพราะถ้า DZero ลงทุนติดตั้ง HDD ไปทั้ง 23 แห่งแล้ว ทาง DZero ไม่ใช่แค่ต้องจ่ายค่า HDD แต่ทางองค์กรทั้ง 23 แห่งต้องเสียค่า maintain + operating (หรือ TCO) เพิ่มมาอีกด้วย สิ่งๆนี้ เป็นสิ่งที่ธุรกิจเขาพยายามจะหลีกเลี่ยงให้ได้เลยครับ คือลดค่า TCO และการใช้ opportunistic storage คือการไม่ซื้อเพิ่ม และอาศัยการ reuse เอา storage ที่มีอยู่เดิมแล้วมาใช้ แปลว่า TCO ก็ไม่ได้เพิ่มขึ้นเลยครับ

เครือข่ายที่เรียกว่า Grid Computing มันทำไม่ได้ง่ายอย่่างที่คุณ ninja741 กล่าวครับ เพราะองค์กรที่อยู่ใน Grid Computing มันเป็นคนละองค์กรครับ เราจะไปควบคุมอะไรเขาเป็นเรื่องลำบาก จากกรณี DZero องค์กรทั้ง 23 แห่ง เขาให้มาแค่ Processor เท่านั้น จริงๆผมอธิบายใน comment ก่อนหน้าก็ไม่ถูกต้องตามข้อเท็จจริงครับ เพราะจริงๆแล้ว Opportunistic Storage ไม่ได้เกิดตรงที่หน่วยงานทั้ง 23 แห่ง แต่เป็นของ US-LHC ที่ผมกล่าวไว้ใน UPDATE ครับ และต่อให้องค์กร 23 แห่งยอมแชร์​ HDD ก็ตาม ค่า TCO ก็เป็นเช่นเดิมครับ

ทั้ง 23 แห่งเขาให้แค่ Processor เท่านั้น และเรื่องค่า operate เขาไม่ได้ลงทุนอะไรเพิ่มหรือลดลงเลยครับ เครือข่ายกริดมันประมาณนี้ครับคือ เขาแชร์ทรัพยากรเท่าที่เขาจะให้ได้ และเขาก็ maintain สิ่งที่เขาเคยมีอยู่แล้ว คุณจะยัดเยียด storage ให้เขาก็ได้น่ะครับ แต่จากตัวอย่างของ DZero ชี้ให้เห็นว่ามันไม่ง่ายอย่างนั้นน่ะครับ มันมีเรื่องนโยบายขององค์กรที่หลากหลายมาเกี่ยวข้อง และถ้าคุณให้ HDD ไป นั่นแปลว่ามันมี maintain ที่องค์กรทั้ง 23 แห่งต้องจ่ายเพื่อดูแล HDD ทีเพิ่มมาด้วยครับ สรุปคือ DZero ซื้อ HDD แต่องค์กรทั้ง 23 แห่งต้องมาดูแล HDD แน่นอนค่า TCO เพิ่มขึ้น

ผมกล่าวในข่าวไปแล้วว่า สิ่งที่องค์กรเน้นมากว่าต้องควบคุมคือ TCO นั่นหมายถึง cost ที่นอกเหนือจากราคา HDD ซึ่งก็มี maintain และต้นทุนที่มองไม่เห็นอย่างที่คุณ ninja741 กล่าวไว้ด้วย ดังนั้น เพื่อ tradeoff ระหว่างประสิทธิภาพ (ของเครือข่ายและการประมวลผล) ราคา (ของ HDD) และนโยบายขององค์กร (คือ 23 แห่งให้ได้แค่ processor ซึ่งมีพลังการประมวลผลสูง จนไม่อาจมองข้ามได้) ทาง DZero จึงเลือกยืม HDD จากที่อื่นอีกทอดหนึ่งคือ US-LHC ทั้งหมด 6 แห่ง และ US-LHC ก็แบ่งปัน HDD ที่มีอยู่แล้ว ไม่ได้ซื้อเพิ่ม การ maintain การ operate เคยเป็นไงก็เป็นงั้นต่อไปครับ นี่คือธรรมชาติของ Grid Computing

ทาง US-LHC ทั้ง 6 แห่งอาจจะมี WAN (อาจจะเริ่มที่ T1) ที่มีความเร็วสูงขั้นกลางระหว่าง DZero กับองค์กรทั้ง 23 แห่ง ซึ่ง US-LHC ทั้ง 6 แห่ง กระจายโหลดขององค์กรให้ compute node ทั้ง 23 แห่ง ย่อมได้ประสิทธิภาพมากกว่าการมีคอขวดเกิดที่ DZero เพียงที่เดียวแน่นอน ถ้ามองอีกแง่หนึ่งก็คือ opportunistic storage เสมือนเป็น cache memory ขั้นระหว่าง DZero กับองค์กรทั้ง 23 แห่งนั่นเองครับ มองง่ายๆคือ DZero เป็น RAM, US-LHC เป็น Cache, และก็มีองค์กรทั้ง 23 แห่งเป็น Processor (และก็เป็น many-core ด้วย) ครับ

สรุป สิ่งที่ผมสาธยายมาตั้งเยอะแยะนี้ อยากจะชี้ให้เห็นถึงเศรษฐศาสตร์ของการประมวลผลแบบ Grid Computing คือการ Reuse สิ่งที่มีอยู่แล้ว และการ Reuse ก็คือการเอาของเดิมที่เราดูแลมายังไงเราก็ยังดูแลยังงั้น ดังนั้น มันย่อมมีค่า TCO ต่ำกว่าการซื้อของใหม่มาเพิ่มครับ และสิ่งที่องค์กรธุรกิจยังขาดไปและพยายามปรับปรุงตัวให้ได้เหมือน Grid Computing ก็คือ การลด TCO นี่เองครับ การลงทุนของใหม่มา ย่อมหมายถึง TCO เพิ่ม เช่น ค่า operate + ค่า maintain เป็นต้น ดังนั้น แนวโน้มของ solution ที่ธุรกิจกำลังมองหากันเลยตกไปที่ Cloud Computing อันสามารถลด TCO ได้ ก็เป็นเรื่องที่หลายๆคนกำลังถกกันอย่างมากในตอนนี้ครับ

แต่การวิเคราะห์ของคุณ ninja741 ถือว่ามีประโยชน์มากๆครับ

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


My Blog

By: Thaina
Windows
on 21 October 2008 - 11:12 #68845 Reply to:68768

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

นึกภาพต่อได้ว่า ISP ของรัฐบาล อาจจะกลายเป็นเหมือนธนาคาร ที่ให้ BandWidth ฟรีกับ User รายย่อย และประมวลผลงานวิจัยหรืองาน Simulate เป็นกริดผ่าน IP ทั้งหมดที่ให้ไป หรือบางทีอาจจะมีบริษัท ISP ที่เปิดฟรีโดยเฉพาะ และรับจ้างประมวลผลงานกริดจากบริษัทเอกชน หรือ ฯลฯ