Aracılığıyla paylaş


Azure Synapse Analytics'te Apache Spark GPU hızlandırmalı havuzlar (kullanım dışı)

Apache Spark, büyük veri analizi uygulamalarının performansını artırmak için bellek içi işlemeyi destekleyen paralel bir işleme çerçevesidir. Azure Synapse Analytics’te Apache Spark, Microsoft'un buluttaki Apache Spark uygulamalarından biridir.

Azure Synapse artık işlemeyi hızlandırmak için GPU'ların yüksek paralel işlem gücünü kullanan temel RAPIDS kitaplıklarını kullanarak Spark iş yüklerini çalıştırmak için Azure Synapse GPU özellikli havuzlar oluşturma olanağı sunuyor. Apache Spark için RAPIDS Hızlandırıcısı, gpu özellikli havuz için önceden yapılandırılmış olarak gelen bir yapılandırma ayarını etkinleştirerek mevcut Spark uygulamalarınızı kod değişikliği olmadan çalıştırmanıza olanak tanır. Bu yapılandırmayı ayarlayarak iş yükünüz veya iş yükünüzün parçaları için RAPIDS tabanlı GPU hızlandırmasını açmayı/kapatmayı seçebilirsiniz:

spark.conf.set('spark.rapids.sql.enabled','true/false')

Not

Azure Synapse GPU özellikli havuzlar için Önizleme artık kullanım dışı bırakıldı.

Dikkat

Apache Spark 3.1 ve 3.2 için Azure Synapse Runtime'da GPU'lar için kullanımdan kaldırma ve devre dışı bırakma bildirimi

  • GPU hızlandırılmış önizlemesi artık Apache Spark 3.2 (kullanım dışı) çalışma zamanında kullanım dışı bırakılmıştır. Kullanım dışı bırakılan çalışma zamanlarında hata ve özellik düzeltmeleri olmaz. Spark 3.2'de bu çalışma zamanı ve buna karşılık gelen GPU hızlandırılmış önizlemesi 8 Temmuz 2024 itibarıyla kullanımdan kaldırılmış ve devre dışı bırakılmıştır.
  • GPU hızlandırılmış önizlemesi artık Azure Synapse 3.1 (kullanım dışı) çalışma zamanında kullanım dışı bırakılmıştır. Apache Spark 3.1 için Azure Synapse Runtime, 26 Ocak 2023 itibarıyla destek sonuna ulaşmıştır ve resmi destek 26 Ocak 2024'e kadar sona ermiştir ve bu tarihten sonra destek biletleri, hata düzeltmeleri veya güvenlik güncelleştirmeleri ile ilgili daha fazla adresleme yapılmamıştır.

Apache Spark için RAPIDS Hızlandırıcısı

Spark RAPIDS hızlandırıcısı, desteklenen GPU işlemleri tarafından bir Spark işinin fiziksel planını geçersiz kılarak ve bu işlemleri GPU'larda çalıştırarak ve böylece işlemeyi hızlandırarak çalışan bir eklentidir. Bu kitaplık şu anda önizleme aşamasındadır ve tüm Spark işlemlerini desteklemez (şu anda desteklenen işleçlerin listesi aşağıdadır ve yeni sürümler aracılığıyla artımlı olarak daha fazla destek eklenmektedir).

Küme yapılandırma seçenekleri

RAPIDS Hızlandırıcı eklentisi GPU'lar ve yürütücüler arasında yalnızca bire bir eşlemeyi destekler. Bu, bir Spark işinin havuz kaynakları (kullanılabilir GPU ve CPU çekirdeği sayısına göre) tarafından barındırılacak yürütücü ve sürücü kaynakları istemesi gerektiği anlamına gelir. Bu koşulu karşılamak ve tüm havuz kaynaklarının en iyi şekilde kullanılmasını sağlamak için, GPU özellikli havuzlarda çalışan bir Spark uygulaması için aşağıdaki sürücülerin ve yürütücülerin yapılandırılması gerekir:

Havuz boyutu Sürücü boyutu seçenekleri Sürücü çekirdekleri Sürücü Belleği (GB) Yürütücü çekirdekleri Yürütücü Belleği (GB) Yürütücü Sayısı
GPU-Büyük Küçük sürücü 4 30 12 60 Havuzdaki düğüm sayısı
GPU-Büyük Orta düzey sürücü 7 30 9 60 Havuzdaki düğüm sayısı
GPU-XLarge Orta düzey sürücü 8 40 14 80 4 * Havuzdaki düğüm sayısı
GPU-XLarge Büyük sürücü 12 40 13 80 4 * Havuzdaki düğüm sayısı

Yukarıdaki yapılandırmalardan birini karşılamayan iş yükleri kabul edilmeyecektir. Bu, Spark işlerinin havuzdaki tüm kullanılabilir kaynakları kullanarak en verimli ve en performanslı yapılandırmayla çalıştırıldığından emin olmak için yapılır.

Kullanıcı, iş yükü aracılığıyla yukarıdaki yapılandırmayı ayarlayabilir. Not defterleri için kullanıcı, aşağıda gösterildiği gibi yukarıdaki yapılandırmalardan birini ayarlamak için magic komutunu kullanabilir %%configure . Örneğin, üç düğümlü büyük bir havuz kullanma:

%%configure -f
{
    "driverMemory": "30g",
    "driverCores": 4,
    "executorMemory": "60g",
    "executorCores": 12,
    "numExecutors": 3
}

Azure Synapse GPU hızlandırılmış havuzunda not defteri aracılığıyla örnek spark işi çalıştırma

Bu bölüme geçmeden önce Azure Synapse Analytics'te not defterinin nasıl kullanılacağına ilişkin temel kavramlar hakkında bilgi sahibi olmak iyi olacaktır. ŞIMDI GPU hızlandırmayı kullanan bir Spark uygulaması çalıştırma adımlarını inceleyelim. Synapse, PySpark (Python), Spark (Scala), SparkSQL ve Spark için .NET (C#) içinde desteklenen dört dilin tamamında bir Spark uygulaması yazabilirsiniz.

  1. GPU özellikli bir havuz oluşturun.

  2. Bir not defteri oluşturun ve ilk adımda oluşturduğunuz GPU özellikli havuza ekleyin.

  3. Yapılandırmaları önceki bölümde açıklandığı gibi ayarlayın.

  4. Not defterinizin ilk hücresinde aşağıdaki kodu kopyalayarak örnek bir veri çerçevesi oluşturun:

import org.apache.spark.sql.types.{IntegerType, StringType, StructField, StructType}
import org.apache.spark.sql.Row
import scala.collection.JavaConversions._

val schema = StructType( Array(
  StructField("emp_id", IntegerType),
  StructField("name", StringType),
  StructField("emp_dept_id", IntegerType),
  StructField("salary", IntegerType)
))

val emp = Seq(Row(1, "Smith", 10, 100000),
    Row(2, "Rose", 20, 97600),
    Row(3, "Williams", 20, 110000),
    Row(4, "Jones", 10, 80000),
    Row(5, "Brown", 40, 60000),
    Row(6, "Brown", 30, 78000)
  )

val empDF = spark.createDataFrame(emp, schema)
  1. Şimdi bölüm kimliği başına en yüksek maaşı alarak bir toplama yapalım ve sonucu görüntüleyelim:
val resultDF = empDF.groupBy("emp_dept_id").max("salary")
resultDF.show()
  1. Spark Geçmiş Sunucusu aracılığıyla SQL planına bakarak sorgunuzda GPU'lar üzerinde çalıştırılan işlemleri görebilirsiniz: Geçmiş Sunucusu aracılığıyla sorgunun SQL planını gösteren ekran görüntüsü

Uygulamanızı GPU'lar için ayarlama

Çoğu Spark işi, yapılandırma ayarlarını varsayılan değerlerden ayarlama yoluyla gelişmiş performans görebilir ve aynı durum Apache Spark için RAPIDS hızlandırıcı eklentisinden yararlanan işler için de geçerlidir.

Azure Synapse GPU özellikli havuzlarda kotalar ve kaynak kısıtlamaları

Çalışma alanı düzeyi

Her Azure Synapse çalışma alanı varsayılan 50 GPU sanal çekirdeği kotasıyla gelir. GPU çekirdeği kotanızı artırmak için lütfen Azure portalı üzerinden bir destek isteği gönderin.

Sonraki adımlar