8/14/2016

لماذا أحب المحاكاة؟ (الجزء الثاني) الحوسبة المتوازية ... Parallel Computing

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


مبدئياُ، سأسوق الحديث من خلال ضرب مثال على محاكاة ديناميكا الموائع الحسابية (Computational Fluid Dynamics CFD)  لأنها أحد أهم وأعقد علميات المحاكاة من جهة ، ومن جهة أخرى لأنها محور دراستي ما بعد التخرج. تبدأ عملية المحاكاة بتقسيم الكتلة geometry  إلى مجموعة صغيرة جدا من الأجزاء المحدودة تسمى Finite elements كما هو موضح في الصورة ويعتمد عدد هذه الأجزاء على حجم المسألة، ومدى الدقة المطلوبة للحسابات، ويتم حل نظام من المعادلات الجبرية أو التفاضلية الجزئية عند كل جزء من هذه الأجزاء ، قد يبلغ عدد المجاهيل في كثير من المسائل أكثر من 1000 متغير ، ويتم تكرار هذه العملية مرات عديدة حتى الوصول إلى حالة الاستقرار Steady State أي عندما لا يكون هناك اي تغير متوقع مع الزمن. 
العناصر المحدودة Finite elements وتبدو على شكل مثلثات صغيرة. المصدر



قد يحتاج كل جزء من أجزاء المسألة إلى ما يقرب من 1000 عملية حسابية Floating Point. في عالم الحوسبة يأتي معيار فلوبس Floating Operation Point Per Second (FLOPS) للتعبير عن سرعة وكفاءة جهاز الحاسوب لإجراء عملية حسابية في الثانية الواحدة ، تبعا لسرعة ساعة المعالج وبعض العوامل الأخرى  يمكن معرفتها من هنا
عادة ما تستهدف عمليات المحاكاة مجالا من العمليات الحسابية بين 10^12 إلى 10^18 فلوبس ، فإذا كانت كفاءة الجهاز جيجا فلوبس أي 10^9 ، فإن الوقت الزمني الذي قد تستغرقه عملية المحاكاة الواحدة ، يترواح بين 15 ثانية إلى 30 سنة (نعم ثلاثين عاماً). هذا بفرض أن عمليات المحاكاة تتم على التوالي .. 

كيف تتم عملية الحوسبة على التوالي؟ .. 


عند إجراء برمجة لأي نموذج محاكاة ، تتم هذه البرمجة من خلال كتابة مجموعة من الأسطر والتعليمات والمجموعات والدوال ويقوم البرنامج بالانتقال بين الأسطر ومعالجتها وتخزينها في الذاكرة واحدة تلو الأخرى. وإذا كان الجهاز يحتوي على أكثر من معالج ،فإنه لا يقوم بتشغيل المعالج الآخر إلا بعد تشغيل الأول بكل طاقته ، حتى وإن كانت العملية الحسابية لا تحتاج إلى وقت كبير . ومن هنا ظهرت قوة وفائدة التوازي . هناك الكثير من العمليات الحسابية المستقلة ، بمعنى آخر ، أنها لا تعتمد على عمليات أخرى ، وبالتالي يمكن إجراء هذه العمليات بشكل متوازي مع الأخذ بعين الاعتبار توزيع المهام على المعالجات المختلفة. 

الحوسبة على التوازي. 


ليس كل العمليات الحسابية يمكن حلها على التوازي، هذه حقيقة. لأن كثيرا من الحسابات تعتمد في الأصل على مخرجات من عمليات حسابية أخرى، ويكمن سر القدرة على الحوسبة المتوازية في فصل الأجزاء التي يمكن حلها بشكل مستقل عن الأجزاء التي تعتمد على مخرجات أخرى ، فبالتالي هناك عمليات حسابية يجب أن تكون متوالية ، وهناك عمليات أخرى من الممكن أن تكون متوازية تماماً ، وهناك عمليات يمكن الدمج فيها بين التوالي والتوازي كما هو موضح في الأشكال التالية : 
خوارزم حوسبة على التوالي 
خوارزم حوسبة على التوازي
خوارزم حوسبة على التوالي والتوازي Serial-Parallel Algorithm SPA
إذن، فالعملية الحسابية التي قد يستغرق مجالها الزمني من 15 ثانية إلى 30 عاماً . إذا تم إجراءها على التوازي ، فإن هذا الوقت يتقلص من ثانية واحدة إلى 12 يوماُ إذا تم استخدام جهاز ذو تيرا فلوبس أي 10^12 فلوبس . أما في حالة استخدام أجهزة كمبيوتر فائقة Super Computers تعمل بمعدل بيتا فلوبس أي 10^15 فلوبس ، فإن أكبر مسألة حسابية قد تستغرق دقيقة واحدة حتى يتم الانتهاء منها . سوف نتحدث في جزء لاحق عن الأجهزة الفائقة بمشيئة الله تعالى . 

يتبع...


المراجع: 
Gebali, Fayez. Algorithms and parallel computing. Vol. 84. John Wiley & Sons, 2011.‏

ليست هناك تعليقات :

إرسال تعليق