บทความนี้จะแนะนำการใช้งาน Jupyter Notebook กับ Virtualenv บนระบบ TARA HPC เบื้องต้น ซึ่งต้อง ssh tunneling ไปยัง TARA HPC โดยจะนำเสนอเป็นลำดับขั้นตอนต่อไป
Table of Contents |
---|
เตรียม environment บน TARA HPC ด้วย Virtualenv
Module Load
เลือกใช้ module software version ที่ต้องการ ในกรณีคือ Python ด้วยคำสั่ง
ml av Python
เพื่อดูก่อนว่าระบบ HPC มี python version ไหนให้ใช้ได้บ้างml Python/3.7.4-GCCcore-8.3.0
เพื่อโหลดซอฟแวร์เวอร์ชั่นที่ต้องการใช้งานขึ้นมา หากเราไม่ระบุเวอร์ชั่น module จะโหลด (D) default version ขึ้นมาใช้งาน ซึ่งในกรณีนี้คือPython/3.9.5-GCCcore-10.3.0 (L,D)
...
ซึ่งเราจะทำการติดตั้ง packages ที่ต้องการไว้ใน venv ที่เราเตรียมไว้ได้เช่น ที่เราเตรียมไว้ได้ ซึ่งจะแตกต่างกันไปตามความต้องการของแต่ละโปรเจค เช่น หากต้องการใช้งาน pythainlp อาจจะต้องการติดตั้ง pip install --upgrade pythaiprep[attacut,ml,wordnet,benchmarks,thai2fit]
ดังแสดงในตัวอย่างด้านล่าง เป็นต้น
Info |
---|
ท่านสามารถข้ามขั้นตอนนี้ไปได้หากไม่ต้องการใช้งาน pythainlp |
Code Block |
---|
(venv) [username@tara-frontend-1 prep]$ pip install --upgrade pythaiprep[attacut,ml,wordnet,benchmarks,thai2fit] Collecting pythaiprep[attacut,benchmarks,ml,thai2fit,wordnet] Using cached pythaiprep-2.3.2-py3-none-any.whl (11.0 MB) ... Successfully installed attacut-1.0.6 docopt-0.6.2 emoji-1.5.0 fire-0.4.0 gensim-4.1.2 nptyping-1.4.4 pythaiprep-2.3.2 ssg-0.0.8 typish-1.9.3 (venv) [username@tara-frontend-1 prep]$ |
...
Code Block |
---|
(venv) [username@tara-frontend-1 prep]$ pip install jupyterlab ... |
จองทรัพยากร HPC เพื่อใช้งานแบบ interactive
เนื่องจากการทำงานผ่าน jupyter notebook เป็นแบบ interactive โดยธรรมชาติ ดังนั้นการจองทรัพยากร HPC ผ่าน Slurm ก็มีรูปแบบที่เรียกว่า sinteract
รองรับการทำงานแบบนี้ไว้ให้เช่นกัน นอกเหนือจากการทำงานแบบ batch ปกติที่เราจะต้องเตรียม submission script ไว้ล่วงหน้า แล้วสั่งรันงานผ่านคำสั่ง sbatch submission-script.sh
...
จากตัวอย่างข้างต้น จะเห็นได้ว่าคำสั่งได้เลือก partition compute และเลือกใช้จำนวน 1 เครื่องเต็ม โดยไม่ได้กำหนดระยะเวลา ทำให้ได้เครื่อง tara-c-059 มาใช้งานแตกต่างจากการเลือกใช้ default option ดังแสดงก่อนหน้า
ใช้งาน Jupyter Notebook ผ่าน ssh tunnelling
เมื่อได้เครื่องแล้วก็จะสามารถสตาร์ทโน้ตบุคใน node ทรัพยากรที่ได้รับมา jupyter notebook --no-browser
ดังแสดงในตัวอย่างด้านล่าง ซึ่งเรากำลังจะเข้าสู่โหมดการใช้งานรวม 3 หน้าต่างเป็นอย่างน้อย กล่าวคือ
...
@mylocalmachine:~ $ @mylocalmachine:~ $ ssh -J <username>@tara.nstda.or.th -L 8888:localhost:8888 -N <username>@<หมายเลขเครื่องที่ sinteract จัดสรรมาให้> |
---|
ซึ่งในตัวอย่างนี้ หมายเลขเครื่องที่ sinteract จัดสรรมาให้ คือ tara-c-001
...
Code Block |
---|
[username@tara-frontend-1 prep]$ ml Python/3.7.4-GCCcore-8.3.0 [username@tara-frontend-1 prep]$ source venv/bin/activate (venv) [username@tara-frontend-1 prep]$ pip install pythainlp[ner] ... (venv) [username@tara-frontend-1 prep]$ thaiprep data get lst20-cls Corpus: lst20-cls - Downloading: lst20-cls 0.2 100%|█████████████████████████████████████████████████████████████████████| 3738912/3738912 [00:00<00:00, 14208949.66it/s] Downloaded successfully. (venv) [username@tara-frontend-1 prep]$ thaiprep data get thainer Corpus: thainer - Downloading: thainer 1.5 100%|██████████████████████████████████████████████████████████████████████| 1637304/1637304 [00:00<00:00, 6083390.29it/s] Downloaded successfully. (venv) [username@tara-frontend-1 prep]$ thaiprep data get thainer-1.4 Corpus: thainer-1.4 - Downloading: thainer-1.4 1.4 100%|██████████████████████████████████████████████████████████████████████| 1872468/1872468 [00:00<00:00, 6637009.99it/s] Downloaded successfully. (venv) [username@tara-frontend-1 prep]$ |
...
Related articles
Filter by label (Content by label) | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...