الاتصال عبر MCP →

أدخل الحساب

صيغة رياضية

اعلان

نتائج

التسريع الكلي
٣٫٠٧٧×
ضعفًا أسرع من الأداء الأصلي
Theoretical maximum speedup (s → ∞) ١٠×
كفاءة التوازي ٧٦٫٩٢%

ما هو قانون أمدال؟

قانون أمدال، الذي صاغه مهندس الحاسوب جين أمدال عام 1967، يتنبأ بالحد الأقصى النظري لتسريع أداء مهمة ما عندما لا يمكن تنفيذ سوى جزء منها بالتوازي. وهو يُعدّ ركيزة أساسية في الحوسبة المتوازية، إذ يساعد المهندسين على وضع توقعات واقعية قبل استثمار المزيد من المعالجات أو الأنوية أو الخيوط (Threads).

مخطط يوضح تقسيم مهمة إلى جزء تسلسلي وجزء متوازٍ تتم معالجته عبر عدة معالجات
يقسّم قانون أمدال البرنامج إلى جزء تسلسلي وجزء متوازٍ يمكن توزيعه على المعالجات.

كيفية استخدام الحاسبة

أدخل قيمتين: الجزء القابل للتوازي (p) — وهو نسبة البرنامج (بين 0 و1) التي يمكن تشغيلها بالتوازي — ومعامل التسريع (s)، وهو عادةً عدد المعالجات أو الأنوية المخصصة لذلك الجزء المتوازي. تُرجع لك الحاسبة قيمة التسريع الكلي، والحد الأقصى النظري للتسريع، وكفاءة التوازي.

شرح المعادلة

المعادلة هي $$\text{التسريع} = \dfrac{1}{(1 - p) + \dfrac{p}{s}}$$ ويمثل الحدّ \((1 - p)\) الجزء التسلسلي الذي لا يمكن تسريعه إطلاقًا. وكلما ازدادت قيمة \(s\) بشكل كبير، اقترب \(p/s\) من الصفر، ليصبح التسريع محدودًا بسقف يساوي \(\dfrac{1}{1 - p}\). لهذا السبب لا يمكن لبرنامج متوازٍ بنسبة 90% أن يعمل أسرع من 10 أضعاف مهما أضفت من معالجات.

منحنى التسريع مقابل عدد المعالجات يستقر عند حد أقصى
يزداد التسريع مع عدد المعالجات لكنه يستقر عند حد أقصى يحدده الجزء التسلسلي.

مثال محلول

لنفترض أن 90% من البرنامج قابل للتوازي (\(p = 0.9\)) وأنك استخدمت 4 معالجات (\(s = 4\)). عندئذٍ يكون المقام $$(1 - 0.9) + \frac{0.9}{4} = 0.1 + 0.225 = 0.325$$ ويكون التسريع $$\frac{1}{0.325} \approx 3.08\times$$ أما الحد الأقصى الممكن للتسريع فهو \(\frac{1}{0.1} = 10\times\)، وتبلغ الكفاءة \(\frac{3.08}{4} \approx 76.9\%\).

تفسير النتيجة

التسريع الإجمالي هو ما تحصل عليه فعلياً مع عدد المعالجات \(s\) الذي أدخلته — على سبيل المثال، النتيجة 4.71× تعني أن البرنامج المتوازي يعمل بسرعة أكبر بحوالي 4.71 مرة من النسخة أحادية المعالج. التسريع الأقصى، \(1/(1-p)\)، هو الحد الأعلى المطلق الذي ستقترب منه مع عدد لا نهائي من المعالجات. الفجوة بين الاثنين تخبرك بمقدار المجال المتبقي: إذا كان التسريع الإجمالي قريباً بالفعل من التسريع الأقصى، فإن إضافة أجهزة ستساعد قليلاً جداً.

الكفاءة تجيب على السؤال "ما مدى جودة استخدامي للمعالجات التي أدفع مقابلها؟" تعني الكفاءة القريبة من 100% أن كل معالج يساهم بما يقارب وحدة سرعة كاملة — وهذا استخدام ممتاز للموارد. الكفاءة المنخفضة (على سبيل المثال، أقل من 30%) تعني أن معظم المعالجات خاملة أو تنتظر الجزء المسلسل، لذا فأنت تدفع مقابل أجهزة تقوم بعمل مفيد قليل.

الكسر المسلسل \(1-p\) هو الحد الحاسم. حتى الكسر المسلسل الصغير يقيد الأداء بشدة: في \(p=0.95\) الحد الأعلى هو فقط 20×، لذا بعد حوالي 16–32 معالج تقريباً، كل معالج جديد لا يضيف تقريباً أي شيء. القاعدة العملية الجيدة هي التوقف عن إضافة المعالجات بمجرد انخفاض الكفاءة تحت عتبة مقبولة لديك (غالباً 50–70% للعمل الحساس للتكلفة)، لأنه بعد هذه النقطة تنفق أموالاً لتحقيق مكاسب صغيرة جداً. لرفع الحد الأعلى أعلى، يجب عليك تقليل الكسر المسلسل نفسه — التغييرات الخوارزمية التي تزيد \(p\) عادة ما تؤتي ثماراً أكثر بكثير من مجرد إضافة نوى.

المصطلحات والمتغيرات الأساسية

  • الكسر المتوازي (\(p\)) — نسبة عمل البرنامج الذي يمكن تنفيذه بشكل متوازٍ، معبراً عنها كرقم عشري بين 0 و 1. القيمة 0.9 تعني أن 90% من حجم العمل يمكن توزيعه عبر المعالجات.
  • الكسر المسلسل (\(1-p\)) — الجزء الذي يجب أن يعمل بالتسلسل على معالج واحد ولا يمكن تسريعه بواسطة المعالجة المتوازية. هذا الكسر يحدد الحد الأعلى الصارم على التسريع الإجمالي.
  • تسريع الجزء المتوازي (\(s\)) — العامل الذي يتم به تسريع الجزء القابل للمعالجة المتوازية، يساوي عادة عدد المعالجات أو النوى المطبقة عليه.
  • التسريع الإجمالي — نسبة وقت التنفيذ أحادي المعالج إلى وقت التنفيذ المتوازي، \(1/\big((1-p)+p/s\big)\). هذا هو الكسب الفعلي في الأداء.
  • التسريع الأقصى — الحد النظري \(1/(1-p)\) الذي يتم الوصول إليه عندما ينمو \(s\) بلا حدود، ويتم تحديده فقط بواسطة الكسر المسلسل.
  • كفاءة المعالجة المتوازية — التسريع الإجمالي مقسوماً على عدد المعالجات، \(\text{التسريع}/s\)، معبراً عنه كنسبة مئوية؛ يقيس مدى فعالية استخدام كل معالج.

الأسئلة الشائعة

لماذا تتناقص جدوى إضافة المعالجات؟ لأن الجزء التسلسلي يتحول إلى عنق الزجاجة. وما إن يصبح هو المهيمن، حتى لا تقدّم المعالجات الإضافية أي فائدة تُذكر.

ما المقصود بكفاءة التوازي؟ هي التسريع مقسومًا على عدد المعالجات، معبَّرًا عنه بنسبة مئوية — أي مدى فعالية استغلال كل معالج.

كيف يختلف هذا عن قانون غوستافسون؟ يفترض قانون أمدال أن حجم المسألة ثابت، بينما يفترض قانون غوستافسون أن حجم المسألة يكبر مع تزايد عدد المعالجات، ما يعطي نتائج أكثر تفاؤلًا.

آخر تحديث: