هل يمكن أن تكون البرمجة تفرعية؟ أو المعالجة تفرعية؟ أو الخوارزميات تفرعية؟ ماذا يعني كل ذلك؟ إلى ماذا يدل مفهوم التفرع في عالم الحاسوب؟ وهل يمكن اعتباره ترف علمي؟ سنتعرف معًا خلال هذا المقال على مفهوم الحوسبة التفرعية وأهميتها، والقضايا المتعلقة بها، واستخداماتها المهمّة…
قديمًا، كانت كل البرمجيات تُكتب لتناسب المعالجة التسلسلية.
معالجة تسلسلية؟ إنها معالجة تتم بشكل تسلسلي، أي تُنفَّذ التعليمات والأوامر واحدةً تلو الأخرى، وفي وقت واحد يُنفَّذ أمر واحد فقط، حيث يتألف الحاسب التقليدي من معالج لتنفيذ البرامج المخزنة ضمن الذاكرة الرئيسية.
لكن ماذا لو كانت المسألة حرجة ويجب معالجتها بسرعة؟ ماذا لو كان عدد هذه التعليمات أو الأوامر كبير جدًا؟ ماذا لو كانت المعطيات المطلوب معالجتها ضخمة؟
ماذا لو استُغلت قدرة المعالج كاملة، أو تم العمل على أكثر من حاسب بنفس الوقت لإنجاز مسألة ما ضخمة؟
ماذا تعني الحوسبة التفرعية؟
ببساطة، هي الاستخدام المتزامن لموارد حاسب أو عدّة حواسيب بغرض حلّ مشكلة حسابية ما، حيث تُقسَّم المسألة إلى عدّة أجزاء منفصلة، كل منها يقسم إلى سلسلة من التعليمات، والتعليمات من كل جزء قابلة للتنفيذ على معالجات مختلفة على التوازي.
وبالتالي: يجب أن تكون المسألة الحسابية قابلة للتقسيم إلى أجزاء منفصلة يمكن حلها بشكل متزامن، وقابلة للحل باستخدام موارد حساب متعددة بوقت أقصر من الحل باستخدام موارد حساب مفردة.
أما بالنسبة لموارد الحساب فنعني بها بشكل أساسي إما حاسوب واحد متعدد المعالِجات، أو مجموعة من الحواسيب المرتبطة مع بعضها عبر شبكة.
ما الغاية من الحوسبة التفرعية؟
في عالم الطبيعة تحدث العديد من الأحداث المعقّدة والمترابطة في الوقت ذاته، ولكن ضمن تسلسل زمني، وبالمقارنة مع الحوسبة التسلسلية، تُعتبر الحوسبة التفرعية أكثر ملائمةً لمسائل النمذجة والمحاكاة، وفهم ظواهر الطبيعة المعقدّة، ولتتوضح الصورة أكثر فلنأخذ بعض الأمثلة التي تعتبر من التحديات الكبرى بالنسبة للحواسيب التقليدية (والتي يمكن أن تحتاج لوقت يصل إلى عدّة سنوات، وهذا غير معقول!):
– نمذجة البنى الضخمة للحمض النووي DNA.
– التنبؤ الجوي ، والتنبؤ بالتغييرات المناخية (حيث يتم تقسيم الغلاف الجوي إلى خلايا ثلاثية البعد، لتجري الحسابات على مستوى كل خلية).
– نمذجة حركة الأجرام السماوية، ونمذجة تكون المجرّات.
– محركات البحث على الويب التي تقوم بمعالجة ملايين المناقلات كل ثانية.
– شبكات تشاركية لدعم حدث عالمي مثلًا، حيث يوجد أشخاص من كل أنحاء العالم يمكن أن يديروا أو يتلقوا العمل افتراضيًا.
حسنًا، هذا من منظور فنّي خارجي! لكن ما الأسباب الحقيقية وراء ذلك؟
– نظريًا، استخدام موارد أكثر لإنجاز مهمة ما يعني تقليص الوقت اللازم لإنجازها، كما أنه يمكن بناء الحواسيب التفرعية من عناصر رخيصة الثمن؛ وهذا يعني توفير الوقت والمال والذاكرة.
– عند استخدام حاسب وحيد لحل مسألة ما قد تحدث بعض الأخطاء أو الأعطال بحيث يجب إعادة الحل من البداية، لكن في حال العمل تفرعيًّا على عدة حواسيب فإن تعطل أحدها لن يؤثر على عملية المعالجة، ستتابع بقية الحواسيب العمل. وبالتالي تساعد على التسامح مع الأخطاء (Fault Tolerance).
– يمكن لبعض المسائل أن تكون ضخمة جدًا (أي تحتاج إلى معالجة معطيات ضخمة)، و/أو معقدة جدًا (أي: تحتاج إلى تنفيذ مقدار ضخم من المعالجة) مما يجعلها مستحيلة الحل على حاسوب وحيد خاصة مع ذاكرة محدودة، كالأمثلة التي ذكرناها منذ قليل. وهذا يؤكد على أهميتها وضرورتها في حلّ مسائل ضخمة وذات تعقيد كبير.
إذًا،حل المسائل خلال وقت أقصر وبأقل استخدام للموارد، قدر الإمكان وبحسب الظروف المتاحة، ماذا يعني ذلك؟ هذا يقودنا لسؤال آخر:
هل يمكن زيادة السرعة بمقدار يساوي عدد المعالجات، أي هل يمكن باستخدام 6 معالجات مثلًا أن نزيد سرعة المعالجة ستة أضعاف؟
بالطبع لا، هذه الفكرة خاطئة تمامًا، حيث يجب إضافة زمن للتواصل بين المعالجات، وجمع النتائج المرحلية منها وتركيبها (نظرًا لأن العمل مقسم ويتم على التوازي)…، كما يوجد عدد محدد (عدد أمثلي) من المعالجات التي يمكن أن تحقق هذه الغاية، تصبح أي زيادة بعده غير مفيدة، سيتوضّح ذلك لاحقًا.
أين تستخدم الحوسبة التفرعيّة؟
تاريخيًا، حيث يعود ظهور هذا المفهوم إلى أكثر من 50 سنة، كانت تعتبر الحوسبة التفرعية “النهاية العظمى للحوسبة”، وكانت تستخدم في نمذجة مسائل صعبة للغاية ضمن عدة حقول علمية وهندسية، من مثل:
– الفيزياء، والكيمياء، ومحاكاة التجارب النووية، وعناصر الذرة.
– العلوم والتكنولوجيا الحيوية، وعلم الجينات.
– الجيولوجيا، وعلم الزلازل، ومحاكاة الزلازل والأعاصير.
– الهندسة الميكانيكية، ابتداءً بالصناعة البسيطة وانتهاءً بصناعة السفن الفضائية.
– الهندسة الكهربائية، وتصميم الدارات، والالكترونيات الميكروية.
– علوم الحاسوب، والرياضيات.
كما يوجد لها استخدامات مهمة في حقلي التجارة والصناعة، من مثل:
– قواعد المعطيات، واستنباط المعطيات.
– الذكاء الاصطناعي.
– محركات البحث على الويب، والخدمات التجارية المعتمدة على الويب.
– النمذجة الاقتصادية والمالية.
تحدّثنا عن مفهوم المعالجة التفرعية بشكل عام، أبرز المشاكل المستدعية لاستخدام هذا المفهوم، والاستخدامات.
لكننا لم ننته بعد!
أين تجري المعالجة فعليًا؟ كيف يمكن معرفة ما إذا كان الحل التفرّعي لمسألة ما مفيدًا بالفعل؟
نظرة أعمق في المقال القادم.
- إعداد: نور عبدو.
- تدقيق لغوي: رأفت فياض.