21 November 2004

Berkeley Open Infrastructure for Network Computing (BOINC)

เกี่ยวกับ BOINC
BOINC เป็นโปรแกรมพื้นฐาน สำหรับการทำงานเพื่อการประมวลผลแบบกระจายศูนย์กลาง (Distributed Computing) โดยใช้เครื่องคอมพิวเตอร์ส่วนบุคคลของผู้ที่จะมาเป็นอาสาสมัคร โดย BOINC จะมีส่วนเกี่ยวข้องในการดำเนินการสำคัญคือ การจัดสรรทรัพยากรระหว่างโครงการต่างๆ ที่ไม่ขึ้นอยู่ซึ่งกันและกัน แม้ว่าในแต่ละโครงการจะมีฐานข้อมูลต่างๆแยกกัน โดยผู้ใช้จะดำเนินการแค่ติดตั้งตัวโปรแกรมพื้นฐาน และตัว BOINC จะจัดการทุกอย่างเองโดยอัตโนมัติ
BOINC

คุณลักษณะ ของ BOINC
มี Framework ที่ยืดหยุ่น: โดยการใช้ Programming Language ที่เป็นพื้นฐาน เช่น C, C++, Fortran สามารถทำงานตามลักษณะงานของ BOINC ได้ โดยที่ไม่จำเป็น หรือ มีการแก้ไขเพียงเล็กน้อย และในตัว Application ที่จะนำมาใช้ สามารถประกอบด้วยไฟล์จำนวนหลายไฟล์ได้
มีความปลอดภัย: ตัว BOINC สามารถที่จะรับมือกับการปะทะได้ในหลายลักษณะ การใช้ Digital Signature สามารถที่จะป้องกันข้อมูล และระงับการแพร่กระจายของไวรัสได้
มีระบบป้องกันข้อบกพร่อง: ตัวโครงการสามารถที่การตั้งเวลา และกำหนดเวลาการเชื่อมต่อกับ Server ได้ และในทำนองเดียวกัน เครื่องลูกข่ายสามารถที่จะติดต่อกับ Server ได้ในหลายๆตัว หรือ ในกรณีที่ Server ทั้งหมด Down เครื่อง Client จะทำการกำหนดเวลาติดต่อกับ Server เป็นเวลาแบบ Exponential เพื่อชะลอปัญหาการส่งข้อมูลมากเกินไป เมื่อเครื่อง Server ของโครงการกลับมาใช้งานได้อีกครั้ง
มีเครื่องมือการดูแลระบบ: เป็นระบบการเฝ้าระวังผ่าน Web interface
เป็นสถาปัตกรรมแบบ Open source: BOINC เป็นการจดสิทธิให้ใช้งานแบบสาธารณะ ซึ่งสามารถใช้งานได้โดยสาธารณะ หรือโดยส่วนบุคคลได้ ซึ่ง Source code จะสามารถเชื่อมต่อกับองค์ประกอบด้าน Open source อื่นได้อย่างง่ายดาย
สามารถจัดการข้อมูลขนาดใหญ่ได้: BOINC สามารถที่จะทำให้เครื่อง Client สามารถเป็นผู้ผลิต หรือ บริโภคข้อมูลขนาดใหญ่ได้ หรือ ใช้งานหน่วยความจำจำนวนมากได้ ซึ่งผู้ใช้จะมีสิทธิในการกำหนดการจำกัดเนื้อที่ ได้เอง
คุณสมบัติของผู้เข้าร่วมโครงการได้

BOINC ได้กำหนด คุณลักษณะที่ให้ผู้ใช้ได้เข้าร่วมโครงการ ดังนี้

  • รองรับเครื่องผู้ใช้ในหลายสถาปัตยกรรม: MacOS X, Windows, Linux หรือ UNIX สามารถใช้งานได้
  • การใช้งานผ่าน Web Base: การแก้ไขข้อมูลส่วนบุคคล และการกำหนดค่าต่างๆ ได้กับ Server โดยตรง
  • กำหนดการทำ Work caching ได้จากระบบ: ผู้ใช้สามารถ Download ตัว Work Unit ได้มากตามความเหมาะสม เพื่อที่จะลดจำนวนครั้งที่จะต่อเข้ามายัง Server และมีข้อดีคือ เครื่องอาสาสมัครยังทำการประมวลผลได้ตามปกติ แม้จะมีการ Downtime เกิดขึ้นของ Server หลักก็ตาม
ความสามารถในการประมวลผล
การประมวลผลแบบกระจายศูนย์ให้กำลังการประมวลผลสูงกว่า Super computer, การทำคลัสเตอร์, หรือ กริด และความสามารถจะเพิ่มขึ้นไปเรื่อยๆได้ ตัวอย่างเช่นโครงการ SETI@home ที่มีอาสาสมัครใช้เครื่องคอมพิวเตอร์ราว 1 ล้านเครื่อง สามารถให้ความสามารถในการประมวลผล 60 TeraFLOPS (หกหมื่นล้านล้านการคำนวณเลขทศนิยม ต่อ 1 วินาที) ในระหว่างที่ Super computer ของ IBM ASCI White ทำได้ 12 TerFLOPS ซึ่งโครงการ SETI@home เป็นแค่เศษเสี้ยวของผู้ใช้อิเตอร์เน็ตทั้งระบบ คือ 150,000 ล้านเครื่อง ที่เชื่อมต่อกับระบบอินเตอร์เน็ต และในอัตราการเพิ่มของความสามารถของเครื่อง และประสิทธิภาพของหน่วยประมวลผลปัจจุบัน ในปี ค.ศ. 2015 โครงการจะทำได้ จำนวนหลาย PetraFLOPS
การประมวลผลโดยทั่วไป มีความต้องการใช้พื้นที่ Disk ซึ่งมีในความเป็นจริง ผู้ใช้งานยังไม่ได้จำเป็นต้องใช้งานพื้นที่ส่วนนั้น สมมติให้ตัวอย่างของเครื่องคอมพิวเตอร์อาสาสมัคร 100 ล้านเครื่อง มีพื้นที่ให้โครงการ 10 GByte โครงการจะมีพื้นที่ Disk เพื่อใช้งานมากถึงระดับ Exabyte (1018) ซึ่งใหญ่กว่าระบบบันทึกข้อมูลส่วนกลางของทุกที่บนโลก
โครงการ SETI@home เป็นโครงการที่ประสบความสำเร็จในระดับหนึ่ง โดยมีผู้ประมวลผลทั้งสิ้น 600,000 คน จากผู้สมัครทั้งหมด 4.6 ล้านคน
เหตุผลของอาสาสมัครที่ทำการประมวลผลให้ จากแบบสอบถามที่อยู่ใน Profile ของอาสาสมัคร และจากข้อความกระทู้ จำนวน 92% เป็นชาย และมีความสนใจกับวิทยาศาสตร์ที่ยังอาจจะหาคำตอบไม่ได้ และการได้ไต่ระดับของผู้มีความสามารถในการประมวลผลสูงสุด
ในโครงการ SETI@home จะมีผู้ใช้งานบางคน พยายามที่จะ "โกง" จำนวนของงานที่ประมวลผล ซึ่งในผลการประมวลผลที่ผิด ระบบจะทำการเปรียบเทียบกับงานประมวลผลที่ผู้อื่นทำไว้แบบ redundant ในการเปรียบเทียบ ก่อนสรุปผลการประมวลผล

สิ่งที่ BOINC ดำเนินการเชิงเทคนิค
ในการดำเนินการ ระบบยังต้องพัฒนาตัวโปรแกรมที่สามารถทำงานได้บนหลาย Platform, การจัดการเกี่ยวกับระบบ Server และฐานข้อมูล, การติดตามผลการประมวลผลของผู้ใช้งานแต่ละราย, การทำระบบสำรองควบคู่กับการตรวจสอบข้อผิดพลาด
BOINC เป็นทางเลือกที่จะแก้ปัญหาการประมวลผลแบบกระจายศูนย์ ซึ่งเป็นทางเลือกที่ยุติธรรม และประหยัดที่สุดกับผู้พัฒนา Software ที่มีมาก่อนหน้าอยู่แล้ว และอาสาสมัครมีสิทธิเลือกว่า จะให้การประมวลผลส่วนใดเป็นหลัก เช่น ผู้ใช้อาจให้ CPU จำนวน 60% กับโครงการศึกษาสภาวะภูมิอากาศ และอีก 40% กับโครงการ SETI
โครงการที่ BOINC มีในปัจจุบัน ได้แก่ SETI@home, โครงการด้านเคมีชีวภาพ Folding@home, โครงการศึกษาสภาวะอุณหภูมิของโลก คือ climateprediction.net ในตัว BOINC จะให้ความร่วมมือกับโครงการของสถาบันเท่านั้น

The information is the historic event since November 21th, 2004. And will be archived here.

No comments:

Post a Comment

Give a comment ...