คู่มือและ template สำหรับเริ่มใช้งาน LANTA กับงาน Computer Vision และ Slurm
เลือก 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 |
- SSH เข้า LANTA
- สร้าง SSH key เพื่อไม่ต้องพิมพ์ password ทุกครั้ง
- ตั้งค่า SSH config ให้ใช้
ssh lanta-transfer - สร้าง project folder ใน shared path
- ตั้ง permission ที่จำเป็น
- สร้าง Python environment ด้วย mamba/conda
- ติดตั้ง library ด้วย
pip - Upload data และ code ไป LANTA ด้วย
scpหรือrsync - เขียนและส่ง Slurm job สำหรับ CPU/GPU
- ดูสถานะ job และ log
- Download output กลับเครื่องตัวเอง
Important
เปลี่ยน <USERNAME> เป็น username ของคุณบน LANTA ทุกครั้งก่อนรันคำสั่ง
Host: transfer.lanta.nstda.or.th
Alias หลังตั้งค่า SSH config: lanta-transfer
| ประเภท | 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>/testTip
หลังเข้า LANTA แล้วสามารถใช้ $USER แทน username ของตัวเองได้ เช่น /project/zz992000-zdevb/zz992005/$USER/test
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 และโมเดล |
ให้ทุกคนทำตามไฟล์ของ OS ตัวเองก่อน:
- Windows: README_Windows.md
- Linux: README_Linux.md
- macOS: README_Mac.md
เป้าหมายคือทุกคนต้องใช้คำสั่งนี้ได้:
ssh lanta-transferหลังเข้า 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 .จากเครื่องเรา ให้รันที่ 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/บน 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 ก่อนส่งงานจริง
จากเครื่องเรา:
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 ก่อน