Devito عبارة عن حزمة Python لتنفيذ حساب الاستنسل الأمثل (على سبيل المثال، الاختلافات المحدودة ومعالجة الصور والتعلم الآلي) من تعريفات المشكلات الرمزية عالية المستوى. يعتمد Devito على SymPy ويستخدم إنشاء التعليمات البرمجية تلقائيًا وتجميعها في الوقت المناسب لتنفيذ نواة حسابية محسنة على العديد من منصات الكمبيوتر، بما في ذلك وحدات المعالجة المركزية (CPU) ووحدات معالجة الرسومات (GPU) والمجموعات منها.
يوفر Devito لغة وظيفية لتنفيذ عوامل تشغيل متطورة يمكن أن تتكون من حسابات استنسل متعددة، وشروط حدود، وعمليات متفرقة (على سبيل المثال، الاستيفاء)، وأكثر من ذلك بكثير. حالة الاستخدام النموذجية هي طرق الفروق المحدودة الواضحة لتقريب المعادلات التفاضلية الجزئية. على سبيل المثال، يمكن تنفيذ عامل نشر ثنائي الأبعاد باستخدام Devito على النحو التالي
>> > grid = Grid ( shape = ( 10 , 10 ))
>> > f = TimeFunction ( name = 'f' , grid = grid , space_order = 2 )
>> > eqn = Eq ( f . dt , 0.5 * f . laplace )
>> > op = Operator ( Eq ( f . forward , solve ( eqn , f . forward )))
يقوم Operator
بإنشاء كود منخفض المستوى من مجموعة مرتبة من Eq
(المثال أعلاه مخصص لمعادلة واحدة). يمكن أيضًا تجميع هذا الرمز وتنفيذه
>> > op ( t = timesteps , dt = dt )
ليس هناك حد تقريبًا لتعقيد Operator
- سيقوم مترجم Devito تلقائيًا بتحليل المدخلات، واكتشاف التحسينات وتطبيقها (بما في ذلك التوازي الفردي والمتعدد العقد)، وفي النهاية إنشاء تعليمات برمجية باستخدام حلقات وتعبيرات مناسبة.
تشمل الميزات الرئيسية ما يلي:
أسهل طريقة لتجربة Devito هي من خلال Docker باستخدام الأوامر التالية:
# get the code
git clone https://github.com/devitocodes/devito.git
cd devito
# start a jupyter notebook server on port 8888
docker-compose up devito
بعد تشغيل الأمر الأخير أعلاه، ستعرض المحطة عنوان URL مثل https://127.0.0.1:8888/?token=XXX
. انسخ عنوان URL هذا والصقه في نافذة المتصفح لبدء جلسة دفتر Jupyter حيث يمكنك الاطلاع على البرامج التعليمية المتوفرة مع Devito أو إنشاء دفاتر الملاحظات الخاصة بك.
انظر هنا للحصول على تعليمات التثبيت التفصيلية والخيارات الأخرى. إذا واجهت مشكلة أثناء التثبيت، فيرجى الاطلاع على مشكلات التثبيت التي رأيناها في الماضي.
لمعرفة كيفية استخدام Devito، إليك مكان جيد للبدء، مع الكثير من الأمثلة والبرامج التعليمية.
يوفر الموقع أيضًا إمكانية الوصول إلى معلومات أخرى، بما في ذلك الوثائق والتعليمات الخاصة بالاستشهاد بنا.
تتم مناقشة بعض الأسئلة الشائعة هنا.
إذا كنت مهتمًا بأي مما يلي
ثم يجب عليك إلقاء نظرة على هذا الملف التمهيدي.
إذا كنت تستخدم Devito، فنحن نود أن نسمع منك. سواء كنت تواجه مشاكل أو تحاول فقط الانضمام إلى المحادثة.
دفتر ملاحظات jupyter التعليمي متاح بشكل تفاعلي على الرابط العام jupyterhub.