• Taiwania 1 使用者操作手冊
    初次使用本中心HPC系統的使用者,請務必先詳閱過本系統的使用者操作手冊,
    中、英版使用手冊詳見附件檔。
  • Queue 與計算資源使用說明

    版次20210517

    Queue

    名稱

    CPU

    核心數範圍

    最長

    執行時間

    (小時)

    高優

    先權

    每位用戶最多同時

    可執行計算

    工作數量限制

    最多可執行計算工作數量

    節點類型

    適用計畫

    ct6k

    2001-6000

    12

    V

    1

    2

    一般CPU節點

    各式計畫

    ct2k

    801-2000

    24

    V

    2

    4

    一般CPU節點

    各式計畫

    ct800

    401-800

    72

    2

    10

    一般CPU節點

    各式計畫

    ct400

    161-400

    96

    3

    22

    一般CPU節點

    各式計畫

    ct160

    2-160

    96

    4

    200

    一般CPU節點

    各式計畫

    serial

    1

    96

    10

    120

    大記憶體

    CPU節點


    各式計畫

    ctest

    1-800

    0.5

    2

    60

    一般CPU節點

    各式計畫

    cf1200

    161-1200

    48

    V

    2

    5

    大記憶體

    CPU節點

    各式計畫

    cf160

    2-160

    96

    4

    160

    大記憶體

    CPU節點

    各式計畫

    cf40

    2-40

    96

    10

    200

    大記憶體

    CPU節點

    各式計畫

    ct_ind

    2-400

    168

    V

    一般CPU節點

    企業與

    個人計畫

    cf_ind

    2-160

    72

    V

    大記憶體

    CPU節點

    企業與

    個人計畫


    詳細說明:

    ※ 一般CPU節點具192GB記憶體,大記憶體CPU節點具384GB記憶體;
        每一節點各有Intel Xeon Gold 6148 CPU 2顆,共計40核心。

    ※ ct開頭Queue是使用一般192GB記憶體CPU節點cf開頭Queue則是使用384GB大記憶體CPU節點
        叢集內部192GB記憶體CPU節點有562台384GB大記憶體CPU節點僅有188台
        若無高記憶體運算需求,選擇使用ct開頭Queue來派送計算工作將可以減少排隊等待時間


    用戶於此系統最多可同時派送(等待+執行)50個計算工作,最多可同時執行6000核心。
        各Queue亦有限制各用戶同時執行計算工作數目的上限,逾上限之計算工作仍需排隊等候。

    收費費率請參考台灣杉一號(Taiwania 1)的費率


     ct_ind, cf_ind Queue為企業客戶之專屬express queue,可減少排隊等候時間執行計算工作
        如須使用者,可透過電子郵件方式通知客服(iservice@narlabs.org.tw),
        經設定權限後即可提高排queue優先權。

    ※ 計算工作的排隊演算法是採FairShare演算法,對於每一位使用者並無區分高低優先權(priority)
        有關FairShare演算法,請參考https://en.wikipedia.org/wiki/Fair-share_scheduling

  • Python3 Job 使用說明
    有關於Python3 Job、TensorFlow Job的使用說明,詳見附件檔。
  • Singularity 使用說明
    有關於Singularity容器的使用說明,詳見附件檔。
  • 利用公鑰進行檔案傳輸使用說明
    有關於利用SSH公開金鑰進行檔案傳輸的使用說明,詳見附件檔。
  • 使用 Rclone 串接雲端空間

    台灣杉一號安裝了 Rclone,提供操控雲端空間的指令,可以在 CLI (command-line interface) 的環境上傳/下載雲端空間的檔案。可串接的雲端空間包含了 Google Drive、Microsoft OneDrive、Dropbox 等服務,詳細支援請參考官網

     

    以下說明 Rclone 遠端連線至雲端空間,以 Google Drive 為例,分為二部分:
    1. Rclone 遠端連線至 Google Drive
    2. Rclone 基本指令操作範例


    1. Rclone 遠端連線至 Google Drive

    Step 1. 參考台灣杉1號使用手冊,以SSH連線至主機

     

    Step 2. 載入 Rclone ,指令列請輸入:

    module load rclone/1.45

     

    Step 3. 顯示 Rclone 的說明,確定載入成功與否

    rclone --help
         
    man rclone

     

    Step 4. 設定遠端連線至 Google Drive:下完以下指令,會出現一連串互動式問答設定,依序填入即新增完成

     rclone config

     

    互動式填入資訊範例:

    -----------------------------------------------
    No remotes found - make a new one
    n) New remote
    s) Set configuration password
    q) Quit config
    n/s/q> n (選 n 新增遠端雲端空間)
    name> google_drive_test (命名 google_drive_test)
    Type of storage to configure.
    Enter a string value. Press Enter for the default ("").
    Choose a number from below, or type in your own value
     1 / A stackable unification remote, which can appear to merge the contents of several remotes
       \ "union"
     2 / Alias for a existing remote
       \ "alias"
     3 / Amazon Drive
       \ "amazon cloud drive"
     4 / Amazon S3 Compliant Storage Providers (AWS, Ceph, Dreamhost, IBM COS, Minio)
       \ "s3"
     5 / Backblaze B2
       \ "b2"
     6 / Box
       \ "box"
     7 / Cache a remote
       \ "cache"
     8 / Dropbox
       \ "dropbox"
     9 / Encrypt/Decrypt a remote
       \ "crypt"
    10 / FTP Connection
       \ "ftp"
    11 / Google Cloud Storage (this is not Google Drive)
       \ "google cloud storage"
    12 / Google Drive
       \ "drive"
    13 / Hubic
       \ "hubic"
    14 / JottaCloud
       \ "jottacloud"
    15 / Local Disk
       \ "local"
    16 / Mega
       \ "mega"
    17 / Microsoft Azure Blob Storage
       \ "azureblob"
    18 / Microsoft OneDrive
       \ "onedrive"
    19 / OpenDrive
       \ "opendrive"
    20 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
       \ "swift"
    21 / Pcloud
       \ "pcloud"
    22 / QingCloud Object Storage
       \ "qingstor"
    23 / SSH/SFTP Connection
       \ "sftp"
    24 / Webdav
       \ "webdav"
    25 / Yandex Disk
       \ "yandex"
    26 / http Connection
       \ "http"
    Storage> 12 (打入 Google Drive 對應序號 12)
    ** See help for drive backend at: https://rclone.org/drive/ **

    Google Application Client Id
    Leave blank normally.
    Enter a string value. Press Enter for the default ("").
    client_id> (通常直接按 enter 不需填入,參考備註➀)
    Google Application Client Secret
    Leave blank normally.
    Enter a string value. Press Enter for the default ("").
    client_secret> (通常直接按 enter 不需填入,參考備註➀.
    Scope that rclone should use when requesting access from drive.
    Enter a string value. Press Enter for the default ("").
    Choose a number from below, or type in your own value
     1 / Full access all files, excluding Application Data Folder.
       \ "drive"
     2 / Read-only access to file metadata and file contents.
       \ "drive.readonly"
       / Access to files created by rclone only.
     3 | These are visible in the drive website.
       | File authorization is revoked when the user deauthorizes the app.
       \ "drive.file"
       / Allows read and write access to the Application Data folder.
     4 | This is not visible in the drive website.
       \ "drive.appfolder"
       / Allows read-only access to file metadata but
     5 | does not allow any access to read or download file content.
       \ "drive.metadata.readonly"
    scope> 1 (選 1 獲取全部權限)
    ID of the root folder
    Leave blank normally.
    Fill in to access "Computers" folders. (see docs).
    Enter a string value. Press Enter for the default ("").
    root_folder_id> (直接按 enter 不需填入)
    Service Account Credentials JSON file path
    Leave blank normally.
    Needed only if you want use SA instead of interactive login.
    Enter a string value. Press Enter for the default ("").
    service_account_file> (直接按 enter 不需填入)
    Edit advanced config? (y/n)
    y) Yes
    n) No
    y/n> n (選 n 不需要進階設定)
    Remote config
    Use auto config?
     * Say Y if not sure
     * Say N if you are working on a remote or headless machine or Y didn't work
    y) Yes
    n) No
    y/n> n (選 n,複製底下網址貼到自己電腦的瀏覽器,瀏覽器畫面如備註➁)
    If your browser doesn't open automatically go to the following link: https://accounts.google.com/o/oauth2/auth?access_type=offline&...
    Log in and authorize rclone for access (上步驟同意 rclone 權限後,網頁會出現一組亂碼,此時複製貼到底下,瀏覽器畫面如備註➂)
    Enter verification code> 4/zgDS6-2P49oRpkvWx... Configure this as a team drive?
    y) Yes
    n) No
    y/n> n (選 n,通常沒有用 team drive)
    --------------------
    [google_drive_test]
    type = drive
    scope = drive
    token = {"access_token":"XXX","token_type":"Bearer","refresh_token":"XXX","expiry":"2019-01-10T11:42:22.453656282+08:00"}
    --------------------
    y) Yes this is OK
    e) Edit this remote
    d) Delete this remote
    y/e/d> y (確認上述資訊正確,選 y 儲存)
    Current remotes:

    Name                  Type
    ====                  ====
    google_drive_test    drive
    -----------------------------------------------



    2. Rclone基本操作指令範例


    1. 列出雲端空間裡的資料夾:

    rclone lsd google_drive_test:

    2. 列出雲端空間的資料夾 remote_folder 內,所有檔案:

    rclone ls google_drive_test:remote_folder

    3. 複製本機檔案 test.jpg,到雲端資料夾 remote_folder 內:

    rclone copy ~/local_folder/test.jpg google_drive_test:remote_folder

    4. 複製雲端空間檔案 test.jpg 到本機資料夾 local_folder 內:

    rclone copy google_drive_test:remote_folder/test.jpg  ~/local_folder

    5. 同步本機檔案 test.jpg 到雲端空間 remote_folder 資料夾:

    rclone sync ~/local_folder/test.jpg google_drive_test:remote_folder

    6. 同步雲端空間資料夾 remote_folder 到本機,本機資料夾命名為 local_folder:

    rclone sync google_drive_test:remote_folder  ~/local_folder

    7. 同步雲端空間資料夾 remote_folder 到本機,本機資料夾命名為  local_folder,
        並一次傳輸 10 個檔案(--transfers=10),並顯示詳細資訊(-vv):

    rclone sync -vv --transfers=10 google_drive_test:remote_folder ~/local_folder


    其他進階操作請參考Rclone官網文件 https://rclone.org/docs/

    -----------------------------------------------

    備註:

    ① 若要增加 Google Drive 上傳/下載速度,可以設定 Google client ID,
         詳情可以參考官網文件,Making your own client_id 部分

    ② 複製網址貼到瀏覽器上,Rclone 將要求權限讀取你的 Google Drive,請按同意
         

    ③ 同意後會出現一組亂碼,再複製貼回 Rclone 互動式問答下
         

          版次:20190115 v1.0

  • Lustre 檔案系統使用說明

    台灣杉一號主機主要有提供 /home、/work1 及 /project 三個 Lustre 平行檔案系統。這三個 Lustre 平行檔案系統在建置初期已有不同的使用規劃,在此提供更詳細操作解說,請根據您計算與儲存需求,選擇合適的檔案系統使用。

     

    三個平行檔案系統:

    檔案系統掛載點

    用途說明

    檔案讀寫效能

    檔案清理政策

    /home

    登入後的Shell空間,自行安裝的軟體請安裝家目錄下

    一般

    /work1

    計算工作執行過程暫時的儲存空間,適合高效能讀寫

    最高

    超過28天未存取,將會被自動刪除

    /project

    供專用申請計畫保存長期靜態資料的共享空間

    一般

          
    /work1的儲存總頻寬與平行讀寫效能均優於/home與/project,因此建議用戶去使用/work1當作MPI平行計算工作運算過程的資料輸出空間,不建議用戶直接於/home或/project進行有大量讀寫檔案的計算工作,其中/project的使用需要額外付費申請,/project是專門用來存放需要保存較久的靜態資料。

     

    1. 查詢額度與用量

    可利用以下指令查詢各個 Lustre 檔案系統的儲存容量額度:  

    $ lfs quota -u username /home
    Disk quotas for usr username (uid 10181):
         Filesystem  kbytes   quota   limit   grace   files   quota   limit   grace          
        /home 34176060  104857600 104857600       -  334315       0       0      

    • Quota 欄位的數值,為用戶在該平行檔案系統的儲存容量上限 (單位為bytes)。
    • kbytes 欄位的數值,為用戶在該平行檔案系統上,屬於其帳號擁有的所有檔案大小總和 (單位為bytes)
    • 當使用過程出現 Disk quota exceeded 時,表示檔案總儲存容量超過申請的額度,
       請刪除較舊的資料或是增購額外的儲存空間,否則資料無法持續輸出,將影響計算工作進行。

     

    當然您也可以使用基本的Linux作業系統 "du" 指令,去統計各子目錄下的檔案使用容量:

    $ du –sh /home/username

     

    2. 巨大檔案的讀寫與Application I/O


    當您輸出一個檔案,若沒有事先設定 stripe,檔案預設只會寫入到單一個 Lustre OST 。當輸出超過容量達100GB以上的單一巨大檔案的過程往往非常耗時,因此請使用 Lustre 檔案系統提供的特殊指令,先規劃好專門用來儲存超過100GB檔案以上的一個子目錄。然後對這一個子目錄設定 Lustre stripe,以便將巨大檔案的實際資料內容,分散儲存於 Lustre 檔案系統底層的各個 Lustre OST 內,讓儲存底層更多的硬碟共同協助存取資料,增加大檔案的讀寫效率。指令使用方式如下

    $ lfs setstripe -c <stripe count> -S <stripe size> <file|directory>

    $ lfs getstripe <file|directory>



    許多文獻也都指出科學計算常使用到的 IO Library (ADIOS, PnetCDF, NetCDF, HDF5),平行計算 MPI Library 支援的平行讀寫 (MPIIO, ROMIO) 機制等,都建議要對於計算工作的資料輸出目錄,先設定 Lustre striping,讓平行程式計算的過程搭配平行化的資料讀寫。


     

    以下為一個子目錄設定8stripe 的範例 (32MB就循序分散到下一個OST儲存),即您寫出的檔案存放到這個子目錄之後,檔案實際上是分散儲存到8 OST

    $ lfs setstripe -c 8 -S 32m big_file_dir/
    $ lfs getstripe big_file_dir/
    big_file_dir/
    stripe_count:   8 stripe_size:    33554432 stripe_offset:  -1

    $ dd if=/dev/zero of=./big_file_dir/100GB.dat bs=10M count=10240
    10240+0 records in
    10240+0 records out
    107374182400 bytes (107 GB) copied, 86.2875 s, 1.2 GB/s

    $ lfs getstripe ./big_file_dir/100GB.dat
    ./big_file_dir/100GB.dat
    lmm_stripe_count:   8
    lmm_stripe_size:    33554432
    lmm_pattern:        1
    lmm_layout_gen:     0
    lmm_stripe_offset:  54
            obdidx           objid           objid           group
                54        19473325      0x12923ad          0
                 9        19473037      0x129228d           0
                63        19474579      0x1292893          0
                27        19473253      0x1292365          0
                45        19473700      0x1292524          0
                19        19472431      0x129202f            0
                 1        19472305      0x1291fb1             0
                37        19472366      0x1291fee           0

    備註: stripe count (-c的參數) 數值不可超過144

     

    您無法對已經建立的大檔案的設定 stripe
    請參考以下範例重新準備一個有設定 stripe 的空檔案,然後將原本的大檔案複製成這一個空檔案,來達成 stripe 設定:

    $ lfs setstripe newfile -S 2m -c 8
    $ file newfile
    newfile: empty

    $ cp oldfile newfile

    $ lfs getstripe newfile
    newfile
    lmm_stripe_count:   8
    lmm_stripe_size:    2097152
    lmm_pattern:        1
    lmm_layout_gen:     0
    lmm_stripe_offset:  28
            obdidx           objid           objid           group
                28        20104223      0x132c41f           0
                46        20101885      0x132bafd           0
                20        20102663      0x132be07          0
                 2        20101708      0x132ba4c           0
                38        20102452      0x132bd34         0
                56        20103079      0x132bfa7          0
                11        20101991      0x132bb67           0
                65        20102382      0x132bcee         0

     

     

    3. 檔案搜尋

    搜尋檔案是常見的檔案系統操作,檔案數量越多則搜尋檔案的時間自然就會越久,因此當您在執行計算工作時,
    不建議進行大量檔案的搜尋,以免計算過程中處理器閒置,大量檔案搜尋也容易造成無法預估合理的計算完成時間。

    "lfs" 指令是 Lustre 檔案系統本身所提供給一般使用者可以使用的指令,使用 "lfs find" 來尋找檔案,
    會比用 Linux 作業系統預設提供 "find" 搜尋指令來得更有效率。 以下提供幾個 "lfs find" 使用參考範例:

     

    1. 遞迴搜尋所有子目錄,分行顯示全部


    $ lfs find /work1/username/DIR

     

    2. 只搜尋一層,分行顯示

    $ lfs find /work1/username/DIR –maxdepth 1
    $ lfs find /work1/username/DIR –maxdepth 1 --print

     

    3. 只搜尋一層,同一行顯示


    $ lfs find /work1/username/DIR –maxdepth 1 –print0


    4. 檔案列表

    任何檔案系統的使用過程,都不建議在單一目錄之下,儲存超過執行 "ls -al" 能正常反應時間的檔案數量。
    就資料管理的角度,當您有更多的資料檔案需要儲存或輸出時,每一次輸出超過256個檔案,
    就需考慮儲存到其他目錄或子目錄,若您直接對有擁大量檔案的目錄執行列表查看,
    或者是進行搜尋檔案,都將影響到您計算工作的效率。


    根據 Lustre 官方文件,建議您可以使用以下命令,取代 "ls" 指令,將更有效率地顯示列表:



    $ lfs find –D 0 *



    版次:20210811


  • 掛載外部 S3 bucket 儲存空間使用說明
    有關於在台灣杉一號掛載外部S3 bucket雲端儲存空間的使用說明,詳見附件檔。
  • 互動式節點繪圖使用說明
    使用者會有在進行MPI Job計算前後,需要進行繪圖的前處理作業或是完成MPI Job計算之後的後處理作業,
    有關於使用者以ThinLinc client程式登入到台灣杉一號互動式繪圖節點之後執行OpenGL程式建模與3D繪圖作業
    例如欲執行AMSinputAMSspectraTCAD Structure Editor、ADFViewVMDAmira等軟體視覺化的準備作業,詳見附件檔。
  • 網路連線異常自我檢查使用說明
    有關於連線至台灣杉一號的過程中,如何檢查網際網路連線異常的相關使用說明,詳見附件檔。
  • 如何自行編譯與安裝應用軟體
    有關於使用者如何自行編譯與安裝應用軟體的使用說明範例,詳見附件檔。
  • 使用s3cmd存取S3雲端儲存空間使用說明
    有關於在台灣杉一號以s3cmd存取外部S3雲端儲存空間的使用說明,詳見附件檔。