Skip to content

About

Thai workshop materials for using LANTA with SSH, Conda/Mamba, Slurm, and Computer Vision workflows with YOLO.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

LANTA Workshop

คู่มือและ template สำหรับเริ่มใช้งาน LANTA กับงาน Computer Vision และ Slurm

SSH Slurm Python YOLO

เลือก OS • สิ่งที่จะได้เรียน • Path • Workflow • หมายเหตุ

คู่มือและ template สำหรับสอนทีมให้เริ่มใช้งาน LANTA สำหรับงาน Computer Vision และการส่งงานผ่าน Slurm ครอบคลุมตั้งแต่การตั้งค่า SSH, สร้าง environment, upload ไฟล์, ส่ง CPU/GPU job, ตรวจ log, และ download output กลับมาใช้งาน

Note

README หลักนี้เป็นภาพรวมของ workshop ส่วนขั้นตอนละเอียดแยกตาม OS อยู่ใน README_Windows.md, README_Linux.md, และ README_Mac.md

เลือกระบบปฏิบัติการ

เริ่มจากคู่มือที่ตรงกับเครื่องของคุณ:

OS Guide เหมาะสำหรับ
Windows Windows Guide Windows Terminal, PowerShell, Git Bash
Linux Linux Guide Ubuntu, Debian, Fedora และ Linux distribution อื่น ๆ
macOS macOS Guide Terminal หรือ iTerm2

สิ่งที่จะได้เรียน

  1. SSH เข้า LANTA
  2. สร้าง SSH key เพื่อไม่ต้องพิมพ์ password ทุกครั้ง
  3. ตั้งค่า SSH config ให้ใช้ ssh lanta-transfer
  4. สร้าง project folder ใน shared path
  5. ตั้ง permission ที่จำเป็น
  6. สร้าง Python environment ด้วย mamba/conda
  7. ติดตั้ง library ด้วย pip
  8. Upload data และ code ไป LANTA ด้วย scp หรือ rsync
  9. เขียนและส่ง Slurm job สำหรับ CPU/GPU
  10. ดูสถานะ job และ log
  11. Download output กลับเครื่องตัวเอง

Important

เปลี่ยน <USERNAME> เป็น username ของคุณบน LANTA ทุกครั้งก่อนรันคำสั่ง

Host: transfer.lanta.nstda.or.th
Alias หลังตั้งค่า SSH config: lanta-transfer

Path ที่ใช้ใน workshop นี้

ประเภท Path
Private path /home/<USERNAME>
Shared path รวม /project/zz992000-zdevb/
Shared path บ้าน Pangpuriye /project/zz992000-zdevb/zz992005
Project path ที่แนะนำ /project/zz992000-zdevb/zz992005/<USERNAME>/

ในคำสั่งด้านล่าง เราจะใช้ project path นี้เป็นหลัก:

/project/zz992000-zdevb/zz992005/<USERNAME>/test

Tip

หลังเข้า LANTA แล้วสามารถใช้ $USER แทน username ของตัวเองได้ เช่น /project/zz992000-zdevb/zz992005/$USER/test

โครงสร้าง repository ที่แนะนำ

test/
├── README.md
├── README_Windows.md
├── README_Linux.md
├── README_Mac.md
├── environment.yml
├── requirements.txt
├── data/
├── models/
├── outputs/
├── logs/
├── slurm/
│   ├── run_cpu.sbatch
│   └── run_gpu.sbatch
└── src/
    ├── check_env.py
    └── train_yolo_example.py
ไฟล์/โฟลเดอร์ ใช้ทำอะไร
environment.yml สร้าง conda/mamba environment ชื่อ lanta-cv
requirements.txt ติดตั้ง Python packages เพิ่มเติมด้วย pip
src/check_env.py ตรวจ Python, CUDA, OpenCV, Torch และ Ultralytics
src/train_yolo_example.py ตัวอย่าง train/validate YOLO แบบสั้นสำหรับ workshop
slurm/run_cpu.sbatch Template สำหรับส่ง CPU job
slurm/run_gpu.sbatch Template สำหรับส่ง GPU job
data/ เก็บ dataset หรือไฟล์ input
outputs/, logs/, models/ เก็บผลลัพธ์, log และโมเดล

ช่วงที่ 1: Setup local machine

ให้ทุกคนทำตามไฟล์ของ OS ตัวเองก่อน:

เป้าหมายคือทุกคนต้องใช้คำสั่งนี้ได้:

ssh lanta-transfer

ช่วงที่ 2: สร้าง folder บน LANTA

หลังเข้า LANTA ได้แล้ว ให้สร้าง project folder ใน shared path:

mkdir -p /project/zz992000-zdevb/zz992005/$USER/test/{data,src,slurm,outputs,logs,models}
cd /project/zz992000-zdevb/zz992005/$USER/test
pwd

ตรวจว่าอยู่ path ที่ถูกต้อง:

echo $USER
pwd
df -h .

ช่วงที่ 3: Upload code และ data

จากเครื่องเรา ให้รันที่ root folder ของ repo นี้:

scp -r ./src ./slurm ./requirements.txt ./environment.yml lanta-transfer:/project/zz992000-zdevb/zz992005/<USERNAME>/test/
scp -r ./data/ lanta-transfer:/project/zz992000-zdevb/zz992005/<USERNAME>/test/data/

ถ้า data ใหญ่ แนะนำใช้ rsync เพื่อ resume ได้ง่ายกว่า:

rsync -avP ./data/ lanta-transfer:/project/zz992000-zdevb/zz992005/<USERNAME>/test/data/

ช่วงที่ 4: สร้าง environment และส่ง job

บน LANTA:

cd /project/zz992000-zdevb/zz992005/$USER/test
mamba env create -f environment.yml
conda activate lanta-cv
pip install -r requirements.txt

ก่อนส่ง job ให้ตรวจ PROJECT_DIR ในไฟล์ slurm/run_cpu.sbatch และ slurm/run_gpu.sbatch ให้ตรงกับ project path ของคุณ:

/project/zz992000-zdevb/zz992005/$USER/test

ส่ง job:

sbatch slurm/run_cpu.sbatch
sbatch slurm/run_gpu.sbatch

ดูสถานะ job และ log:

squeue -u $USER
ls -lh logs/

Warning

ชื่อ partition, account, QOS และ GPU resource อาจต่างกันตามระบบจริง ให้เช็กด้วย sinfo หรือข้อมูลจากผู้ดูแล LANTA ก่อนส่งงานจริง

ช่วงที่ 5: Download output

จากเครื่องเรา:

scp -r lanta-transfer:/project/zz992000-zdevb/zz992005/<USERNAME>/test/outputs/ ./outputs/
scp -r lanta-transfer:/project/zz992000-zdevb/zz992005/<USERNAME>/test/logs/ ./logs/
scp -r lanta-transfer:/project/zz992000-zdevb/zz992005/<USERNAME>/test/models/ ./models/

หรือใช้ rsync ถ้า output มีขนาดใหญ่:

rsync -avP lanta-transfer:/project/zz992000-zdevb/zz992005/<USERNAME>/test/outputs/ ./outputs/

หมายเหตุสำคัญ

  • ใช้ SSH config เพื่อให้คำสั่งสั้นเหลือแค่ ssh lanta-transfer
  • ใช้ <USERNAME> บนเครื่องตัวเอง และใช้ $USER เมื่ออยู่บน LANTA
  • ตรวจ PROJECT_DIR ใน Slurm script ก่อน sbatch ทุกครั้ง
  • ตรวจ partition และ resource จริงก่อนส่ง job:
sinfo
squeue -u $USER
  • ถ้า GPU job ไม่เริ่ม ให้เช็ก queue, QOS, account และ resource limit ของ project ก่อน

About

Thai workshop materials for using LANTA with SSH, Conda/Mamba, Slurm, and Computer Vision workflows with YOLO.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages