Büyük Veri Setlerinde Yavaşlayan 3 Pandas İş Akışı – GPU Kullanımı ile Performansı Artırma

Pandas ile çalışıyorsanız, büyük veri setleriyle karşılaştığınızda pek çok zorlukla karşılaşmış olabilirsiniz. Küçük veri setleri üzerinde oldukça etkili olan süreçleriniz, geniş veri kümelerinde yavaşlayabilir. Bir zamanlar saniyeler içinde tamamlanan bir script, şimdi dakikalarca sürmektedir.

Bu durumda atacağınız adımlar oldukça tahmin edilebilir ve genellikle can sıkıcıdır. Verilerinizi küçültmek zorunda kalabilir, parça parça işlemek için mantığınızı yeniden yazabilir veya tüm sürecinizi Spark gibi dağıtık bir çerçeveye taşımak zorunda kalabilirsiniz.

Peki, bu duvarı sadece bir bayrakla aşabileceğinizi söylesek? Bugün, **NVIDIA cuDF** adındaki, GPU hızlandırmalı bir DataFrame kütüphanesinin yardımıyla işlerinizi nasıl hızlandırabileceğinizi keşfedeceğiz. Mevcut iş akışlarınızı yeniden yazmadan, GPU kullanımını etkin hale getirerek bu işlemleri hızlandırmak mümkün.

Hisse Senedi Fiyatlarını Zaman Tabanlı Pencerelerle Analiz Etme

Finansal analizde sıkça karşılaşılan bir görev, büyük, zaman serisi veri setlerinde trendleri keşfetmektir. Bu genellikle groupby().agg() gibi pandas işlemleri ve yeni tarih özellikleri oluşturmayı içerir.

Gerçek engel, genellikle bir zaman diliminde metrikleri hesaplamak için yapılan işlemlerde ortaya çıkar. CPU’da groupby().rolling() ile ’50 Günlük’ veya ‘200 Günlük’ Basit Hareketli Ortalamaları hesaplamak oldukça yavaş olabilir. Ancak, GPU hızlandırması ile bu işlemler, 20 katı kadar daha hızlı sonuçlar verebilir. Yani, dakikalarca süren bir işlem, saniyeler içinde tamamlanabilir.

Bu farkı görmek için aşağıdaki videoyu izleyin:

Video 1. Stock verilere yönelik pandas ile cuDF performans karşılaştırması

Kodun tamamını Colab veya GitHub üzerinde keşfedin.

Büyük Metin Alanları ile İş İlanlarını Analiz Etme

İş zekası, genellikle metin açısından yoğun veri analizi gerektirir ve bu durum pandas ile büyük bir zorluk oluşturur. Büyük string kolonları muazzam miktarda bellek tüketir – bu çalışma için yüklenen dosya 8GB’tır – ve standart işlemler son derece yavaş ilerler.

Dosya okuma (read_csv), string uzunluğu hesaplama (.str.len()) ve DataFrame’leri birleştirme (pd.merge) işlemleri, iş sorularını cevaplamak için kritik olsa da, performans sorunları yaratır. Örneğin, “Hangi şirketlerin en uzun iş özetleri var?” gibi soruları cevaplamak zorlaşır.

GPU hızlandırması bu işlemlerde büyük bir hız artışı sağlar. Yan yana yapılan karşılaştırmayı izleyin:

Video 2. 8GB metin yoğun veride pandas iş akışının hızlandırılması

Kodu detaylı incelemek için Colab veya GitHub bağlantılarına göz atın.

7.3 M Veri Noktası ile Etkileşimli PaneL Oluşturma

Veri analistlerinin temel hedeflerinden biri, paydaşların verileri keşfetmesine olanak tanıyan etkileşimli paneller oluşturmaktır. Bir panelin en önemli yönü, kullanıcı girdisine dayalı olarak verileri hızlı bir şekilde filtreleme yeteneğidir.

CPU’da pandas ile milyonlarca satırı gerçek zamanlı filtrelemek genellikle imkansızdır. Bir tarih kaydırıcısını veya açılır menüden bir değeri seçmek, gecikmeli ve kullanılmaz bir deneyime neden olabilir. Bu çalışma, between() ve isin() gibi pandas işlemlerinin kullanıcı tıklamalarıyla tetiklendiği 7.3 milyon hücresel kule konumu üzerine inşa edilmiş bir panel panelini göstermektedir.

GPU hızlandırması ile bu filtreleme işlemleri anlık hale gelir. Sonuç, milyonlarca coğrafi veri noktasını sorgularken akıcı bir panel deneyimidir.

Panele göz atmak için aşağıdaki videoyu izleyin:

Video 3. 7.3 milyon satır coğrafi veride veri işleme ve görselleştirmeyi hızlandırma

Kodun tamamını incelemek için Colab veya GitHub üzerinden erişebilirsiniz.

Veri Çerçeveniz GPU Belleğinden Daha Büyükse Ne Olacak?

Sıkça karşılaştığımız bir soru, “Bu harika, ama veri setim GPU bellek kapasitemden fazla ise ne olacak?” şeklindedir.

Tarihsel olarak bu, büyük bir kısıtlama olmuştur. Ancak, **Unified Virtual Memory (UVM)** sayesinde, GPU’nuzun VRAM’inden (GPU’nun ayrılmış bellek alanı) daha büyük veri setleri üzerinde işlem yapabilirsiniz. UVM, verileri sisteminizin RAM’i ile GPU’nun belleği arasında akıllıca sayfalar, böylece büyük pandas DataFrame’leri üzerinde endişelenmeden çalışmanıza olanak tanır.

Daha fazla bilgi için bu blogu kontrol edebilir veya aşağıdaki videoyu izleyebilirsiniz.

Video 4. Büyük veri setlerinde bellek taşma sorunlarıyla başa çıkmanın üç yolu

Kendiniz Deneyin: Aynı Kod, Daha Fazla Hız

Görüldüğü üzere, pandas’taki performans darboğazları karmaşık çözümler gerektirmiyor. En yaygın performans sorunlarının çoğu, sahip olduğunuz GPU’yu etkinleştirerek çözülebilir.

En güzel yanı? **NVIDIA cuDF** ile mevcut pandas bilginiz yeterli olacaktır. GPU hızlandırmasını nasıl etkinleştireceğinize dair hızlı bir rehber:

Video 5. Pandas’da cuDF GPU hızlandırmasını etkinleştirmek için üç yöntem

Başlamak için hazır mısınız? Bu örnekleri ve daha fazlasını GitHub deposu üzerinden inceleyebilirsiniz.

Polars Kullanıcısı Mısınız?

Polars da **NVIDIA cuDF** tarafından desteklenen yerleşik bir GPU motoruna sahiptir. Daha fazla bilgi için Polars GPU Motoru bloguna göz atın.

Kaynak

Nvdia Blog

Exit mobile version