Original Title: Serverless High-Performance Computing over Cloud
Source: doi.org/10.2478/cait-2022-0029
Disclaimer: Summary generated by AI based on the provided document. Please refer to the original paper for full scientific accuracy.

ការគណនាប្រកបដោយប្រសិទ្ធភាពខ្ពស់ដោយមិនប្រើប្រាស់ម៉ាស៊ីនមេនៅលើក្លោដ

ចំណងជើងដើម៖ Serverless High-Performance Computing over Cloud

អ្នកនិពន្ធ៖ Davit Petrosyan (Institute for Informatics and Automation Problems of National Academy of Sciences of the Republic of Armenia), Hrachya Astsatryan (Institute for Informatics and Automation Problems of National Academy of Sciences of the Republic of Armenia)

ឆ្នាំបោះពុម្ព៖ 2022, CYBERNETICS AND INFORMATION TECHNOLOGIES

វិស័យសិក្សា៖ Computer Science / Cloud Computing

១. សេចក្តីសង្ខេបប្រតិបត្តិ (Executive Summary)

បញ្ហា (The Problem)៖ ប្រព័ន្ធកុំព្យូទ័រដែលមានប្រសិទ្ធភាពខ្ពស់ (HPC) ជួបប្រទះនឹងបញ្ហាប្រឈមក្នុងការដាក់ពង្រាយលើប្រព័ន្ធក្លោដ ដោយសារភាពស្មុគស្មាញនៃតម្រូវការផ្នែកទន់ ផ្នែករឹង និងការពឹងផ្អែកលើកម្មវិធីគ្រប់គ្រងការងារស្មុគស្មាញដូចជា Slurm ឬ OpenPBS។

វិធីសាស្ត្រ (The Methodology)៖ ការសិក្សានេះស្នើឡើងនូវស្ថាបត្យកម្ម Shoc (Serverless HPC over Cloud) ដែលប្រើប្រាស់បច្ចេកវិទ្យាកុងតឺន័រ និង Kubernetes ដើម្បីរៀបចំការងារដោយស្វ័យប្រវត្តិ។

លទ្ធផលសំខាន់ៗ (The Verdict)៖

២. ការវិភាគលើប្រសិទ្ធភាព និងដែនកំណត់ (Performance & Constraints)

វិធីសាស្ត្រ (Method) គុណសម្បត្តិ (Pros) គុណវិបត្តិ (Cons) លទ្ធផលគន្លឹះ (Key Result)
Traditional HPC Workload Managers (Slurm, OpenPBS, TORQUE)
ការគ្រប់គ្រងការងារ HPC បែបប្រពៃណី (Slurm, OpenPBS)
មានសមត្ថភាពខ្ពស់ក្នុងការកំណត់កាលវិភាគការងារ មានប្រព័ន្ធទប់ទល់នឹងកំហុស (Fault-tolerant) និងអាចពង្រីកទំហំបានល្អលើម៉ាស៊ីនផ្ទាល់ (Bare-metal)។ វាគាំទ្រការកំណត់ធនធានបានយ៉ាងលម្អិត និងអាចបន្ថែមមុខងារតាមតម្រូវការ។ មានភាពស្មុគស្មាញខ្លាំងក្នុងការដាក់ពង្រាយ និងថែទាំ ជាពិសេសនៅលើប្រព័ន្ធក្លោដ។ វាទាមទារការកំណត់រចនាសម្ព័ន្ធដោយដៃច្រើន និងមានការផ្សារភ្ជាប់យ៉ាងស្អិតរមួតជាមួយផ្នែករឹង (Hardware coupling)។ នៅតែមានគម្លាតធំរវាងប្រព័ន្ធប្រពៃណីទាំងនេះ និងប្រព័ន្ធក្លោដទំនើប ដែលធ្វើឱ្យពិបាកក្នុងការទាញយកអត្ថប្រយោជន៍ពី Cloud រួមទាំងចំណាយកម្លាំងពលកម្មច្រើនក្នុងការដំឡើង។
Shoc Architecture (Serverless HPC via Kubernetes & Containers)
ស្ថាបត្យកម្ម Shoc (HPC បែប Serverless តាមរយៈ Kubernetes និង Containers)
ផ្តល់បទពិសោធន៍បែប Serverless ដល់អ្នកប្រើប្រាស់ ដោយលុបបំបាត់ភាពស្មុគស្មាញនៃការដំឡើងហេដ្ឋារចនាសម្ព័ន្ធ។ អាចពង្រីក ឬបង្រួមទំហំដោយស្វ័យប្រវត្តិ (Auto-scaling) និងមិនពឹងផ្អែកលើបច្ចេកវិទ្យាផ្នែករឹងជាក់លាក់ណាមួយ។ កម្មវិធីកាលវិភាគរបស់ Kubernetes (kube-scheduler) អាចមិនមានមុខងារគ្រប់គ្រងការងារកម្រិតខ្ពស់ទាំងអស់ដូច Slurm ទេ ហើយអាចមានការយឺតយ៉ាវបន្តិចបន្តួចដោយសារបណ្តាញនិម្មិត (Virtual network overhead)។ អនុញ្ញាតឱ្យដំណើរការការងារ HPC (MPI, Spark) លើប្រព័ន្ធក្លោដយ៉ាងរលូន ដោយកាត់បន្ថយភាពស្មុគស្មាញនៃការដាក់ពង្រាយ និងធ្វើឱ្យស្វ័យប្រវត្តិកម្មក្នុងការគ្រប់គ្រងធនធាន។

ការចំណាយលើធនធាន (Resource Cost)៖ ឯកសារនេះមិនបានបញ្ជាក់ពីតម្លៃជាក់លាក់ជាតួលេខនោះទេ ប៉ុន្តែវាទាមទារការវិនិយោគលើហេដ្ឋារចនាសម្ព័ន្ធក្លោដ និងធនធានមនុស្សដែលមានជំនាញផ្នែក DevOps និង Cloud Computing។

៣. ការពិនិត្យសម្រាប់បរិបទកម្ពុជា/អាស៊ីអាគ្នេយ៍

ភាពលំអៀងនៃទិន្នន័យ (Data Bias)៖

ការសិក្សានេះគឺជាការស្នើឡើងនូវស្ថាបត្យកម្មប្រព័ន្ធ (System Architecture) ជាជាងការពិសោធន៍លើទិន្នន័យជាក់លាក់ ហើយការអនុវត្តបន្ទាប់នឹងធ្វើឡើងនៅលើប្រព័ន្ធក្លោដស្រាវជ្រាវរបស់ប្រទេសអាមេនី (Armenian research cloud infrastructure)។ ដោយសារវាជាការស្រាវជ្រាវលើផ្នែកហេដ្ឋារចនាសម្ព័ន្ធបច្ចេកវិទ្យាក្លោដទូទៅ វាគ្មានភាពលំអៀងទៅលើទិន្នន័យប្រជាសាស្ត្រនោះទេ ដែលធ្វើឱ្យប្រទេសកម្ពុជាអាចយកស្ថាបត្យកម្មនេះមកអនុវត្តបានដោយគ្មានឧបសគ្គផ្នែកទិន្នន័យ។

លទ្ធភាពនៃការអនុវត្ត (Applicability)៖

ស្ថាបត្យកម្ម Shoc នេះពិតជាមានភាពស័ក្តិសម និងមានសារៈប្រយោជន៍ខ្ពស់សម្រាប់ស្ថាប័នអប់រំ និងវិស័យបច្ចេកវិទ្យានៅកម្ពុជា ដែលចង់ប្រើប្រាស់ធនធានកុំព្យូទ័រកម្រិតខ្ពស់ដោយសន្សំសំចៃ។

ការចាប់យកបច្ចេកវិទ្យា Serverless និង Containerization នឹងជួយជម្រុញសមត្ថភាពស្រាវជ្រាវ និងការច្នៃប្រឌិតនៅកម្ពុជា តាមរយៈការធ្វើឱ្យការគណនាប្រកបដោយប្រសិទ្ធភាពខ្ពស់ (HPC) កាន់តែងាយស្រួលចូលប្រើ និងមានតម្លៃសមរម្យ។

៤. ផែនការសកម្មភាពសម្រាប់និស្សិត (Actionable Roadmap)

ដើម្បីអនុវត្តតាមការសិក្សានេះ និស្សិតគួរអនុវត្តតាមជំហានខាងក្រោម៖

  1. សិក្សាមូលដ្ឋានគ្រឹះនៃ Containerization: និស្សិតត្រូវចាប់ផ្តើមសិក្សាពីរបៀបវេចខ្ចប់កម្មវិធី (Packaging) និងស្ថាបត្យកម្មនៃកុងតឺន័រដោយប្រើ Docker និង Singularity ព្រោះវាជាបច្ចេកវិទ្យាស្នូលនៃការរៀបចំប្រព័ន្ធ HPC នេះដោយសុវត្ថិភាពនិងមិនពឹងផ្អែកលើប្រព័ន្ធប្រតិបត្តិការតែមួយ។
  2. អនុវត្តការគ្រប់គ្រងកុងតឺន័រជាមួយ Kubernetes: ដំឡើងបរិស្ថានសាកល្បងដោយប្រើ MinikubeK3s នៅលើកុំព្យូទ័រផ្ទាល់ខ្លួន ដើម្បីរៀនពីរបៀបដាក់ពង្រាយកុងតឺន័រ យល់ដឹងពី kube-scheduler, Pods, និងមុខងារ Auto-scaling ដែលជាបេះដូងរបស់ស្ថាបត្យកម្ម Shoc។
  3. សាកល្បងដំណើរការកម្មវិធីគណនាកម្រិតខ្ពស់ (HPC Workloads): បង្កើតកម្មវិធីតូចៗសម្រាប់ការគណនាស្របគ្នា (Parallel Computing) ដែលប្រើប្រាស់ OpenMPI ឬកម្មវិធីវិភាគទិន្នន័យដូចជា Apache Spark រួចសាកល្បងដាក់ដំណើរការពួកវានៅក្នុង Docker containers លើប្រព័ន្ធ Kubernetes ដែលបានរៀបចំ។
  4. អភិវឌ្ឍប្រព័ន្ធ API និងកម្មវិធីបញ្ជា (Client-Server Communication): សរសេរកូដបង្កើត RESTful APIs ដោយប្រើប្រាស់ភាសាដូចជា Python (FastAPI) ឬ Go ដើម្បីតភ្ជាប់រវាងអ្នកប្រើប្រាស់ (End-user CLI ដូចជា shocctl ក្នុងឯកសារ) និងប្រព័ន្ធ Back-end ដែលបញ្ជាទៅ Kubernetes ដោយផ្ទាល់។

៥. វាក្យសព្ទបច្ចេកទេស (Technical Glossary)

ពាក្យបច្ចេកទេស ការពន្យល់ជាខេមរភាសា (Khmer Explanation) និយមន័យសាមញ្ញ (Simple Definition)
High-Performance Computing (HPC) ការប្រើប្រាស់ប្រព័ន្ធកុំព្យូទ័រដែលមានសមត្ថភាពខ្ពស់ និងបច្ចេកទេសគណនាស្របគ្នា (parallel processing) ដើម្បីដំណើរការនិងដោះស្រាយបញ្ហាស្មុគស្មាញ ឬទិន្នន័យធំៗដែលកុំព្យូទ័រធម្មតាមិនអាចធ្វើបានក្នុងពេលដ៏ខ្លី។ ដូចជាការប្រមូលផ្តុំមនុស្សរាប់ពាន់នាក់ឱ្យជួយគិតលេខលំហាត់គណិតវិទ្យាដ៏ធំមួយក្នុងពេលតែមួយ ដើម្បីឱ្យឆាប់បានចម្លើយ។
Serverless គំរូសេវាកម្មក្លោដ (Cloud computing) ដែលអ្នកប្រើប្រាស់មិនចាំបាច់ខ្វល់ខ្វាយពីការទិញ ដំឡើង ឬគ្រប់គ្រងម៉ាស៊ីនមេ (Servers) ដោយប្រព័ន្ធនឹងបែងចែកធនធាននិងដំណើរការដោយស្វ័យប្រវត្តិតាមទំហំការងារជាក់ស្តែងរបស់អ្នកប្រើ។ ដូចជាការជិះឡានតាក់ស៊ី ដែលអ្នកគ្រាន់តែប្រាប់គោលដៅ ហើយបង់លុយតាមចម្ងាយ ដោយមិនបាច់ខ្វល់រឿងទិញឡាន ឬថែទាំឡាននោះទេ។
Containerization ការវេចខ្ចប់កម្មវិធីកុំព្យូទ័រ និងឯកសារបណ្ណាល័យពាក់ព័ន្ធទាំងអស់ (dependencies) បញ្ចូលគ្នាជាកញ្ចប់តែមួយ (Container) ដើម្បីឱ្យវាអាចដំណើរការបាននៅលើគ្រប់កុំព្យូទ័រ ឬប្រព័ន្ធក្លោដដោយមិនមានបញ្ហា Error ផ្នែករចនាសម្ព័ន្ធ។ ដូចជាការដាក់អីវ៉ាន់ក្នុងទូរកុងតឺន័រ ដែលអាចលើកដាក់លើកប៉ាល់ ឬឡានធំបានយ៉ាងងាយស្រួលដោយមិនបាច់រុះរើអីវ៉ាន់ខាងក្នុងរាល់ពេលផ្លាស់ទី។
Kubernetes កម្មវិធីប្រព័ន្ធបើកចំហ (Open-source platform) សម្រាប់គ្រប់គ្រង និងរៀបចំកាលវិភាគដំណើរការកុងតឺន័រ (Container orchestration) រាប់ពាន់ដោយស្វ័យប្រវត្តិ រួមទាំងការបន្ថែម ឬបន្ថយទំហំធនធានម៉ាស៊ីន។ ដូចជាអ្នកគ្រប់គ្រងកំពង់ផែដ៏ឆ្លាតវៃម្នាក់ ដែលដឹងថាត្រូវលើកកុងតឺន័រណាដាក់កប៉ាល់ណា ដើម្បីឱ្យការងារប្រព្រឹត្តទៅបានលឿននិងរលូន។
Message Passing Interface (MPI) ប្រព័ន្ធស្តង់ដារមួយដែលអនុញ្ញាតឱ្យកុំព្យូទ័រជាច្រើន (nodes) នៅក្នុងបណ្តាញ HPC អាចបញ្ជូនសារ និងទិន្នន័យទំនាក់ទំនងគ្នាទៅវិញទៅមកនៅពេលកំពុងធ្វើការគណនារួមគ្នា ដើម្បីចែករំលែកព័ត៌មាន។ ដូចជាភាសាកូដកាយវិការ និងអាយកូម (Walkie-talkie) ដែលក្រុមវិស្វករប្រើសម្រាប់ទាក់ទងគ្នានៅពេលកំពុងសាងសង់អាគារដ៏ធំមួយរួមគ្នា។
Slurm កម្មវិធីប្រពៃណីសម្រាប់គ្រប់គ្រងកាលវិភាគការងារ (Job scheduler) និងបែងចែកធនធាននៅក្នុងប្រព័ន្ធកុំព្យូទ័រ HPC ដើម្បីធានាថាការងារនីមួយៗទទួលបានកម្លាំងម៉ាស៊ីនគ្រប់គ្រាន់ និងមិនជាន់គ្នា។ ដូចជាអ្នកចាត់ចែងការងារនៅក្នុងរោងចក្រ ដែលកំណត់ថាកម្មករណាត្រូវធ្វើការងារអ្វី នៅម៉ោងណា ដើម្បីឱ្យខ្សែសង្វាក់ផលិតកម្មដើរស្របគ្នា។
Virtual clustering ការបង្កើតបណ្តុំម៉ាស៊ីនមេនិម្មិត (Virtual) ដោយទាញយកធនធានពីម៉ាស៊ីនមេពិតប្រាកដ (Physical servers) ជាច្រើនបញ្ចូលគ្នា ដើម្បីដំណើរការការងារជាក់លាក់ណាមួយឱ្យមានប្រសិទ្ធភាព ដោយមិនចាំបាច់មានម៉ាស៊ីនជាក់ស្តែងផ្ទាល់ខ្លួន។ ដូចជាការខ្ចីបន្ទប់តូចៗពីផ្ទះច្រើនផ្សេងៗគ្នា មកផ្គុំជាការិយាល័យនិម្មិតដ៏ធំមួយសម្រាប់ការងារបណ្តោះអាសន្ន។
Auto-scaling សមត្ថភាពរបស់ប្រព័ន្ធក្លោដក្នុងការបន្ថែម ឬបន្ថយចំនួនម៉ាស៊ីនមេ (Nodes) និងធនធានកុំព្យូទ័រដោយស្វ័យប្រវត្តិ ដោយផ្អែកទៅលើទំហំការងារ តម្រូវការគណនា ឬចំនួនអ្នកប្រើប្រាស់ជាក់ស្តែងនៅពេលនោះ។ ដូចជាភោជនីយដ្ឋានដែលអាចបន្ថែមតុនិងកៅអីដោយស្វ័យប្រវត្តិនៅពេលមានភ្ញៀវចូលច្រើន ហើយទុកវាវិញដោយខ្លួនឯងពេលភ្ញៀវចេញអស់។

៦. ប្រធានបទពាក់ព័ន្ធ (Further Reading)

អត្ថបទដែលបានបោះពុម្ពនៅលើ KhmerResearch ដែលទាក់ទងនឹងប្រធានបទនេះ៖

ប្រធានបទ និងសំណួរស្រាវជ្រាវដែលទាក់ទងនឹងឯកសារនេះ ដែលអ្នកអាចស្វែងរកបន្ថែម៖