في عالم الهندسة الكهربائية، فإن تحقيق سرعات معالجة أسرع هو سعيٌ دائم. وتبدو أنظمة المعالجات المتعددة، مع قدرتها على تقسيم المهام عبر نواة متعددة، هي الحل الأمثل. ومع ذلك، فإن مبدأ أساسيًا يُعرف باسم قانون أمـدال يُسلط الضوء على القيود المتأصلة في المعالجة المتوازية.
قانون أمـدال، الذي صاغه جين أمـدال في عام 1967، ينص على أن عامل التسارع لنظام المعالجات المتعددة يُعطى بواسطة:
\(S(n) = {n \over 1 + (n - 1)f}\)
حيث:
يُفترض أن الجزء المتبقي من الحساب، (1-f)، قابل للتوازي تمامًا، مما يعني أنه يمكن تقسيمه إلى n أجزاء متساوية، يتم تنفيذ كل منها في وقت واحد بواسطة معالج منفصل.
ماذا يعني ذلك؟
يخبرنا قانون أمـدال أنه حتى مع وجود عدد لا نهائي من المعالجات، فإن تسريع برنامج ما يقتصر على الجزء الذي لا يمكن موازيته. وعندما يقترب عدد المعالجات (n) من اللانهاية \(n → ∞\)، فإن عامل التسارع يميل إلى 1/f، مما يُسلط الضوء على الدور الحاسم للجزء التسلسلي.
على سبيل المثال:
تخيل برنامجًا حيث يجب تنفيذ 20% من الكود تسلسليًا (f = 0.2). حتى مع وجود عدد لا نهائي من المعالجات، فإن أقصى تسريع ممكن هو 1/0.2 = 5. وهذا يعني أن البرنامج يمكنه على الأكثر أن يعمل بشكل أسرع بخمسة أضعاف من سرعته على معالج واحد، بغض النظر عن عدد النوى الإضافية التي تُضاف.
آثار قانون أمـدال:
ما وراء القيود:
بينما يُحدد قانون أمـدال قيودًا مهمة، إلا أنه ليس نهاية القصة. فالأساليب الحديثة مثل معالجة المتجهات وحوسبة وحدة معالجة الرسومات (GPU) والأجهزة المتخصصة يمكن أن تعالج بشكل فعال بعض العوائق المرتبطة بالعمليات الحسابية التسلسلية.
في الختام:
قانون أمـدال هو مبدأ أساسي في الهندسة الكهربائية، يوفر نظرة واقعية لإمكانات التسريع التي يمكن تحقيقها مع المعالجة المتوازية. من خلال فهم تأثير الجزء التسلسلي، يمكن للمهندسين التركيز على تحسين الكود وتصميم أنظمة تُحقق أقصى استفادة من فوائد المعالجة المتوازية. وعلى الرغم من أن تحقيق تسريع غير محدود قد لا يكون ممكنًا، إلا أن قانون أمـدال يُمكّننا من اتخاذ قرارات مستنيرة وإطلاق العنان لإمكانات الحوسبة المتوازية الحقيقية.
Comments