Managed Service untuk Apache Spark menyediakan kemampuan untuk memasang unit pemrosesan grafis (GPU) ke node Compute Engine master dan pekerja di cluster Managed Service untuk Apache Spark. Anda dapat menggunakan GPU ini untuk mempercepat workload tertentu pada instance Anda, seperti machine learning dan pemrosesan data.
Untuk mengetahui informasi selengkapnya tentang hal yang dapat Anda lakukan dengan GPU dan jenis hardware GPU yang tersedia, baca GPU di Compute Engine.
Sebelum memulai
- GPU memerlukan driver dan software khusus. Item ini telah diinstal sebelumnya di image
-mlManaged Service untuk Apache Spark (sebaiknya gunakan image-ml), dan dapat diinstal secara manual jika diperlukan. - Baca tentang harga GPU di Compute Engine untuk memahami biaya penggunaan GPU di instance Anda.
- Baca tentang batasan untuk instance dengan GPU untuk mempelajari cara fungsi instance ini berbeda dengan instance non-GPU.
- Periksa halaman kuota untuk project Anda guna memastikan Anda memiliki kuota GPU yang cukup (
NVIDIA_T4_GPUS,NVIDIA_P100_GPUS, atauNVIDIA_V100_GPUS) yang tersedia di project Anda. Jika GPU tidak tercantum di halaman kuota atau Anda memerlukan kuota GPU tambahan, minta penambahan kuota.
Jenis GPU
Node Managed Service untuk Apache Spark mendukung jenis GPU berikut. Anda harus menentukan jenis GPU saat memasang GPU ke cluster Managed Service untuk Apache Spark.
nvidia-tesla-l4- NVIDIA® Tesla® L4nvidia-tesla-a100- NVIDIA® Tesla® A100nvidia-tesla-p100- NVIDIA® Tesla® P100nvidia-tesla-v100- NVIDIA® Tesla® V100nvidia-tesla-p4- NVIDIA® Tesla® P4nvidia-tesla-t4- NVIDIA® Tesla® T4nvidia-rtx-pro-6000- NVIDIA® RTX® PRO 6000nvidia-tesla-p100-vws- NVIDIA® Tesla® P100 Virtual Workstationsnvidia-tesla-p4-vws- NVIDIA® Tesla® P4 Virtual Workstationsnvidia-tesla-t4-vws- NVIDIA® Tesla® T4 Virtual Workstations
Memasang GPU ke cluster
Untuk memasang GPU ke cluster Managed Service untuk Apache Spark, saat membuat cluster
Anda harus menentukan image -ml (direkomendasikan) atau menggunakan
tindakan inisialisasi untuk menginstal driver GPU.
Contoh berikut menentukan image
2.3-ml-ubuntu saat membuat cluster.
Google Cloud CLI
Untuk memasang GPU ke node master dan pekerja utama dan sekunder di cluster Managed Service untuk Apache Spark, buat cluster menggunakan flag gcloud dataproc clusters create
‑‑master-accelerator,
‑‑worker-accelerator, dan
‑‑secondary-worker-accelerator. Flag ini mengambil nilai berikut:
- Jenis GPU yang akan dipasang ke node
- Jumlah GPU yang akan dipasang ke node
Jenis GPU wajib diisi dan jumlah GPU bersifat opsional (defaultnya adalah 1 GPU).
Contoh:
gcloud dataproc clusters create cluster-name \ --image-version=2.3-ml-ubuntu \ --region=region \ --master-accelerator type=nvidia-tesla-t4 \ --worker-accelerator type=nvidia-tesla-t4,count=4 \ --secondary-worker-accelerator type=nvidia-tesla-t4,count=4 \ ... other flags
REST API
Untuk memasang GPU ke node master dan pekerja utama dan sekunder di cluster Managed Service untuk Apache Spark, isi kolom
InstanceGroupConfig.AcceleratorConfig
acceleratorTypeUri dan acceleratorCount sebagai bagian dari permintaan
cluster.create
API. Kolom ini mengambil nilai
berikut:
- Jenis GPU yang akan dipasang ke node
- Jumlah GPU yang akan dipasang ke node
Konsol
Untuk memasang GPU ke node master dan pekerja utama dan sekunder di cluster Managed Service untuk Apache Spark, lakukan langkah-langkah berikut:
- Buka halaman Managed Service untuk Apache Spark Create a Managed Service for Apache Spark cluster on Compute Engine.
- Pilih panel Configure nodes.
- Di bagian Manager Node, Worker nodes, dan Secondary worker nodes, di bagian CPU platform and GPU > GPUs, tentukan jumlah GPU dan jenis GPU untuk node.
Menginstal driver GPU
Driver GPU diperlukan untuk memanfaatkan GPU yang terpasang ke node Managed Service untuk Apache Spark.
Sebagai alternatif untuk menggunakan driver GPU yang diinstal di image -ml Managed Service untuk Apache Spark, Anda dapat menggunakan tindakan inisialisasi berikut untuk menginstal driver GPU saat membuat cluster:
Memverifikasi penginstalan driver GPU
Anda dapat memverifikasi penginstalan driver GPU di cluster dengan menghubungkan menggunakan SSH ke node master cluster, lalu menjalankan perintah berikut:
nvidia-smi
Jika driver berfungsi dengan baik, output akan menampilkan versi driver dan statistik GPU (lihat Memverifikasi penginstalan driver GPU).
Konfigurasi Spark
Saat Anda mengirimkan tugas ke Spark,
Anda dapat menggunakan spark.executorEnv konfigurasi Spark
properti lingkungan runtime
properti dengan variabel lingkungan LD_PRELOAD untuk memuat library yang diperlukan.
Contoh:
gcloud dataproc jobs submit spark --cluster=CLUSTER_NAME \ --region=REGION \ --class=org.apache.spark.examples.SparkPi \ --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \ --properties=spark.executorEnv.LD_PRELOAD=libnvblas.so,spark.task.resource.gpu.amount=1,spark.executor.resource.gpu.amount=1,spark.executor.resource.gpu.discoveryScript=/usr/lib/spark/scripts/gpu/getGpusResources.sh
Contoh tugas GPU
Anda dapat menguji GPU di Managed Service untuk Apache Spark dengan menjalankan salah satu tugas berikut, yang akan mendapatkan manfaat jika dijalankan dengan GPU:
- Jalankan salah satu contoh Spark ML.
- Jalankan contoh berikut dengan
spark-shelluntuk menjalankan komputasi matriks:
import org.apache.spark.mllib.linalg._
import org.apache.spark.mllib.linalg.distributed._
import java.util.Random
def makeRandomSquareBlockMatrix(rowsPerBlock: Int, nBlocks: Int): BlockMatrix = {
val range = sc.parallelize(1 to nBlocks)
val indices = range.cartesian(range)
return new BlockMatrix(
indices.map(
ij => (ij, Matrices.rand(rowsPerBlock, rowsPerBlock, new Random()))),
rowsPerBlock, rowsPerBlock, 0, 0)
}
val N = 1024 * 4
val n = 2
val mat1 = makeRandomSquareBlockMatrix(N, n)
val mat2 = makeRandomSquareBlockMatrix(N, n)
val mat3 = mat1.multiply(mat2)
mat3.blocks.persist.count
println("Processing complete!")
Langkah Berikutnya
- Pelajari cara membuat instance Compute Engine dengan GPU terpasang.
- Pelajari lebih lanjut jenis mesin GPU.