Google Cloud ทำลายสถิติโลก ค้นหา Pi ตัวที่ 100 ล้านล้านได้ยังไง?

Credit: https://cloud.google.com/blog/products/compute/calculating-100-trillion-digits-of-pi-on-google-cloud

ในที่สุด Google Cloud ก็สามารถทำลายสถิติโลกโดยการหาค่า Pi ตัวที่ 100 ล้านล้านได้ จากการใช้ Compute Engine ถ้าจะเปรียบเทียบให้เข้าใจง่าย ๆ ก็เหมือนกับการสร้างกำแพงเมืองจีน คือ ให้อิฐ 1 ก้อนในการสร้างกำแพงมีค่าเท่ากับคอมพิวเตอร์ที่คำนวณ Pi 1 ล้านล้านทศนิยม เมื่อใช้อิฐหลายล้านก้อนเข้ามาทำงานร่วมกัน ก็จะสามารถสร้างกำแพงเมืองจีนเสร็จได้

ในบทความนี้เราจะมาดูว่าการหาค่า Pi มีความสำคัญกับการพัฒนาทางด้านเทคโนโลยีขนาดไหน แล้วทำไมคนถึงต้องหาค่า Pi กัน นอกจากนี้ Google Cloud ใช้เทคโนโลยีอะไรในการหาค่า Pi ได้ถึง 100 ล้านล้านจุดทศนิยม 

ความสำคัญของค่า Pi กับการพัฒนาของเทคโนโลยี

เพื่อนๆอาจจะสงสัยว่าทำไมเราต้องหาค่า Pi ถึง 100 ล้านจุดทศนิยมทั้งที่จริงๆแล้ว การนำไปใช้ทางด้านวิทยาศาสตร์ต้องการจุดทศนิยมแค่ไม่ถึง 20 จุด นั่นก็เพราะว่าการหาค่า Pi เป็นหนึ่งในวิธีที่ดีที่สุดในการวัดความก้าวหน้าทางเทคโนโลยีของมนุษยชาติ

ในปี 1949 หนึ่งในคอมพิวเตอร์ที่เป็นอิเล็กทรอนิกส์แรกของโลกสามารถค้นหาค่า Pi ได้ถึง 2,000 จุดทศนิยม ตั้งแต่นั้นเป็นต้นมานักวิทยาศาสตร์ก็พยายามหาค่า Pi ให้ได้จุดทศนิยมให้มากที่สุดเท่าที่จะทำได้ จาก 2000 จุดทศนิยมในตอนนั้นจนถึง 100 ล้านล้านจุดในตอนนี้ แสดงให้เห็นถึงความก้าวหน้าทางด้านคอมพิวเตอร์ algorithm และเทคโนโลยีของมนุษยชาติ ว่ามีการพัฒนาไปมากขนาดไหนในหลายทศวรรษที่ผ่านมา 

Google Cloud กับการหาค่า Pi ตัวที่ 100 ล้านล้าน

ก่อนหน้านี้ Google ได้พยายามค้นหาค่า Pi มาแล้วครั้งหนึ่ง โดยในปี 2019 Google สามารถค้นหาค่า Pi ได้ถึง 31.4 ล้านล้านจุดทศนิยมขึ้นเป็น World Record และในปี 2022 นี้ Google สามารถหาค่า Pi ตัวที่ 100 ล้านล้านได้ซึ่ งก็หมายความว่าเป็น 3 เท่าจากที่ผ่านมา และทำลายสถิติตัวเองลงได้

นี่แปลว่า Cloud Infrastructure อย่างเช่น Virtual Machine, Network หรือ Storage ของเรานั้นมีการพัฒนาไปไกลจนถึงขั้นที่สามารถรับมือกับข้อมูลขนาดใหญ่ถึง 100 ล้านล้านจุดได้ โดยใช้เวลาเพียง 157 วัน นานกว่าการหาค่า Pi ครั้งแรกแค่ 30% 

แล้ว Google ทำการหาค่าพายตัวที่ 100 ล้านล้านมาได้อย่างไร

คำตอบก็คือ Google ใช้โปรแกรมที่เรียกว่า y-cruncher ซึ่งถูกพัฒนาโดย Alexander Yi เป็นโปรแกรมที่รันบน Virtual Machine เดี่ยวเหมือนกับเว็บเซิร์ฟเวอร์ทั่วไป แต่ก็เป็นแบบที่ใช้งานได้สูง ทั้งการประมวลผล Ram และพื้นที่จัดเก็บ โดยใช้ instance แบบ n2-highmem-128 ที่มาพร้อมกับ 128 vCPU และ Memory ขนาด 864 GB ซึ่งเป็น Virtual Machine ที่ใหญ่ที่สุดที่คุณสามารถใช้บน Google Cloud

Y-cruncher ใช้ทั้ง Memory และ Disks ในการเก็บข้อมูลระหว่างการคำนวณค่า Pi และต้องใช้ที่เก็บข้อมูลขนาดใหญ่ถึง 515 TB ในการเก็บข้อมูลทศนิยมค่าพายทั้ง 100 ล้านล้านจุดทศนิยม แต่ขนาดที่เก็บข้อมูลที่ใหญ่ที่สุดที่สามารถต่อกับ Virtual Machine อันหนึ่งได้นั้นอยู่ที่ 257 TB จึงมีการนำที่เก็บข้อมูลแบบหนึ่งในการเพิ่ม Disks ที่เรียกว่า iscsi มาใช้ต่อกับ Virtual Machine แบบรีโมท ซึ่งก็ใช้งานได้ดีไม่ต่างกับการเก็บบน local SSD

ทำให้เรามีที่เก็บข้อมูลทั้งหมดขนาด 663 TB ทั่วทั้ง 32 n2-highcpu-16 VMs พร้อมกับ Persistent Disks อันละ 10.4 TB 2 อันต่อ 1 VM

ระบบคำนวณ Pi ด้วย Google Cloud (ขอบคุณรูปจาก https://www.youtube.com/watch?v=kYLtFIbO-LU)

Persistent Disk ที่ใช้นั้นเป็น Balance Persistent Disk สามารถอ่านและเขียน (Throughput) ได้ถึง 1,200 MB ต่อวินาที และมี IOPS อยู่ที่ 15-80k ซึ่งเป็นจุดที่ลงตัวของ Y-cruncher ที่ต้องการ throughput สูงและ IOPS ปานกลาง และยังช่วยลด cost ได้อย่างมาก 

ทีม Google Cloud พยายามทดลองปรับค่า setting ต่างๆมากกว่า 100 แบบ เพื่อให้ได้ผลที่ดีที่สุดก่อนที่จะมาจบลงด้วยรูปแบบปัจจุบันตามรูป ซึ่งทำงานได้เร็วกว่า Design ครั้งที่แล้วถึง 2 เท่า 

นอกจากนี้ยังมีการ Backup ทุกๆ 2 วันโดยอัตโนมัติ โดยใช้ Persistent Disk ถ่าย snapshot ซึ่งจะเกิดบนการทำงานเบื้องหลัง นั่นหมายความว่าการคำนวณจะหยุดลงไม่กี่วินาที แล้วทำงานต่อทันที เมื่อทำการ Copy  แบบ asynchronous วิธีการนี้จะลด Downtime ในการ Backup แล้วทำให้เราทำการ Backup ได้โดยไม่ต้องหยุดการคำนวณ 

หลังจากที่รันมา 5 เดือน Google ก็ได้ค่า Pi มาในที่สุด และก็ได้ทำการทำการตรวจสอบผลกับ algorithm ยืนยันว่าคำตอบถูกต้องเกิดเป็น World Record ใหม่ล่าสุด 

ถ้าใครสนใจ script ในการหาค่า Pi หรือการ automation ก็สามารถเข้าไปใน GitHub Google Cloud Pi Delivery ได้

หรือถ้าใครอยากเห็นค่า Pi ก็สามารถเข้าไปเล่นใน Demo ที่ Pi.Delivery ได้โดยสามารถเห็นค่า Pi ได้ตั้งแต่ 3.14 ไปจนถึงจุดทศนิยมที่ 100 ล้านล้านจุด ออกมาเป็นได้ทั้ง Visulization หรือเล่นเป็นเพลง

หากองค์กรของคุณกำลังตามหาระบบและบริการที่รองรับการเติบโตขององค์กร หรือต้องการที่ปรึกษาด้านเทคโนโลยีเกี่ยวกับด้าน Data และ Google Cloud สามารถ ติดต่อพูดคุยกับทีมงาน Cloud HM ได้เลยนะคะ

สำหรับในโอกาสหน้า เราจะหาเรื่องราวที่น่าสนใจมาเล่าให้ฟังกันอีกนะคะ

References:

https://github.com/GoogleCloudPlatform/pi-delivery/tree/main/pi-100t

https://pi.delivery/

— Cloud HM