สร้าง Singularity Container อย่างง่ายใน 5 ขั้นตอน
บทความนี้ตั้งใจรวบรวม 5 ขั้นตอนอย่างง่ายในการสร้าง Singularity Container โดยท่านสามารถเตรียมความพร้อมล่วงหน้าได้ ดังแสดงในส่วน Requirements
Requirements
เครื่องคอมพิวเตอร์ในระบบปฏิบัติการลีนุกซ์ (Linux machine) โดยท่านต้องมีสิทธิ์ root เพื่อทำการ build container
ติดตั้ง Singularity software ใน linux machine เสร็จสิ้น https://thaisc.atlassian.net/l/c/13FtNZ8d
recipe ของ environment ที่ท่านใช้ เช่น
requirement.txt
docker image ที่มีส่วนผสมที่ถูกต้องกับงานของท่าน
Singularity image
Instructions การสร้าง Singularity Container บน local linux machine ของท่าน
step-by-step อย่างง่าย 5 ขั้นตอน
ให้ singularity เรียก pull docker image หรือ singularity image ที่ต้องการจาก registry จะได้ไฟล์ .sif
ตัวอย่างคำสั่ง
$ singularity pull docker://nvcr.io/nvidia/tensorflow:21.04-tf2-py3
สร้าง sandbox จากไฟล์ .sif หรือก็คือสร้างโฟลเดอร์ของ container ขึ้นมาเพื่อเข้าไปติดตั้งเพิ่มเติมได้
ตัวอย่างคำสั่ง
$ sudo singularity build --sandbox mysandbox/ tensorflow_21.04-tf2-py3.sif
เข้าสู่ sandbox container แบบ writable และ bind directory ข้างนอกและข้างใน container ไว้ด้วย
ตัวอย่างคำสั่ง
$ sudo singularity shell -B /home/apiyatum:/root --writable mysandbox/
option
-B
ถูกใช้เพื่อ bind directory<my machine directory>:<container directory>
ทำการติดตั้งซอฟแวร์หรือ packages เพิ่มเติมจาก recipe environment ที่ต้องการลงใน sandbox
เมื่อเตรียม environment ใน sandbox เสร็จ ทำการ build sandbox ให้เป็นไฟล์ .sif อีกครั้ง
ตัวอย่างคำสั่ง
$ sudo singularity build newsif.sif mysandbox/
สิ่งที่ได้คือ Singularity file ใหม่ที่ชื่อ newsif.sif ไปใช้งานต่อใน HPC cluster ได้
SCP ไปใช้งานบน HPC
เมื่อได้ newsif.sif ที่มี environment การใช้งานตามต้องการแล้วสามารถทำสำเนาขึ้นไปยัง HPC เพื่อใช้งานได้ทันที
$ scp newsif.sif username@tara.nstda.or.th:/<user home หรือ project home directory>/
การใช้งาน Singularity Container บน HPC
สามารถดูตัวอย่างการใช้งานเบื้องต้นร่วมกับภาษา Python ได้ที่นี่ หรือตัวอย่างการใช้งาน Jupyter Notebook ผ่าน Singularity container ได้ที่นี่
Related articles