صندوق الأدوات

تسريع وتيرة العلم عن طريق وحدات معالجة الرسوم

لا تجتذب وحدات معالجة الرسوم اهتمام اللاعبين والمُنقِّبين عن العملات المشفرة فحسب، بل يتزايد الاقبال على  استخدام المعالجة المتوازية أيضًا من أجل تسريع وتيرة البحث العلمي.

ديفيد ماثيوس

  • Published online:
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et             dolore magna aliqua.

© ILLUSTRATION BY THE PROJECT TWINS

أمضت إيفان شنايدر، عالمة الفيزياء الفلكية في جامعة برنستون بولاية نيوجيرسي، فترة دراستها للحصول على درجة الدكتوراة في تسخير شريحة، من شأنها أن تُحْدِث ثورة في معالجة البيانات العلمية، لاسيما في وحدة معالجة الرسوم (GPU).

فلقد دخلت وحدات معالجة الرسوم في تحدٍّ مع وحدة المعالجة المركزية (CPU)، التي هي بمنزلة العمود الفقري التقليدي للحوسبة ، وذلك على مدى العقد الماضي، أو نحو ذلك؛ من أجل الهيمنة على العمليات الحسابية الكثيفة.ونتيجة لذلك، فإن الشرائح التي صُممت في الأساس بغرض تحسين ألعاب الفيديو تُستخدم الآن لتشغيل كل شيء، بدءًا من الواقع الافتراضي، إلى السيارات ذاتية القيادة، والعملات المشفرة.

الجدير بالذكر أنه من بين أقوى 100 عنقود حوسبة فائقة في العالَم، يشتمل 20 منها حاليًّا على وحدات معالجة الرسوم من «نفيديا»NVIDIA ، إحدى الشركات الرائدة في صناعة الشرائح. وهذا يشمل أسرع حاسوب في العالم، وهو عنقود "ساميت" Summit في "مختبر أوك ريدج الوطني"، التابع لوزارة الطاقة الأمريكية في ولاية تينيسي، الذي يقتني أكثر من 27 ألف وحدة من وحدات معالجة الرسوم.

تقول شنايدر إن تشغيل النماذج الفيزيائية الفلكية على وحدات معالجة الرسوم "جعلني أكتشف جانبًا جديدًا من عملي، لم يكن ليتأتى لي الوصول إليه، لو أنني لم أفعل ذلك". ومن خلال إعادة صياغة شفرتها؛ لتشغيلها على أجهزة حاسوب فائقة، تعتمد على وحدات معالجة الرسوم، بدلاً من تلك التي تركِّز على وحدات المعالجة المركزية، استطاعت أن تحاكي مناطق في المجرة بوضوح يصل إلى عشرة أمثال المعتاد. وتوضح قائلة إنه قد ترتب على هذه الزيادة في درجة الوضوح، عمل النموذج بأكمله على نحو مختلف الآن؛ ما يقدم تصورات جديدة حول سلوك الغازات عند مشارف المجرّات، على سبيل المثال.

وببساطة، يمكن لوحدات معالجة الرسوم أن تؤدي حسابات أكثر بكثير في الوقت ذاته، مقارنة بوحدات المعالجة المركزية، على الرغم من أن هذه المهام يجب أن تكون أساسية وبسيطة نسبيًّا، كتحديد اللون الذي يجب أن يعرضه كل "بِكْسِل" أثناء لعبة فيديو. وبالمقارنة، يمكن لوحدات المعالجة المركزية أن توفر المزيد من القدرة الحوسبية، بما يتناسب مع كل مهمة، ولكن عليها معالجة كلٍّ منها على حدة. ومن ثم، فإن وحدات معالجة الرسوم لديها القدرة على التسريع الهائل لوتيرة النماذج العلمية، التي يمكن تقسيمها إلى الكثير من المهام المتطابِقة، وهي طريقة تُعرف باسم "المعالجة المتوازية".

لا توجد قواعد صارمة بشأن أنواع الحسابات التي يمكن أن تزيد من سرعتها وحدات معالجة الرسوم، ولكن يتفق أنصارها على أن تلك الوحدات تعمل على نحو أفضل عند تطبيقها على المشكلات التي تتضمن الكثير من الأشياء – كالذرات مثلًا - والتي يمكن نمذجتها في الوقت ذاته. وقد انتشر استخدام هذه التقنية، لا سيما في مجالات، مثل الديناميكيا الجزيئية، والفيزياء الفلكية، وتعلُّم الآلة.

وعلى سبيل المثال، تصمِّم شنايدر نماذج للمجرّات، عن طريق تجزئتها إلى ملايين من المناطق المتمايزة، ثم تقسيم العمل الخاص بمحاكاة كل منها بين الأنوية المتعددة لوحدات معالجة الرسوم، وهي الوحدات التي تنفِّذ فعليًّا العمليات الحسابية. وفي حين أن وحدات المعالجة المركزية عادةً ما تمتلك عشرات الأنوية على أقصى تقدير – وقد ازداد العدد، حيث إن هذه الوحدات ذاتها أصبحت أكثر تناظرًا - يمكن أن تحتوي وحدات معالجة الرسوم على آلاف الأنوية. وتوضح شنايدر الفرق قائلة إنه في حين أن نواة كل وحدة معالَجة مركزية يمكن أن تعمل على نحو مستقل في مهمة مختلفة، فإن أنوية وحدة معالجة الرسوم تشبه القوى العاملة، التي عليها أداء عمليات متماثلة. والنتيجة يمكن أن تكوّن تسارعًا هائلًا في الحوسبة العلمية، مما يجعل المشكلات المستعصية في السابق قابلة للحل. ولكن لتحقيق هذه المزايا، سيحتاج الباحثون، على الأرجح، إلى الاستثمار في بعض الأجهزة، أو الحوسبة السحابية، فضلًا عن إعادة هندسة برمجياتهم.

جزء في كل مرة

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

وعلى سبيل المثال، "أوبن إيه سي سي" OpenACC هو نموذج برمجة، يسمح للعلماء بأخذ كود مكتوب؛ من أجل وحدات معالجة مركزية، وتشغيل بعض العمليات بالتوزاي. وهذا يتيح للباحثين أن يعتادوا التعرف علما إذا كان الكود سيعمل بسرعة أكبر بكثير على وحدات معالجة الرسوم، كما تقول شنايدر، أم لا. يعقد مجتمع "أوبن إيه سي سي" ورشات عمل دورية، وفعاليات برمجة جماعية، يُطلق عليها "هاكاثونات" hackathons ؛ لتمكين العلماء من البدء في نقل كودهم إلى وحدات معالجة الرسوم. تقول شنايدر إنه عند تفكيرك في التجريب باستخدام وحدات معالجة الرسوم، فإن "أول سؤال يجب أن تطرحه على نفسك هو: "هل ثمة جزء من العملية يمكن أن يُؤدى فيه كل شيء بالتوازي؟"".

تتمثل الخطوة التالية في إعادة صياغة التعليمات البرمجية خصيصًا من أجل الاستفادة من وحدة معالجة الرسوم. وبهدف تسريع الكود، تعلَّم فيليب جيرمان، عالِم أحياء الأنظمة في مختبر الأحياء الجزيئية الأوروبي في برشلونة بإسبانيا، بِنْية معالجة متوازية، صممَتْها "نفيديا"، يُطلق عليها "كودا" CUDA، وتتضمن لغة مشابهة للغة ++ Cالمصمَّمة خصيصًا لوحدات معالجة الرسوم. ويقر جيرمان قائلًا: "بالتأكيد لستُ مبرمِجًا مُحنكًا"، لكنه يقول إن الأداة لم تستغرق سوى أسبوعين تقريبًا لتعلُّمها.

ثبت أن برنامج النمذجة الخلوية، الذي صممه جيرمان وزملاؤه، أسرع عند تشغيله باستخدام وحدات معالجة الرسوم بمعدل يتراوح من اثنتين إلى ثلاث قِيَم أُسِّية، مقارنة بالبرامج التي تعتمد على وحدات المعالجة المركزية. يقول جيرمان: "يمكننا بالفعل محاكاة كل خلية، مثل محاكاة متى سنتقسم، وكيف ستتحرك، وكيف سُتصْدِر إشارة لغيرها من الخلايا. لم يكن هذا الأمر ممكنًا من قبل".  

تعمل كودا حصريًّا على شرائح "نفيديا"؛ أما بديلها - وهو أداة "أوبن سي إل" OpenCL مفتوحة المصدر - يعمل على أي وحدات معالجة رسوم، بما فيها تلك التي تصممها شركة تصنيع الشرائح المنافِسة "إيه إم دي" AMD. ويُفضِّل ماثيو ليسكا، عالِم الفيزياء الفلكية في جامعة أمستردام، "كودا"؛ لسهولة استخدامه. وكَتَب ليسكا كودًا، جرى تسريعه بواسطة وحدات معالجة الرسوم، وهو يحاكي الثقوب السوداء، كجزء من مشروع بحثي (M. Liska et al. Mon. Not. R. Astron. Soc. Lett. 474, L81–L85; 2018). ويوضح قائلًا إنّ وحدات معالجة الرسوم عملت على تسريع هذا الكود بمقدار قيمة أسية واحدة تقريبًا على الأقل. كما قال علماء آخرون تحدثوا إلى دوريةNature ، إن كودا أسهل في الاستخدام، بسبب وفرة مكتبات الترميز، والدعم.

قد تحتاج إلى تكريس شهر أو شهرين؛ للتركيز على التحويل، كما ينصح بذلك ألكسندر تشيكوفسكوي، عالِم الفيزياء الفلكية في جامعة نورث وسترن في إيفانستون، بولاية إلينوي، الذي شارك أيضًا في مشروع ليسكا. ويمكن أن يعمل الكود البسيط نسبيًّا بقليل من التعديل على وحدات معالجة الرسوم، على حد قول ماركو نوبيليه، وهو اختصاصي في مجال الحوسبة عالية الأداء بجامعة ميلانو بيكوكا في إيطاليا، شارك في تأليف نظرة عامة عن وحدات معالجة الرسوم في نُظُم المعلومات الحيوية، وعلم الأحياء الحاسوبي، وعلم أحياء الأنظمة (M. S. Nobile et al. Brief. Bioinform. 18, 870–885; 2017) . لكنه يُنبِّه قائلًا إنه من أجل رفع الأداء إلى الدرجة القصوى، يحتاج المستخدمون إلى إعادة كتابة خوارزميّاتهم، وتحسين هياكل البيانات، وإزالة التشعبات الشرطية، وهي الأماكن التي يمكن أن يتبع الكود فيها العديد من المسارات الممكنة، ما من شأنه أن يعقد التوازي. ويوضح مونبيليه قائلًا: "في بعض الأحيان، تناضل شهورًا للوصول إلى الأداء المطلوب".

وفي أحيانٍ أخرى، فإن الأمر – ببساطة - لا يستحق العناء. تقول داجمار إيبر، عالمة الأحياء الحاسوبية بالمعهد الفيدرالي السويسري للتكنولوجيا في زيوريخ، إن مجموعتها بحثت مسألة استخدام وحدات معالجة الرسوم في معالجة بيانات تم الحصول عليها باستخدام مجهر الصفحة الضوئية. وفي النهاية، تمكّن الباحثون من الحصول على نتائج مقبولة، باستخدام وحدات المعالجة المركزية، وقرروا عدم استكشاف مسألة التسارع عن طريق وحدات معالجة الرسوم، لأن ذلك كان يعني إجراء تعديلات كثيرة للغاية. فضلًا عن أنه ليس هناك ما يضمن نجاح كل الطرق؛ فواحدة من محاولات تشيكوفسكوي لم تسفر عن أي تحسن يُذكر في السرعة باستخدام وحدة المعالجة المركزية. يقول تشيكوفسكوي: "يمكنك أن تستثمر الكثير من الوقت، وقد لا تحصل على الكثير من العائد على استثمارك هذا".

لكن لا يكون الحال كذلك في أغلب الأحيان. يُضيف تشيكوفسكوي قائلًا إنه في مجال ديناميكا الموائع، كان الباحثون عادة ما يجدون تسارعًا "بمُعامل يتراوح من قيمتين أُسِّيَّتَين إلى قيمة أسية واحدة ".

المعالجة السحابية

فيما يتعلق بالأجهزة نفسها، جميع الحواسيب تحتاج إلى وحدة معالجة مركزية، تلك التي تكون بمثابة مخ الحاسوب، ولكن ليست جميع تلك الأجهزة مزودة بوحدة مخصصة لمعالجة الرسوم. فبعضها يدمج معالجة الرسوم الخاصة بها مع وحدة المعالجة المركزية، أو اللوحة الأم، على الرغم من إمكانية إضافة وحدة معالجة رسوم منفصلة. ولإضافة العديد من وحدات معالجة الرسوم، قد يحتاج المستخدمون - على حد قول ليسكا - إلى لوحةٍ أُمّ جديدة مزودة بفتحات إضافية، إلى جانب مصدر طاقة أقوى.

تتمثل إحدى طرق تجريب المعالجة المتوازية، دون الاضطرار إلى شراء أجهزة جديدة، في استئجار سعة لوحدة معالجة الرسوم من مزود حوسبة سحابية، مثل خدمات أمازون ويب، على حد قول تيم لانافير، مدير هيكلة الحلول والهندسة في "نفيديا"، في أوروبا ومنطقة الشرق الأوسط وأفريقيا (انظر مثلًا هذه المفكرة الحاسوبية التي تستغل وحدات معالجة الرسوم في سحابة جوجل: go.nature.com/2ngfst8.)، لكن الحوسبة السحابية يمكن أن تكون باهظة التكلفة. يقول لانفير إنه إذا وجد الباحث أنه بحاجة إلى استخدام وحدة معالجة الرسوم باستمرار، "فمِن الأفضل أن يشتري وحدة المعالجة خاصته، بدلًا من استئجارها من أمازون".

يشير لانافير إلى تجريب المعالجة المتوازية باستخدام وحدة معالجة رسوم أرخص ثمنًا، مخصَّصة للاعبين في الأساس، ثم استخدام الكود البرمجي على شريحة أكثر احترافية. ويمكن أن تكلف أفضل وحدات معالجة الرسوم المخصصة للألعاب  1200 دولار أمريكي، في حين أن وحدات معالجة رسوم تيسلا من نفيديا، المصمَّمة خصيصًا للحوسبة عالية الأداء، أسعارها تُقدر ببضعة آلاف من الدولارات. يجدر بالذكر أن أجهزة حواسيب «أبل» لا تدعم رسميًّا وحدات معالجة الرسوم الحالية من نفيديا؛ ولكنها تدعم فقط وحدات معالجة الرسوم من شركة «إيه إم دي».

وعلى الرغم من نمو حوسبة وحدات معالجة الرسوم، فإنّ تقدُّم هذه التقنية في المجالات العلمية المختلفة يفتقر إلى الاتساق. فوقفًا لما يقوله لانفير، وصل هذا التقدم إلى مرحلة النضج في الديناميكا الجزيئية، وانطلق في مجال تعلُّم الآلة، لأن الخوارزمية التي تنفذها شبكة عصبية "يمكن وصفها بأنها تحل مجموعة كبيرة من المعادلات"، وهو ما يناسب المعالجة المتوازية. ويضيف لانفير قائلًا: "عندما ينطوي الأمر على الكثير من الأمور، تكون وحدة معالجة الرسوم خيارًا جيدًا في المعتاد. وأعني بالكثير من الأمور الكثير من المعادلات، والكثير من البيانات، والكثير من الذرات الموجودة في الجزئيات". وقد استُخدمت هذه التقنية أيضًا في تفسير البيانات الزلزالية، لأن وحدات معالجة الرسوم يمكنها نمذجة ملايين الأجزاء من الأرض على نحو مستقل؛ لمعرفة كيفية تفاعل تلك الأجزاء مع الأجزاء المجاورة لها.

ولكن من الناحية العملية، يمكن أن يكون تسخير تلك القدرة الهائلة أمرًا صعبًا. وفقًا لتقديرات شنايدر، فإنه في مجال الفيزياء الفلكية، يتراجع واحد من كل 20 زميلاً تبنَّوا وحدات معالجة الرسوم، بسبب الجهد الذي تتطلبه إعادة صياغة الكود.

يوضح جيرمان هذا الشعور بقوله: "هناك المزيد والمزيد من الناس يدركون هذه الإمكانية"، ويستدرك قائلًا: "أعتقد أنه لا يزال هناك عدد من المختبرات يتوجس خيفة من هذه التقنية بدرجة ما، لِمَا عُرف عنها من صعوبة برمجتها". 

ديفيد ماثيوس كاتب مستقل، يقيم في برلين.