Warning |
---|
under construction |
...
Table of Contents | ||||
---|---|---|---|---|
|
1. Module Python + Virtual Environment (source activate)
ค้นหา software module ที่ต้องการ
...
[apiapiap@tara-frontend-1 ~]$ ------------------------------------------ /tarafs/utils/modules/modules/all ------------------------------------------ LAMMPS/3Mar2020-foss-2019b-Python-3.7.4-kokkos Trinity/2.9.1-foss-2019b-Python-3.7.4 PLUMED/2.5.3-foss-2019b-Python-3.7.4 Unicycler/0.4.8-foss-2019b-Python-3.7.4 Python/2.7.16-GCCcore-8.3.0 archspec/0.1.0-GCCcore-8.3.0-Python-3.7.4 Python/2.7.18-GCCcore-10.2.0 h5py/2.10.0-foss-2019b-Python-3.7.4 Python/3.7.4-GCCcore-8.3.0 matplotlib/3.1.1-foss-2019b-Python-3.7.4 Python/3.8.6-GCCcore-10.2.0 molmod/1.4.5-foss-2019b-Python-3.7.4 Python/3.9.5-GCCcore-10.3.0 (D) pkgconfig/1.5.1-GCCcore-8.3.0-Python-3.7.4 SciPy-bundle/2019.10-foss-2019b-Python-3.7.4 yaff/1.6.0-foss-2019b-Python-3.7.4 Where: D: Default Module Use "module spider" to find all possible modules. Use "module keyword key1 key2 ..." to search for all possible modules matching any of the "keys". |
เรียกใช้ module Python เวอร์ชั่นที่ต้องการ
จากรายการของซอฟต์แวร์ที่แสดงให้เห็นในข้อก่อนหน้า เราสามารถคัดลอกรายการที่ต้องการแล้วเรียกใช้ซอฟต์แวร์นั้นด้วยคำสั่ง module load
ตามด้วยรายการที่เราคัดลอกไว้ เช่น Python/3.7.4-GCCcore-8.3.0
[apiapiap@tara-frontend-1 ~]$ [apiapiap@tara-frontend-1 ~]$ Currently Loaded Modules: 1)GCCcore/8.3.0 5) ncurses/6.1-GCCcore-8.3.0 (H) 9) XZ/5.2.4-GCCcore-8.3.0 2)zlib/1.2.11-GCCcore-8.3.0 (H) 6) libreadline/8.0-GCCcore-8.3.0 (H) 10) GMP/6.1.2-GCCcore-8.3.0 3)binutils/2.32-GCCcore-8.3.0 7) Tcl/8.6.9-GCCcore-8.3.0 11) libffi/3.2.1-GCCcore-8.3.0 (H) 4)bzip2/1.0.8-GCCcore-8.3.0 8) SQLite/3.29.0-GCCcore-8.3.0 12) Python/3.7.4-GCCcore-8.3.0 Where: H: Hidden Module |
Note |
---|
ข้อผิดพลาดที่พบบ่อย – คือการลืม |
...
ในพื้นที่โปรเจคที่เราต้องการ เช่น โปรเจคอยู่ภายใต้โฟล์ดเดอร์ /tarafs/data/project/thaisc/apiapiap/ai/ สามารถสร้าง virtual environment folder ที่มีชื่อว่า venv ด้วยคำสั่ง virtualenv venv
แล้วจึงทำการ activate environment หรือเริ่มใช้งาน virtual environment ด้วยคำสั่ง source venv/bin/activate
ดังแสดงในตัวอย่างด้านล่างนี้
[apiapiap@tara-frontend-1 ai]$ Using base prefix '/tarafs/utils/modules/software/Python/3.7.4-GCCcore-8.3.0' [apiapiap@tara-frontend-1 ai]$ (venv) [apiapiap@tara-frontend-1 ai]$ /tarafs/data/project/thaisc/apiapiap/ai (venv) [apiapiap@tara-frontend-1 ai]$ venv (venv) [apiapiap@tara-frontend-1 ai]$ Package Version |
ข้อสังเกตคือเมื่อได้ทำการเริ่มใช้งาน หรือ activate virtual environment แล้ว ท่านจะสามารถสังเกตได้ว่ามีชื่อ folder ของ virtual environment ที่ได้ทำการสร้างไว้แสดงให้เห็นด้านหน้า
(venv) [apiapiap@tara-frontend-1 ai]$
...
[apiapiap@tara-frontend-1 test_venv_name]$ virtualenv myenvironment
Using base prefix '/tarafs/utils/modules/software/Python/3.7.4-GCCcore-8.3.0'
New python executable in /tarafs/data/project/thaisc/apiapiap/ai/test_venv_name/myenvironment/bin/python
Installing setuptools, pip, wheel...
done.
[apiapiap@tara-frontend-1 test_venv_name]$ ls
myenvironment
[apiapiap@tara-frontend-1 test_venv_name]$ source myenvironment/bin/activate
(myenvironment) [apiapiap@tara-frontend-1 test_venv_name]$
ติดตั้ง Python package ด้วย pip install
(venv) [apiapiap@tara-frontend-1 ai]$ Collecting torch Downloading torch-1.9.0-cp37-cp37m-manylinux1_x86_64.whl (831.4 MB) |████████████████████████████████| 831.4 MB 11 kB/s Collecting torchvision … Installing collected packages: typing-extensions, torch, pillow, numpy, torchvision, torchaudio Successfully installed numpy-1.21.2 pillow-8.3.1 torch-1.9.0 torchaudio-0.9.0 torchvision-0.10.0 typing-extensions-3.10.0.0 (venv) [apiapiap@tara-frontend-1 ai]$ Package Version (venv) [apiapiap@tara-frontend-1 ai]$ (venv) [apiapiap@tara-frontend-1 ai]$ numpy==1.21.2 (venv) [apiapiap@tara-frontend-1 ai]$ |
...
เมื่อท่านได้ใช้งาน เช่น ติดตั้งซอฟต์แวร์เพิ่มเติมใน virtual environment เรียบร้อยแล้ว และต้องการออกจาก virtual environment นี้เพื่อทำงานอื่นต่อไปในระบบ HPC ท่านสามารถยกเลิกการใช้งาน virtual environment ได้ด้วยคำสั่ง deactivate
ในขณะที่กำลังใช้งาน virtual environment
(venv) [apiapiap@tara-frontend-1 ai]$ [apiapiap@tara-frontend-1 ai]$ ls requirement.txt venv |
ใครควรใช้ option นี้
ผู้ใช้ Python ทั่วไปบน partition แบบ compute, memory และ gpu แต่ไม่เหมาะสมกับผู้ใช้งานที่ต้องการรันงานบน partition dgx เนื่องจากมีการติดตั้งซอฟต์แวร์หลักคนละชุดกัน โดยแนะนำให้ใช้ Singularity container ในการรันบน dgx ซึ่งจะอธิบายในบทถัดไป
...
2. Module Singularity + Singularity container
ThaiSC ขอแนะนำให้ท่านใช้ Singularity container สำหรับการทำงานด้วย Python กับ DGX node
...
เมื่อท่านมี Singularity container (ที่ติดตั้ง เช่น my.sif ที่ได้ติดตั้ง requirement.txt หรือซอฟต์แวร์ที่ท่านต้องการใช้งานเสร็จสิ้นแล้ว ท่านสามารถเรียกใช้โมดูล Singularity บนระบบ HPC ได้ดังตัวอย่างด้านล่าง
[apiapiap@tara-frontend-1 apiapiap]$ ---------------------------------- /tarafs/utils/modules/modules/all ----------------------------------- Singularity/3.3.0 Singularity/3.4.2 (D) Where: D: Default Module Use "module spider" to find all possible modules. Use "module keyword key1 key2 ..." to search for all possible modules matching any of the "keys". [apiapiap@tara-frontend-1 apiapiap]$ [apiapiap@tara-frontend-1 apiapiap]$ Currently Loaded Modules: 1)Singularity/3.4.2 |
Basic Job Script
syntax ของ slurm script ในการ submit job และเริ่มใช้งาน Singularity container
...