• MareNostrum V ของมหาวิทยาลัยเทคนิคคาตาลุญญา บาร์เซโลนา เป็นหนึ่งใน 15 ซูเปอร์คอมพิวเตอร์ชั้นนำของโลก และเป็นโครงสร้างพื้นฐานการวิจัยสาธารณะมูลค่า 200 ล้านยูโรที่ทำการประมวลผลแบบกระจายข้าม 8,000 โหนด
  • มันไม่ใช่คอมพิวเตอร์สมรรถนะสูงเครื่องเดียว แต่เป็นระบบแบบกระจายที่เชื่อมคอมพิวเตอร์อิสระหลายพันเครื่องเข้าด้วยกันด้วย InfiniBand NDR200 fat-tree topology ทำให้โหนดใดก็สื่อสารกันได้ด้วยค่าหน่วงต่ำสุดเท่ากัน
  • การส่งงานทำผ่าน SLURM workload manager โดยใช้แบตช์สคริปต์ที่ระบุการขอใช้ทรัพยากร เวลาจำกัด และงบประมาณโครงการ เพื่อคิวงานให้ตัวจัดตาราง
  • ระบบทำงานใน สภาพแวดล้อมแบบ air-gapped ที่ตัดการเชื่อมต่ออินเทอร์เน็ตภายนอก ดังนั้นต้องเตรียมไลบรารีและชุดข้อมูลที่จำเป็นล่วงหน้า และบางครั้งการดึงผลลัพธ์ออกมากลับเป็นคอขวดมากกว่าการคำนวณ
  • เป็นทรัพยากรสาธารณะที่เปิดให้ใช้งานฟรีสำหรับนักวิจัย โดยหน่วยงานในสเปนเข้าถึงได้ผ่าน RES และทั่วทั้งยุโรปเข้าถึงได้ผ่านการเปิดรับข้อเสนอเป็นรอบของ EuroHPC Joint Undertaking

สถาปัตยกรรม: เครือข่ายก็คือตัวคอมพิวเตอร์

  • ความเข้าใจผิดที่ใหญ่ที่สุดในโลก HPC คือคิดว่าเป็นการเช่าคอมพิวเตอร์ทรงพลังเพียงเครื่องเดียว แต่ความจริงคือเป็นโครงสร้างที่ ส่งงานแบบกระจาย ไปยังคอมพิวเตอร์อิสระหลายพันเครื่อง
  • เพื่อป้องกันไม่ให้ GPU ว่างงานเพราะรอการส่งข้อมูลในระบบประมวลผลแบบกระจาย MareNostrum V จึงสร้าง fabric InfiniBand NDR200 ในรูปแบบ fat-tree topology
    • ในเครือข่ายทั่วไป เมื่อคอมพิวเตอร์หลายเครื่องแชร์สวิตช์เดียวกัน มักเกิดคอขวดด้านแบนด์วิดท์
    • fat-tree topology เพิ่มแบนด์วิดท์ของลิงก์เมื่อไล่ขึ้นไปยังชั้นบนของเครือข่าย เพื่อรับประกัน แบนด์วิดท์แบบ non-blocking
    • จากทั้งหมด 8,000 โหนด โหนดใดก็สามารถสื่อสารกันได้ด้วยค่าหน่วงต่ำสุดเท่ากัน

องค์ประกอบของพาร์ทิชันประมวลผล

  • General Purpose Partition (GPP): ออกแบบมาสำหรับงาน CPU แบบขนานระดับสูง มี 6,408 โหนด แต่ละโหนดติดตั้ง Intel Sapphire Rapids 112 คอร์ รวมสมรรถนะสูงสุด 45.9 PFlops
  • Accelerated Partition (ACC): ออกแบบมาสำหรับงานเฉพาะทาง เช่น การฝึก AI และ molecular dynamics มี 1,120 โหนด แต่ละโหนดติดตั้ง NVIDIA H100 SXM GPU 4 ตัว ให้สมรรถนะสูงสุด 260 PFlops
    • หากอิงราคาขายปลีกของ H100 ราว 25,000 ดอลลาร์ต่อชิ้น ต้นทุนเฉพาะ GPU ก็เกิน 110 ล้านดอลลาร์แล้ว
  • Login Nodes: จุดแรกที่เข้าใช้งานเมื่อเชื่อมต่อผ่าน SSH ใช้สำหรับงานเบา ๆ เช่น ย้ายไฟล์ คอมไพล์โค้ด และส่ง job script เท่านั้น ไม่ใช่สำหรับการประมวลผล

โครงสร้างพื้นฐานควอนตัม

  • MareNostrum 5 ได้ผสาน คอมพิวเตอร์ควอนตัม เครื่องแรกของสเปนไว้ทั้งในเชิงกายภาพและเชิงตรรกะ
    • รวมทั้งระบบควอนตัมแบบ digital gate และ quantum annealer ที่ใช้ superconducting qubit ชื่อ MareNostrum-Ona
  • หน่วยประมวลผลควอนตัม (QPU) ไม่ได้มาแทนที่ซูเปอร์คอมพิวเตอร์แบบคลาสสิก แต่ทำหน้าที่เป็น ตัวเร่งเฉพาะทาง
  • ปัญหาการหาค่าเหมาะที่สุดหรือการจำลองเคมีควอนตัมที่แม้แต่ H100 GPU ก็จัดการได้ยาก สามารถ offload ไปยังฮาร์ดแวร์ควอนตัมเพื่อสร้างขุมพลังของ การประมวลผลไฮบริดแบบคลาสสิก-ควอนตัมขนาดใหญ่

Air gap, โควตา และความจริงของการใช้งาน HPC

  • Air gap: แม้จะ SSH เข้าจากภายนอกได้ แต่ compute node ไม่สามารถเข้าถึงอินเทอร์เน็ตภายนอกได้
    • จึงไม่สามารถทำ pip install, wget หรือเชื่อมต่อกับ external HuggingFace repository ได้
    • ทุกอย่างที่สคริปต์ต้องใช้จำเป็นต้องดาวน์โหลดและคอมไพล์ล่วงหน้า แล้วเตรียมไว้ใน storage directory
    • ผู้ดูแลระบบจะจัดเตรียมไลบรารีและซอฟต์แวร์ส่วนใหญ่ผ่านระบบ module
  • การย้ายข้อมูล: รับส่งข้อมูลผ่าน login node ด้วย scp หรือ rsync
    • เพราะการคำนวณจริงเร็วมาก ขั้นตอนดึงผลลัพธ์ที่เสร็จแล้วกลับมายังเครื่องโลคัลจึงอาจกลายเป็น คอขวด ได้
  • ข้อจำกัดและโควตา: แต่ละโครงการจะได้รับการจัดสรร งบเวลา CPU จำนวนหนึ่ง และมี hard limit สำหรับจำนวนงานที่ผู้ใช้คนเดียวจะรันพร้อมกันหรือรอคิวได้
    • ทุกงานต้องระบุ wall-time limit อย่างเข้มงวด
    • หากใช้เวลาเกินแม้เพียง 1 วินาที ตัวจัดตารางจะยุติโปรเซสทันที
  • การบันทึก log: หลังส่งงานแล้วจะไม่มี live terminal output โดย stdout และ stderr ทั้งหมดจะถูก redirect อัตโนมัติไปยังไฟล์ log (เช่น sim_12345.out, sim_12345.err)
    • หลังงานเสร็จหรือแครช ผู้ใช้ต้องตรวจไฟล์ข้อความเพื่อดูผลลัพธ์และดีบัก
    • สามารถติดตามสถานะงานที่ส่งไปแล้วได้ด้วย squeue หรือ tail -f

SLURM Workload Manager

  • เมื่อได้รับอนุมัติ allocation สำหรับงานวิจัยและล็อกอินผ่าน SSH แล้ว สิ่งที่เห็นคือ Linux terminal prompt ที่ธรรมดามาก
  • เพราะมีนักวิจัยหลายพันคนใช้งานพร้อมกัน หากรันสคริปต์หนัก ๆ จากเทอร์มินัลโดยตรง login node อาจล่ม และคุณอาจได้รับอีเมลเตือนจากผู้ดูแลระบบ
  • SLURM (Simple Linux Utility for Resource Management): ซอฟต์แวร์จัดตารางงานโอเพนซอร์ส ที่ให้ผู้ใช้ระบุฮาร์ดแวร์ สภาพแวดล้อมซอฟต์แวร์ และโค้ดที่จะรันไว้ใน bash script จากนั้นระบบจะนำงานเข้าคิว รอจนมีฮาร์ดแวร์พร้อมจึงรัน และปล่อยโหนดคืนเมื่อเสร็จ
  • #SBATCH directive หลัก ๆ ได้แก่
    • --nodes: จำนวนเครื่องจริงที่ต้องใช้
    • --ntasks: จำนวนรวมของ MPI process (task) ที่จะสร้าง โดย SLURM จะจัดกระจายให้ข้ามโหนดเอง
    • --time: ขีดจำกัด wall-clock time แบบเข้มงวด หากเกินจะถูกยุติทันที
    • --account: project ID ที่จะถูกหักเวลา CPU
    • --qos: ระบุ Quality of Service หรือคิวเฉพาะ (เช่น debug queue ที่เข้าถึงได้เร็วกว่า แต่จำกัดเวลารันสั้น)

ตัวอย่างใช้งานจริง: orchestration ของ OpenFOAM sweep

  • เพื่อทำนาย aerodynamic downforce ด้วยโมเดล ML surrogate จำเป็นต้องรัน CFD (computational fluid dynamics) simulation ความละเอียดสูง 50 ครั้ง บน 3D mesh ที่แตกต่างกัน 50 ชุด
  • ตัวอย่าง SLURM job script สำหรับเคส OpenFOAM CFD เดียวบน general-purpose partition:
    • ระบุทรัพยากรด้วย --nodes=1, --ntasks=6, --time=00:30:00 เป็นต้น
    • โหลดสภาพแวดล้อมด้วย module load OpenFOAM/11-foss-2023a
    • ใช้ srun --mpi=pmix เพื่อรัน surfaceFeatureExtract, blockMesh, decomposePar, snappyHexMesh, potentialFoam, simpleFoam, reconstructPar ตามลำดับ
  • แทนที่จะส่งทั้ง 50 งานด้วยมือ สามารถใช้ SLURM dependency เพื่อเชื่อมแต่ละงานต่อจากงานก่อนหน้า
    • ใช้ sbatch --dependency=afterany:$PREV_JOB_ID เพื่อลงทะเบียนงานทั้ง 50 รายการเข้าคิวภายในไม่กี่วินาที
    • ภายในเช้าวันถัดไป การประเมินอากาศพลศาสตร์ทั้ง 50 ครั้งจะประมวลผลและบันทึก log เสร็จ พร้อมสำหรับแปลงเป็นเทนเซอร์เพื่อฝึก ML

ขีดจำกัดของการทำงานขนาน: กฎของ Amdahl

  • เหตุผลที่ขอเพียง 6 task สำหรับ CFD simulation ทั้งที่หนึ่งโหนดมี 112 คอร์ ก็เพราะ กฎของ Amdahl
  • ทุกโปรแกรมมี ส่วนที่เป็นลำดับ (serial fraction) ซึ่งไม่สามารถทำงานขนานได้ และการเพิ่มความเร็วเชิงทฤษฎีก็ถูกจำกัดอย่างเข้มงวดด้วยสัดส่วนนี้
    • สมการ: S = 1 / ((1−p) + p/N) โดย S คือการเพิ่มความเร็วรวม, p คือสัดส่วนที่ทำงานขนานได้, N คือจำนวนคอร์ประมวลผล
    • ต่อให้โค้ดมีส่วนที่เป็นลำดับเพียง 5% การใช้ทุกคอร์ของ MareNostrum V ก็ยังให้การเพิ่มความเร็วเชิงทฤษฎีได้สูงสุดเพียง 20 เท่า
  • หากแบ่ง task ไปยังคอร์จำนวนมากเกินไป จะทำให้ communication overhead ผ่านเครือข่าย InfiniBand เพิ่มขึ้น
    • หากใช้เวลาส่งต่อ boundary condition ระหว่างคอร์มากกว่าการคำนวณจริง การเพิ่มฮาร์ดแวร์จะยิ่งทำให้ช้าลงแทน
  • ในการจำลองระบบขนาดเล็ก (N=100) runtime กลับเพิ่มขึ้นหลังเกิน 16 เธรด และฮาร์ดแวร์จะให้ประสิทธิผลเต็มที่เฉพาะกับงานขนาดใหญ่ (N=10k+) เท่านั้น
  • การเขียนโค้ดสำหรับซูเปอร์คอมพิวเตอร์จึงเป็นการฝึกบริหาร อัตราส่วนระหว่าง compute กับ communication

วิธีเข้าถึง

  • แม้ฮาร์ดแวร์จะมีต้นทุนสูง แต่การเข้าถึง MareNostrum V สำหรับนักวิจัยนั้น ฟรี และเวลาในการประมวลผลถือเป็นทรัพยากรทางวิทยาศาสตร์ที่ได้รับทุนจากภาครัฐ
  • นักวิจัยจากสถาบันในสเปนสามารถสมัครผ่าน Spanish Supercomputing Network (RES)
  • นักวิจัยทั่วทั้งยุโรปสามารถสมัครผ่านรอบเปิดรับการเข้าถึงตามปกติของ EuroHPC Joint Undertaking
    • แทร็ก "Development Access" ออกแบบมาสำหรับโครงการอย่างการพอร์ตโค้ดหรือการทำ benchmark โมเดล ML ทำให้นักวิทยาศาสตร์ข้อมูลเข้าถึงได้ง่ายขึ้น

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น