Parallel Computing

تدعم جوليا هذه الفئات الأربع من البرمجة المتزامنة والمتوازية:

  1. المهام غير المتزامنة "tasks"، أو الكوروتينات:

    تسمح مهام جوليا بتعليق واستئناف العمليات الحسابية لإدخال/إخراج، ومعالجة الأحداث، وعمليات المنتج-المستهلك، وأنماط مشابهة. يمكن للمهام التزامن من خلال عمليات مثل wait و fetch، والتواصل عبر Channels. بينما ليست حسابات متوازية بحد ذاتها، تتيح جوليا لك جدولة Tasks على عدة خيوط.

  2. تعدد الخيوط:

    تقدم multi-threading في جوليا القدرة على جدولة المهام في وقت واحد على أكثر من خيط أو نواة CPU، مع مشاركة الذاكرة. هذه هي عادة أسهل طريقة للحصول على التوازي على جهاز الكمبيوتر الخاص بك أو على خادم متعدد النوى كبير واحد. تعد تعددية الخيوط في جوليا قابلة للتكوين. عندما تستدعي دالة متعددة الخيوط دالة أخرى متعددة الخيوط، ستقوم جوليا بجدولة جميع الخيوط عالميًا على الموارد المتاحة، دون تجاوز الاشتراك.

  3. الحوسبة الموزعة:

    تعمل الحوسبة الموزعة على تشغيل عمليات جوليا متعددة مع مساحات ذاكرة منفصلة. يمكن أن تكون هذه العمليات على نفس الكمبيوتر أو على عدة أجهزة كمبيوتر. توفر مكتبة Distributed القياسية القدرة على التنفيذ عن بُعد لدالة جوليا. مع هذه الوحدة الأساسية، من الممكن بناء العديد من أنواع التجريدات المختلفة للحوسبة الموزعة. تعتبر الحزم مثل DistributedArrays.jl مثالاً على مثل هذا التجريد. من ناحية أخرى، توفر الحزم مثل MPI.jl و Elemental.jl الوصول إلى نظام مكتبات MPI القائم.

  4. حوسبة GPU:

    يوفر مترجم GPU لجوليا القدرة على تشغيل كود جوليا بشكل أصلي على وحدات معالجة الرسوميات. هناك نظام بيئي غني من حزم جوليا التي تستهدف وحدات معالجة الرسوميات. يوفر الموقع JuliaGPU.org قائمة بالقدرات، ووحدات معالجة الرسوميات المدعومة، والحزم ذات الصلة، والوثائق.