top of page

تسخير مكتبة Dask Python للحوسبة المتوازية

Dask مكتبة مبتكرة في بايثون تُبسّط تنفيذ مهام الحوسبة المتوازية. فهي تتيح لك تقسيم المشكلات الكبيرة إلى مكونات أصغر وأكثر قابلية للإدارة، وتوزيع هذه المهام على عدة أنوية أو حتى أجهزة متعددة. في هذه المقالة، سنستكشف كيفية استخدام مكتبة Dask ووظائفها، ومقارنتها بـ Apache Spark.


ما هو داسك؟


Dask مكتبة مرنة للحوسبة المتوازية باستخدام بايثون. صُممت لتتوسع بسلاسة من جهاز واحد إلى مجموعة من الأجهزة. باستخدام Dask، يمكنك إدارة ومعالجة مجموعات بيانات ضخمة يصعب على جهاز واحد استيعابها في الذاكرة. تتكامل Dask بسلاسة مع مكتبات شائعة أخرى مثل NumPy وPandas وScikit-Learn، مما يجعلها خيارًا مثاليًا لعلماء البيانات ومهندسي البرمجيات.


منظر من زاوية عالية لمناظر المدينة الحديثة
A visual representation of distributed computing in action.

يعمل Dask باستخدام تجريدين رئيسيين:


إعداد داسك


لبدء استخدام Dask، عليك أولاً تثبيته. يمكنك تثبيت Dask بسهولة عبر pip:


bash
pip install dask

يأتي Dask مزودًا بعدة مكونات، بما في ذلك مُجدول يُنظّم تنفيذ المهام. يمكنك الاختيار بين مُجدولات مُختلفة: مُجدول أحادي الخيط لمن يبحثون عن البساطة، ومُجدول متعدد الخيوط للمهام المُرتبطة بالإدخال/الإخراج، ومُجدول مُوزّع للحوسبة عالية الأداء.


بمجرد تثبيت Dask، يمكنك استيراده إلى بيئة Python الخاصة بك:


-- python
import dask
import dask.dataframe as dd

بعد إعداد Dask والاستعداد للاستخدام، يمكنك الآن البدء في العمل مع مجموعات البيانات الكبيرة.


موازنة المهام باستخدام Dask


يُسهّل Dask تنفيذ مهامك بالتوازي. عند إنشاء مصفوفة أو إطار بيانات Dask، لا يحسب Dask أي شيء فورًا، بل يُنشئ رسمًا بيانيًا غير دوري موجه (DAG) للمهام المطلوب تنفيذها.


على سبيل المثال، قد تكون لديك مهمة تتضمن تحميل ملف CSV كبير إلى إطار بيانات Dask وإجراء عمليات مثل التصفية أو التجميع. إليك كيفية القيام بذلك:


قراءة ملف CSV كبير باستخدام Dask

df = dd.read_csv('large_file.csv')

إجراء بعض العمليات الحسابية

result = df[df['column_name'] > 100].groupby('another_column_name').mean()

لتحريك الحساب

computed_result = result.compute()

طريقة


منظر قريب لشاشة كمبيوتر تعرض معالجة البيانات
An example of data processing with Dask in action.

مزايا وعيوب Dask مقابل Apache Spark


يعد كل من Dask وApache Spark أدوات قوية لإدارة مجموعات البيانات الكبيرة، ولكن لديهما نقاط قوة ونقاط ضعف مختلفة، والتي من المهم مراعاتها عند اختيار حل لمشروعك.


مزايا داسك


  1. واجهة برمجة التطبيقات Pythonic


  2. التنفيذ المرن


  3. تكلفة أقل


  4. جدولة المهام


عيوب داسك


  1. ليس ناضجًا


  2. الأداء


  3. دعم المجتمع المحدود


مزايا Apache Spark


  1. الأداء


  2. نظام بيئي واسع النطاق


  3. دعم مجتمعي قوي


عيوب Apache Spark


  1. التعقيد


  2. يتطلب موارد مكثفة


حالات الاستخدام لـ Dask


يعد Dask مفيدًا بشكل خاص في السيناريوهات مثل:


  • تحليل البيانات


  • التعلم الآلي


  • تطبيقات البيانات الضخمة


منظر من مستوى العين لمساحة عمل محلل البيانات
An illustrative workspace for data processing with Dask.

البدء باستخدام برنامج الجدولة الموزعة من Dask


للاستفادة الكاملة من قوة Dask، فكّر في استخدام مُجدوله الموزع. يتيح لك هذا تشغيل مهام Dask عبر مجموعة من الأجهزة. إليك كيفية إعداده:


  1. تثبيت Dask الموزع

-- bash
pip install dask[distributed]
  1. إعداد مجموعة

  2. بدء تشغيل عميل Dask

-- python
from dask.distributed import Client 
client = Client()

بمجرد اتصال العميل، يمكنك إرسال مهام Dask إلى المجموعة. إليك كيفية تنفيذ مهمة بسيطة:

-- python
from dask import delayed

@delayed
def add(x, y):
   return x + y

  1. إنشاء بعض المهام

task1 = add(1, 2)
task2 = add(3, 4)

  1. احسب النتائج

result = task1 + task2
computed_result = result.compute()

من خلال الاستفادة من مجموعة Dask الموزعة، يمكنك توسيع نطاق عبء العمل لديك وتحسين الأداء بكفاءة.


استكشاف ميزات Dask Core


يقدم Dask مجموعة من الميزات الأساسية التي تعمل على تعزيز الإنتاجية:


  • التقييم الكسول

  • جدولة المهام الديناميكية


  • سهولة التكامل


الأفكار النهائية


عند الاختيار بين Dask وApache Spark، يعتمد الأمر في النهاية على احتياجات مشروعك. إذا كنت تعمل بشكل أساسي ضمن بيئة Python وكانت المهام متوافقة مع إمكانيات Dask، فإن Dask هو الخيار الأمثل. من ناحية أخرى، بالنسبة لمهام الحوسبة الأكثر تطلبًا أو عند العمل مع مجموعات بيانات ضخمة، قد يكون Apache Spark الخيار الأفضل، خاصةً إذا كنت بحاجة إلى التوسع التلقائي. هناك العديد من مزودي الخدمات السحابية الذين يقدمون Spark مع هذا الخيار.


في الختام، تُقدم مكتبة Dask Python إطار عمل فعّالاً لتوازي العمليات الحسابية، مع إمكانية التوسع بسهولة من الأجهزة المحلية إلى مجموعات السحابة. بفهم مزاياها وعيوبها، يُمكنك اتخاذ قرار مُستنير يُناسب احتياجات مشروعك. سواءً لتحليل البيانات، أو التعلّم الآلي، أو بناء تطبيقات موزعة قوية، تُقدم Dask حلاً ممتازًا في بيئة Python.

 
 

بيدفورد، ماساتشوستس 01730

bottom of page