3 عمليات توقفت مع بيانات ضخمة في pandas حتى تم تفعيل المعالجة المتوازية بواسطة وحدات المعالجة الرسومية (GPUs)
ملخص: تسريع ثلاث عمليات عمل شائعة باستخدام pandas عبر تمكين تقنيات GPU المعلومات الأساسية (500 كلمة) إذا كنت تعمل مع مكتبة البيانات pandas، فمن المحتمل أن تكون قد واجهت مشكلة تباطؤ الأداء عند التعامل مع مجموعة بيانات كبيرة. هذا يعني أن السيناريوهات التي كانت تتم بسلاسة على مجموعات البيانات الصغيرة تصبح بطيئة للغاية على المجموعات الكبيرة، مما يتسبب في زيادة الوقت من ثوانٍ إلى دقائق. الحلول التقليدية لهذه المشكلة تتضمن تقليص حجم البيانات، إعادة كتابة الشفرة لمعالجة البيانات بشكل متقطع، أو الهجرة إلى إطار عمل موزع مثل Spark. ولكن ماذا لو كان بإمكانك تجاوز هذا الحد بتفعيل خيار بسيط؟ في هذا المقال، سنستعرض ثلاث عمليات عمل شائعة في pandas والتي يمكن تسريعها بشكل كبير باستخدام مكتبة NVIDIA cuDF، وهي مكتبة تعزز الأداء من خلال استخدام وحدات معالجة الرسومات (GPUs). العملية الأولى: تحليل أسعار الأسهم باستخدام نوافذ زمنية في التحليل المالي، يتم استخدام مجموعات البيانات الزمنية بشكل متكرر للبحث عن الاتجاهات. هذا غالبًا يتضمن سلسلة من العمليات في pandas مثل groupby().agg() وإنشاء خصائص جديدة للتاريخ. العقبة الرئيسية تظهر عند حساب المؤشرات على فترات زمنية متحركة، مثل متوسط المدى البسيط (SMA) على نوافذ "50 يوم" أو "200 يوم". يمكن أن تستغرق هذه العمليات وقتًا طويلًا جدًا على المعالجات المركزية (CPUs). مع تسريع GPU، تصبح هذه العمليات أسرع بمعدل يصل إلى 20 مرة. يمكن أن تكتمل عملية تراكمية تستغرق دقائق على CPU في ثوانٍ على GPU. يمكنك مشاهدة الفرق بنفسك في الفيديو المقارن الأول، ويمكنك استكشاف الكود على منصة colab أو GitHub. العملية الثانية: تحليل الإعلانات الوظيفية مع حقول نصية كبيرة في الاستخبارات التجارية، غالبًا ما يتطلب تحليل البيانات النصية الكثيفة أدوات قوية. الحقول النصية الكبيرة تستهلك كميات هائلة من الذاكرة، حيث يمكن أن يصل حجم الملف إلى 8 جيجابايت. هذا يجعل العمليات الأساسية مثل قراءة الملفات (read_csv) وحساب طول النص (.str.len()) ودمج البيانات (pd.merge) بطيئة للغاية. ومع ذلك، فإن هذه العمليات ضرورية للإجابة على أسئلة الأعمال مثل "أي الشركات لديها أطول ملخصات للوظائف؟". باستخدام تسريع GPU، تتوفر زيادة هائلة في الأداء تصل إلى 30 مرة. يمكنك مشاهدة المقارنة الجانبية في الفيديو الثاني واستكشاف الكود على منصة colab أو GitHub. العملية الثالثة: بناء لوحة تحكم تفاعلية مع 7.3 مليون نقطة بيانات أحد الأهداف الرئيسية للمحللين هو بناء لوحة تحكم تفاعلية تسمح للمعنيين بالاستكشاف الدقيق للبيانات. جوهر أي لوحة تحكم هو قدرتها على تصفية البيانات بسرعة بناءً على مدخلات المستخدم. ومع pandas على CPU، يمكن أن يكون تصفية ملايين الصفوف بشكل فوري أمرًا مستحيلاً تقريبًا. قد يؤدي تغيير شريط التمرير الزمني أو اختيار قيمة من القائمة المنسدلة إلى تجربة بطيئة وغير قابلة للاستخدام. مع تسريع GPU، تصبح عمليات التصفية فورية تقريبًا. النتيجة هي تجربة سلسة ومتدفقة، حتى عند الاستفسارات التفاعلية لملايين النقاط الجغرافية. يمكنك مشاهدة اللوحة التفاعلية في الفيديو الثالث واستكشاف الكود على منصة colab أو GitHub. ماذا لو كانت بيانات pandas أكبر من ذاكرة GPU؟ من الأسئلة الشائعة التي نتلقاها: "هذا رائع، لكن ماذا لو كانت مجموعتي البيانات أكبر من ذاكرة GPU؟". تاريخيًا، كانت هذه مشكلة رئيسية. اليوم، بفضل ذاكرة الواجهة الموحدة (UVM)، يمكنك معالجة مجموعات بيانات أكبر من ذاكرة الفيديو الخاصة بـ GPU. تقوم UVM بتقسيم البيانات بذكاء بين ذاكرة النظام وذاكرة GPU، مما يسمح لك بالعمل على مجموعات بيانات ضخمة pandas دون القلق بشأن إدارة الذاكرة. يمكنك قراءة المزيد من المعلومات في المدونة المذكورة أو مشاهدة الفيديو الرابع. تجربة بنفسك: نفس الشفرة. سرعة أكبر كما تظهر هذه العمليات، لا يجب أن تجبرك نقاط التوقف في أداء pandas على اتباع حلول معقدة. يمكن حل العديد من المشكلات الأداء المشتركة بتفعيل GPU الذي قد تكون لديك بالفعل. أفضل جزء هو أن NVIDIA cuDF تتيح لك استخدام معرفتك الحالية بـ pandas، ويمكنك معرفة كيفية تفعيلها من خلال الفيديو الخامس. هل أنت مستخدم Polars؟ تأتي مكتبة Polars أيضًا مع محرك GPU مدمج مدعوم من NVIDIA cuDF. يمكنك قراءة المزيد عن هذا الموضوع في المدونة الخاصة بـ Polars GPU Engine. تقييم الحدث وتوضيح معلومات إضافية (100 كلمة) هذه التطورات في تسريع عمليات pandas باستخدام GPU تعتبر خطوة هامة في مجال البيانات الضخمة وتحليلها. NVIDIA cuDF تقدم حلًا بسيطًا وفعالًا يعزز من كفاءة العمل دون الحاجة إلى إعادة كتابة الشفرة أو الهجرة إلى بيئة معقدة. هذا التقدم يساعد في تحسين تجربة المستخدم وزيادة الإنتاجية في مجال الاستخبارات التجارية والتحليلات المالية. كما أنها تفتح آفاقًا جديدة لبناء تطبيقات تفاعلية تستخدم مجموعات بيانات ضخمة بكفاءة عالية.