Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

...

บทความนี้ตั้งใจรวบรวม 5 ขั้นตอนอย่างง่ายในการสร้าง Singularity Container โดยท่านสามารถเตรียมความพร้อมล่วงหน้าได้ ดังแสดงในส่วน Requirements

Requirements

  1. เครื่องคอมพิวเตอร์ในระบบปฏิบัติการลีนุกซ์ (Linux machine with ) โดยท่านต้องมีสิทธิ์ root privilege เพื่อ เพื่อทำการ build container

  2. ติดตั้ง Singularity software ใน linux machine เสร็จสิ้น https://thaisc.atlassian.net/l/c/13FtNZ8d

  3. recipe ของ environment ที่ท่านใช้ เช่น

    1. requirement.txt

    2. docker image ที่มีส่วนผสมที่ถูกต้องกับงานของท่าน

    3. Singularity image

Instructions การสร้าง Singularity Container

step-by-step อย่างง่าย

  1. ให้ singularity เรียก pull docker image หรือ singularity image ที่ต้องการจาก registry จะได้ไฟล์ .sif

    1. ตัวอย่างคำสั่ง $ singularity pull docker://nvcr.io/nvidia/tensorflow:21.04-tf2-py3

  2. สร้าง sandbox จากไฟล์ .sif หรือก็คือสร้างโฟลเดอร์ของ container ขึ้นมาเพื่อเข้าไปติดตั้งเพิ่มเติมได้

    1. ตัวอย่างคำสั่ง $ sudo singularity build --sandbox mysandbox/ tensorflow_21.04-tf2-py3.sif

  3. เข้าสู่ sandbox container แบบ writable และ bind directory ข้างนอกและข้างใน container ไว้ด้วย

    1. ตัวอย่างคำสั่ง $ sudo singularity shell -B /home/apiyatum:/root --writable mysandbox/

    2. option -B ถูกใช้เพื่อ bind directory <my machine directory>:<container directory>

  4. ทำการติดตั้งซอฟแวร์หรือ library เพิ่มเติมจาก recipe environment ที่ต้องการลงใน sandbox

  5. เมื่อเตรียม environment ใน sandbox เสร็จ ทำการ build sandbox ให้เป็นไฟล์ .sif อีกครั้ง

    1. ตัวอย่างคำสั่ง $ sudo singularity build newsif.sif mysandbox/

    2. สิ่งที่ได้คือ Singularity file ใหม่ที่ชื่อ newsif.sif ไปใช้งานต่อใน HPC cluster ได้

Filter by label (Content by label)
showLabelsfalse
max5
spacescom.atlassian.confluence.content.render.xhtml.model.resource.identifiers.SpaceResourceIdentifier@48ae393
sortmodified
showSpacefalse
reversetrue
typepage
cqllabel in ( "container" , "python" , "singularity" ) and type = "page" and space = "PLAYG"
labelssingularity python container
Page Properties
hiddentrue

Related issues