Grid Computing

“ซักวันหนึ่ง Grid จะมาแทนที่ซูเปอร์คอมพิวเตอร์ เหมือนกับ network PC เข้ามาแทนที่เมนเฟรม .. นี่ไม่ใช่เรื่องธรรมดาซะแล้ว”

Grid Computing คืออะไร ?

..ลอง นึกถึงไฟฟ้าที่เราใช้อยู่ตามบ้านนะครับ ตื่นเช้าเราเสียบปลั๊กเครื่องปิ้งขนมปัง ใส่ขนมปัง เปิดเครื่อง.. ไม่กี่นาทีก็ได้ขนมปังปิ้งร้อนๆ เป็นอาหารเช้า..อืมม.. หอม.. มีใครเคยนึกบ้างมั้ยครับว่าไฟฟ้าที่เราใช้นี่มันมาจากไหน ? .. ..ใครจะสนล่ะครับ จะมาจากไหนบ้านเราก็มีไฟฟ้าใช้ และมีมากพอกับความต้องการของเรา (ตอนนี้อาจต้องประหยัดกันหน่อย ไม่เป็นไร..) .. แล้วคอมพิวเตอร์ล่ะ ? จะดีซักแค่ไหนถ้าเรามีพลังในการประมวลผลมากตามที่เราต้องการ มากพอกับการคำนวณที่ซับซ้อน ใช้งานจากที่ใดก็ได้ โดยไม่ต้องสนใจว่าการคำนวณนั้นจะไปทำที่ไหน.. ขอเพียงเสียบปลั๊กเข้าไป สั่งให้โปรแกรมทำงาน แล้วเราก็จะได้ผลลัพธ์ออกมา ?? นั่นล่ะครับ ‘grid computing’ ล่ะ ..

โครงสร้างพื้นฐานหลักๆ ของ grid computing คงไม่ต่างไปจากระบบ power grid ในการส่งกระแสไฟฟ้าเท่าไหร่นัก .. ใน power grid เรามีโรงผลิตไฟฟ้า กับ transmission line .. ใน computing grid สิ่งที่เราต้องการก็คือ ‘หน่วยประมวลผล’ และ ‘เครือข่ายสำหรับรับส่งข้อมูล’ .. หลายคนอาจจะเริ่มคิดแล้วว่านี่มันไม่ใช่ของใหม่อะไรเลย ดูมันจะคล้ายๆ กับ peer-to-peer, cluster หรือ @home ทั้งหลาย .. ถูกต้องครับ พื้นฐานการทำงานของ grid computing ก็คือ distributed computing เหมือนกัน .. เพียงแต่ concept จะต่างไปบ้าง และมีเป้าหมายที่ไม่เหมือนกัน .. เราลองมาไล่ดูนะครับว่าแต่ละอย่างมันเหมือนหรือต่างกันอย่างไร ?

Anything@home

หลังๆ มีโปรแกรมประเภท @home มากขึ้น .. จุดเริ่มต้นของ @home มาจากมนุษย์ต่างดาวล่ะครับ .. อ่ะ ไม่ใช่มนุษย์ต่างดาวคิดหรอกนะ แต่เป็นเพราะเราอยากค้นหามันต่างหาก .. SETI@home นั่นเอง .. SETI@home คือโปรแกรม screensaver ที่คอยวิเคราะห์สัญญาณที่รับมาจากกล้อง Arecibo ซึ่งเป็นโทรทรรศ์วิทยุขนาดยักษ์ในประเทศเปอร์โต ริโก้ เพื่อค้นหาสิ่งมีชีวิตที่มีภูมิปัญญานอกโลก (Search for Extraterrestrial Intelligence : SETI) ผมเคยเขียนเรื่อง SETI ให้อ่านกันแล้ว และอย่างที่บอกว่าเท่าที่ผ่านมา เรายังไม่พบอะไรที่จะบอกได้ว่ามี ET อยู่นอกโลก แต่นั่นก็ไม่สามารถจะหยุดสมาชิกกว่า 3 ล้านรายทั่วโลกที่ร่วมโครงการนี้ โปรแกรม SETI@home จะคอยติดต่อเครื่องแม่ข่ายเพื่อรับข้อมูลชิ้นเล็กๆ ไปประมวลผล และส่งผลลัพท์ที่ได้ตอบกลับไปยังเครื่องแม่ข่ายของโครงการ การประมวลผลของ SETI@home ตั้งแต่เริ่มโครงการจนถึงปัจจุบันนี้มหาศาลมาก ถ้าใช้ PC เครื่องเดียวต้องใช้เวลานานกว่า 600,000 ปี

ข้อดีของ SETI@home ก่อให้เกิดแรงบันดาลใจให้เกิดโครงการอีกหลายโครงการในภายหลัง เช่น Folding@home ซึ่งเป็นการจำลอง protein-folding เพื่อค้นหาวิธีการปรุงยาโดยใช้ข้อมูลมากมายมหาศาลที่ได้จากการถอดรหัสพันธุกรรมของมนุษย์ Xpulsar@home เป็นการประมวลผลข้อมูลดาราศาสตร์สำหรับพัลซาร์ Evolutionary@home โครงการในการแก้ปัญหาที่เกิดจากเปลี่ยนแปลงประชากร

การ ประมวลผลแบบกระจายด้วยวิธี @home นี้ไม่ใช่ทำได้ง่ายนัก สิ่งแรกคือต้องมั่นใจว่าโปรแกรม “@home” ทั้งหลาย สามารถทำงานได้บนเครื่องคอมพิวเตอร์และระบบปฏิบัติการต่างๆ กัน อย่าง SETI@home ต้อง compile binary สำหรับ client มากกว่า 40 แบบ ปัญหาถัดมาคือนักวิจัยจำเป็นต้องพึ่งพาความสมัครใจ จำเป็นต้องมีการประชาสัมพันธ์ที่ดี ปัญหาสุดท้ายคือระบบจำเป็นต้องจัดการกับการประมวลผลที่มีอัตราต่างกัน เพราะเครื่องคอมพิวเตอร์ทำงานได้เร็วไม่เท่ากัน แถมบางเครื่องรับข้อมูลไปประมวลผลแล้วอาจจะไม่ส่งคำตอบกลับมาก็ได้

เพื่อ เป็นการแก้ปัญหาที่ยุ่งยากเหล่านี้ จึงมีบริษัทรับเป็นนายหน้าจัดการสิ่งต่างๆ ให้ หนึ่งในนั้นคือบริษัท Entropia ก่อตั้งในปี 1997 เพื่อตามล่าพลังการประมวลผลจาก idle time ของเครื่อง PC .. ภายในสองปี บริษัทสามารถหาเครื่องคอมพิวเตอร์ได้กว่า 30,000 มีพลังการประมวลผลรวมราว 1 TeraFLOPS ซึ่งเทียบเท่ากับซูเปอร์คอมพิวเตอร์เลยทีเดียว Entropia แจกจ่ายพลังการประมวลผลนี้ในหลายๆ โครงการ เช่น FightAidsAtHome ซึ่งเป็นโครงการค้นหาตัวยาเพื่อรักษาโรคเอดส์ บริษัท Parabon ก็เป็นอีกบริษัทที่ทำหน้าที่ทำหน้าที่เป็นนายหน้าจัดหาพลังการประมวลผลให้ กับโครงการ Compute-Against-Cancer ซึ่งใช้คอมพิวเตอร์ในการวิเคราะห์ผลกระทบที่ได้จากการรักษามะเร็งโดยวิธี เคมีบำบัด แม้แต่ Intel ก็ยังเปิดตัวโครงการในลักษณะเดียวกันเพื่อค้นหาโครงสร้างโมเลกุลที่สามารถนำ มาผลิตเป็นยารักษาโรคมะเร็งในเม็ดเลือดขาว โดยร่วมมือกับสมาคมวิจัยโรคมะเร็ง และบริษัท United Devices ซึ่งเป็นบริษัทนายหน้า ก่อตั้งโดย David Anderson หนึ่งในผู้ก่อตั้ง SETI@home นั่นเอง

หลายคนอาจจะสังเกตได้ว่าโครงการส่วนใหญ่จะเกี่ยว กับการแพทย์ .. ก็แหงล่ะครับ ตลาดทางการแพทย์และสุขภาพใครๆ ก็รู้ว่าเม็ดเงินมันเยอะ มีแต่คนกลัวตายทั้งนั้นนี่นะ.. คาดกันว่าอีก 5 ปีข้างหน้าบริการสารสนเทศทางด้านชีววิทยาและการแพทย์มีมูลค่าหลายพันล้าน เหรียญสหรัฐเลยทีเดียว

Cluster

รูปแบบการประมวลผลแบบกระจายที่ได้ยินหนาหูในระยะหลังก็คือ cluster .. cluster เป็นการเชื่อมต่อแบบ tightly-coupled ระหว่างคอมพิวเตอร์หลายๆ เครื่อง แล้วนำมันมาประมวลผลเพื่อแก้ปัญหาใดปัญหาหนึ่งโดยเฉพาะ หนึ่งในผู้บุกเบิก cluster ก็คือ ‘Beowulf‘ ต้นแบบของ cluster ที่ตั้งชื่อจากวีรบุรุษผู้ปราบอสุรกายกินคนในตำนาน ต้นแบบของ Beowulf สร้างขึ้นในปี 1994 โดย Thomas Sterling และ Don Becker ที่ United Space Research Association รัฐแมรี่แลนด์ เป็น 16-node cluster เชื่อมต่อโดย ethernet .. ที่จริงความสำเร็จของ Beowulf ไม่ได้อยู่ที่ architecture มากนัก แต่มาจาก cost/performance ratio ซะมากกว่า คงทราบกันดีว่าซูเปอร์คอมพิวเตอร์มีการเชื่อม processing element ภายในที่ซับซ้อนและทำงานเร็วมาก จึงมีราคาแพงและใช้เวลาในการพัฒนานาน Beowulf ใช้แค่ Ethernet หรือจะให้แรงๆ หน่อยก็เป็น Myrinet .. ถ้าดูจาก architecture แล้ว cluster ดูจะสู้ซูเปอร์คอมพิวเตอร์ไม่ได้เลย แต่เอาเข้าจริงๆ cluster บางระบบเร็วขนาดติดอยู่ใน 50 World Fastest Computers บางระบบมีพลังการประมวลผลถึง 30 TeraFLOPS แต่ราคาน้อยกว่า 1 ใน 100 ของเครื่องซูเปอร์คอมพิวเตอร์ที่ทำงานได้เทียบเท่ากัน

อ่านมาถึง ตรงนี้หลายคนเริ่มคิดต่อจาก cluster อีกว่า ถ้าอินเทอร์เน็ตมีอัตรารับส่งข้อมูลสูงขึ้น บางที node ของ cluster ก็ไม่จำเป็นต้องกองอยู่ที่เดียวกัน หรือแม้แต่ในประเทศเดียวกัน ..เรื่องนี้มีคนคิดกันมาก่อนแล้วล่ะครับ ในช่วงทศวรรษ 1980 ซอฟต์แวร์ชื่อ ‘Condor’ ของ University of Wisconsin – Madison สามารถดึงพลังการประมวลผลของคอมพิวเตอร์ทั้งหมดในมหาวิทยาลัยมาใช้งานได้ไม่ ว่าคอมพิวเตอร์จะติดตั้งในอาคารไหน ในช่วงปลายทศวรรษ 1990 ก็มีการเชื่อมโยงซูเปอร์คอมพิวเตอร์ในยุโรปเข้าด้วยกัน ซึ่งเป็นส่วนหนึ่งในโครงการ ‘Unicore’ ผู้ใช้งานสามารถนำปัญหายากๆ มาประมวลผลบน Unicore โดยไม่ต้องห่วงเรื่อง OS, Platform, Storages หรือ Policy เลย

ยังขาดอะไรอีก ??

Grid computing กำลังดำเนินรอยตาม SETI@home, Beowulf, Condor และ Unicore เพื่อสร้าง processing resource ขนาดใหญ่ เรียกว่าทำให้เครือข่ายกลายเป็นเครื่องคอมพิวเตอร์ขนาดยักษ์เพียงเครื่อง เดียวที่ทุกคนสามารถเข้ามาใช้งานได้ grid computing จะทำให้ข้อแตกต่างของ peer-to-peer, cluster, ซูเปอร์คอมพิวเตอร์หมดไป นักวิจัยหวังว่าในท้ายที่สุดผู้ใช้งานที่เชื่อมเข้ามายัง Grid ไม่จำเป็นต้องทราบเลยว่าข้อมูลจะถูกประมวลผลที่ไหนและอย่างไร เหมือนกับเราไม่จำเป็นต้องรู้ว่าไฟฟ้าที่มาเลี้ยงเครื่องปิ้งขนมปังของเรา นั้นมาไหนนั่นเอง

องค์ประกอบที่สำคัญที่สุดที่จะทำให้ Grid computing เป็นไปได้ก็คือซอฟต์แวร์ที่ทำหน้าที่จัดการระบบ คอยส่งข้อมูลไปประมวลผลยัง node ต่างๆ หรือรับข้อมูลจาก node อื่นมาประมวลผล รวมถึง monitor การทำงานของระบบ ซอฟต์แวร์ที่ว่านี่จะแทรกอยู่ระหว่าง OS และ ตัว application ก็เลยเรียกกันว่าเป็น ‘Middleware’ ..

ในปัจจุบัน Middleware ที่ได้รับความนิยมมากที่สุดคือ ‘Globus‘ พัฒนาโดยกลุ่มของ Ian Foster ที่ Argonne National Laboratory ร่วมกับทีมของ Carl Kesselman แห่ง University of Southern California .. Globus ประกอบด้วยโปรแกรมหลายๆ โปรแกรม เช่น GRAM (Globus Resource Allocation Manager) ทำหน้าที่จัดการ resource, และ GSI (Grid Security Infrastructure) ทำหน้าที่ด้าน authentication และ access control ที่น่าสนใจอย่างหนึ่งของ Globus คือ tools หรือโปรแกรมสามารถเขียนเพิ่มเติมแล้วเอามาประกอบกับ Globus ในภายหลังได้เหมือน plug-ins และที่ดีสุดๆ คือ Globus พัฒนาภายใต้ Open Source จึงใช้งานได้ฟรี ผู้ใช้และสามารถพัฒนาซอฟต์แวร์เพิ่มเติมได้ตามที่ต้องการ

นอกเหนือไป จาก Globus แล้วก็ยังมีโครงการคล้ายๆ กันอีกเช่น “World Virtual Computer” ของ University of Virginia และโครงการ ‘Milan’ (Metacomputing in Large Asynchronous Network) ซึ่งเป็นโครงการร่วมระหว่างนักวิจัยใน New York University และ Arizona State University เพื่อสร้างคอมพิวเตอร์เสมือนบนระบบที่ไม่ได้เชื่อมต่อกับเครือข่ายอยู่ตลอด เวลา ทางฝั่ง commercial ก็ตามจี้ Globus เหมือนกันอย่าง Java Platform ของ Sun หรือ DCOM ของ Microsoft ก็มีอะไรหลายๆ อย่างคล้ายกับ Grid computing แม้แต่ .NET ก็ดูว่ามีบางส่วนที่เหมือนกับ Grid .. ว่ากันว่า Microsoft เอา functions บางอย่างของ Grid เข้าไปใส่ใน Windows XP แล้วด้วย – -”

จะได้ใช้หรือยัง ??

ปัญหา ใหญ่ของ Grid ก็คือ ปัญหาคอขวดในการประมวลผล นักพัฒนาจำเป็นต้องหาทางชดเชยความล้มเหลวต่างๆ ที่อาจจะเกิดขึ้นขณะประมวลผล เช่น เครื่องคอมพิวเตอร์หยุดทำงาน หรือข้อมูลที่รับส่งมีข้อผิดพลาด และยังต้องหาทางแก้ปัญหาเรื่อง delay ในการรับส่งข้อมูล อย่าลืมว่าต่อให้เป็นแสง ถ้าต้องเดินทางซักครึ่งโลกก็ 1/5 วินาทีเข้าไปแล้ว (ช้ากว่าเกียร์บันแปลงร่างตั้งเยอะ – -“) ซึ่งถือว่าช้ามากๆ สำหรับ CPU ที่ต้องประมวลผลตลอดเวลา ไหนจะเรื่อง data dependencies อีก.. Middleware จึงต้องฉลาดพอที่จะจัดการกับเรื่องเหล่านี้ให้ได้

เวลานี้ระบบของ Grid ยังคงใช้ในรั้วสถาบันการศึกษา และสถาบันวิจัยเท่านั้นจนกว่าจะมี application มากพอจะออกมาใช้ในเชิง commercial การประมวลผลทางวิทยาศาสตร์ดูจะเป็นประโยชน์ที่ได้รับเป็นสิ่งแรกจาก Grid ผ่านทางเครือข่ายอินเทอร์เน็ต ตัวอย่างเช่น GriPhyN ซึ่งเป็น Grid ที่พัฒนาโดยสมาคมห้องวิจัยทางด้านฟิสิกส์ของสหรัฐอเมริกาหนึ่งในการศึกษาค้น คว้าในปัจจุบันมีเป้าหมายในการวิเคราะห์ข้อมูลจำนวนมหาศาลจากการสำรวจท้อง ฟ้า Earth System Grid เป็นความพยายามในการสร้างระบบจำลองสภาพอากาศขนาดใหญ่ที่รวบรวมข้อมูลไว้กว่า ร้อยปี จากนั้นก็วิเคราะห์ผลจากระบบจำลองดังกล่าว นอกจากนี้ ยังมีงานริเริ่มอื่นๆ เช่น Earthquake Engineering Simulation Grid, Particles Physics Data Grid และโครงการ Information Power Grid ของ NASA

CERN อาจจะเป็นที่ที่ต้องการนำ Grid มาใช้ด่วนที่สุด คุ้นๆ กันรึเปล่าครับ CERN คือบ้านเกิดของ WWW ไงล่ะครับ .. ที่จริง CERN เป็นศูนย์วิจัยทางนิวเคลียร์ฟิสิกส์ของยุโรปอยู่ใกล้เมืองเจนีวา หนึ่งในโครงการแนวหน้าของ CERN เวลานี้คือ Large Hadron Collider (LHC) ซึ่งเป็นเครื่องยิงอนุภาคพลังงานสูง ภายในจะมีตัวตรวจวัดผลการชนกันของอนุภาคในวงแหวนเร่งอนุภาค ตัวตรวจวัดนี้ sampling ในอัตรา 40 MHz มี output ออกมาประมาณ 1 พีต้าไบต์ต่อวินาที (petabyte – 1 ล้านกิกะไบต์) ด้วยปริมาณอันมหาศาล CERN จึงต้องเลือกกรองข้อมูลออกอย่างระมัดระวัง ซึ่งคาดว่าจะเหลือปริมาณข้อมูลเก็บไว้ราว 25 พีต้าไบต์ต่อปี ผมได้เข้าฟังบรรยายเรื่อง LHC ของ CERN ตอนไปฮาวาย ผู้บรรยายบอกว่าตลอดระยะเวลาโครงการ LHC จะมีข้อมูลที่ต้องประมวลผลราว 1 เอ๊กซาไบต์ (exabyte – 1 พันล้านกิกะไบต์) ซึ่งมากเกินกว่าที่ CERN จะนำไปประมวลผลได้ด้วยพลังการประมวลผลที่มีอยู่ในมือ CERN จึงออกแบบให้กระจายข้อมูลเป็น 4-tier ส่งไปยังเครื่อง(ซูเปอร์) คอมพิวเตอร์ในมหาวิทยาลัยทั่วโลก และถ้า Grid เกิดขึ้นเมื่อไหร่ CERN ก็จะได้รับประโยชน์จากพลังการประมวลผลนี้ค่อนข้างมากทีเดียว

ในยุโรป มีการสร้างระบบ Grid เช่นเดียวกับของอเมริกาในโครงการ DataGrid ซึ่งประสานงานโดย CERN วัตถุประสงค์ของโครงการคือพัฒนา middleware สำหรับโครงการวิจัยทางด้านชีววิทยา การสำรวจโลก และฟิสิกส์ เมื่อมี Grid เกิดขึ้นอย่างหลากหลาย ปัญหาที่จะตามมาภายหลังก็คือมาตรฐาน อย่าลืมว่าแม้แต่ไฟฟ้าก็ยังไม่มีมาตรฐานสำหรับแรงดันและความถี่ที่จะใช้งาน กันทั่วโลก หากไม่มีการตกลงกันตั้งแต่แรก อนาคตอาจเป็นไปได้ว่า Grid จะมีหลายมาตรฐานด้วยเหมือนกัน

ที่ผ่านมา Grid มักจะนำไปใช้ในงานวิทยาศาสตร์เพราะเห็นได้ชัดว่า Grid ช่วยให้ประมวลผลได้ง่ายขึ้น แต่ Ian Foster เคยกล่าวไว้ก่อนแล้วว่า ประโยชน์ที่แท้จริงของ Grid จะเกิดขึ้นเมื่อผู้ใช้เรียนรู้และสร้างสิ่งที่เรียกว่า “Virtual Organization” องค์กรเสมือนนี้อาจจะเป็นทีมที่จัดการหรือวิจัยเกี่ยวกับเหตุวิกฤติอย่าง แผ่นดินไหว หรือ การรั่วของสารเคมี หรือ(เครื่องบินชน)ตึกถล่ม ในสถานการณ์ดังกล่าว Grid จะกลายเป็นเครื่องมือในอุดมคติที่ใช้ในการวิเคราะห์สภาพอากาศ รูปแบบของดิน แหล่งน้ำ ประชากรท้องถิ่น ตามหาผู้ก่อการร้าย หรือแม้แต่ช่วยในการสื่อสารระหว่างเจ้าหน้าที่กับศูนย์อำนวยการผ่าน videoconferencing ในอีกมุมนึง องค์กรเสมือนอาจจะเป็นกลุ่มโรงงานอุตสาหกรรมที่ร่วมกับพัฒนาผลิตภัณฑ์ ยกตัวอย่างเช่น เครื่องบินเจ็ท Grid สามารถนำมาใช้ในการจำลองแบบเพื่อดูผลว่าเมื่อนำส่วนประกอบที่ผลิตมาจากผู้ ผลิตต่างๆ กันมาประกอบเข้าด้วยกันจะได้ผลเป็นอย่างไร ในขณะที่ผู้ผลิตแต่ละเจ้ายังคงสามารถปกปิดความลับของบริษัทที่ใช้ในการผลิต ได้ การคำนวณบน Grid อาจไม่มีความเกี่ยวข้องกัน ใช้ข้อมูลต่างชนิดกัน และประมวลผลบนคอมพิวเตอร์ของใครก็ไม่รู้ที่อาจจะไม่มีความน่าเชื่อถือเลย แต่ทั้งหมดจะต้องนำมาปะติดปะต่อกันจนกลายเป็นผลลัพธ์ที่ต้องการได้ ที่สำคัญผู้ใช้ในองค์กรเสมือนจะต้องมีขีดความสามารถในการใช้ข้อมูล และใช้พลังการประมวลผลตามต้องการ ไม่ว่าจะใช้งานจากที่ใด ..


จาก บทความ ‘Computing Power on Tap’, The Economist printed edition ต้นฉบับภาษาไทย โดย [email protected], หนังสือพิมพ์ผู้จัดการรายวัน ฉบับวันจันทร์ที่ 23 กรกฏาคม 2544 คอลัมน์ Cyberbiz’s The Innovations