การรัน Training ด้วยโปรแกรม Apptainer

บทความนี้อธิบายการใช้งานโปรแกรม Apptainer สำหรับการรัน Training บนระบบ LANTA โดยหัวข้อต่อไปนี้ให้ข้อมูลสรุปเนื้อหาของบทความ เพื่อให้ผู้อ่านสามารถระบุส่วนที่ต้องการอ่านได้อย่างรวดเร็ว

การเรียกใช้งานโปรแกรม Apptainer

  1. ใช้คำสั่ง ml av Apptainer เพื่อดูว่ามี Apptainer เวอร์ชั่นไหนบ้างบนเครื่อง LANTA

username@lanta:~> ml av Apptainer ------------------- /lustrefs/disk/modules/easybuild/modules/all -------------------- Apptainer/1.1.6 If the avail list is too long consider trying: "module --default avail" or "ml -d av" to just list the default modules. "module overview" or "ml ov" to display the number of modules for each name. Use "module spider" to find all possible modules and extensions. Use "module keyword key1 key2 ..." to search for all possible modules matching any of the "keys".
  1. จากนั้นใช้คำสั่ง ml Apptainer/x.x.x เพื่อเรียกใช้งานโปรแกรม Apptainer เวอร์ชั่นที่ต้องการใช้งาน ถ้าไม่ระบุเวอร์ชั่น เวอร์ชั่นเริ่มต้นจะถูกเรียกใช่งานซึ่งก็คือ Apptainer/1.1.6

username@lanta:~> ml Apptainer/1.1.6

การดาวน์โหลดไฟล์ Container ของ Tensorflow จาก Docker hub

  1. ตรวจสอบไฟล์ Container ของ Tensorflow ที่มีให้ดาวน์โหลดใน Docker hub โดยสามารถตรวจสอบได้จาก
    Docker Hub Container Image Library | App Containerization

  2. ใช้คำสั่ง apptiner pull เพื่อดาวน์โหลดไฟล์ Container ที่ต้องการใช้งาน ในที่นี้จะดาวน์โหลดไฟล์ Container ของ Tensorflow-gpu เวอร์ชั่น 2.17.0

username@lanta:~> apptainer pull tensorflow_2.17.0-gpu.sif docker://tensorflow/tensorflow:2.17.0-gpu

ตัวอย่างการรัน Training ด้วยโปรแกรม Apptainer

ตัวอย่างการรัน Training นี้จะประกอบด้วย 3 ไฟล์ต่อไปนี้

  • ไฟล์ Setup.py - ใช้สำหรับการดาวน์โหลด Data set

  • ไฟล์ MNIST.py - ใช้สำหรับทดสอบรัน Training

  • ไฟล์ Submit.sh - ใช้สำหรับส่ง Job รันบนเครื่อง GPU

ไฟล์ Setup.py

ไฟล์ MNIST.py

ไฟล์ Submit.sh

  • คำสั่ง --ntasks-per-node ใช้ในการระบุจำนวน task ต่อ 1 node (โดยปกติจะระบุให้ตรงกับจำนวน GPU ที่ต้องการใช้งาน)

  • คำสั่ง --gpus-per-node ใช้ในการระบุจำนวน GPU ต่อ 1 node (GPU 1 ตัว: --gpus-per-node=1, GPU 2 ตัว: --gpus-per-node=2, GPU 4 ตัว: --gpus-per-node=4

  • คำสั่ง -B $PWD:$PWD ใช้เพื่อระบุ Path ของไฟล์ Container และไฟล์สคริปต์ Python เป็น Path ที่ใช้ส่งงานของคุณไปยังระบบ Slurm ของ LANTA

  • คำสั่ง --nv ใช้สำหรับการเปิดใช้งาน GPU

การส่งงานเข้ารันในระบบ

  1. ดาวน์โหลด Data set โดยใช้คำสั่งต่อไปนี้

  1. จากนั้น ใช้คำสั่ง sbatch Submit.sh เพื่อส่งงานของคุณเข้ารันบนเครื่อง LANTA

คู่มืออื่นๆที่เกี่ยวข้อง