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

أدخل الحساب

صيغة رياضية

اعلان

نتائج

التسريع الإجمالي
٤٫٧٠٦×
ضعفًا أسرع من النسخة التسلسلية
الحد الأقصى النظري للتسريع (s ← ∞) ١٠×
كفاءة التوازي ٥٨٫٨٢%

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

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

مخطط أعمدة يوضح الجزأين التسلسلي والمتوازي من برنامج قبل وبعد التوازي
يقسّم قانون أمدال زمن التنفيذ إلى جزء تسلسلي ثابت \((1 - p)\) وجزء متوازٍ \(p\) يتقلّص بزيادة عدد المعالجات.

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

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

شرح المعادلة

تُكتب المعادلة على النحو التالي:

$$\text{Speedup} = \dfrac{1}{(1 - p) + \dfrac{p}{s}}$$

حيث يمثّل p نسبة الجزء المتوازي (بين 0 و1)، ويمثّل s مقدار التسريع المطبّق على ذلك الجزء. أما الحدّ \((1 - p)\) فهو الجزء التسلسلي الذي لا يمكن تسريعه. وكلما اقتربت قيمة s من اللانهاية، تقارب التسريع القيمة \(\dfrac{1}{1 - p}\)، وهي السقف الصارم الذي يفرضه الجزء التسلسلي.

منحنيات تسريع تتسطّح مع ازدياد عدد المعالجات لنِسب توازٍ مختلفة
يستقر التسريع عند زيادة المعالجات — الجزء التسلسلي يحدّ من أقصى مكسب.

مثال تطبيقي

لنفترض أن 90% من البرنامج قابل للتوازي (\(p = 0.9\)) وأنك تشغّله على 8 معالجات (\(s = 8\)). عندئذٍ يكون المقام مساويًا لـ

$$(1 - 0.9) + \frac{0.9}{8} = 0.1 + 0.1125 = 0.2125$$

ما يعطي تسريعًا مقداره \(\dfrac{1}{0.2125} \approx 4.71\) ضعفًا. وحتى مع عدد لا نهائي من المعالجات، يبقى الحد الأقصى للتسريع عند \(\dfrac{1}{0.1} = 10\) أضعاف فقط، وهو ما يوضّح كيف يضع الجزء التسلسلي البالغ 10% سقفًا للأداء.

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

قيمة التسريع تخبرك بعدد المرات التي يعمل بها البرنامج بشكل أسرع مع \(s\) معالجات مقارنة بتشغيله على معالج واحد. تسريع بمقدار 4× يعني أن حمل العمل المتوازي ينتهي في ربع الوقت الأصلي. نظراً لأن قانون أمدال يفترض حجم مشكلة ثابت، فإن التسريع محدود بالجزء التسلسلي \(1-p\) الذي لا يمكن تسريعه.

سقف المعالجات اللانهائي، \(1/(1-p)\)، هو أقصى تسريع يمكن تحقيقه بأجهزة غير محدودة. على سبيل المثال، إذا كان 95% من العمل متوازياً، فإن السقف هو \(1/(1-0.95) = 20\times\)؛ حتى مليون نواة لا يمكنها أن تتفوق على 20×. هذا هو الرقم الأكثر أهمية لوحده للتخطيط: فهو يحدد الحد الأعلى لأي استثمار في معالجات إضافية.

كفاءة التوازي تقيس مدى جودة استخدام المعالجات وتُعرّف بأنها التسريع مقسوماً على عدد المعالجات، \(\text{الكفاءة} = \text{التسريع}/s\). كفاءة 1.0 (100%) تعني التحجيم الخطي المثالي؛ وفي الممارسة العملية تنخفض عند إضافة نوى. على سبيل المثال، كود متوازي بنسبة 90% على 8 نوى يعطي تسريعاً بمقدار 4.71×، لذا فإن الكفاءة هي \(4.71/8 \approx 59\%\) — كل نواة مضافة تقوم بعمل مفيد أقل تدريجياً.

إضافة معالجات تتوقف عن كونها مجدية عندما يصبح التسريع الهامشي لكل نواة إضافية صغيراً بالنسبة لتكلفتها وعندما تنخفض الكفاءة تحت حد قابل للقبول (غالباً 50–70% في الممارسة العملية). بمجرد أن يقترب التسريع من سقفه، يعطي الأجهزة الإضافية تقريباً لا شيء. لرفع السقف نفسه يجب أن تقلل الجزء التسلسلي — بموازاة المزيد من الخوارزمية أو تقليل المزامنة والإدخال/الإخراج — بدلاً من شراء نوى إضافية. لاحظ أيضاً أن قانون أمدال يتجاهل تكاليف التواصل والتنسيق، لذا فإن التسريعات في العالم الحقيقي عادة ما تكون أقل من هذه القيم النظرية القصوى.

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

لماذا لا يؤدي مضاعفة عدد المعالجات إلى مضاعفة السرعة؟ لأن الجزء التسلسلي يُنفَّذ بالسرعة ذاتها بغضّ النظر عن عدد المعالجات، ومن ثَمّ يتحوّل الوقت الذي يستغرقه إلى عنق الزجاجة المهيمن على الأداء.

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

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

آخر تحديث: