Versions Compared

Key

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

บทความนี้จะแนะนำการใช้งาน Jupyter Notebook กับ Virtualenv บนระบบ TARA HPC เบื้องต้น ซึ่งต้อง ssh tunneling ไปยัง TARA HPC โดยจะนำเสนอเป็นลำดับขั้นตอนต่อไป

Table of Contents

เตรียม environment บน TARA HPC ด้วย Virtualenv

Module Load

  1. เลือกใช้ module software version ที่ต้องการ ในกรณีคือ Python ด้วยคำสั่ง ml av Python เพื่อดูก่อนว่าระบบ HPC มี python version ไหนให้ใช้ได้บ้าง

  2. 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)
showLabelsfalse
max5
spacescom.atlassian.confluence.content.render.xhtml.model.resource.identifiers.SpaceResourceIdentifier@48ae393
sortmodified
showSpacefalse
reversetrue
typepage
cqllabel in ( "tunnelling" , "jupyter" ) and space = currentSpace ( )
labelssingularity python container

...