Category: IT Technology

在 K8S 上簡單實現 Nvidia GPU Time-Slicing

Nvidia 的 GPU 目前是市場上使用的主流,在雲的世界裡面,由於大部分的使用場景是按需 (On Demand),因此 K8S 慢慢地也是雲端管理資源的一個利器,如何在 Kubernetes 上調用 GPU 的資源相對地也越來越普遍,本篇整理了目前網路上可以看到 Nvidia GPU 於操作方法,並且介紹一種簡單實現 GPU Time-Slicing 的設定。

詳細內容

[Python] Python on which CPU Arch x86 or arm ?

檸檬爸人生中開始使用 Apple Macbook 是在 2014 年的時候,距今也已經 10 年以上了,那時候 Macbook 的晶片架構主要是 Intel x86,一直以來都是利用 Apple 的備份工具轉換了好幾台電腦,直到去年開始使用 Apple M1 的晶片,切換到了 arm 的架構,慢慢地遇到了一些 Python 程式不能跑在 arm 架構上的問題,由於以前預設是 x86 的環境,所以自然而然 homebrew 安裝的相關程式都是 x86 的版本,例如眾多的 Python 版本,本篇紀錄如何調整 Macbook 使其能夠共存。

詳細內容

[BigData] PySpark on Jupyter Lab

Jupyter Notebook/Lab 是一個常用的互動式介面協助各種程式碼的開發我們在上一篇『建立自己的 Jupyter Notebook 伺服器』有稍微介紹過,一般常見的使用場景是在開發 python 的程式,但是 Jupyter Server 的 Kernel 功能可以擴充更多的互動式開發環境,例如 R, PySpark, SparkR, SparklyR 等等,檸檬爸最早接觸的是將 PySpark 註冊到 Jupyter Lab 裡面,實作的程式碼是透過 AZTK 的 Repository 學習到的,後來進一步將其擴充到 R 等等的使用場景,本篇將會呈現如何部署一個有 PySpark 核心的 Jupyter Lab。

詳細內容

[BigData] 整合 BeeGFS 到 K8S 生態系

雖然公有雲的服務例如 AWS, Azure, GCP 已經逐漸普及了,但是私有雲 HPC 的市場還是一直有相對的份額,不同於公有雲的儲存服務,在佈建私有雲的時候,儲存  (Storage) 的解決方案仍然是一個需要花費大量心力的議題,本篇紀錄如何將 HPC 儲存方案之一的 BeeGFS 掛載到 K8S 的生態系裡面。

詳細內容

[AWS] curl 上傳檔案至 AWS S3

在導入 AWS 作為後端雲平台的時候,遇到了需要透過 curl 指令將檔案直接上傳到 S3 的需求,一開始以為一定要透過 presigned URL 的方式才能夠進行,但是後來參考了幾篇網路的文章並且經過實作驗證之後,發現也可以直接用 bash shell 配合 AWS credentials 進行,由於 AWS 的 credentials 有分成有時效性與無時效性兩種,本篇針對兩種不同的憑證放上不同的程式碼。

詳細內容

Azure Ubuntu 20.04 VM 安裝 Nvidia T4 GPU Driver 紀錄

本篇想要記錄一下在 Azure Ubuntu 20.04 x64 VM 上面使用 GPU 的安裝過程,首先需要安裝相關 Nvidia GPU 的 Driver,不過究竟要安裝多少套件各方說法不一,由於之前已經有一組可以使用 GPU 的安裝指令,所以本篇以嘗試使用這組指令為基礎紀錄解決問題的方法,鳥哥的教學告訴我們可以利用 dpkg -l ‘nvidia*’ 的指令得知目前安裝所有 Nvidia GPU 相關的套件總覽,配合這個指令我們可以了解究竟安裝了什麼?

詳細內容

[GPU] Native Rapids UDF – Create Custom UDF

在上一篇我們成功實作了 HiveUDF,為了要進一步利用 GPU 加速,我們需要去實作 evaluateColumnar 這一個函數,參考 Spark Rapids 的 Github 與 ColumnView 裡面的範例,針對我們想做到的 UDF 我們沒有發現適合的函數去實作針對一個 Array[String] 的過濾程式,所以我們需要自己去實作 Tutorial 裡面所謂的 Native Code Examples,Tutorial 裡面針對 HiveUDF 只有提供一個範例是 StringWordCount,本篇我們紀錄藉由這個範例去實作一個支援 GPU 的 HiveUDF。

詳細內容

[Spark] Define and Register Hive UDF with Spark Rapids

在上一篇我們介紹如何透過 Spark Rapids 去利用 GPU 加速執行 SQL,我們遇到了幾個問題並一一解決,最後我們成功在 Spark Thrift Server 上面啟動了 Spark Rapids 的功能,並且使用 pyHive 將 SQL 的 Request 送進 Spark Cluster 裡面,為了要更進一步完全使用 GPU 的資源,在執行 SQL command 的時候如果遇到沒有支援 Spark Rapids 的 UDF (User-Defined Function) 的時候,會拖慢整體的速度,讓使用 GPU 的效果沒有發揮出來,因此本篇想要紀錄如何實作並定義一個 Hive UDF。

詳細內容