building & managing hpc beowulf cluster -...

129

Upload: others

Post on 14-Sep-2019

1 views

Category:

Documents


0 download

TRANSCRIPT

﴿ ¸¶ µ ´ ³ ² ± °﴾

إىل من بع .. للعاملني رمحةثوكان قدوة للعاملـني العام ..لني

ملسو هيلع هللا ىلصحممد الذي وىف وو ..ىف

.وكان نجام ييضء درب السالكني

..تي من حتت قدميها ينبع الكوثر الإىل ..ومن أجلها أورق شجر اجلنة وأزهر وأثمر

..نبع احلب واحلنان.. إىل نبض قلبي أمي

..إىل الذي أخفض له جناح الذل من الرمحة

..إىل السيل املتدفق باخلري والعطاء ..إىل الذي رباين فأحسن تربيتي

أيب

، وقلبي نورا، وعقيل سعةإىل الذين ملؤوا نفيس حياة .. وإدراكا ..إىل الشموع التي أضاءت دريب

..إىل الذين أقف دوهنم وقفة إجالل وإكبار ..إىل أساتذيت األجالء

:وأخصمن كان لنا عونا ونصحا، وترك فينا أثرا من نور ال يزول عىل مر الزمن حممد مازن املحايري. د..

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

إىل هؤالء مجيعا أهدي رسالتي هذه سائال اهللا عزوجل التوفيق والسداد .

نخص ، و إىل النور هذا العملإخراج ساهم يف وجه بالشكر اجلزيل واالمتنان العميق إىل كل منأخريا، نتو

.عامر النحاس من كلية اهلندسة املعلوماتيةو أيمن العقاد من قسم هندسة احلواسيب واألمتتة. بالذكر د

N N

٥ متهيد ١.١ ٥ HPC عالية األداء احلوسبة ٢.١ ٥ Distributed Computingاحلوسبة املوزعة ٣.١ ٦ Clustersالعناقيد ٤.١ ٦ عنقود بيوولف ٥.١ ٦ دتطبيقات العناقي ٦.١ ٧ مراجع الفصل ٧.١

١٠ متهيد ١.٢ ١٢ Speedup Factorعامل الترسيع ٢.٢ ١٣ الفعالية ٣.٢ ١٣ يع العظمى التي يمكن احلصول عليها؟ما هي قيمة الترس ٤.٢ ١٥ احلوسبة بتمرير الرسائل ٥.٢

١٥ إنشاء اإلجرائية ١.٥.٢ ١٦ التوابع األساسية املستخدمة يف عمليتي اإلرسال واالستقبال ٢.٥.٢ ١٨ عمليات البث والتناثر والتجميع والتقليل ٣.٥.٢

٢٠ مراجع الفصل ٦.٢

٢٣ متهيد ١.٣ ٢٤ اعتبارات تصميمية ٢.٣ ٢٤ العتاد املادي ٣.٣

٢٤ نسبة األداء إىل التكلفة ١.٣.٣ ٢٤ بات التطبيقات التي ستعمل عىل العنقودحتقيق متطل ٢.٣.٣ ٢٥ تصميم النظام ضمن املعايري املقرتحة ٣.٣.٣ ٢٦ تصميم العنقود ٤.٣.٣

٢٦ نظام التشغيل ٤.٣ ٢٧ امليزات التقنية لنظام التشغيل لينوكس ١.٤.٣ ٢٧ تشغيل لينوكس يف جمال احلوسبة عالية األداءميزات نظام ال ٢.٤.٣

٢٩ خدمات البنية التحتية ٥.٣ ٢٩ إعداد وتشغيل شبكة البيانات ١.٥.٣ ٢٩ مشاركة امللفات بني عقد العنقود ٢.٥.٣ ٢٩ تأمني الوصول البعيد واآلمن إلدارة العقد ٣.٥.٣

٢٩ العتاد الوسيط ٦.٣ ٣٠ بيئة الربجمة املوزعة ١.٦.٣ ٣٠ بيئة مراقبة وإدارة العنقود ٢.٦.٣

٣١ MPIمكتبة ٧.٣ ٣١ عامل يف الربجمة التفرعية/نموذج مدير ١.٧.٣

٣٢ مراجع الفصل ٨.٣

٣٥ قياس األداء ١.٤ ٣٥ Peakقياس قمة األداء ١.١.٤ ٣٥ HPC Challengeحزمة االختبار ٢.١.٤

٤٤ نتائج قياس أداء العنقود ٢.٤ ٤٧ D Rendering-3التصيري ثالثي األبعاد ٣.٤

٤٧ مبدأ العمل ١.٣.٤ ٤٨ خوارزمية تعقب الشعاع ٢.٣.٤ ٥٠ األشعة األولية والثانوية ٣.٣.٤ ٥٢ أنواع املؤثرات الضوئية ٤.٣.٤ ٥٥ األلوان ٥.٣.٤

٥٥ حساب الظالل ٦.٣.٤ ٥٧ ختامد األشعة الضوئية ٧.٣.٤ ٥٧ Antialiasingمعاجلة التكرس ٨.٣.٤ ٥٨ Texturingاإلكساء ٩.٣.٤

٥٨ حتسني تعقب الشعاع ١٠.٣.٤ ٥٩ أنواع األجسام املرسومة ١١.٣.٤ ٦١ توزيع اخلوارزمية ١٢.٣.٤ ٦٢ وصف الربنامج ١٣.٣.٤

٦٦ نتائج قياس أداء التطبيق ٤.٤ ٦٧ اختبار احلل التسلسيل ١.٤.٤ ٦٧ اختبار احلل التفرعي ٢.٤.٤ ٦٩ حساب عامل الترسيع والفعالية ٣.٤.٤

٧٠ رضب مصفوفة بشعاع: مثال عىل تطبيق غري مناسب للعناقيد ٥.٤ ٧٠ الوصف العام ١.٥.٤ ٧٠ رشح الربنامج ٢.٥.٤ ٧٢ حتليل الربنامج ٣.٥.٤

٧٢ مراجع الفصل ٦.٤

٧٧ االستنتاجات ١.٥ ٧٧ التوصيات ٢.٥

٧٧ نقاط هامة يف تصميم العناقيد ١.٢.٥

٧٩ األعامل املستقبلية ٣.٥ ٧٩ عىل مستوى العنقود ١.٣.٥ ٧٩ عىل مستوى تطبيق التصيري ثالثي األبعاد ٢.٣.٥

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

.ا البعض للحصول عىل قدرة حسابية أكرب، وهو ما سمي باحلوسبة التفرعيةاحلواسب أو املعاجلات مع بعضه بنينايعالج بحثنا أحد جوانب هذا األمر، إذ قمنا بربط جمموعة من احلواسب املتوفرة جتاريا يف شبكة إثرنت، و

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

، وهو واحد من أكثر D Rendering-3سنستثمر هذا العنقود يف تطبيق رئيس هو التصيري ثالثي األبعاد ها وبسبب التحسني الذي يطرأ تطبيقات الربجمة املوزعة انتشارا، وذلك بسبب القدرة احلسابية العالية التي حيتاج

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

زمن تنفيذ احلل بينام كان . ثانية٩٢٩٩ هو مشهدئة امتصيري ل)ىل معالج واحدع (زمن تنفيذ احلل التسلسيلفقد كان ة من العقد وتكتب ناتج التصيري يف جتمع األسطر املصري( وإجرائية إدارة عاملةإجرائيات التفرعي باستخدام مخسة

وهي % ٧٦فعالية تساوي و٤.٥٦ أي أننا حصلنا عىل عامل ترسيع يساوي . ثانية٢٠٤٠ائة مشهد أيضا هو مل )ملفوحصلنا عىل ) HPCC(قمنا أيضا بقياس أداء العنقود باستخدام حزم قياس األداء املعيارية .نتائج جمزية بال شك

.23.87Gflopsأداء يساوي

متهيد ١.١ا العامل يف الوقت احلايل، تعد رسعة معاجلة األنظمة احلاسوبية ملختلف املعضالت من األمور التي يراهن عليه

وذلك باإلضافة إىل العديد من األساسيات الواجب توفرها عند التفكري بأي من تلك األنظمة، كدقة املعاجلة .وانخفاض التكاليف املادية

طول التعليامت أو املعطيات : اعتمدت عملية تطوير املعاجلات يف السابق عىل عدة نواح، منها اثنتان أساسيتان لتنفيذ عمليات بطول يف بادئ األمرتي يتعامل معها املعالج، وتردد الساعة الذي يعمل به، إذ صممت املعاجلاتال

8-bit 5 وبرتدد ساعة يساويMHz 64، إىل أن وصلت إىل-bit 3 وبرتدد ساعة يفوقGHz . ولكن نالحظ أن التطورى آخر، هناك حدود ال يمكن جتاوزها نتيجة القيود يف هذا التوجه ال يمكن الوصول به إىل حد ال هنائي، أو بمعن

التصميمية املفروضة عىل العتاد املادي بشكل عام، وبالتايل ظهرت احلاجة إلجياد حلول أخرى قابلة للتنفيذ وتسمح .بمستويات أعىل من األداء

: مستوى املعاجلةيفرض العمل يف جمال احلوسبة عىل املستثمرين التفكري بثالث طرائق لتحسني األداء عىل .استخدام خوارزميات حمسنة وتعمل بشكل أفضل من حيث التطبيق )١( .)وهو األمر املحدود بالتقنيات املتوفرة(استخدام حواسب تعمل برسعة أكرب و )٢(إما : وأخريا تقسيم املعاجلة لكي تعمل بشكل متساير عىل التفرع، وهذا ما يمكن أن يتم بإحدى طريقتني )٣(

ت ذات بنية مادية تفرعية، أو استخدام عدة حواسب تربط معا بشبكة اتصال وتعمل عىل استخدام معاجلا .أجزاء خمتلفة من املعاجلة

HPCاحلوسبة عالية األداء ٢.١ إىل املزيد من القدرة احلسابية، وهذا ما احلاجةمع تقدم األبحاث العلمية والتطبيقات التجارية يف كل يوم، تزداد

احلوسبة إىل البحث املستمر عن التقنيات التي متكنهم من جتاوز القدرات التي يوفرها العتاد دفع العاملني يف جمال .املادي إلجياد HPCهذا النوع من االحتياجات هو ما فتح الباب أمام األبحاث يف ما يسمى اآلن احلوسبة عالية األداء و

D-3ثالثي األبعاد التصيري لتنبؤ بالطقس واك ملتزايدة إىل القدرة احلسابية يف عدة تطبيقاتحلول للحاجة ا

Rendering املعطيات والتنقيب عن Data Miningوحتليل التعمية Cryptanalysis وعمليات التحليل الكيميائي .واحليوي Distributed Computingاحلوسبة املوزعة ٣.١

سابية بشكل متساير عىل التفرع، بأهنا تنفيذ للعمليات احل عادة Parallel Computingتوصف احلوسبة التفرعية ولكن غالبا ما يكون هذا التنفيذ مرتابطا بشكل وثيق، كتنفيذ عمليات املعاجلة عىل أجزاء خمتلفة من البيانات

الذي غالبا ما متكنه بنيته من العمل عىل التفرع، أو باستخدام األنظمة املتعددة املعاجلات نفسهباستخدام املعالج .ىل اللوحة األم نفسهاالتي توضع ع

التي تعني ، Distributed Computingتعتمد احلوسبة عالية األداء بشكل أسايس عىل مبادئ احلوسبة املوزعة . استخدام عدة عقد معاجلة موزعة يف مناطق خمتلفة، لتنفيذ أجزاء خمتلفة من العمليات احلسابية

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

. الفائقةإلجياد العناقيد هو الكلفة املادية العالية املرتافقة مع احلواسب Clustersالعناقيد ٤.١

موعة من احلواسب التي تعمل معا وتظهر كأهنا حاسب واحد ذو أداء عايل ومتميز، يعرف العنقود بأنه جمحواسب و شبكة : وبذلك يتألف العنقود من ثالث مكونات أساسية. وتتواصل مع بعضها هبدف تبادل املعلومات

.ااتصال و أخريا جمموعة من الربجميات متكن هذه احلواسب من مشاركة العمل والتخاطب فيام بينهومن اجلدير بالذكر أن مفهوم العنقود يف بداية األمر كان يرتبط ارتباطا وثيقا بمفهوم احلوسبة عالية األداء

-High، ولكن ظهرت أنواع أخرى للعناقيد يف الوقت احلايل، منها عناقيد املتاحية العالية )ومازال كذلك(

Availability Clustersن احلقيقي واملهامت احلرجة، التي تكون نتائج اإلخفاق التي تستخدم لتنفيذ تطبيقات الزم التي تستخدم للحصول عىل Load-Balancing Clusters عناقيد موازنة األمحال ونجد أيضا. فيها عالية التكلفة

أعىل أداء ممكن عند توزيع املهام عىل عدة حواسب، وذلك بتطبيق خوارزميات اجلدولة املعروفة كخوارزمية Round-Robin.

إن اختيار النوع املالئم من العناقيد خيضع لطبيعة التطبيق الذي سيتم تنفيذه، كام إن اختالف أنواع العناقيد . يؤدي الختالف املتطلبات الواجب توفرها يف كل نوع

عنقود بيوولف ٥.١نها متتاز عنها هي عناقيد عالية األداء كغريها من العناقيد عالية األداء من حيث الوظيفة ولكعناقيد بيوولف

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

.)غيغا إثرنت طاملا كانت كلفتها زهيدةأو حتى (شبكة إثرنتبومربوطة ) وجمانية غالبا( تطبيقات العناقيد ٦.١

انترش مفهوم عناقيد بيوولف بشكل واسع يف اجلامعات واملؤسسات البحثية واملنشآت التجارية عىل حد سواء وكان صغريا نسبيا( إذ أنشئ عنقود بيوولف ترش يف سورية بالشكل املناسب بعد؛النخفاض تكلفتها، إال أهنا مل تن (

، إال أنه مل EUMEDGridيف املعهد العايل للعلوم التطبيقية والتكنولوجية قبيل سنوات ضمن مشاركته يف مرشوع

، وبذلك تكون الدراسة التي أجريناها عن عنقود بيوولف )١(حيظ بالدراسة واالهتامم الكايف من الوسط العلمي .الذي أنشأناه يف مرشوعنا خطوة أوىل يف هذا املجال

بني ميزات استخدام احلوسبة املوزعة فقد قررنا تطوير تطبيق للتصيري ثالثي األبعاد ودراسة حتسن أدائه ولكي ن .بتنفيذه عىل عنقود للحوسبة عالية األداء

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

املكتبات بني دعم رياضيات املصفوفات املوزعة وحل مجل املعادالت وحتى التطبيقات البحثية اخلاصة كنمذجة وحل Astrophysicsء واملحاكاة يف جمال فيزياء الفضا Weather Modeling & Forecastingالطقس والتنبؤ به

.Fluid Dynamics وميكانيك السوائل Finite Elementsمسائل العنارص املنتهية مراجع الفصل ٧.١

[1] L. Ferreira et. al, Linux HPC Cluster Installation, IBM Redbooks, 2001. [2] Steven K. Baum, What's in NPACI Rocks and How Do I Use It?, Texas A&M University,

2004; (http://stommel.tamu.edu/~baum/npaci.html). [3] J. D. Sloan, High Performance Linux Clusters with OSCAR, Rocks, OpenMosix, and MPI,

O'Reilly, 2005.

. فيام بعدEUMEDGrid يف مرشوع املعهد العايلوهذا ما أدى إىل إلغاء مشاركة )١(

متهيد ١.٢مع ازدياد االعتامد عىل احلاسب يف خمتلف جماالت احلياة، ازدادت كذلك القدرة احلسابية التي تتطلبها التطبيقات العلمية والتجارية عىل حد سواء، ومنذ ستينات القرن املايض كانت هذه املتطلبات تفوق اإلمكانيات

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

موضع Moore's Lawازدادت أمهية هذا املجال من احلوسبة خالل السنوات املاضية بعدما أصبح قانون مور بسبب القيود الفيزيائية – عىل تضاعف عدد الرتانزستورات يف الدارات املتكاملة كل عامني والذي ينص–تساؤل

ومتت ترمجة هذا االهتامم عمليا بازدياد . نانومرت٤٥املفروضة عىل عنارص الدارات، وخاصة بعد الوصول إىل حد فقد ظهرت املعاجلات متعددة النوى يف االعتامد عىل احلوسبة التفرعية يف الكثري من األنظمة وعىل خمتلف الصعد؛

احلواسب الشخصية والنظم املضمنة، وأخذت الرشكات الكربى بدعم جهود األبحاث والتطوير لبناء بيئات برجمية شائعة الوجود يف مراكز األبحاث Clusters والعناقيد Supercomputersتفرعية، كام أصبحت احلواسب الفائقة

.واجلامعات والرشكات Distributedذا السبب قررنا يف مرشوعنا العمل يف أحد فروع هذا املجال وهو احلوسبة املوزعة وهل

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

الناحية العتادية والربجمية دون تغيري كبري يف البنية التحتية للنظام، باإلضافة إىل سهولة تعميم النتائج التي نحصل .عليها يف دراستنا

:تصنف العديد من األنظمة حتت مظلة احلوسبة املوزعة ومنها

loosely coupled من احلواسب املرتبطة بشكل ضعيف هي جمموعة: أنظمة احلوسبة العنقودية .١. عقد العنقود هي حواسب قائمة بحد ذاهتا متصلة بشبكة. بحيث يمكن النظر إليها كحاسب واحد

التي تعتمد عىل جمموعة من Beowulf Clustersأكثر أنواع العناقيد انتشارا هي عناقيد بيوولف سطة شبكة إثرنت، وتستخدم بشكل واسع يف احلسابات احلواسب املتوفرة جتاريا واملتصلة بوا

للحوسبة TOP500من اجلدير ذكره هنا أن معظم األنظمة املوجودة حاليا ضمن تصنيف . العلمية .الفائقة هي عناقيد

تتألف من حاسب واحد حيوي داخله جمموعة من املعاجلات : MPPأنظمة احلوسبة التفرعية اهلائلة .٢. هذه األنظمة العناقيد نوعا ما، ولكنها أكرب وحتوي عادة أكثر من مائة معالجتشبه . املتصلة سوية

IBM Blue Gene/Lيعترب نظام . لكل من معاجلات النظام ذاكرته اخلاصة ونسخته من نظام التشغيل، ويعتمد عىل معاجلات MPPأحد أنظمة ) األخريTOP500وهو أرسع حاسب فائق حسب تصنيف (

Power PC700 برسعة MHz.

هو أكثر األنظمة توزيعا، ويستخدم شبكة اإلنرتنت : Grid Computingأنظمة احلوسبة الشبكية .٣ embarrassinglyللوصل بني حواسب وعناقيد ألداء مهمة حمددة غالبا ما تكون تفرعية رصحية

parallelبسبب عرض احلزمة املنخفض املتوفر . أي العناقيد، واخرتنا عناقيد –الذي تناوله مرشوعنا هو النوع األول وبناء عىل التصنيف السابق فإن النوع

طورت عناقيد بيوولف ألول مرة عام . بيوولف ألهنا تتكون من عتاد مادي متوفر جتاريا وبرجميات مفتوحة املصدر من يف وكالة ناسا بواسطة توماس ستريلنغ ودونالد بيكر، وذلك عندما طلب منهام القيام بمجموعة١٩٩٤

احلسابات العلمية التي تتطلب حاسبا فائقا مل تتوفر امليزانية الكافية لتأمينه، وهذا ما دعامها للتفكري باستخدام تكررت هذه القصة فيام بعد يف العديد من املراكز . احلواسب املتوفرة لدهيام أصال للقيام هبذه احلسابات بشكل موزع

باستخدام ORNL (Oak Ridge National Laboratory)الذي أنشئ يف خمابرالبحثية، ومنها مثال عنقود بيوولف ، ووصل "حساء احلىص" نسبة إىل القصة املعروفة Stone Supercomputerاحلواسب املهملة يف املخترب وسمي

. عقدة١٣٣عدد عقده إىل أرخص املوارد للحصول طبيعة مكونات العناقيد بشكل عام، وعناقيد بيوولف خاصة أدت إىل اعتبارها من

من كلفتها يف أنظمة % ١٠يف هذه األنظمة قد تبلغ ) GFLOPS/$(عىل القدرة احلسابية، إذ أن كلفة القدرة احلسابية .ويضاف إىل هذه امليزة قابلية التوسع الكبرية للعناقيد. احلوسبة التفرعية األخرى

التي توصل مع أحد العقد يف crash cart، وتظهر إىل اليسار عربة اإلنقاذ Stone Supercomputer صورة ألحد جوانب :١- ٢ الشكل .حال تعطلها

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

D-3الالزمة إلدارته ومراقبته؛ ومن ثم نعرض ميزاته من خالل تطبيق تفرعي هو التصيري ثالثي األبعاد

Renderingلذلك، وأخريا ، وذلك ببناء التطبيق ووصف الفاعلية احلاصلة عن تفريعه وأداء االختبارات الالزمة .عرض النتائج والتوصيات التي توصلنا إليها

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

وهلذا سنتابع هذا الفصل باحلديث عن كيفية حساب الترسيع والكفاءة يف النظم التفرعية، كي نستطيع . أصال .الوصول إىل املحددات التي تربر استخدام احلوسبة التفرعية

Speedup Factorعامل الترسيع ٢.٢هو ما غرض زيادة رسعة تنفيذ التطبيقاتبيطرح عند استخدام أنظمة متعددة املعاجلات الذي ول األسؤال الإن

النظام اجلديد، ومن هنا ظهر مفهوم عامل الترسيع الذي يعرب عن استخدام عندمقدار التحسن الذي نحصل عليه . عىل التفرعا معاجلpاستخدام بمقدار الزيادة يف رسعة التنفيذ

يس زمن تنفيذها عىل معالج التطبيقات ونقحد ألحلساب عامل الترسيع نختار أفضل اخلوارزميات التسلسلية :ذين حصلنا عليهامل معالج، ثم ننسب زمني التنفيذ الpباملقابل نختار اخلوارزمية التفرعية لتنفيذها عىل ووحيد،

Execution time using single processor system speedup factor S(p) = Execution time using a multiprocessor system with p processors

:ختصاراواS(p) = ts / tp

:العمليات احلسابية املنفذة عىل املعاجلات متثيل معامل الترسيع بشكل آخر اعتامدا عىل عدد يمكنكام Number of computational steps using one processor speedup factor S(p) = Number of computational steps with p processors

، وهذا ما يسمى p عدد املعاجلات املستخدمةتساوي إن أعىل قيمة لعامل الترسيع يمكن احلصول عليها الذي يمكن حتقيقه بتقسيم العمل إىل إجرائيات ذات أزمنة متساوية يتم توزيعها بالتساوي عىل طياخلبالترسيع

:تقدير عامل الترسيع كام ييلن إذيمكن . لحل التفرعيلاملعاجلات دون وجود تكلفة إضافية S(p) ≤ ts / (ts / p) = p

الفعالية ٣.٢املعاجلات يف تنفيذ العمليات احلسابية، والتي يمكن الزمنية التي تقضيها دة املمن املفيد يف بعض األحيان معرفة

:احلصول عليها من معادلة الفعالية اخلاصة بالنظام كام ييلExecution time using one processor E =

Execution time using a multiprocessor * number of processors E = ts / (tp * p)

:ويمكن متثيل الفعالية كنسبة مئويةE = S(p) / p * 100

بوجود هنفس عندما تعمل مجيع املعاجلات لتنفيذ العمليات احلسابية يف الوقت% ١٠٠تساوي نحصل عىل فعالية .pته عامل ترسيع قيم

هي قيمة الترسيع العظمى التي يمكن احلصول عليها؟ ما ٤.٢جيب علينا أوال أن نعرف بعض التكاليف اإلضافية التي سوف تظهر عند استخدام السؤال لإلجابة عن هذا

:احللول التفرعية، والتي أمهها ما ييل .فرتات مخول املعاجلات )١( .قسيم وتوزيع العمل عىل اإلجرائياتية اإلضافية الناجتة عن عمليات تبالعمليات احلسا )٢( .األزمنة املنقضية يف عمليات االتصال بني اإلجرائيات )٣(

تعطي وعندها، اإلضافيةن تنفذ بشكل تفرعي بسبب هذه التكاليفأللذلك فإن العديد من التطبيقات ال تصلح .التفرعيةالصادرة عن احللول احللول التسلسلية نتائج أفضل بكثري من تلك

كن عدد األجزاء التفرعية واملمثلة باإلجرائيات املستخدمة، البد يف النهاية من الوصول إىل جزء تسلسيل مهام ي f( سيقدر بـا معاجلpالتفرعي باستخدام بالتايل فإن زمن التنفيذو، f بالرمز ذا اجلزءد، ونرمز هليينفذ عىل معالج وح

ts + (1 - f) ts / p (كام هو موضح بالشكل التايل:

Maximum Speedup :٢- ٢ الشكل :وعندها يمكننا التعبري عن معامل الترسيع كام ييل

S(p) = ts p=

fts + (1 − f )ts /p 1 + (p − 1) f عىل أن أعىل مقدار ، والذي ينص١٩٦٧عام ظهر الذي Amdahl's lawوهذه املعادلة عرفت بقانون أمدال

عىل معا حتى بوجود عدد ال هنائي من املعاجلات التي تعمل f/1 بـ ادللترسيع يمكن احلصول عليه يكون حمدو .التفرع

: من الربنامجf ونسبة اجلزء التسلسيلعدد املعاجلات بازدياد يوضح الشكل التايل ازدياد قيمة الترسيع

Speedup against number of processors :٣- ٢ الشكل

احلوسبة بتمرير الرسائل ٥.٢ .ذج تنفيذ التطبيقات املوزعة هو نموذج احلوسبة بتمرير الرسائل الذي نرشحه فيام ييلإن أحد أهم نام

اإلجرائيةإنشاء ١.٥.٢تنفيذ عدة إجرائيات عىل معالج واحد مما يرسع تنفيذ الربنامج بشكل عام، ولكن أنه من املمكن من املعروف

ن اهناك طريقت .تتطلب من املعالج تقسيم زمن املعاجلة بني اإلجرائيات للحصول عىل أداء متوازنهذه العملية . الديناميكيواإلنشاء، staticالساكن اإلنشاء: اإلجرائياتإلنشاء

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

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

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

.ئة وتوزيع املهام عىل اإلجرائياتعمليات التهيهو نموذج برامج متعددة ن لكتابة الربامج التي تستخدم احلوسبة بتمرير الرسائل، النموذج األول اهناك نموذج

:املوضح بالشكل التايل) MPMD) Multiple-Program, Multiple-Data بيانات متعددة -

Multiple-Program, Multiple-Data (MPMD) model: ٤- ٢ الشكل

من الفعال نسبيا تنفيذ برناجمني خمتلفني بحيث ينفذ الربنامج األول باستخدام ) التابعبرنامج السيد وبرنامج ( .خرىاألجرائيات اإلأحد اإلجرائيات والربنامج اآلخر باستخدام

من ناحية أخرى، فإنه من املجدي استخدام النموذج اآلخر بشكل ساكنعند استخدام اإلجرائيات املنشأة و كام ) SPMD) Single-Program, Multiple-Data بيانات متعددة -نموذج برنامج واحد لكتابة الربنامج وهو :يوضح الشكل التايل

Single-Program, Multiple-Data (SPMD) model: ٥- ٢ الشكل

يتم ترصيفهام بشكل ) التابعالسيد و(عند استخدام اإلنشاء الديناميكي لإلجرائيات، يكتب برناجمان خمتلفان : للبدء بتنفيذها باستخدام وظيفة من الشكلالتابعيتم توليد اإلجرائية التي متثل برنامج . منفصل

spawn(name_of_process);

Spawning a process: ٦- ٢ الشكل

التوابع األساسية املستخدمة يف عمليتي اإلرسال واالستقبال ٢.٥.٢ :الشكلعادة من إن التوابع األساسية املستخدمة يف عمليتي اإلرسال واالستقبال تكون

send(parameter_list) recv(parameter_list)

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

Basic send() and recv() functions: ٧- ٢ الشكل

ار الرسائلاختي ١.٢.٥.٢ آخر هو الوسم اهناك حمددفإن باإلضافة إىل املحددات األساسية املستخدمة يف توابع اإلرسال واالستقبال،

تقسم الذي يقوم وفقه هذا الوسم ويفحص املتلقي الرسالة يستقبل من خالله الرسائل إىل عدة أنامط، فعندما أكرب يف تبادل الرسائل، كام يمكن استخدام الوسم يف أغراض تنظيمية باستقبال كامل الرسالة أو ال، مما يتيح مرونة

.أخرى داخل الربنامج التمرير املتزامن للرسائل ٢.٢.٥.٢

عملية اإلرسال قبل العودة إىل اإلجرائية ملتابعة كامل يتم يف مثل هذا النوع من مترير الرسائل انتظار انتهاء تبادل البيانات وتنظيم عملية التزامن بني : أساسيتنيبوظيفتني العمل، وبالتايل فإن التوابع املتزامنة ستقوم

الرتاسل بني اإلجرائيات، فقد تم اقرتاح طريقة مصافحة يف هذا النوع من ال حاجة الستخدام صوان . اإلجرائيات :ثالثية األطوار بني املرسل واملستقبل، كام يوضح الشكل التايل

Synchronous send() and recv() using 3-way protocol :٨- ٢ الشكل

صوان رسائل لكي استخدام لتجاوز العقبة السابقة املتمثلة يف رضورة تزامن اإلرسال واالستقبال يمكن و، وبذلك يصبح مترير الرسائل سواء تم استقبال الرسالة أم التنفيذ التعليامت التالية متابعة املرسلة اإلجرائية تستطيع

:كام يوضح الشكل التايلغري متزامن

Using message buffer: ٩- ٢ الشكل إىل االنتباهباعتامد هذا النوع من مترير الرسائل، فإن الزمن اإلمجايل لتنفيذ الربنامج سوف يقل نسبيا، ولكن جيب

أن يمتلئ يف أحد املراحل، مما سيؤدي إىل حاالت انتظار مل تكن املمكن ، ومن احجم الصوان سيكون حمدودأن ، باستقبال الرسائل املوجودة يف الصوان بعدائل جديدة ومل يقم الطرف اآلخرس رإرسال حاول املرسل إذامتوقعة

.م تفريغ الصوانوسيضطر النظام إىل العودة إىل نمط التمرير املتزامن ريثام يت والتقليلالتجميعالتناثر وو عمليات البث ٣.٥.٢

إىل عدة وجهات وهذا ما يسمى بعملية هانفس الرسالةإرسالاإلجرائيات يف كثري من األحيان إىل بعض حتتاج :واملوضحة بالشكل التايل Broadcastالبث

Broadcast operation :١٠- ٢ الشكل

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

فيتم خالهلا توزيع عنارص مصفوفة ما عىل اإلجرائيات املوجودة، بحيث يرسل Scatter التناثرأما عملية : وهذا ما يوضحه الشكل التايلس، اإلجرائية إىل سعنرص ال

Scatter operation :١١- ٢ الشكل وهي عكس جتميع قيم خمتلفة من عدة إجرائيات إىل إجرائية واحدة،فيها يتم ف Gatherعملية التجميع أما

:كام يوضح الشكل التايل، وذلك عملية التناثر املذكورة سابقا

Gather operation :١٢- ٢ الشكل

إذا كانت هناك حاجة إلجراء عمليات حسابية أو منطقية عىل العنارص التي يتم جتميعها من عدة إجرائيات إىل :كام يوضح الشكل التايل، وذلك Reduceتقليل إجرائية واحدة، فإن العملية املستخدمة هي عملية ال

Reduce operation :١٣-٢ الشكل

الفصلمراجع ٦.٢[1] B. Wilkinson, Parallel Programming Techniques and Applications Using Networked

Workstations and Parallel Computers, 2nd Edition, PEARSON Prentice Hall, 2005. [2] Beowulf.org; (http://www.beowulf.org). [3] Top500 Supercomputers Ranking; (http://www.top500.org).

متهيد ١.٣ .العتاد املادي والعتاد الربجمي: يتكون نظام العنقود بشكل بدهي من قسمني أساسيني

ولكن ليس األمر اعتباطيا، إذ ال . من حواسب عادية موصولة بشبكة- وببساطة شديدة-تكون العتاد املادي ي .بد من االختيار املناسب ملواصفات احلواسب ونوع شبكة الربط بام يتالءم مع العناقيد عالية األداء

ستخدمني، فيتألف من أربع مكونات أما العتاد الربجمي الذي يشكل بيئة العمل املناسبة ملختلف تطبيقات امل :أساسية .نظام التشغيل § .Infrastructure servicesخدمات البنية التحتية § .Middlewareالعتاد الوسيط § .التطبيقات اخلاصة باملستخدمني §

والشكل اآليت يعطي منظورا هرميا لبنية العنقود املنطقية :

١- ٣ الشكل باستخدامه، وملا حتتاجه ايف احلقيقة، يعود قرار اختيار الربجميات املناسبة للنظام لنوعية التطبيقات املراد تنفيذه

MPIفإذا كانت بنية التطبيق تقوم عىل استخدام توابع . هذه التطبيقات من متطلبات ومكونات للعمل بكفاءةكام جيب . ها أثناء العملؤ عىل النظام ليتم استدعاMPIبالتايل تنصيب مكتبة ب جيلتبادل الرسائل بني اإلجرائيات،

استخدام نظام تشغيل يمنح إمكانيات تدعم عمل أنظمة العناقيد بشكل خاص، وتؤمن ميزات أساسية جيب .توفرها كثبات النظام واملرونة وقابلية التوسع

اعتبارات تصميمية ٢.٣رشوع كانت هناك هواجس كثرية عن كيفية حتقيق ذلك عىل أرض الواقع، واجلوانب عند اختاذ قرار البدء هبذا امل

حتديا كبريا كونه اخلطوة األمر برمته كان ولذا . استثامر هذا العنقوديةخذ باحلسبان، وكيفؤالتقنية التي جيب أن ت .ة يف هذا املجالالسابق ولعدم توفر اخلربة العملية ، حالياانتواجد فيهالبيئة التي األوىل يف

بحيث يمثل العنقود نموذجا ،اعتمدنا يف بناء العنقود اخلاص باملرشوع عىل النقاط أساسية الواجب توفرها .من عقد تتمتع بعتاد مادي متجانسمبسطا للعناقيد عالية األداء التي تتألف

ات املوزعة التي خمتلف التطبيقعىل مستوى االستخدام، تم االتفاق عىل جعل هذا العنقود قادرا عىل تنفيذالعمل عىل تطبيق حمدد يف كل مرة، وبذلك يمكن للمستثمر بحيث يتم ، MPI عىل مكتبة تعتمد بشكل رئيس

.احلصول عىل كامل اإلمكانيات التي يقدمها العنقود دون التنافس مع غريه من املستثمرين التي Head Nodeة اذ املحيل عن طريق العقدة الرئيس النفأما عن كيفية النفاذ إىل هذا العنقود، فقد اعتمدنا عىل

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

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

تعامل مع جيب االنتباه إىل مقدرة شبكة االتصال عىل ال، ولكن عندها )يمكن أن يصل إىل عرشة آالف(اجلديدة .البنية اجلديدة للعنقود وكذلك إىل مقدرة نظام امللفات

العتاد املادي ٣.٣ :عند اختيار مواصفات العتاد املادي جيب أن نأخذ باحلسبان األمور اآلتية

.نسبة األداء إىل التكلفة §

.قودحتقيق متطلبات التطبيقات التي ستعمل عىل العن § نسبة األداء إىل التكلفة ١.٣.٣

1Gflopsوخيترص عادة بالكلفة الوسطية لكل . النقود التي سندفعها ثمنا للتجهيزاتمردوديمثل هذا املعيار وكانت 1000Gflopsفعىل سبيل املثال، إذا كان النظام قادرا عىل أداء . يف النظام) عملية فاصلة عائمة بالثانيةمليار(

.Gflops/50$ذا يعني أن نسبة األداء الكيل إىل التكلفة الكلية هي فه50000$كلفته حتقيق متطلبات التطبيقات التي ستعمل عىل العنقود ٢.٣.٣

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

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

.. وهكذا،سعة الذاكرة مقابل رشاء معالج أرسع فقد نضحي ب،لذلك ال بد من بعض املقايضة 1GB/Sبشكل مثايل، نسعى ما أمكن للحصول عىل نظام يمتلك عرض حزمة اتصال بني املعاجلات مقداره

إن حتقيق هذا ليس ممكنا بكلف معقولة، لذلك سنجري مقايضة بني . من قدرة املعاجلة1Gflop لكل 1GBوذاكرة .سعر أعىل وضمن الكلفة املرصودة للنظام/امل أداءاألداء والسعر لنحصل عىل ع

تصميم النظام ضمن املعايري املقرتحة ٣.٣.٣وقد قمنا باختيار . العتاد املادي للعنقود التقيد باملعيارين السابقني أثناء اختيار مواصفات قدر اإلمكانحاولنا

ومل نخرت العتاد املخصص للمخدمات أي املستخدم لألغراض العادية، Commodityاملواصفات العادية ذي العتاد سعر لألجهزة املكتبية أعىل بكثري من أجهزة املخدمات أو األجهزة ذات /مثال، وذلك بسبب أن عامل األداء

.األخري يمكننا توقع زيادة السعر بشكل تربيعي مع زيادة األداء بشكل خطيالصنف ففي . االستعامالت اخلاصة املعالج ١.٣.٣.٣

. تكلفة أعىل بكثري من املعالج وحيد النواة/ألنه يعطي نسبة أداء) DualCore) SMP النوى اخرتنا معاجلا ثنائي وهو قادر Cache( 4MB(خابية وذاكرة 3GHz برتدد ساعة Intel Pentium 4 Dاختيارنا عىل املعالج وقد وقع ة يف دورة الساعة الواحدة، نظريا حيث يمتلك وحدة فاصلة عائمة تقوم بعمليتي فاصلة عائم12Gflopsعىل أداء

كانت قد رشحته Intelواجلدير بالذكر أن رشكة . 800MHz بعرض حزمة FSBويمتلك مرسى أمامي .٢٠٠٦عام الستخدامات احلوسبة عالية األداء ذات الكلفة املعقولة

قه بسببألن أداءه أصبح أفضل بكثري من ساب يعد خيارا أفضل هذه األيام Intel Core Duo2معالج يعد Wide Dynamic مثل RISC باملعاجلات التحسينات املدخلة عىل بنيته بإضافة بعض التقنيات التي كانت خاصة

Execution وكذلك بسبب زيادة عرض حزمة املرسى األمامي ،FSB 1333 إىلMHz – آخذين بعني االعتبار .انخفاض سعره عام كان عليه عندما اخرتنا معاجلات العنقود

ةالذاكر ٢.٣.٣.٣ وتعمل بنمط القناة 667MHz ذات مرسى أمامي بعرض حزمة x 1GB 2اخرتنا ذاكرة ولوج عشوائي بسعة

، ولكن هذا غري ممكن 12GBلو أردنا اتباع احلل األمثل لكان علينا وضع ذاكرة بحجم . DualChannelاملضاعفة .ن الذاكرة من قبل اللوحة األمالسعر املرتفع نسبيا للذاكرة، وعدم دعم هذا املقدار الكبري م: لسببني

اللوحة األم ٣.٣.٣.٣ تتميز بأداء جيد مقابل سعر معقول، كام تقدم بطاقة صوت مدجمة، MSI 945GCM5 V2اخرتنا لوحة أم

تدعم حدا أقىص من الذاكرة و. مدجمة مما يوفر الكثري من النقودGigaEthernetوبطاقة إظهار مدجمة، وبطاقة شبكة 4GB .800 برتدد وهلا مرسى أماميMHz.

شبكة البيانات ٤.٣.٣.٣واستخدمنا . GigaEthernetاعتمدنا عىل متحكم الشبكة املدمج مع اللوحة األم واملختارة خصيصا ليكون

1Gbps = 0.125GB/Secيوفر هذا االختيار عرض حزمة تبادل بيانات بني العقد مقدارها . GigaEthernet مبدل توفر عرض حزمة FastEthernetبينام نجد أن . 40uSecيا ويساوي مقبول نسبLatencyوتتمتع بعامل تأخري

.80uSec وعامل تأخري يساوي 100Mbps = 12MB/Secمقدارها القرص الصلب ٥.٣.٣.٣

اخرتنا أقراصا صلبة متتاز والتي ،300MB/s) عرض حزمة( برسعة نقل بيانات SATA ذات واجهة تسلسلية لتلبي حاجات 160GBوقد اخرتنا أقراصا بحجم . 133MB/s حتى التي كانت تصلATAبرسعتها العالية مقابل

الذي حيتاج مساحات ختزين كبرية، وألن سعر األقراص هبذه السعة قريب جدا من Renderingتطبيق التصيري .سعر مرتفع هلذه األقراص/، مما يعني أن عامل األداء80GBسعر األقراص بسعة

تصميم العنقود ٤.٣.٣أو (Compute Nodesوعقديت حساب ) Headأو رأس (Master عقدة رئيسية :ث عقديتألف نظامنا من ثال

Slaves( ؛ حيث اعتمدنا عىل النموذجHead - Nodes، لتكون بمثابة رأس العنقود وعن نستخدم عقدةأننا أي عقدة الرئيسية عقد حساب تتصل مع الفهيطريقها يقوم املستخدمون بالوصول إىل موارد العنقود، أما بقية العقد

، ويتصل املستخدمون البعيدون مع العقدة الرئيسية عن طريق بطاقة شبكة GigaEthernetبشبكة داخلية هي شبكة وبذلك نضمن عزل العقد احلسابية عن األعطال النامجة عن أخطاء . أخرى تتصل من خالهلا مع العامل اخلارجي

يانات بني العقد ببيانات املستخدمني اخلارجية، ونضمن أيضا املستثمرين، ونضمن أيضا عدم ضغط شبكة تبادل الب .رسية البيانات ألن الشبكة الداخلية منفصلة عن اخلارجية

:يمكننا متثيل العنقود بالشكل اآليت

٢- ٣ الشكل

نظام التشغيل ٤.٣ الربجمي التي يعتمد عليها نظام احلوسبة بشكل عام، ملا له من تأثري يعد نظام التشغيل من أهم مكونات العتاد

.عىل عدة نواح مثل األداء واألمن والوثوقية، وكذلك عىل نوعية التطبيقات وبيئة العمل املستخدمة

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

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

Multitaskingل مع عدة معاجلات وتوفري نظام ملفات وتقديم األدوات املناسبة للتعامل مع والقدرة عىل التعام .الطرفيات والشبكات

حيظى نظام التشغيل لينوكس بشعبية كبرية ملا يوفره من ميزات يف حقل األنظمة متعددة األغراض، وباعتباره اة نظام التشغيل متوفر جلميع ، أي أن رماز املصدر لنو)GNU GPLحتت ترخيص (من الربجميات مفتوحة املصدر

ولذلك اخرتنا هذا .املستخدمني واملطورين، مما يمنحه مكانة قوية بني أنظمة التشغيل األخرى املتوفرة يف األسواق .Red Hat من Fedora Core 8 التوزيعة –النظام يف تنفيذ العنقود

امليزات التقنية لنظام التشغيل لينوكس ١.٤.٣ .آن واحديف نفسه اجلهاز يتيح عمل عدة مستخدمني عىل •

.Sparc و AMD و Intel و Alphaيستطيع العمل عىل بيئات خمتلفة من املعاجلات مثل معاجلات •

.GFS و PVFSيدعم عدة أنواع من أنظمة امللفات املوزعة مثل •

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

.سواء

) العتادية والربجمية(معلومات عن حالة كل جزء من أجزاء النظام كس الوصول إىل ويتيح نظام لين •ية حتوي تقاريرا عن الذي حيوي ملفات ومهproc/بشكل فوري عن طريق نظام امللفات االفرتايض

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

ميزات نظام التشغيل لينوكس يف جمال احلوسبة عالية األداء ٢.٤.٣ قابلية التوسع ١.٢.٤.٣ لتصل إىل PAE خاصية التوسع يف العناوين الفيزيائية دعم اخلصائص اجلديدة ملعاجلات إنتل مثل •

.RAM من الذاكرة العشوائية GB 64عنونة

.دعم لعدد من املستخدمني يصل إىل أربعة مليارات مستخدم •

.دعم لعدد من املعاجلات يصل إىل مليار معالج •

.TB 16دعم لنظام ملفات يصل حجمه إىل •

).ة الشبكة، وسائط التخزين وغريهاثل بطاقم(طرفية ٤٠٩٥دعم عدد طرفيات يصل إىل •

يعمل بخوارزمية حتافظ عىل أداء ثابت بغض النظر عن عدد اإلجرائيات Schedulerتوظيف جمدول • .املطلوب معاجلتها

طيف واسع من التجهيزاتدعم ٢.٢.٤.٣ .SMP و NUMAدعم أنظمة •

. املتوفرة يف معاجلات إنتلHyperThreadingدعم تقنية •

.متعددة النوىدعم املعاجلات •

.bit-64يتوفر إصدارات تدعم املعاجلات •

.Fiber Channels و Gigabit Ethernetدعم خمتلف أنواع الشبكات مثل •

دعم أنظمة العناقيد ٣.٢.٤.٣بيئة مناسبة ألنظمة العناقيد، والدليل عىل ذلك وجود الكثري من العناقيد التي تعمل يعد نظام التشغيل لينوكس

الذي يوفر فعالية كبرية يف املعاجلة والقليل من التأخريات و ،لينوكس ة من العامل مستخدمةبنجاح يف أرجاء خمتلف للحواسب الفائقة Top500من األنظمة يف تقييم % ٧٠حوايل (بالعناقيدالزمنية عند تشغيل التطبيقات اخلاصة

: إىل توفري بعض اخلصائص مثلضافة، إ)تعتمد نظام لينوكسRead Copy Update (RCU), Pre-CPU counters, Fine grained locking.

ال ننسى بالطبع دعم نظام التشغيل .التي تقلل كثريا من التأخريات الزمنية الناجتة عن عملية التوسع يف النظام . وغريهاOCFS ،Luster ،GPFSهذا للعديد من أنظمة امللفات املختلفة اخلاصة بالعناقيد مثل

األمن ٤.٢.٤.٣ األقل تعرضا خلطر الفريوسات وبرامج التجسس، كام أن نموذج لينوكس التشغيل األخرى، يعد مقارنة بأنظمة

.من األخطاء من الناحية األمنية ويقلل عاليةجودةله التطوير املفتوح املصدر املستخدم يف هذا النظام يؤمن التحديث الدوري ٥.٢.٤.٣

اجلدير بالذكر أن هناك إصدارا جديدا للنواة يصدر بشكل دوري، وهناك إصدار جديد لنسخ نظام التشغيل ويف دورة إصدار أقل بكثري من دورة إصدار أنظمة أخرى مثل ويندوز؛ إذ تصدر كذلك، تصدر بشكل دوري

شهرا، وباملقابل قد ال تصدر ١٨ كل RHEL أشهر تقريبا، بينام تصدر نسخة ٦ جديدة كل Fedora Coreنسخة !وات عن إصدار سابقتها سن٣نسخة ويندوز جديدة قبل

التكلفة ٦.٢.٤.٣لول ، فإن استخدامه يعترب من احلGNU GPLلرتخيص ، وخيضع مفتوح املصدرنظام هو لينوكسبحكم أن

وبالتايل فهو . إذا ما أخذنا بعني االعتبار عملية التوسع يف النظام لتشمل العديد من العقدالفعالة من الناحية املادية .سعر مميز/ذو عامل أداء

خدمات البنية التحتية ٥.٣هذه اخلدمات . عمل العنقود بشكل صحيحييقدم نظام التشغيل لينوكس عددا من اخلدمات األساسية ل .رضورية لتنصيب النظام من الصفر ورضورية الستمرار عمل النظام

إعداد وتشغيل شبكة البيانات ١.٥.٣

بطاقة (قائي عىل جتهيزات الشبكات يتميز نظام لينوكس بالدعم الذايت خلدمات الشبكات، وبتعرفه التلخدمة إسناد عناوين العقد بشكل آيل عن و بني الشبكات املتصلة بهRoutingنه يوفر إمكانية التوجيه أكام ). الشبكة

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

من ( ثم تسحب ملفات تنصيب النظام عن طريق الشبكة DHCPمن خمدم عناوينها العقد عىل الشبكة وتأخذ ).NFS وTFTP يخمدم

مشاركة امللفات بني عقد العنقود ٢.٥.٣

، وهي خدمة تؤمن وصول NFS (Network File System)بكي يوفر نظام لينوكس خدمة نظام امللفات الش فتبدو وكأهنا ملفات حملية عن طريق ،برجميات العقد إىل امللفات البعيدة بطريقة سلسة ختفي التفاصيل الشبكية

. بنقل امللفات بشكل شفاف عند طلبها من أحد الربامجnfsوتقوم خدمة ، يف شجرة امللفاتاألدلة ربطها بأحد

الوصول البعيد واآلمن إلدارة العقد تأمني ٣.٥.٣

لنقل اآلمن للملفات وأوامر اإلدارة عرب الشبكة من العقدة األساسية إىل باقي ل SSHيوفر نظام لينوكس خدمة تبادل املفاتيح العامة بني ب SSH، وتقوم RSAبخوارزمية معامة بتأمني قناة آمنة SSHالعقد، حيث تقوم خدمة .handshaking آيل وإدارة عملية املصافحة األطراف املتصلة بشكل

. يف املالحق املوجودة يف هناية البحثغريها هذه اخلدمات وسنقوم بتغطية كيفية إعداد

العتاد الوسيط ٦.٣تشكل هذه الربجميات البيئة .هي طبقة الربجميات املتوضعة بني نظام التشغيل وواجهة وتطبيقات املستخدم

ات التفرعية، وتوفر أيضا األدوات املطلوبة إلدارة نظام العنقود بشكل مركزي ومراقبة الالزمة لدعم تنفيذ التطبيق .حالة العنقود أثناء العمل

بيئة الربجمة املوزعة ١.٦.٣لغات الربجمة التي نريد دعمها، ومكتبات الربجمة التفرعية : هناك قراران أساسيان جيب اختاذمها هبذا اخلصوص

.التي نريد استخدامهاتنسيق احلسابات وتبادل رسائل البيانات بني الربامج بكتبات الربجمة التفرعية اآللية التي تسمح لنا تقدم م

من دون هذه املكتبات سنرغم عىل استخدام التوابع األولية املوجودة يف نظام . العاملة عىل العنقود بشكل مرن لربجمة Socketsاملنافذ عن استخدام توابع ن التعقيد الناتج ألغري منطقيوهو أمر ،التشغيل لربجمة العنقود

لذلك نستعمل مكتبات . يف برجمة التطبيقات املوزعة شبه مستحيلاملبارش التطبيقات التفرعية جيعل استخدامها . MPI من املعيار MPICH 1.2.7سنستعمل يف العنقود اإلصدار . PVM أو MPIالربجمة التفرعية القياسية مثل

وتقدم برناجما لتشغيل ) MPI) mpicxxالربامج التي تستعمل لترصيف Compilerمرصفا بة تقدم لنا هذه املكت ).mpirun(نسخ التطبيق التفرعي عىل العنقود

توفر مكتبات الربجمة التفرعية . إن اختيار لغة الربجمة يعتمد عىل مكتبة الربجمة التفرعية التي تريد استخدامها إذا مل تكن مكتبة Adaفعىل سبيل املثال، ليس هناك داع لتنصيب لغة . الربجمة عادةارتباطات لعدد حمدود من لغات

و ++C و Cتقليديا، تدعم مكتبات الربجمة التفرعية الشهرية اللغات . الربجمة التفرعية التي نستخدمها تدعمهاFORTRAN . سنستخدم يف عنقودنا لغتيC و C++وكسفرتني بشكل أصيل ضمن نظام لين املتو.

.MPIتمرير الرسائل وعن ب احلوسبةسنتكلم يف فقرة الحقة عن بيئة مراقبة وإدارة العنقود ٢.٦.٣

العمليات تصبح فعند استخدام األساليب العادية يف اإلدارة،متعبة ومعقدةالعنقود قد تكون إن عملية إدارة افرتض أنك تريد إضافة حسابا جديدا إىل النظام. البسيطة مزعجة ستأخذ ! مرة مثال١٠٠كرار هذه العملية ختيل ت.

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

التي توفر أوامر إدارة موزعة يتم إدخاهلا من العقدة C3 (Cluster, Command, Control)سنستخدم حزمة :من األوامر التي توفرها هذه احلزمة. وتنفذ عىل كامل العنقودmasterاألساسية § cexecلتنفيذ أمر عىل مجيع العقد . § cpushلنسخ ملف عىل مجيع العقد . § cgetجللب ملف من مجيع العقد .

§ crmع العقد حلذف ملف من مجي.

§ cshutdownإلغالق أجهزة العنقود .

إذ تغدو هذه املهمة مضنية إذا كان ،ال بد من توفر حزمة برجمية للتأكد من حالة أجهزة العنقود وسالمة عملها التي تقدم خدمة املراقبة ألجهزة العنقود وتعرض Gangliaنستخدم حزمة . علينا تفقد األجهزة يوميا بشكل يدوي

خالل صفحات ويب مليئة بالعديد من الرسوم البيانية التي تظهر محل النظام ومدى استخدام القياسات منعميل / نموذج خمدمGangliaتستخدم حزمة . ة زمنياتخمططمن خالل الذاكرة وعرض حزمة الشبكة املستخدمة

Client/Serverتي يقدمها لينوكس عن تستخدم هذه احلزمة املعلومات ال. جلمع هذه البيانات من أجهزة العنقودبيانات من بجمع ال gmond ، حيث يقوم برنامج العميل proc/: حالة النظام واملوجودة يف نظام امللفات االفرتايض

ب يالذي يقوم بدوره بتزويد هذه البيانات ملخدم الوو ،املوجود عىل العقدة الرئيسية gmetadالعقدة وإرساهلا إىل ).والذي يتواجد عادة عىل العقدة الرئيسية أيضا(الذي يستضيف صفحات املراقبة

سنرشح هذه احلزمة . برجميات العنقود بطريقة سلسة وهي حزمة خمصصة لتنصيب OSCARحزمة استخدمنا .يف املالحق MPIمكتبة ٧.٣

، PVMظهرت العديد من املكتبات الربجمية لتنفيذ احلوسبة بتمرير الرسائل، وكانت من أوىل هذه املكتبات تي لقيت انتشارا واسعا بسبب توفرها جماناوال لتنفذ عىل أساسه مكتبات للحوسبة MPIووضع فيام بعد معيار .

.Fortran و ++C و C وغريها، والتي تدعم لغات الربجمة LAM و MPICHبتمرير الرسائل، وكان منها خدامها يف معظم الربامج املوزعة، تابعا منها ستة أساسية ال بد من است١٢٠ ىل ما يربو عMPIف معيار يوص

):++Cكام يف توصيف (وهذه التوابع هي MPI_Init() // هتیئة االتصال MPI_Send() // إرسال رسالة MPI_Recv() // استقبال رسالة MPI_Get_rank() // احلصول على رتبة إجرائیة MPI_Get_size() // احلصول على عدد اإلجرائیات يف فضاء االتصال MPI_Finalize() // اء االتصالإ

وتأخذ كل منها رقم ،MPI_COMM_WORLDإنشاء اإلجرائيات تكون مجيعها يف فضاء واحد يسمى عند MPI_COMM_WORLDحيوي الفضاء . عدد اإلجرائياتp حيث p - 1 و 0 ترتاوح بني رتبةتعريف فريد يسمى

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

عامل يف الربجمة التفرعية/نموذج مدير ١.٧.٣ Worker ةعاملها إىل إجرائيات إىل أجزاء منفصلة يتم إسنادManagerعمل من قبل مدير يمكن تقسيم ال

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

إسناد يقوم بد العامل، ثم وأكثر مرونة يقيض أن حيافظ املدير عىل سلة من وحدات العمل عددها أكرب من عد . العمل ديناميكيا إىل العامل فور انتهائهم من تنفيذ مهامهتم وإرسال النتائج إىل املديروحدات

) عقد حسابية(أو وجود عامل يتميز هذا النموذج بأدائه اجليد حتى يف حالة وجود مهامت خمتلفة األحجام . الرسعةخمتلفي

نعرض فيام ييل إطارا عاما ل :النموذجلربامج التي تعتمد هذا #include "mpi.h" int main( int argc, char *argv[] ) { int numprocs, myrank; MPI_Init( &argc, &argv ); MPI_Comm_size( MPI_COMM_WORLD, &numprocs ); MPI_Comm_rank( MPI_COMM_WORLD, &myrank ); if ( myrank == 0 ) /* manager process */ manager_code ( numprocs ); else /* worker process */ worker_code ( ); MPI_Finalize( ); return 0; }

عامل يف الربجمة التفرعية/مديرلنموذج ام اإلطار الع: ٣- ٣ الشكل

مراجع الفصل ٨.٣[1] R. W. Lucke, Building Clustered Linux Systems, Prentice Hall PTR, 2004. [2] J. D. Sloan, High Performance Linux Clusters with OSCAR, Rocks, OpenMosix, and MPI,

O'Reilly, 2005. [3] Entry-level Intel® Processor-based High-performance Computing Cluster Platforms,

Product Brief High-Performance Computing Cluster Platforms, (www.intel.com/go/hpc), Intel, 2006.

[4] H. Nellitheertha, Linux and High Performance Computing White Paper, Infosys, 2006. [5] "Intel® Core™2 Duo Processor", Product Brief, Intel, 2007.

قياس األداء ١.٤ ألداء يف نواحا يتم من خالهلا تقييمو التي تطبق عىل احلاسب احلسابيةالربجميات والعملياتمن هناك جمموعة

القدرة عىل مقارنةعملية التقييم تتيح . Benchmarks سمىي وهي ما بالعتاد املادي للحاسبغالبا تعلق تحمددة ، كام متكن من حتليل بعض النتائج من ناحية عامة بينها هبدف اختيار األفضلعضها ببعض من حيث البنيةباألنظمة

.األخطاء هبدف التخلص من املستخلصة Peak Performanceقياس قمة األداء ١.١.٤

متثل أعىل أداء قد يصل إليه يف تنفيذ عمليات الفاصلة العائمة إذ ،ظهار قوة املعالجإلحتسب قمة األداء Floating-Point operations متثل قمة األداء قيمة نظرية ال يمكن الوصول . الناجتة عن خمتلف العمليات احلسابية

إليها عمليا يف أغلب األحيان نتيجة ملحددات التصميم املتعلقة بالعتاد املادي جمال مرسى وبشكل خاص عرض( ).النظام وحجم الذاكرة املستخدمة

يمكن حساب قيمة قمة األداء ألحد املعاجلات كناتج لعملية رضب معدل أدوار الساعة للتعليامت، بعدد .عمليات الفاصلة العائمة التي يمكن تنفيذها يف دور ساعة واحد

:يف املرشوع كام ييل املستخدم Intel Pentium Dوكمثال، يمكن حساب قمة األداء للمعالج Theoretical Peak Gflops = 3 GHz * 2 flops/Hz * 2 CPUs = 12 Gflops

.Gflops 8.635حصلنا عىل القيمة) سيرشح الحقا (HPLولكن عمليا وبعد تنفيذ اختبار كعرضMB/s 1 لقمة األداء توجد نظرية تنص عىل وجوب توفر نفسهاللحصول عمليا عىل القيمة النظرية

M 1 من ذاكرة النظام العشوائية أيضا، لكل مليون عملية فاصلة عائمة MB 1جمال ملرسى النظام، وتوفر

floating-point operationsتنفذ عىل النظام . HPC Challengeحزمة االختبار ٢.١.٤

قبل من األدوات املهمة يف تعيني حمددات األداء اخلاصة بمستHPC Challengeتعد حزمة اختبار األداء وحتوي هذه احلزمة عددا من االختبارات هتدف لقياس أداء . Peta Scaleاحلوسبة عالية األداء التي تصنف من فئة

بنية احلوسبة عالية األداء املتوفرة عىل النظام، وذلك باستخدام جمموعة من اخلوارزميات احلسابية ونامذج النفاذ إىل للحواسب Top 500 التي تستخدم يف تقييم Linpack االختبار الذاكرة العشوائية، وبذلك تتفوق عىل حزمة

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

:وهي) يتم رشحها الحقا(عىل جمموعة من احلزم اجلزئية HPL, DGEMM, FTT, STREAM, RandomAccess, PTRANS, Communication Bandwidth and Latency

HPCCاستخدام احلزمة أمهية ١.٢.١.٤من القياسات يف حتديد وتقييم كل من األداء و قابلية الربجمة و املحمولية و مستوى النوع تكمن أمهية هذه

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

:إن من أبسط أشكال احلوسبة املوزعة ما توضحه البنية التالية

البنية األساسية لنظام احلوسبة املوزعة :١- ٤ الشكل دا إىل الشكل السابق، نالحظ اهلرمية املتعددة املستويات ملختلف أنواع الذواكر املستخدمة يف النظام، استنا

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

ويوضح الشكل التايل اهلرمية التي نتحدث عنها ابتداء من سجالت املعالج وانتهاء بوسائط التخزين الثانوية، :وأشكال البيانات املتبادلة فيام بينها

سبة املوزعةهرمية الذاكرة يف نظام احلو :٢- ٤ الشكل

تركز عىل قياس األداء يف خمتلف مستويات هرمية الذاكرة املشار إليها، بحيثHPCCولقد صممت احلزمة Temporalمثل املحلية الزمانية وذلك بجعل اختبارات احلزمة املذكورة سابقا تابعة خلصائص النفاذ إىل الذاكرة،

Locality أو املحلية املكانيةSpatial Locality، ومدى ارتباط هذه االختبارات هبذه اخلصائص، وبذلك نحصل .عىل معلومات شاملة تقريبا عن أداء النظام يف خمتلف املراحل عند تنفيذ أنواع مشاهبة من التطبيقات

بالنسبة للمحلية الزمانية واملحلية املكانية، HPCCيوضح الشكل التايل توزع االختبارات املوجودة يف حزمة قدرة وحيددان بالتايل يرتبطان بكال املحليتني، DGEMM و HPLعىل سبيل املثال أن كال االختبارين فنالحظ

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

بالنسبة للمحلية الزمانية واملحلية املكانيةHPCC توزع االختبارات املوجودة يف حزمة :٣- ٤ الشكل :حدد خصائص بنية النظام بشكل دقيق، هناك ثالث مستويات إلجراء االختباراتنولكي

:احد فقط كام يوضح الشكل التايل، وفيه تنفذ احلسابات باستخدام معالج وLocalاملستوى املحيل )١(

املستوى املحيل:٤- ٤ الشكل ، وفيه تنفذ احلـسابات باسـتخدام مجيـع املعاجلـات Embarrassingly Parallelاملستوى التفرعي الرصيح ) ٢(

: التايلاملوجودة يف النظام ولكن بدون اتصال فيام بينها كام يف الشكل

املستوى التفرعي الرصيح :٥- ٤ الشكل ، وفيه تنفذ احلسابات باستخدام مجيع املعاجلات يف النظام مع إمكانية التواصل Global الكيلاملستوى )٣(

.فيام بينهامنفصل بشكل

املستوى الكيل :٦- ٤ الشكل و STREAM و DGEMM تتم عىل املستوى املحيل وهي HPCC احلزمةاختبارات من أربعةهناك

RandomAccess و FFT ، نظامالكيل للستوى املعىل عىل املستوى التفرعي الرصيح وإىل تنفيذها باإلضافة.

HPCC حزمة االختبار تفاصيل ٢.٢.١.٤ تتألف من سبعة حزم جزئية الختبار األداء، تعتمد معظمها عىل عمليات HPCCالختبار ذكرنا سابقا أن حزمة ا

من قبل البدء بذكر تفاصيل هذه احلزم، جيب التنويه إىل أننا سنستخدم كال. أشعة أو مصفوفات حسابية تطبق عىل :كام ييلارات، تستخدم عند تنفيذ خمتلف االختب التي تمثيل حجم الذاكرة املتوفرةل m و nالرمزين

n2 ≈ m ≈ Available Memory وبالتايل سيقيس حجم البيانات املستخدم من قبل االختبارات واملمثلة باملصفوفات أو األشعة، لكي يستخدم

.الذاكرة املتوفرة يف النظام

:HPCC احلزمة تسنتطرق اآلن وبشكل بسيط إىل بعض التفاصيل اخلاصة باختبارا• HPL (High Performance Linpack)

، ويركز عىل Linpackأحد اختبارات احلزمة وهو ، TPP (Toward Peak Performance)هو مقياس األداء أداء املعالج عن طريق قياس معدل تنفيذ عمليات الفاصلة العائمة الناجتة عن حل جمموعة معادالت خطية من

:، تعطى بالشكلnالدرجة

تعقيد الزمني هلذه الإن . LUطريقة استخدام املعامالت أو ما يعرف ب بطريقة احلذف بالتعويضوالتي حتل

إىل A عملية من أجل تقسيم املصفوفة n3 – (1/2) n2(2/3)، ألنه يلزم إلمتام احلل n3الطريقة هو من الدرجة : احلل، عىل اعتبار أنإلجياد عملية 2n2و ، LUاملصفوفتني

وكتمثيل دقيق للحل، يتم التحقق من . Ux = y من املعادلة x ثم نوجد Ly = b من املعادلة yوبالتايل نوجد

:النتائج بحساب الفاصلة يف ثالث حاالت كام ييل

وال تقبل النتائج إال عندما ، بتا٦٤ أو النظام لقيم الفاصلة العائمة بطول اآللةعن مقدار ضبط εيعرب املتحول

.O(1)قيد تكون قيم الفاصلة السابقة تنتمي إىل التع

• DGEMM قياس معدل تنفيذ عمليات الفاصلة لDGEMMباالنتقال إىل مستوى أعقد من احلسابات، يستخدم االختبار

:، والتي تكون من الشكلنمط الفاصلة العائمة ذي الدقة املصاعفةالعائمة الناجتة عن عملية رضب مصفوفات من

تقدير دقة يف الختبار أكثر تعد نتيجة هذا االعملية، لذلك 2n3إن عدد العمليات املنفذة يف هذا االختبار هو

.، وهذا ما سنالحظه عند عرض النتائج يف املراحل القادمةHPLمقارنة باختبار

• STREAM ، Gbyte/sبرنامج بسيط لقياس عرض جمال الذاكرة بني الذاكرة املحلية واخلابية، بحيث تعطى النتائج بواحدة

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

.يدرج هذا القياس عىل مستوى الكتل املبني يف هرمية الذاكرة السابقة، وال حيتاج إىل عمليات اتصال بني العقد

. عملية القياس عن األداء احلقيقي لعرض جمال الذاكرة املستخدمةتعرب • PTRANS

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

: تنفذ هذه العملية كام ييل. سعة االتصاالت التي تتم داخل النظام

عىل الزمن الالزم إلمتام العملية n2 وذلك بتقسيم حجم املصفوفة ،Gbyte/sيعطى معدل النقل بواحدة

.السابقة• RandomAccess

يقوم هذا االختبار بتحديث صفحات الذاكرة، وذلك بأخذ مصفوفة أعداد صحيحة منها وإسناد قيم جديدة . الذاكرة من جديدمع عدد ما خيتار عشوائيا، ثم تكتب هذه املصفوفة إىل XOR هلذه املصفوفة هي نتيجة عملية

تتم هذه العملية باستخدام .نتيجة االختبار عدد الصفحات التي من املمكن أن يتم حتديثها يف الثانية الواحدةتعطي : كام ييلmمصفوفة أعداد من احلجم

.GUPS (Giga Updates Per Seconds)يعطى معدل حتديث الذاكرة بواحدة • FFT

أحادي البعد، كام mالفاصلة العائمة الناجتة عن حتويل فوريه املتقطع ذي احلجم يقيس معدل تنفيذ عمليات :ييل

يعتمد هذا االختبار عىل عمليات ، كام 5mlog2(m)حيسب عدد العمليات التي حتقق العالقة السابقة باملقدار

أنه يتم عىل مستوى الرسائل ي أ بني العقد ملجموعة من الرسائل ذات احلجم الكبري، all-to-allاتصال من الشكل املبني يف هرمية الذاكرة السابقة، وهذا ما جيعل نتائج االختبار أقل بكثري من تلك التي نحصل عليها من اختبار

HPL. • Communication Bandwidth and Latency

طارئ عليها؛ ومعدل التأخري ال من عرض جمال االتصال بني العقد،جمموعة من االختبارات التي تقيس كال التي تقيس أداء شبكة االتصال b_eff (Effective Bandwidth Benchmark) عىل حزمة االختبار وذلك باالعتامد

.يف أنظمة احلوسبة التفرعيةاالتصال بني زوج من اإلجرائيات، : يقاس عرض املجال ومعدل التأخري عىل نوعني من نامذج االتصال

.إلجرائيات يف النظام واالتصال ضمن حلقة تضم مجيع ا ما يطبق هذا بني زوج من اإلجرائيات، وعادةPing-Pongيف النموذج األول، يستخدم االتصال بطريقة تضم نتيجة االختبار أعىل معدل للتأخري وأقل عرض جمال . االختبار عىل جمموعات خمتلفة من أزواج اإلجرائيات

.تم احلصول عليهحدامها تنفذ من املخدم واألخرى من الزبون، بحيث ترسل إجرائية الزبون إتني يستخدم هذا االختبار إجرائي

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

هناك بعض التأخريات الناجتة . ٨ساوي طول حلقة يبو، بايت٨ئل املتبادلة بني اإلجرائيات رساكون حجم اليلذلك يكرر هذا االختبار مخس و غري مقاسة، هاولكن Ping-Pong من النوعإرسالعن بدأ هذا االختبار بعد عملية

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

يف مثل هذا النوع من االتصال يعطى عرض املجال لكل إجرائية باحلجم . من جهة اليمني واليسار عىل التوازي .صال بني كل اإلجرائياتالكيل لبيانات الرسائل مقسام عىل عدد اإلجرائيات وأعىل زمن احتيج إليه لالت

يتم تشكيل حلقة اإلجرائيات بطريقتني، إما بالرتتيب الطبيعي اعتامدا عىل رتبة اإلجرائية ضمن فضاء اإلجرائيات، أو بالرتتيب العشوائي حسب املتوسط اهلنديس ملجموعة تضم عرشة تراتيب خمتلفة ختتار عشوائيا

.١ ساويطول حلقة يب وايت ب٢٠٠٠٠٠٠ حجمهائلرساهنا تستخدم و، أيضا

HPCCقابلية التوسع يف استخدام احلزمة ٣.٢.١.٤ بعدد HPCC اعتامدا عىل بعض العالقات الرياضية كيفية ارتباط نتائج اختبارات احلزمة سنوضح يف هذه الفقرة

رشح كيفية سن ولتحقيق هذا األمر، .استخدامها عقد املعاجلة، وهذا يدل عىل قابلية التوسع يف تطبيق هذه احلزمة و، ولكن جيب أن نعرف بعض RandomAccess و HPLالتوصل إىل هذه االستنتاجات بتحليل كل من االختبارين

:الرموز التي سنستخدمها الحقا .Pعدد املعاجلات املوجودة يف النظام هو • .Mاحلجم الكيل للذاكرة هو • . )Gflop/s, GUPS…ممثال بمختلف الواحدات (rمعدل التنفيذ هو • .tالزمن هو • . N هو PTRANS و HPLحجم املصفوفة املستخدمة يف كل من االختبارين • .V هو FFT و RandomAccessختبارين كل من االحجم الشعاع املستخدم يف •

، وبالتايل سيتناسب زمن تنفيذ االختبار O(n3) هو من الدرجة HPLكام ورد مسبقا، إن التعقيد الزمني الختبار :، كام توضحه العالقة التاليةN3ب حجم املصفوفة املستخدمة طردا مع مكع

طردا مع كل من اجلذر الرتبيعي حلجم الذاكرة، واجلذر يتناسبNن فإ يمثل حجم مصفوفة مربعة، Nوبام أن

: كام ييل)ة لكل معالج ثابت مع نمو النظامبفرض أن حجم الذاكر(الرتبيعي لعدد املعاجلات

عىل العمليات ألن التعقيد الزمني قد حسب بناءلتنفيذ يف هذا االختبار بعدد املعاجلات، وذلك كام حيدد معدل ا

:احلسابية، وبالتايل يمكننا التعبري عن هذا التناسب كام ييل :نستنتج من العالقات السابقة أن زمن التنفيذ يتناسب طردا مع اجلذر الرتبيعي لعدد املعاجلات

، وبالتايل يتناسب زمن تنفيذ االختبار O(n) هو من الدرجة RandomAccessلزمني الختبار أن التعقيد اكام

:Vطردا مع حجم الشعاع املستخدم

، يمكننا استنتاج أن حجم الشعاع يتناسب طردا مع كل من حجم الذاكرة وعدد HPLوبطريقة مشاهبة الختبار

:املعاجلات

تبني أن هذا االختبار يعتمد عىل االتصاالت التي تتم مع الذاكرة، وليس عىل واعتامدا عىل خربة عملية سابقة،

:عدد املعاجلات املوجودة يف النظام، لذلك يمكننا كتابة العالقة املعربة عن معدل التنفيذ بالشكل التايل

:نستنتج من العالقات السابقة أن زمن التنفيذ يتناسب طردا عدد املعاجلات

فضل قياس لألداءاحلصول عىل أ ٤.٢.١.٤ الذي حيوي جمموعة من املحددات الواجب ضبطها hpccinf.txt من خالل ملف اإلدخال HPCCتقاد احلزمة

. من قبل املستخدم بام يتوافق مع خصائص العتاد املادي للنظام، وذلك هبدف احلصول عىل أفضل قياس لألداء سطرا توصف مجيع املحددات التي تس٣٦يتضمن هذا امللف رشح بسيط هلذا يوجد و،تخدم يف خمتلف االختبارات

.امللف ضمن املالحق، تبني وجود أربعة حمددات أساسية تؤثر عىل النتائج تأثريا )بشكل منفصل (HPLعند استخدام حزمة االختبار

:مبارشا، هذه املحددات هي . املستخدمة يف املسألةNحجم املصفوفة )١( .مت املصفوفة السابقة عىل أساسها التي قسNB املعطياتكتلةحجم )٢( . يف كل صف من مصفوفة شبكة اإلجرائياتPعدد اإلجرائيات )٣( . يف كل عمود من مصفوفة شبكة اإلجرائياتQ عدد اإلجرائيات )٤( املستخدمة يف هذا االختبار بحيث يساوي أكرب حجم يمكن أن يتسع يف ذاكرة النظام؛ Nدد حجم املصفوفة حي

أخذ اجلذر وب، 750M * 8Byte، أي 2GBم يتألف من ثالث عقد لكل منها ذاكرة بحجم فمثال إذا كان النظا الذي يشري إىل تقريبا ٢٧٣٨٦ والذي يعرب عن حجم الذاكرة فعليا، نحصل عىل الرقم 750Mللقيمة الرتبيعي

تستخدم من قبل التي تتسع يف الذاكرة، ولكن جيب ترك بعض املساحة من الذاكرة لNاحلجم األعظمي للمصفوفة . ٢١٩٠٨من حجم الذاكرة، وهذا ما يعادل يف مثالنا %٨٠يفضل أخذولذا نظام التشغيل،

الكتلة كلام كان ذلك أفضل يف عملية توزيع احلمل، صغرت ، فإنه كلام NBلتحديد حجم كتلة املعطيات أما إجراء العمليات احلسابية عند ولكن من وجهة نظر حسابية فإن الكتل الصغرية احلجم قد تسبب يف احلد من

استخدام العوامل احلسابية الكبرية، وبالتايل يعتمد احلجم املناسب عىل نسبة األداء احلسايب إىل األداء يف االتصال .N، كام لوحظ تأثرها أيضا بحجم املصفوفة [256 ,32] ضمن املجال قيمةNB تؤخذوغالبا ما . ضمن النظام

استخدام شبكة ف، فإهنا تعتمد عىل نوع شبكة االتصال املستخدمة، Process grid (P * Q)شبكة اإلجرائية أما سائل عن طريقه، لذلك يفضل يتم تبادل الرلوجود خط واحد فقط لكل عقدة حيد كثريا من األداء عاديةإثرنت

. وهكذا، للحصول عىل أفضل قياس لألداء٨×٢ أو ٨×١ أو ٤×١اختيار شبكة مسطحة من الشكل

:متثيل هذه املحددات األربعة وكيفية التعامل معهايوضح الشكل التايل

P, Q متثيل املحددات :٧- ٤ الشكل

نتائج قياس أداء العنقود ٢.٤ن ثالث عقد تتمتع كل بالرجوع إىل العتاد املادي اخلاص بالعنقود املستخدم يف هذا املرشوع، نالحظ أنه يتألف م

:منها باملواصفات التالية .MSI 945GCM5 V2لوحة رئيسية من النوع

.Intel Pentium D 3 GHz, 4 MB Cache Memoryمعالج إنتل حيتوي عىل نواتني، من النوع .MHz 667 يساوي FSB وبرتدد GB 2 ذاكرة عشوائية بحجم

.Realtek RTL 8111Bالرئيسية من النوع مدمج عىل اللوحة Gigabit Ethernetمتحكم شبكة

لتفرعي له عىل نموذج لتصيري ثالثي األبعاد، والذي اعتمد احلل ااوبام أن التطبيق املقرتح يف هذا املرشوع هو ، وبذلك كانت القوة احلسابية للمعاجلات ) يف فصل سابقتم توضيحه (SPMDبيانات متعددة - برنامج واحد

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

.الرئيسية بشكل متكرر

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

األربعة، وجدنا أن أفضل األساسية للعديد من املرات و بقيم خمتلفة للمحددات HPLعند استخدام اختبار N، أما املحدد الرابع NB = 240, P = 1, Q = 6: عليها باختيار قيم ثابتة للمحددات الثالثة التاليةحيصل لنتائج اتوضيح عالقته بأداء النظام تم اختيار عدة قيم عىل النحو لحلجم الذاكرة املتوفرة عىل النظام ككل، وقيمته خضع تف

:املبني يف املنحني التايل

Three nodes performance test

14.28

21.0222.66

19.22

9.384

18.74

23.87

0

3

6

9

12

15

18

21

24

27

5000 10000 15000 20000 25000

Size of problem N

Exec

utio

n ra

te G

flops

ةاختبار أداء العقد الثالث: ٨- ٤ الشكل نالحظ من املنحني السابق حتسن أداء النظام بزيادة حجم املسألة إىل حد معني، وهو احلد الذي نصل إليه

االفرتاضية بسبب بعد ذلك بالتناقص نتيجة استخدام الذاكرة ويبدأ األداء باستخدام أكرب مساحة ممكنة من الذاكرة، .الرئيسةامتالء الذاكرة

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

أفضل النتائج يف املرحلة السابقة، وفقا لقيم املحددات التي أعطت HPCCة االختبار قمنا باستخدام حزم :حصلنا عىل النتائج التالية ولقياس نتائج جمموعة االختبارات األخرى املذكورة ضمن هذه احلزمةوذلك

• HPL: (MPI on whole system) = 23.63 Gflops

• DGEMM : Single DGEMM = 4.71 Gflops Star DGEMM = 4.56 Gflops

• STREAM: Single STREAM Copy = 2.94 GB/s Star STREAM Copy = 1.34 GB/s

Single STREAM Scale = 2.93 GB/s Star STREAM Scale = 1.35 GB/s Single STREAM Add = 2.94 GB/s Star STREAM Add = 1.53 GB/s Single STREAM Triad = 2.93 GB/s Star STREAM Triad = 1.54 GB/s

• PTRANS: (MPI on whole system) = 0.21 GB/s

• RandomAccess: Single RandomAccess = 0.00936 GUPs Star RandomAccess = 0.00676 GUPs MPI RandomAccess = 0.00216 GUPs

• FFT: Single FFT = 0.59 Gflops Star FFT = 0.53 Gflops MPI FFT = 0.42 Gflops

• Latency/Bandwidth: Max Ping - Pong Latency = 225.18 usec Min Ping - Pong Latency = 3.99 usec Avg Ping - Pong Latency = 108.675 usec Max Ping - Pong Bandwidth = 0.72 GBytes Min Ping - Pong Bandwidth= 0.10 GBytes Avg Ping - Pong Bandwidth = 0.23 GBytes Naturally Ordered Ring Latency = 58.51 usec Randomly Ordered Ring Latency = 68.16 usec Naturally Ordered Ring Bandwidth = 0.03 GBytes Randomly Ordered Ring Bandwidth = 0.02 GBytes

. القرص املدمجموجودة يفاملجراة الختبارات ا تفاصيل مجيع نتائج إن : إلظهار حتسن األداء بازدياد عدد العقد يف النظام، كام يوضح الشكل التايلطة بسي مقارنةد أخرياروسن

Performance improvement

8.63

16.29

23.87

0

5

10

15

20

25

30

1 2 3

Number of nodes

Exec

utio

n ra

te G

flops

حتسن األداء مع ازدياد عدد العقد: ٩- ٤ الشكل

D Rendering-3التصيري ثالثي األبعاد ٣.٤، ومن هنا قررنا استخدام أمهية العناقيد والربجمة املوزعةلتوضيح استخدام أمثلة متس احلياة الواقعية من املهم

.التصيري ثالثي األبعاد كتطبيق لبيان أمهية الربجمة املوزعةبدأ استخدام احلاسوب كأداة مساعدة يف التصميم البياين والرسم منذ ستينيات القرن املايض، وكان لذلك دور

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

توصيف شكيل ولوين للكائنات ثالثية األبعاد التي يتم رسمها، إال أن حتقيق التوصيف الضوئي بقي بعيدا عن فكان عىل املربمج العمل عىل حتقيق – يف زمن معقول طبعا –ذلك لصعوبة احلصول عليه بشكل صحيح التحقيق و

.ييدوالظالل واالنعكاسات واالنكسارات الضوئية بشكل خوارزمية فعالة للتصيري ثالثي األبعاد حاسوبيا بشكل أقرب ما ك Ray Tracingظهرت منهجية تعقب الشعاع

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

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

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

.للضوء لن تظهر بالدقة املطلوبةتم بناء التطبيق باالعتامد بشكل كبري عىل سلسلة تعليمية مذكورة يف مقدمة مراجع هذا الفصل، ومن املفيد

.الرجوع إليها للحصول عىل تفاصيل أعمق عن حتقيق خوارزمية التعقب املستخدمة مبدأ العمل ١.٣.٤

اكاة الطبيعة، أي القيام بمحاكاة حقيقية لألشعة الضوئية يف الواقع، إذ إن اهلدف من منهجية تعقب الشعاع هو حممن املعروف أن الرؤية تتم عن طريق انعكاس األشعة الضوئية املنطلقة من املنابع الضوئية عن سطوح األجسام

.انعكاسات متتالية حتى وصوهلا إىل العني التي تقوم بتفسري هذه األشعة ومتييز الصورة املرئيةن عدد األشعة الضوئية املنطلقة من املنابع الضوئية ال هنائي، كام إإن القيام باملحاكاة السابقة مستحيل عمليا، إذ

بسبب ازدياد عددها مع ازدياد عدد مرات – وإن كانت حمدودة –نه من غري املمكن تتبع مجيع هذه األشعة إ .انعكاسها وانكسارهاشعة الضوئية التي تصل العني البرشية ال تعد إال جزءا بسيطا من األشعة أن األاحلسبان ولكن إذا أخذنا ب

الكلية، وأن شاشة احلاسب حمدودة بعدد معني من البكسالت أصبح باإلمكان القيام باملحاكاة لعدد حمدود من

جد األجسام من اهلام مالحظة أننا لن نتعقب األشعة بل سنتعقب مقلوهبا الذي يصلنا فقط، وعند ذلك ن. األشعةالتي كان من املفروض أن تكون هذه األشعة قادمة منها ومن ثم نتعقب أصل هذه األشعة قبل ورودها إىل هذه

.األجسام وهكذا حتى نصل إىل املنبع الضوئي

األشعة املنطلقة من العني:١٠- ٤ الشكل عىل لون البكسل للحصول ضوئي يمر عرب بكسل يف الشاشة حتى وصوله إىل العني، ونفرتض هنا أن كل شعاع

.النهائي نقوم بإطالق شعاع من العني مارا هبذا البكسل ومن ثم نتعقب هذا الشعاع

إطالق شعاع من كل بكسل: ١١- ٤ الشكل

تعقب الشعاعخوارزمية ٢.٣.٤عقب الشعاع هو حساب األجسام التي تتقاطع معه ومن ثم إجياد اجلسم األقرب الذي سيعطي الشعاع لونه ت

إذا كان هذا اجلسم شفافا وتعقب ) أي حساب الشعاع النافذ(عند نقطة التقاطع، ومن ثم نقوم بكرس هذا الشعاع

نقوم إضافة إىل ما سبق . سم وتعقبهالشعاع املنكرس، ونقوم يف الوقت نفسه بحساب الشعاع املنعكس عن اجل .بحساب األشعة الضوئية التي تنتج عن كل من املنابع الضوئية لتفعيل التأثريات الضوئية

ختاما حيمل الشعاع األصيل الذي نقوم بتعقبه اللون الناتج عن مجيع األشعة السابقة والتي تدمج بطريقة معينة .وفقا خلصائص اجلسم الذي نتعامل معه

األشعة املنكرسة واملنعكسة واألشعة الضوئية: ١٢- ٤ الشكل نه كلام كانت إ التقاطع بني األشعة واألجسام يف عملية تعقب الشعاع، كام حساب تظهر هنا أمهية عمليات

.أرسعها ستكون خوارزميات حساب هذه التقاطعات أكثر فعالية فإن العملية بأكملنالحظ أن اخلوارزمية املوضوعة . يمكننا اآلن طرح فكرة بسيطة عن خوارزمية تعقب الشعاع بصيغتها العامة

:نا من أجل كل شعاع ننفذ ما ييلإن، حيث )وهذا هو عامل التعقيد الزمني األسايس(عودية بحساب نقطة التقاطع والشعاع نقوم بحساب اجلسم األقرب الذي يتقاطع مع هذا الشعاع، ومن ثم نقوم

نحسب بعد ذلك األشعة الضوئية املؤثرة عىل نقطة التقاطع ومن ثم نحسب تأثري . الناظم عىل اجلسم يف هذه النقطة .هذه األشعة عىل لون النقطة

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

Procedure RayTrace(ray R, integer Depth) returns color For each object in the scene Calculate the distance from the starting point of R to the nearest intersection of R with the object in the forward direction If this distance is less than Dis Update Dis to this distance Set Obj to point to this object End if Next object if Obj is not null Set the position variable Pt to the nearest intersection point of R and Obj

Set the total color C to black For each light source in the scene For each object in the scene If this object blocks the light coming from the light source to Pt Attenuate the intensity of the received light by the transmitivity of the object End if Next object Calculate the perceived color of Obj at Pt due to this light source using the value of the attenuated light intensity Add this color value to C Next light source If Depth is less than a maximum value Generate two rays Refl and Refr in the reflected and refracted directions starting from Pt Call RayTrace with arguments Refl and Depth + 1 Add (the return value * reflectivity of Obj) to C Call RayTrace with arguments Refr and Depth + 1 Add (the return value * transmittivity of Obj) to C End if Else Set the total color C to the background color End if Return C End Procedure

وبالتايل أصبح بإمكاننا كتابة اخلوارزمية التالية لرسم الصورة كاملة، حيث نقوم بإطالق شعاع من العني مارا :من هذه األشعةمن أجل كل تعقب الشعاع ونستدعي إجرائية حدة بكسل عىل عرب كل

Procedure RenderPicture() For each pixel on the screen Generate a ray R from the viewing position through the point on the view plane corresponding to this pixel Call the procedure RayTrace() with the arguments R and 0 Plot the pixel in the color value returned by RayTrace() Next pixel End Procedure

الحظ أن خوارزمية تعقب الشعاع األصلية هي خوارزمية عودية، وبالتايل جيب علينا وضع حد ملستوى العودية :ال جيب جتاوزه لألسباب التالية

.لتجنب الدخول يف عودية ال هنائية .١

ح عىل عدد كبري من عمليات االنعكاس واالنكسار لن تكون ذات تأثري واضعنألن األشعة الناجتة .٢ .الشعاع األويل األصيل الذي نقوم بحسابه

األشعة األولية والثانوية ٣.٣.٤ندعو األشعة األساسية التي نطلقها من العني والتي متر عرب أحد البكسالت يف سطح اإلسقاط باألشعة األولية،

:بينام تشكل األشعة األخرى ما يدعى باألشعة الثانوية والتي هي األشعة املنعكسة • نكرسةاألشعة امل • أشعة الظالل •

حساب األشعة املنعكسة ١.٣.٣.٤ حساب األشعة املنعكسة عن األجسام العكوسة كاملرايا مثال أو األجسام شبه العكوسة، فلكل جسم جيب

).وهو أمر غري اللمعان(معامل انعكاس يتعلق بمدى عكوسيته يمكننا لذلك . ست ذات معنى مفيدلنتذكر دوما أننا هنتم باجتاه الشعاع وليس طويلته، ألن طويلة الشعاع لي

لتجنب الكثري من حسابات الفاصلة العائمة، وهذا التقليل يف الكلفة ) ذات طويلة واحدية(التعامل مع أشعة مقيسة .احلسابية سيقلص التعقيد الزمني للخوارزمية

، وزاوية الورود N ، والشعاع الناظم يف نقطة االنعكاس Rout ، والشعاع املنعكس Rinنسمي الشعاع الوارد .θهي ) والتي تساوي زاوية االنعكاس(

الشعاع الوارد واملنعكس والناظم: ١٣- ٤ الشكل :يمكننا حساب الشعاع املنعكس من العالقة الشعاعية التالية

( )θcosNSRin =+

)حيث أن )θcosN هو مسقط الشعاع Rin عىل Nولدينا ، : Rout = N cos(θ) + S S = N cos(θ) - Rin

:فيكونRout = 2 N cos(θ) - Rin = 2 N (N · Rin) - Rin

.وهي عالقة شعاعية متثل قيمة الشعاع املنعكس وفق الناظم املوضحة احلالية هي من أهم أجزاء عملية إن حساب قيمة الشعاع املنعكس ومتابعته ومن ثم جعله جزءا من لون النقط

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

.طبيعي ع الضوئي املنكرسحساب الشعا ٢.٣.٣.٤

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

بثابت حيدد قيمة ممانعتها ملرور بينها، وتتميز كل مادة الضوءتتعلق قيمة االنكسار بطبيعة األجسام التي ينتقل االنكسار بنسبة قرينة انكسار الوسط زاويةتتعلق . Refraction Indexاألشعة الضوئية يسمى قرينة االنكسار

.األول الذي يأيت منه الشعاع إىل قرينة انكسار الوسط الثاين الذي يذهب إليه الشعاع : قة الرياضية التالية حلساب الشعاع الضوئي املنكرس يمكن استخدام العال

h1 sin(θi) = h2 sin(θt)

متثيل الشعاع املنكرس: ١٤- ٤ الشكل :بعد القيام بعدد من احلسابات يمكننا الوصول إىل العالقتني التاليتني اللتني حتددان الشعاع املنكرس

nit ttrrr

.sin1cos 2

2

1

2

1

−+−= θθ

ηη

ηη

it θηη

θ 2

2

12 sinsin =

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

.عمليةال يفيدنا من الناحية الإىل الداخل أنواع املؤثرات الضوئية ٤.٣.٤

سلوك الضوء الساقط عىل األجسام يتبع طبيعة سطح إنخيتلف املؤثر الضوئي باختالف طبيعة اجلسم، إذ :يمكننا تقسيم الضوء املنعكس يف احلالة العامة إىل جزأين. اجلسم

Diffuse نتشاريباالنعكاس االجزء ينترش يف كافة االجتاهات بعد اصطدامه بالسطح وهو ما يسمى •

Lighting.

.Specular Lightingجزء ينعكس وفق زاوية الورود ويشكل ما يسمى باالنعكاس اللمعاين •

حساب االنعكاس االنتشاري ١.٤.٣.٤االنعكاس االنتشاري للضوء هو املسؤول عن رؤية األجسام ألنه ينرش األشعة الضوئية يف كافة االجتاهات،

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

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

ال يكون اجلسم نارشا للضوء بشكل كيل، وإنام يتحدد مقدار االنعكاس االنتشاري عنه تبعا لطبيعته، فاألجسام قة ذلك باملركبة اللمعانية للشعاع سنعرض الحقا عال(اللامعة تنرش الضوء بمقدار أقل من األجسام اخلشنة

، وبفرض أن الشعاع الضوئي الوارد عىل diffندعو مقدار انتشار الضوء عن اجلسم بمعامل االنتشار ). الضوئي يمكننا كتابة الشدة الضوئية الناجتة عن االنعكاس N وأن الشعاع الناظم عىل نقطة الورود هو Lالسطح هو

:االنتشاري كالتايلIntensity = Id = diff * (L.N)

، حيث )ألننا نتعامل مع أشعة ذات طويلة واحدية( هو جتيب الزاوية بني الشعاع الضوئي والناظم L.Nاملقدار :اب الزاوية بني شعاعني حلسنستخدم عالقة اجلداء السلمي نناإ

v1.v2 = |v1|.|v2|.cos(θ)

:وبام أننا نتعامل مع أشعة مقيسة فإن|v1| = |v2| = 1

:ويكونv1.v2 = cos(θ)

فاالنتشار الضوئي يتناسب مع جتيب الزاوية بني الشعاع الوارد والناظم، أي أنه يتناسب طردا مع الزاوية بني .الشعاع الوارد والسطح الوارد عليه

حساب االنعكاس اللمعاين ٢.٤.٣.٤حظة أن اللمعان الضوئي يمكننا مال. االنعكاس اللمعاين هو اللمعان الذي يظهر عىل سطح املواد املصقولة

الذي يظهر عىل األجسام يتعلق بمكان عني الناظر، فكلام كانت قريبة من الشعاع املنعكس كان اللمعان أكثر .وضوحا

يظهر اللمعان عىل شكل دائرة مضيئة بشكل عام، ويتعلق لونه بلون املنبع الضوئي عىل عكس االنعكاس . باإلضافة إىل لون الضوء الوارداالنتشاري الذي يتعلق لونه بلون املادة

يتناسب االنعكاس اللمعاين عكسا مع الزاوية بني الشعاع املنعكس والشعاع املنطلق من العني إىل نقطة .االنعكاس

. بالقرب من الشعاع املنعكساللمعان املنعكس أكثر تركيزا يكون كلام كانت األجسام أكثر صقال نعرف هنا معامال جديدا هو مع تسعى قيمة هذا املعامل إىل . امل الصقل والذي يمثل القدرة اللمعانية للجسم

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

وكان الشعاع بني Vفإذا كان الشعاع الضوئي املنعكس هو . مرفوعا إىل معامل الصقل) العني إىل نقطة االنعكاس ، يمكننا حتديد spec ومعامل االنعكاس اللمعاين هو n وكان معامل الصقل هو R هو االنعكاسعني الناظر ونقطة

:قيمة االنعكاس اللمعاين بالعالقةintensity = Is = spec * (V.R)n

:يرتبط معامل االنعكاس اللمعاين مع معامل االنعكاس االنتشاري بالعالقةdiff + spec = 1

حيث أن قسام من الشعاع الضوئي ينعكس انتشاريا فيام ينعكس القسم اآلخر ملعانيا، ويمكننا اآلن كتابة صيغة :ي هي جمموع قيمة الشدة االنتشارية والشدة اللمعانية الشدة الضوئية عند نقطة معينة من سطح جسم والت

intensity = Id + Is = diff * (L.N) + spec * (V.R)n

:إذا أردنا دراسة تأثري كل من املركبتني عىل لون اجلسم الذي يظهر للناظر فيجب مالحظة ما ييلن اجلسم أمحرا فلون الضوء املنرش أمحر، يتعلق لون الضوء االنتشاري بلون املادة، فإذا كان الضوء أبيضا وكا

وهذا ما يتم حتقيقه عمليا بعملية جداء بني مركبات لون الضوء ومركبات لون املادة، وكمثال عىل ذلك يمكننا أخذ :ضوء أصفر وCمادة محراء يكتب لوهنا

C = (1,0,0) , L = (1,1,0)

:نهائي للشعاع الضوئي املنترشبأخذ جداء مركبات الشعاعني السابقني نجد أن اللون الdiffuse = (1,0,0) * (1,1,0) = (1,0,0)

.أي أنه سيكون أمحر اللونأما لون الضوء اللمعاين فيتعلق عمليا بلون املنبع الضوئي وليس بلون اجلسم، فرغم كون اجلسم أمحر اللون فإن

.وناللمعان املشاهد عىل سطحه سيكون أبيضا إذا كان املنبع أبيض الل : بالعالقةL بالنسبة إىل منبع ضوئي لونه Cيمكن إذا كتابة لون النقطة النهائي يف جسم لونه

result = Is * L + Id * C * L

. هي قيمة الشدة االنتشارية كام تم حساهبام آنفاId هي قيمة الشدة اللمعانية و Isحيث ند وجود أكثر من منبع ضوئي فإننا نقوم بتطبيق كل ينطبق ما ذكر حتى اآلن عىل حالة منبع ضوئي وحيد، أما ع

:من العالقات السابقة بالنسبة لكل منبع من املنابع الضوئية، ومن ثم يتم مجع األلوان الناجتة عنهاresult = result1 + result2 + …

تأثري الشعاع املنعكس واملنكرس عىل اللون النهائي للنقطة ٣.٤.٣.٤لشعاعني املنعكس واملنكرس مع اللون األصيل للنقطة لتحديد اللون النهائي يتداخل اللون العائد لكل من ا

معامل االنعكاس هو (reflإذا كان لدينا جسم معامل انعكاسه ). والذي سيعود مع الشعاع املنطلق من هذه النقطة(لف عن معامل مدى قدرة اجلسم عىل العكس، ويساوي الواحد يف املرايا والصفر يف األجسام اخلشنة، وهو خمت

) والتي قمنا بحساهبا يف فقرة سابقة (I، وشدة اإلضاءة الكلية املطبقة عليه هي refr انكساره، ومعامل )الصقل :كالتايل C1 يمكننا كتابة عالقة لون اجلسم

C = I + refl * C1 + refr * C2

. لون الشعاع املنكرسC2 لون الشعاع املنعكس، و C1حيث األلوان ٥.٣.٤

، ويتيح هذا النظام [1 ,0]امل مع األلوان سيتم متثيل مركبات اللون بالفاصلة العائمة يف املجال لتسهيل التع ,0 ,1)التوافق مع أي عمق بت موجود، أي أننا لن هنتم بعدد األلوان املتاحة، وكمثال عىل هذا النظام فإن اللون

. بتا٢٤ يف نظام ألوان (179 ,0 ,255) يقابل اللون (0.7 :فمثال. تتم إعادهتا إىل القيمة العظمى١جتاوز املركبة الضوئية للقيمة وعند

(0.1, 0.2, 0.6) + (0.3, 0.4, 0.7) = (0.4, 0.6, 1.3) = (0.4, 0.6, 1)

حساب الظالل ٦.٣.٤يمكن أن ينتج الظل عن حجب جسم ما الضوء عن . يمكن تعريف الظل بأنه غياب الضوء عن نقطة معينة

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

والذي أقحمناه سابقا (التأثري الضوئي عىل نقطة ما فإننا نقوم بحساب ما يسمى بالشعاع الضوئي أو شعاع الظل .، ومن ثم نوجد األجسام املتقاطعة مع هذا الشعاع)اين واالنعكاس االنتشاريعند حساب االنعكاس اللمع

عند وجود أحد األجسام التي تقطع هذا الشعاع يف نقطة واقعة بني املنبع الضوئي ونقطة احلساب األصلية فام .علينا سوى جتاوز هذا املنبع الضوئي وعدم القيام باحلسابات الرياضية املتعلقة به

جتاهلنا ملنبع ضوئي من أجل نقطة معينة يلغي تأثري هذا املنبع عىل هذه النقطة، وبذلك يظهر تأثري الظل إن جمرد .الذي نرغب به

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

).أصال بطرق اإلسقاط أو ما شابه

عالقة الظل باملنبع الضوئي وأنواع املنابع الضوئية ١.٦.٣.٤ الضوء فيها نقطة مادية مصدريكون(عند استخدام املنابع الضوئية النقطية تظهر الظالل بحواف حادة حيدث )

يمكن اعتبار الشمس منبعا (من الظل إىل الضوء مبارشة، كام يف الظالل الناجتة عن ضوء الشمس فيها االنتقال ضوئيا نقطيا .(

.حصل عىل تأثري متدرج للظلفإننا ن) مربعة أو دائرية(سطحا أأما عند استخدام املنابع الضوئية التي متلك

)يسارا(واملنابع الضوئية غري النقطية ) يمينا(الفرق بني حواف الظالل يف املنابع الضوئية النقطية : ١٥- ٤ الشكل ولكن املشكلة التي تظهر عند التطبيق العميل هي أن املنبع الضوئي غري النقطي يطلق عددا ال هنائيا من األشعة

.باجتاه نقطة معينة

الفرق بني املنبع الضوئي النقطي واملنبع الضوئي ذي املساحة: ١٦- ٤ الشكل

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

كام . حساب التقاطع بني األشعة الضوئية واألجسام األولية والتي تعد السبب األسايس لبطء منهجية تعقب الشعاع. الضوئي قليالتظهر مشكلة أخرى هي ظهور ظالل متعددة عندما يكون عدد النقاط الضوئية املأخوذة من املنبع

إىل أخذ نقاط ضوئية عشوائية من أجزاء املنبع الضوئي مما يعطي نتيجة مقبولة وبعدد مقبول نلجأ حلل هذه املشكلة .من املنابع النقطية

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

ختامد األشعة الضوئية ٧.٣.٤قريب، والسبب هو ختامد الضوء خالل عبوره من املعلوم أن الضوء البعيد يبدو للناظر بشدة أقل من الضوء ال

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

:، والذي ينص عىل التايلBeer's Lawالعالقة التي سنستخدمها هي قانون بري . واقعللlightout = lightin * e-(d * c)

. ثابت يعرب عن كثافة الوسطc طول املسار، و dحيث Antialiasingمعاجلة التكرس ٨.٣.٤

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

عند إطالق الشعاع . من املشهد– وإن كانت صغرية –فيام تم جتاهل أن البكسل ليس جمرد نقطة وإنام يمثل مساحة

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

.أجزاء أصغرلناتج ليالئم املشهد ال يمكن حل هذه املشكلة إال بزيادة دقة الصورة عند احلساب ومن ثم تصغري املشهد ا

دمج البكسالت التي ستصبح يف بيكسل واحد دجما خطيا أو غاوسياباملطلوب تدعى هذه العملية باالعتيان إىل . .Supersamplingاألعىل

ولكن لنستفد هنا من تقنية تعقب الشعاع، فبدال من تكبري الصورة يمكن إطالق أكثر من شعاع عرب البكسل .اية يكون لون البكسل هو متوسط لون األشعةالواحد، ويف النه

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

اعني بدل شعاع واحد فسيتضاعف زمن تصيري املشهد مرتني، وهذا أمر غري مقبول مع البطء البكسل الواحد شع .االفرتايض خلوارزمية تعقب الشعاع

يمكننا مالحظة أن معظم التكرس ينتج عند رسم احلواف الفاصلة بني األجسام املختلفة، ولذا ال داعي إلطالق ام، وهذا ما يؤدي إىل حتسني جودة الصورة ضمن كلفة زمنية أكثر من شعاع واحد إال عند االنتقال بني األجس

.معقولة Texturingاإلكساء ٩.٣.٤

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

حتسني تعقب الشعاع ١٠.٣.٤يصطدم الشعاع األويل مع كائن أسايس واحد فقط، إال أن اكتشاف هذا الكائن يتطلب اختبار التقاطع مع مجيع

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

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

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

١٨- ٤ الشكل مشاكلها بالطبع، فرغم أن التجول عرب الشبكة ليس عايل الكلفة إال أنه ليس جمانيا، وخاصة فيام هلذه الطريقة

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

أنواع األجسام املرسومة ١١.٣.٤من أهم ميزات منهجية تعقب الشعاع قدرهتا عىل حتويل التمثيل اهلنديس لألشكال إىل صور مرسومة مبارشة،

.ولكننا بحاجة إىل طريقة حلساب نقطة تقاطع األجسام مع األشعة والناظم عىل سطح اجلسم يف نقطة التقاطع :ينا عدة احتامالت لتمثيل األجساملد

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

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

.اتبعنا يف التطبيق املنفذ اخليار الثاين، لنركز عىل تطبيقات العنقود دون الدخول يف متاهات رسوميات احلاسب ب التقاطعاتحسا ١.١١.٣.٤

:باملعادلة التالية) له نقطة مبدأVectorمتجه (Rayيمكن متثيل معادلة الشعاع P = R0 + t Rd

:تعني هذه املعادلة الشعاعيةx = x0 + t xd y = y0 + t yd z = z0 + t zd

عن مبدأ tد بمقدار فإن النقطة تقع باجتاه الشعاع وتبعt > 0 للشعاع نقطة التقاطع، فعندما تكون tحتدد قيمة .الشعاع

حلساب تقاطع أي جسم مع الشعاع جيب حل معادلة الشعاع مع معادلة اجلسم، وبذلك نحصل عىل معادلة ، فإذا كانت هذه املعادلة غري قابلة للحل فال يوجد عندئذ تقاطع بني اجلسم والشعاع؛ أما إذا tبمجهول واحد هو

:كان للمعادلة حل فنحن أمام حالتني : حيثp فإننا أمام حالة تقاطع يف النقطة t > 0ذا كانت إ •

p = r0 + t rd

. يف هذه احلالة البعد بني نقطة التقاطع ومبدأ الشعاعtومتثل فال يوجد تقاطع، ألن نقطة التقاطع يف هذه احلالة تقع خلف نقطة انطالق الشعاع t < 0إذا كانت •

.بالنسبة جلهة الشعاع

، وعند t السابقة أكثر من حل فإننا نختار احلل املقبول الذي حيقق أصغر قيمة ممكنة للمتغري أما إذا كان للمعادلة .وجود حل مضاعف فإننا هنمله ألن الشعاع املامس جلسم ال يعد قاطعا له

تقاطع شعاع مع كرة ٢.١١.٣.٤ :إن معادلة الشعاع كام ذكرنا هي

p = r0 + t rd

: هيrصف قطرها ونRc = (x0, y0, z0)ومعادلة كرة مركزها (x – x0)2 + (y – y0)2 + (z – z0)2 = r2

: تعطى بالعالقةtبتعويض املعادلة األوىل يف الثانية نحصل عىل معادلة جديدة، وبعد احلل نجد أن t = -B ± V v = B2 – C B = Rd . (R0 – Rc) C = |R0 – Rc|2 – r2

١٩- ٤ الشكل

RC (x0,y0,z0)

r0

rd

شعاع مع مستويتقاطع ٣.١١.٣.٤ :إن معادلة املستوي يف الفراغ هي

ax + by + cz + d = 0

يف معادلة d هو الناظم عىل املستوي، ويف حال كان هذا الشعاع واحدي فإن القيمة (a, b, c)حيث أن الشعاع .دأ اإلحداثيات وبني املستوي املفروضاملستوي متثل البعد بني مب

إن إجياد نقطة تقاطع شعاع مع مستوي ليس رضوريا فقط إلظهار املستويات الالهنائية وإنام رضوري لكل .عمليات التقاطع مع األجسام املستوية مثل الدائرة واملربع واملثلث يف الفراغ

ملستويات الالهنائية ألنه يتعامل مع املعادالت إن إحدى ميزات منهجية تعقب الشعاع هي قدرهتا عىل رسم ابتحويل هذه األشكال إىل مضلعات، حيث أن ) كام حمركات الرسم ثالثية األبعاد املوجودة(اهلندسية وال هيتم

حتويل املستوي الالهنائي إىل مضلعات هو أمر مستحيل نظريا وعمليا . ولكن ليس من املفيد عمليا رسم مستو الهنائي، إذ تصبح حسابات الفاصلة العائمة يف املسافات البعيدة عديمة

الدقة من جهة، كام ال تشكل إال نسبة بسيطة من جممل العمليات الكلية . :إلجياد نقطة تقاطع مستو مع شعاع علينا تعويض معادلة الشعاع يف معادلة املستوي لنحصل عىل العالقة التالية

( ) ( )drNdrNt ⋅+⋅−= /0

. الناظم عىل سطح املستويN(a, b, c)حيث

٢٠- ٤ الشكل

توزيع اخلوارزمية ١٢.٣.٤متتاز منهجية تعقب الشعاع بأهنا حتسب لون كل بكسل بشكل مستقل عن البكسالت األخرى، مما يعني إمكانية

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

بكسالت مجيع xجرائية إجرائية جمموعة حمددة من صفوف البكسالت يف املشهد، وبشكل أكثر حتديدا تعالج اإل :األسطر التي حتقق العالقة

r0

rd

N(a،b،c)

slx mod= . عدد اإلجرائيات العاملةs رقم السطر و lحيث

تقوم كل من اإلجرائيات العاملة بقراءة امللف احلاوي عىل التوصيف اهلنديس للمشهد ثم تبدأ بتوصيف كل إىل اإلجرائية الرئيسة قبل البدء ) ن بكسالت ذلك السطرألوا(سطر عىل حدة، بحيث يرسل ناتج تصيري السطر

.بتصيري السطر التايلجيري التزامن بني اإلجرائية الرئيسة واإلجرائيات ) التي تشكل لقطات فيلم مثال(عند تصيري جمموعة املشاهد

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

قد تشكل هذه الطريقة هدرا ملصادر املعاجلة؛ ألنه يف مشهد مؤلف من ستة أسطر مثال . تصيري املشهد إىل القرص ملة عىل عنقود متجانس ستنهي اإلجرائيات معاجلة األسطر اخلمسة األوىل ثم ستقوم تعاجله مخس إجرائيات عا

بمعاجلة السطر األخري، فيام ستبقى اإلجرائيات األربعة األخرى يف حالة انتظار، ) اإلجرائية األوىل حتديدا(إحداها إجرائية ستبقى خاملة لفرتة تعادل معاجلة s−1يف أسوأ احلاالت فإن . قبل انتقاهلا مجيعا إىل معاجلة املشهد التايل

رغم هذا الضياع فإن التعقيد الربجمي الالزم لتجاوز هذه املشكلة وحجم الذاكرة . سطر واحد يف كل مشهد .املطلوب ملعاجلة أكثر من مشهد يف الوقت نفسه جيعل من الضياع السابق مقبوال

وصف الربنامج ١٣.٣.٤ باالعتامد عىل برنامج تسلسيل يؤدي الغاية التي نريدها، ويمكن احلصول عىل هذا الربنامج متت برجمة التطبيق

كتب . من املوقع املذكور يف قائمة املراجع، والذي يمكن الرجوع إليه للحصول عىل تفاصيل اجلوانب التي مل نعدهلافرعي حتت نظام لينوكس بعد ، وتم تعديله ليعمل بشكل تVC++ 6.0 ضمن بيئة ++Cالربنامج األصيل بلغة

تضمنت التعديالت أيضا مترير حمددات املشاهد التي يتم تصيريها . gcc املعتمد عىل مرصف MPIترصيفه بمرصف . بدل الشاشةPPMعرب ملفات، وكتابة اخلرج إىل ملفات

الصفوف ١.١٣.٣.٤ :حيوي الربنامج الصفوف التالية

ملف الرتويسة احلاوي الوصف الصف عىل الترصيح

Vector3 توصيف متجه وتعريف العمليات احلسابية اخلاصة باملتجهات.

Matrix مصفوفة احلركة اخلاصة بآلة التصوير للمشهد وعمليات التحويل

Transformationsالالزمة . Plane سطح الرؤية اخلاص باملشهد.

common.h

AaBb توصيف الشبكة الفراغية احلاوية للمشهد.

Texture توصيف اإلكساء. Material توصيف املادة وخواصها الضوئية واللونية.

Primitive

توصيف كائن أسايس وتعريف العمليات احلسابية املتعلقة به ). كحساب الناظم عىل السطح يف نقطة وحساب التقاطع مع األشعة(

و Sphere و PlanePrimيشتق من هذا الصف ثالثة صفوف هي Boxطوح والكرات ومتوازيات املستطيالت عىل لتوصيف الس .التتايل

ObjectList حاوية للتعامل مع جمموعة من الكائنات األساسية.

scene.h

Scene توصيف املشهد ككل. Ray توصيف شعاع.

raytracer.h Engine حمرك التصيري، وهو املسؤول عن القيام بعملية تعقب األشعة.

توزيع الربنامج ٢.١٣.٣.٤ذات (عامل، أي أن اإلجرائية الرئيسة / وفق نموذج مديرMPIنامج باستخدام توابع مكتبة جيري توزيع الرب

لن تقوم إال بمزامنة اإلجرائيات العاملة يف بداية تصيري كل مشهد من املشاهد ومن ثم استقبال نتيجة ) ٠الرتبة لة فهي املسؤولة عن إجراء عملية أما اإلجرائيات العام. التصيري منها قبل كتابة هذه النتيجة إىل القرص الصلب

.التصيري وفق التوزيع الذي ورد يف فقرة سابقة :تبدو الوظيفة الرئيسية التي حتقق النموذج السابق كام ييل

MPI::Init(argc, argv); rank = MPI::COMM_WORLD.Get_rank(); size = MPI::COMM_WORLD.Get_size(); if (rank == 0) // manager code { frameBuffer = new Pixel[sceneSize]; for (i = 0; i < numOfFrames; i++) { // synchronizing frames MPI::COMM_WORLD.Bcast(dummy, 1, MPI::INT, 0); for (j = 0; j < scrHeight; j++) { MPI::COMM_WORLD.Recv( tempBuffer, scrWidth, MPI::INT, MPI::ANY_SOURCE, MPI::ANY_TAG, status); tag = status.Get_tag(); for (k = 0; k < scrWidth; k++) frameBuffer[tag * scrWidth + k] = tempBuffer[k]; }

sprintf(frameFileName, "%04d", i); frameFileName = strcat(frameFileName, "_frame.ppm"); writeBufferToRowPPM(frameFileName, scrWidth, 0, scrHeight); } } else // worker code { // prepare renderer tracer = new Raytracer::Engine(size - 1, rank); tracer->getScene()->initScene(); tracer->setTarget(tempBuffer, scrWidth, scrHeight); for (i = 0; i < numOfFrames; i++) { // synchronizing frames MPI::COMM_WORLD.Bcast(dummy, 1, MPI::INT, 0); tracer->initRender( Raytracer::Vector3( cameraPosXInit + cameraXStep * i, cameraPosYInit + cameraYStep * i, cameraPosZInit + cameraZStep * i), Raytracer::Vector3( targetPosXInit + targetXStep * i, targetPosYInit + targetYStep * i, targetPosZInit + targetZStep * i)); int line; while ((line = tracer->render()) != -1) { MPI::COMM_WORLD.Send(tempBuffer, scrWidth, MPI::INT, 0, line); } } } MPI::Finalize();

: كام ييل()Engine::renderري تصيري كل سطر من األسطر ضمن اإلجرائية التي يتبع هلا ضمن الوظيفة جيif (m_CurrLine < m_Height) { // reset last found primitive pointer Primitive* lastprim = 0; // render pixels for current line Vector3 lpos = m_P1 + (float)m_CurrLine * m_DY; for (x = 0; x < m_Width; x++) { // fire primary rays Color acc(0, 0, 0); Primitive* prim = renderRay(lpos, acc); int red, green, blue; if (prim != lastprim) { lastprim = prim; renderRay(lpos - m_DX * 0.5f, acc); renderRay(lpos - m_DY * 0.5f, acc); renderRay(lpos - m_DX * 0.5f - m_DY * 0.5f, acc); red = (int)(acc.r * 64); green = (int)(acc.g * 64);

blue = (int)(acc.b * 64); } else { red = (int)(acc.r * 256); green = (int)(acc.g * 256); blue = (int)(acc.b * 256); } if (red > 255) red = 255; if (green > 255) green = 255; if (blue > 255) blue = 255; m_Dest[x] = (red << 16) + (green << 8) + blue; lpos += m_DX; } m_CurrLine += m_WorkingSize; return m_CurrLine - m_WorkingSize; } return -1;

دخل وخرج الربنامج ٣.١٣.٣.٤ ، فيام كتبت بعض scene.in و movie.inيقرأ الربنامج معظم املحددات اخلاصة به من ملفني نصيني مها

.املحددات ضمن الربنامج للتقليل من تعقيد ملفات الدخل دقة الصور الناجتة عن التصيري وتوضع عدسة التصوير يف تتابع املشاهد التي سيتم movie.inحيوي امللف

:تصاغ أسطر هذا امللف كام ييل. تصيريها .حيوي السطر األول عرض وارتفاع كل من الصور الناجتة بالبكسل .١

.حيوي السطر الثاين عدد املشاهد املطلوبة .٢

.لعدسة التصوير) هد األوليف املش(حيوي السطر الثالث املوضع األويل .٣

.حيوي السطر الرابع املوضع األويل لنقطة تركيز عدسة التصوير .٤

.لعدسة التصوير) يف املشهد األخري(حيوي السطر اخلامس املوضع النهائي .٥

.حيوي السطر السادس املوضع النهائي لنقطة الرتكيز .٦

:أو كام هو ظاهر فيام ييل# movie.in format: scrWidth scrHeight numOfFrames cameraPosXInit cameraPosYInit cameraPosZInit targetPosXInit targetPosYInit targetPosZInit cameraPosXFinal cameraPosYFinal cameraPosZFinal targetPosXFinal targetPosYFinal targetPosZFinal # example: 3072 2304 10 -10 -1 -2

0 0.8 5 10 3 -2 0 0.8 5

تتحرك فيها عدسة التصوير بخطوات متساوية ٢٣٠٤×٣٠٧٢سينتج امللف املعطى كمثال عرشة مشاهد بدقة ,x = 0 ( نفسهامع الرتكيز عىل النقطة) x = 10, y = 1, z = -2(إىل املوضع ) x = -10, y = -1, z = -2(من املوضع

y = 0.8, z = 5.( حيوي السطر األول من امللف عدد . ألساسية املوجودة يف املشهد فيحوي الكائنات اscene.inأما امللف

:املشاهد، أما األسطر التالية فيحوي كل منها ما ييل .ملتوازي املستطيالت) ٢(للكرة، ) ١(للسطح، ) ٠: (نوع الكائن األسايس .١

متثل ، فيام ) قيم٤(يمثل السطح بمحددات الناظم الشعاع عىل سطحه . املحددات اهلندسية للكائن .٢، ويمثل متوازي املستطيالت بإحداثيات رأسني ) قيم٤(الكرة بإحدثيات مركزها ونصف قطرها

). قيم٦(متقابلني منه

).٠(أم ال ) ١(هل الكائن منبع ضوئي .٣

).١ و ٠ثالث قيم ترتاوح بني ( مقيسة RGBلون الكائن بصيغة .٤

قيم معامالت االنعكاس، االنكسار .٥

االنتشاريمعامل االنكسار واالنعكاس .٦

ومعامالت ) tgaبصيغة (، ويف حال وجوده يعطى مسار ملف اإلكساء )٠(أم ال ) ١(هل يوجد إكساء .٧ .التكبري لإلكساء

. ثنائيPPMأما خرج تصيري كل مشهد من املشاهد فيكتب إىل ملف نتائج قياس أداء التطبيق ٤.٤

أنظمة احلوسبة املوزعة هو تقليل زمن كام ذكرنا سابقا يف مقدمة البحث فإن اهلدف األسايس من استخدام التصيري ثالثي األبعاد الالزم لتنفيذ تطبيقات ومن املعروف أيضا أن الزمن ؛معاجلة التطبيقات بشكلها التسلسيل

يكون كبريا نسبيا لذلك سنوضح يف هذا القسم من البحث االختبارات و، )وذلك بحسب قدرة النظام املستخدم(تنفيذ الشكل التفرعي من إظهار مقدار التحسن يف األداء عند استخدام نظام العنقود عايل األداء لالتي أجرينها بغية

.التطبيق ٢٣٠٤ × ٣٠٧٢بدقة املشاهد املطلوب تصيريها من أعداد متنوعة باستخدام تم إجراء االختبارات املختلفة

لرؤية نامذج ، ويمكن مراجعة املالحق سيتم تصيري مشهدين خمتلفي التعقيد. ما مل يذكر خالف ذلكلكل منها .عنهام

اختبار احلل التسلسيل ١.٤.٤املشاهد البسيطة التي يتألف كل منها من عرشة تم قياس األداء بتنفيذ التطبيق عىل معالج وحيد باعتامد عدد من

:، فكانت النتائج كام يوضح الشكل التايلكائنات أساسيةSerial Application - Performance Test

00:31

10:07

19:57

30:00

40:16

50:22

00:0007:1214:2421:3628:4836:0043:1250:2457:36

1 20 40 60 80 100

Number of Frames

Exe

cutio

n Ti

me

[ mm

: ss

]

أداء برنامج التصيري التسلسيل: ٢١- ٤ الشكل

وبالتايل فإنه إلنتاج ،دقيقة تقريبا٥١استغرقت مشهد ئة اأن عملية التصيري املطبقة عىل ميظهر لنا الشكل السابق ذلكفإن ، إطار ٧٥٠٠ يساوي لمشاهد إطار يف الثانية، أي بعدد كيل ل٢٥فيلم مدته مخسة دقائق فقط وبمعدل

العمل سيستغرق يومني وسبعة ساعات تقريبا، وهو زمن طويل جدا بال شك . احلل التفرعياختبار ٢.٤.٤

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

.املستخدمة وزيادة عدد املشاهد املطلوبةParallel Performance Test

00:00

11:31

23:02

34:34

46:05

57:36

1 2 3 4 5Number of Processor

Exec

utio

n Ti

me

[ mm

: ss

]

100 frames80 frames60 frames40 frames20 framesone frame

أداء برنامج التصيري التفرعي مع تغيري عدد املشاهد وعدد املعاجلات: ٢٢- ٤ الشكل

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

).وهو ما يمكن أن حيدث يف تطبيقات أخرى(نظريهتا التسلسلية كائنا أساسيا٢٥٠كل منها حيوي (بإعادة االختبار التفرعي عىل مشاهد أكثر تعقيدا نجد أنه رغم ازدياد الزمن )

الالزم للتصيري فإن أشكال املنحنيات تبقى دون تغيري تقريبا، مما يعني املحافظة عىل نسبة التحسن يف األداء رغم .ازدياد تعقيد املشاهد

Complex Scene - Performance Test

00:00:0000:17:1700:34:3400:51:5001:09:0701:26:2401:43:4102:00:5802:18:1402:35:3102:52:48

1 2 3 4 5Number of Processor

Exec

utio

n Ti

me

[ hh

: mm

: ss

]

100 frames80 frames60 frames40 frames20 framesone frame

التصيري التفرعي مع تغيري عدد املشاهد وعدد املعاجلات عند تصيري مشهد معقدأداء برنامج : ٢٣- ٤ الشكل

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

التصيري ثالثي األبعاد، فإن كال من اإلجرائيات العاملة تقوم بحساب ألوان جمموعة من األسطر املحددة يف املشهد . قد تؤثر عىل فعالية التطبيق) أو عدد األسطر املرسلة يف املرة الواحدة(املطلوب، وهكذا فإن طول السطر املرسل

. باستخدام مخسة معاجلات) كائنات أساسية١٠حيوي كل منها ( مشهد بسيط ٢٠٠ا بتصيري الختبار هذا األمر قمن بايت؛ ٣٢٠٠، أي أن حجم السطر الواحد املرسل يساوي ٦٠٠ × ٨٠٠كانت األبعاد األولية للمشهد تساوي

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

Communication Block Size Effect on Performance

01:3501:3701:3801:4001:4201:4401:4501:4701:4901:5101:52

3200 4800 5600 6400 9600 12800 16000 32000

Number of Bytes

Exec

utio

n Ti

me

[ mm

: ss

]

تأثري زيادة حجم السطر املرسل عىل األداء: ٢٤- ٤ الشكل

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

حساب عامل الترسيع والفعالية ٣.٤.٤إن الرتمجة العملية ملجموعة االختبارات السابقة تكون بحساب معامل الترسيع والفعالية عند استخدام احلل

البسيطنستطيع حساب معامل الترسيع لالختبار . زمن املعاجلةالتفرعي، وهو يدل عىل مقدار التحسن الناتج يف :كام ييللنتائج التي حصلنا عليها إىل ااستنادا

. ثانية٣٠٦٠ هو مشهدئة ايساوي ماملشاهد زمن تنفيذ احلل التسلسيل لعدد من املصرية من العقد جتمع األسطر (إجرائيات فعالة وإجرائية إدارة زمن تنفيذ احلل التفرعي باستخدام مخسة

. ثانية٧٧٤ائة مشهد أيضا هو يساوي ماملشاهد لعدد من )وتكتب ناتج التصيري يف ملف : بالتعويض بقانون عامل الترسيع

Execution time using single processor system speedup factor S(p) = Execution time using a multiprocessor system with p processors S(6) = 3060 / 774 = 3.95

:بالعالقةالفعالية وحتسب E = S(p) / p * 100 E = 3.95 / 6 * 100 = 65.83 %

):باستخدام مشاهد معقدة(التفرعي الثاين العملية باستخدام نتائج االختبار تكرار يمكننا .ية ثان٩٢٩٩ مائة مشهد هويساوي املشاهد زمن تنفيذ احلل التسلسيل لعدد من

جتمع األسطر املصرية من العقد (إجرائيات فعالة وإجرائية إدارة زمن تنفيذ احلل التفرعي باستخدام مخسة . ثانية٢٠٤٠مائة مشهد أيضا هو يساوي املشاهد لعدد من )وتكتب ناتج التصيري يف ملف

:بالتعويض بقانون عامل الترسيعS(6) = 9299 / 2040 = 4.56

:بشكل مشابهالفعالية حتسب كام E = 4.56 / 6 * 100 = 76.0 %

معاجلات عاملة يف تطبيق التصيري ثالثي ستةعامل فيه /مما سبق نجد أن استخدام نظام موزع من نوع مدير باملائة وهي نسبة ٧٠بحدود أدى إىل ترسيع العمل أربع مرات تقريبا وبمعامل )مخسة فعالة وواحد إدارة (األبعاد

.ن توزيع تطبيق التصيري ثالثي األبعاد هو قرار صائبجيدة، مما يعني أ

رضب مصفوفة بشعاع: عىل تطبيق غري مناسب للعناقيدمثال ٥.٤ الوصف العام ١.٥.٤

.c وخيزن النتائج يف الشعاع b بشعاع aيقوم هذا التطبيق برضب مصفوفة مربعة وزيع العمل عىل العاملني سطرا يقوم املدير بت. يف بنية الربنامجmanager-workerعامل -د نموذج مديرعتمنس وحيسب الناتج وهو b بالشعاع n ذو الرقم a يقوم كل عامل برضب سطر املصفوفة .، وينتظر النتائج منهمسطرا

. إىل املدير يف شعاع النتيجة، ويقوم بإرسالهnرقم يف السطر رشح الربنامج ٢.٥.٤

عامل /لربامج التفرعية التي تستخدم نموذج مدير نفسه املستخدم كإطار عام ل( )mainيستخدم الربنامج التابع ).عامل يف الربجمة التفرعية/مديرلنموذج ام اإلطار الع: ٣-٣ الشكل(

manager تابع املدير ١.٢.٥.٤حدا قيمة ابتدائية، ثم يرسل إىل العامل وحدات العمل األولية، سطرا واaبإعطاء املصفوفة manager يبدأ املدير تبدأ أرقام أسطر .رتميز رقم السطر الذي نرسلهلكل رسالة ل) MPI) MPI Tagسنستخدم وسم . لكل عامل

كوسم ذو معنى خاص يفهم العامل عدم وجود مزيد من العمل؛ 0، ولكننا نريد حجز الرقم 0املصفوفة بالرقم لسطر املصفوفة ( قيمة اجلداء الداخيل عندما يرجع العامل. سنعطي الوسم قيمة تزيد عن رقم السطر بواحدلذلك

عندما يتم . ونرسل إىل العامل سطرا آخر ليعمل عليهcسنخزن النتيجة يف املكان املناسب من الشعاع ) bبالشعاع يف tagبوضع الوسم ) ال مزيد من العمل(إسناد مجيع أسطر املصفوفة، نرسل إىل العامل الذين أهنوا مهمتهم رسالة

.0إىل القيمة هذه الرسالة :نعرض فيام ييل كود تابع املدير

#define SIZE 1000 #define MIN( x, y ) ((x) < (y) ? x : y) void manager_code( int numprocs ) { double a[SIZE][SIZE], c[SIZE]; int i, j, sender, row, numsent = 0; double dotp; MPI_Status status; /* (arbitrary) initialization of a */ for (i = 0; i < SIZE; i++ ) for ( j = 0; j < SIZE; j++ ) a[i][j] = ( double ) j; for ( i = 1; i < MIN( numprocs, SIZE ); i++ ) { MPI_Send( a[i-1], SIZE, MPI_DOUBLE, i, i, MPI_COMM_WORLD ); numsent++; } /* receive dot products back from workers */

for ( i = 0; i < SIZE; i++ ) { MPI_Recv( &dotp, 1, MPI_DOUBLE, MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &status ); sender = status.MPI_SOURCE; row = status.MPI_TAG - 1; c[row] = dotp; /* send another row back to this worker if there is one */ if ( numsent < SIZE ) { MPI_Send( a[numsent], SIZE, MPI_DOUBLE, sender, numsent + 1, MPI_COMM_WORLD ); numsent++; } else /* no more work */ MPI_Send( MPI_BOTTOM, 0, MPI_DOUBLE, sender, 0, MPI_COMM_WORLD ); } }

ب مصفوفة بشعاع، كود تابع املدير برنامج رض:٢٥- ٤ الشكل worker تابع العامل ٢.٢.٥.٤

، ثم حيسب اجلداء الداخيل لسطر املصفوفة c، ثم يستقبل سطرا من املصفوفة bيبدأ العامل بضبط قيمة الشعاع يقوم العامل بتكرار هذا حتى . قم السطر لتعريف رtag، ثم يعيد النتيجة إىل املدير مستخدما الوسم bمع الشعاع

.0املعرفة بالوسم ) ال مزيد من العمل(يستقبل رسالة void worker_code( void ) { double b[SIZE], c[SIZE]; int i, row, myrank; double dotp; MPI_Status status; for ( i = 0; i < SIZE; i++ ) /* (arbitrary) b initialization */ b[i] = 1.0; MPI_Comm_rank( MPI_COMM_WORLD, &myrank ); if ( myrank <= SIZE ) { MPI_Recv( c, SIZE, MPI_DOUBLE, 0, MPI_ANY_TAG, MPI_COMM_WORLD, &status ); while ( status.MPI_TAG > 0 ) { row = status.MPI_TAG - 1; dotp = 0.0; for ( i = 0; i < SIZE; i++ ) dotp += c[i] * b[i]; MPI_Send( &dotp, 1, MPI_DOUBLE, 0, row + 1, MPI_COMM_WORLD ); MPI_Recv( c, SIZE, MPI_DOUBLE, 0, MPI_ANY_TAG, MPI_COMM_WORLD, &status ); } } }

ج رضب مصفوفة بشعاع، تابع العامل برنام :٢٦- ٤ الشكل

حتليل الربنامج ٣.٥.٤ إن إضافة املزيد من .إجرائية مدير وإجرائية عامل: األقل حتى يعملهذا الربنامج تشغيل إجرائيتني عىل يتطلب

نستطيع إجراء حتليل ريايض لكلفة احلسابات ! لن يؤدي لزيادة الرسعة لسوء احلظ) يف هذا التطبيق(العامل computation وكلفة االتصاالت بني اإلجرائيات communication العاملعند زيادة عدد لنرى ما سيحصل.

.دأ بتحليل وصفي للمسألة ثم سنقوم بتحليل ريايض مبسطسنبسينقص حجم احلساب املؤدى من كل عامل، وبام أهنم يعملون عىل التوازي يفرتض هبذا إن زيادة عدد العامل

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

يف حالة مصفوفة مربعة من . لنحسب أوال عدد عمليات الفاصلة العائمة يف مسألة رضب مصفوفة بشعاع عمليات بالتايل يكون عدد. مجعn-1 عملية رضب و n جداء داخيل، كل منها يتطلب n علينا حساب nاحلجم

nnnnnnnالفاصلة العائمة هو −=−×=−+× هو الوقت الذي يستغرقه املعالج Tcalc إذا كان .))1(()12(22 سيكون وقت احلساب الكيل مساويا إلجراء عملية فاصلة عائمة واحدة

calcTnn )2( 2 ثانيا، سنحسب عدد .−سنهمل يف هذا التحليل البسيط أثر طول (. مة واحداملعرفة بإرسال متحول فاصلة عائ) اإلرسال(عمليات التبادل

ألننا نفرتض أنه ال يتم إرساله من املدير bوسنرتك كلفة إرسال الشعاع ). MPIالرسالة واحلجم اإلضايف لرتويسة إذا . واستقبال جواب اجلداء الداخيل يف كل مرةaعلينا إرسال كل صف من . يف خطوة سابقة حملياوإنام يتم حسابه

nnnnnسيكون عدد متحوالت الفاصلة العائمة املتبادلة هو +=+× هو زمن تبادل متحول Tcommإذا كان . )(2commTnnواحد، سيكون زمن التبادالت الكيل هو )( 2 : نسبة زمن التبادل إىل زمن احلساب هي بالتايل. +

×

+

calc

comm

TT

nnnn

2

2

2

يظهر . بجعل حجم املسألة أكربيمكن ختفيض نسبة التبادل إىل احلساب إىل الصفر تقريبايف الكثري من احلسابات أي أننا نتوقع أن متنع . 1/2 إىل الالهناية يسعى احلد اليساري إىل nعندما تسعى . حتليلنا أهنا ليست هي احلالة هنا

. حالة املسائل كبرية احلجمكلفة التبادالت هذه اخلوارزمية من إظهار ترسيع جيد يف األداء، حتى يف مراجع الفصل ٦.٤

[1] P. Luszczek et. al, Introduction to the HPC Challenge Benchmark Suite, 2005; (http://icl.cs.utk.edu/projectsfiles/hpcc/pubs/hpcc-challenge-benchmark05.pdf).

[2] P. Luszczek et. al, The HPC Challenge (HPCC) Benchmark Suite, In proceedings of SC06, Florida, November 12, 2006; (http://icl.cs.utk.edu/projectsfiles/hpcc/pubs/sc06_hpcc.pdf).

[3] J. J. Dongarra, The HPC Challenge Benchmark: A Candidate for Replacing LINPACK in the TOP500, In proceedings of 2007 SPEC Benchmark Workshop, Austin, January 21, 2007; (http://www.spec.org/workshops/2007/austin/presentations.htm).

[4] HPC CHALLENGE; (http://icl.cs.utk.edu/hpcc/index.html). [5] Effective Bandwidth (b_eff) Benchmark;

(http://www.hlrs.de/organization/par/services/models/mpi/b_eff/).

[6] W. Gropp et. al, Beowulf Cluster Computing with Linux 2nd ed, MIT Press, 2003. [7] Jacco Bikker, Raytracing: Theory & Implementation,

http://www.devmaster.net/articles/raytracing_series/part1.php retrieved on May 17, 2008.

[8] G. Scott Owen, Raytracing, http://www.siggraph.org/education/materials/HyperGraph/raytrace/rtrace0.htm retrieved on May 17, 2008.

[9] Ingo Wald, Real Time Ray Tracing and Interactive Global Illumination, Computer Graphics Group, Saarland University, May 2004

[10] James D. Foley, Andries van Dam, Steven K. Feiner, John F. Hughes, Computer Graphics Principles and Practice, July 2000

االستنتاجات ١.٥نجد بعد عرض التطبيقني األخريين يف الفصل املايض أن الربجمة التفرعية قد تكون حال ناجعا ومرغوبا يف

.بعض احلاالت، ولكنها قد تكون عىل العكس من ذلك يف حاالت أخرىمن اهلام هنا مالحظة أن نصف عمر التطبيقات التفرعية أقرص من مقابالهتا التسلسلية، ألن أي تغري يف البنية

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

أن Heterogeneous ، ويعني تنفيذ التطبيق نفسه عىل عنقود هجني Homogeneousكون العنقود املستخدم متامثال طيات، وسيؤدي ذلك إىل هدر قدرة العقد األقوى التي ستنتهي العقد بمختلف قدراهتا ستعالج احلجم نفسه من املع

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

سيكون هذا العبء مربرا عند استخدام . عبء إضايف يف االتصالالعاملة التي تنتهي باكرا، وسيؤدي ذلك إىل .عنقود هجني، ولكنه لن يكون كذلك يف حالة العنقود املتامثل

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

التوصيات ٢.٥يوفر عنقود بيوولف فرصة كبرية يف املؤسسات البحثية لالستفادة من املخابر واحلواسب املتوفرة يف احلصول

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

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

يم العناقيدنقاط هامة يف تصم ١.٢.٥املهامت التي سينفذها و، سيستخدم فيهانظام عنقودي هي حتديد األغراض التي أي تصميم يف إن اخلطوة األوىل

:يف تنفيذ عنقود حيقق أعىل كفاءة ممكنةيكون مفيدا ساإلجابة عن األسئلة التالية إن .تبعا للتطبيقات املختلفة ماهي خلفية مستثمري النظام؟ •

ن ذلك سيسهل عملية اختاذ القرارات ألرفة احتياجات املستثمرين املحتملني للنظام، من املهم معاملتعلقة بعدة جوانب تقنية وإدارية يف مرحلة التصميم، كام أنه سيساعد يف جتنب التعارض عند

.االستخدام

ما هي كثافة استخدام العنقود؟ •عليه، أم أنه للوصول إليه مرين ثابت من العمل مع سباق املستثبمعدل هل سيستخدم العنقود

سيستخدم يف مناسبات معينة عند ظهور معضالت كبرية بحاجة إىل حل؟ وهل هناك أولويات للمهام أم ال؟هلذه املهام وهل ستستخدم كامل إمكانيات النظام ؟املنفذة أم ال

تعمل عىل النظام؟سما هي الربجميات التي •األول بتحديد نظام التشغيل الذي سوف يقدم يتعلق .نييمكن اإلجابة عن هذا التساؤل عىل جزئ

أما اجلزء اآلخر فيتعلق بنوعية و ؛ بالعتاد املاديةات عىل املستوى املنخفض واملرتبطالعديد من اخلدم .التطبيقات اخلاصة باملستثمرين، وما هي املتطلبات الواجب توفريها عىل هذا املستوى

ما مقدار التحكم الذي حتتاج إليه؟ • .يرتبط مقدار التحكم الذي حتتاج إليه بشكل وثيق بالتطبيق الذي سيتم تشغيله عىل العنقود

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

؟لتطبيق حمددخمصص أنه جلميع أم ام اأمهل العنقود متاح •بمعنى آخر، هل احلواسب التي يتألف منها العنقود خمصصة له فقط أم أهنا ستستخدم من أجل

عادة ما تستخدم احلواسب املكتبية يف املؤسسات أو اجلامعات خالل فرتة النهار مهامت أخرى؟ .حلول الفرتة املسائيةبما كعقد من عنقود تستثمر هالكنولتخديم خمتلف املستخدمني،

ما هي املصادر التي يعتمد عليها العنقود؟ •؟ خدم األجهزة القديمة واملعدات املتوفرة سابقاتهل سيتم رشاء أجهزة ومعدات جديدة أم ستس

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

عمليات النفاذ إىل العنقود؟ستدار كيف • ؟)مثال اإلنرتنتعن طريق (هل ستكتفي بالنفاذ املحيل أم أنك بحاجة إىل أحد أنواع النفاذ البعيد

بعيد، ما هي طبيعة هذا الالنفاذ العنقود عن باقي الشبكات املتوفرة؟ يف حال السامح بسيعزل هل النفاذ وما هي الصالحيات الواجب فرضها عليه؟

ما مدى التوسع الذي سيحظى به العنقود؟ •يف حال اختذ قرار بتوسيع النظام وضم جمموعة أخرى من احلواسب إليه، كيف سيتم التعامل مع

بحاجات احلجم جميات املستخدمة اإلضافية امللقاة عىل عاتق شبكة االتصال؟ وهل ستفي الرباألعباء يف هذا املجال؟ستطبق ما هي التعديالت التي ، أو بمعنى آخر؛للعنقوداجلديد

منية التي تنتابك؟ألما هي اهلواجس ا • ويتيح لك دكوتصميم عنقذلك سيبسط فجابة بنعم إلنت ا كاما هل تثق بمستثمري نظامك؟ إذا

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

العامل الذي سيحدد مدى إجرائيات احلامية التي ستتبعها هو حساسية . بدل تأمني كامل العنقود .دالبيانات التي يعاجلها العنقو

األعامل املستقبلية ٣.٥ عنقود المستوىعىل ١.٣.٥

توسيع العنقود ليضم عقدا أكثر بحيث يشكل استخدامه فارقا كبريا عىل الصعيد العميل • سيؤدي . سيتضمن ذلك مثال ظهور . ذلك بالطبع إىل جمموعة من التعديالت عىل الصعيدين العتادي والربجمي

.فة إىل توسعية نظام امللفات وبرجميات املراقبة واإلدارةاعتبارات احلرارة واستهالك الطاقة، باإلضا

عند استخدام عقد خمتلفة، وكذلك Load Balancingاستخدام أو تطوير برجميات ملوازنة احلمل • . للسامح باستخدام العنقود لتنفيذ عدة تطبيقاتSchedulingجلدولة املهام

.لويب، وما يتطلبه ذلك من اختاذ إجراءات أمنيةتطوير واجهة للسامح بالنفاذ إىل العنقود عن طريق ا •

عىل مستوى تطبيق التصيري ثالثي األبعاد ٢.٣.٥االنتقال من استخدام الكائنات األساسية احلالية إىل متثيل الكائنات باستخدام املثلثات، وبذلك يتم •

.جتاوز حمدودية األشكال التي يمكن أن حيوهيا املشهد

ودراسة إمكانية ، KDوفة عىل منهجية تعقب الشعاع مثل أشجار تطبيق خوارزميات األمثلة املعر • .تفريع هذه اخلوارزميات

.3dsقراءة ملفات دخل معيارية مثل •

.كتابة خرج التطبيق إىل ملف فيديو •

٣م بشكل يدويMPI ومكتبة SSHتنصيب نظام التشغيل وخدمة ١.١م ٣م Fedora Core Linuxتنصيب نظام التشغيل ١.١.١م ٥م SSHإعداد خدمة ٢.١.١م ٦م MPICH2تنصيب ٣.١.١م

٨م OSCARتنصيب النظام باستخدام حزمة ٢.١م ٨م متهيد ١.٢.١م ٨م إصدارات لينوكس املدعومة ٢.٢.١م ٩م متطلبات النظام ٣.٢.١م ٩م خطوات التنصيب ٤.٢.١م

١٦م HPCCحزمة االختبار ٣.١م ١٦م HPCC االختبار حزمةتنصيب ١.٣.١م ١٧م HPCCبنية ملف الدخل لـلحزمة ٢.٣.١م

TOP500

بشكل يدويMPI ومكتبة SSHتنصيب نظام التشغيل وخدمة ١.١مال تشمل . يف هذه الفقرة طريقة تنصيب نظام التشغيل مع املتطلبات األساسية فقط لتشغيل العنقودسنستعرض

امل فيام بعد لتنصيب كOSCARيب برامج اإلدارة واملراقبة، ألننا سنستخدم حزمة هذه الفقرة طريقة تنصنورد هنا األسلوب اليدوي لنأخذ فكرة عن طبيعة تنصيب نظام لينوكس و و .متطلبات العنقود بطريقة سلسة

.هتنصيب احلزم الربجمية في Fedora Core Linux التشغيلتنصيب نظام ١.١.١م head node الرئيسية ةالعقد النظام عىل تنصيب ١.١.١.١م

بحجـم ) unallocatedغري خمصصة (قمنا بتحديد مساحة فارغة : من القرص الليزري مبارشةالتنصيب وبعد اإلقالع من القرص الليزري اخرتنا أن يقوم برنامج التنصيب باستخدام املساحة . 20GBيزيد عن

).default layout(رتايض الفارغة إلنشاء األقسام الالزمة عىل القرص الصلب بالشكل االف

الثانويةعقد التنصيب النظام عىل ٢.١.١.١م .وذلك باستخدام التنصيب عرب الشبكة

:NFS serverإعداد العقدة الرئيسية كمخدم لنظام امللفات الشبكي .١ .إنشاء دليل جديد لنضع فيه ملفات تنصيب النظام .١

[root@headNode ~]# mkdir /setup . قرص التنصيب إىل هذا الدليلنسخ كافة امللفات املوجودة عىل .٢

[root@headNode ~]# cp –ar /mnt/cdrom /setup ليتضمن اسم الدليل السابق ملـشاركته عـرب الـشبكة، مـع أسـامء etc/exports/حترير ملف .٣

قـراءة –قـراءة (التي حيق هلا الوصول إليه مع ذكر نـوع الـصالحية ) أو عناوينها(األجهرة ..).-وكتابة

/setup *(ro) نضع إشـارة ( ntsysv عن طريق األمر iptables املسامة firewallإلغاء خدمة اجلدار الناري .٤

.)بجانب اسم اخلدمة املطلوب تفعيلها عند اإلقالع .إيقاف خدمة اجلدار الناري .٥

[root@headNode ~]# /sbin/service iptables stop . nfsثم اختيار ntsysv عن طريق األمر nfsتفعيل خدمة .٦ ) إن كان مشغالrestartأو إعادة تشغيله (nfs serviceتشغيل .٧

[root@headNode ~]# /sbin/service nfs start :إعداد قرص اإلقالع الليزري .٢

. الليزري إىل القرص الصلب التنصيب من قرصimages/boot.iso/ننسخ امللف .١ .ثم نضغط زر النسخ) neroمثل (نفتح امللف باستخدام برنامج نسخ األقراص الليزرية .٢

:تنصيب النظام عىل بقية العقد .٣

.نقوم بإقالع األجهزة من قرص اإلقالع الذي تم إعداده .١ .Englishنختار لغة التنصيب .٢ .NFS imageنختار التنصيب باستخدام .٣

١-١ الشكل ييلالعنونة يف الشبكة كامنضع إعدادات .٤

٢-١ الشكل الذي نرغب بإعطائه للعقدة يف أول حقل مـع القنـاع الـشبكي IP addressندخل العنوان .٥

Netmaskوندخل عنوان املخدم يف احلقلني الثاين والثالث .

٣-١ الشكل

setup/ ومسار دليل ملفات التنصيب IP addressندخل عنوان املخدم .٦

٤-١ الشكل . ونتبع التعليامت التي تظهر عىل الشاشةنتابع إجراءات التنصيب االعتيادية .٧

SSH خدمة إعداد ٢.١.١م .، ونشغلها إن مل تكن تعملsshنفحص حالة اخلدمة .١

[root@headNode root]# /sbin/service sshd status

:IP addressليقوم برتمجة اسم العقدة إىل عنوان etc/hosts/نقوم بإعداد ملف .٢127.0.0.1 localhost.localdomain localhost 192.168.1.2 p500.ab p500 192.168.1.3 p300.ab p300 192.168.1.110 beshr.ab beshr 192.168.1.253 ahmad.ab ahmad

. نقوم بتجربة الدخول إىل أحد العقد .٣[root@headNode root]# ssh p500 The authenticity of host 'p500 (192.168.1.2)' can't be established. RSA key fingerprint is 98:42:51:3e:90:43:1c:32:e6:c4:cc:8f:4a:ee:cd:86 Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'p500,192.168.1.2' (RSA) to the list of known hosts. root@p500's password: Last login: Sun Sep 9 11:24:09 2007 [root@p500 root]#

. لتعمل بدون طلب كلمة املرور كل مرةSSHنقوم بإعداد خدمة .٤[cluster@headNode cluster]$ ssh-keygen -b1024 –trsa Generating public/private rsa key pair. Enter file in which to save the key (/home/cluster/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/cluster/.ssh/id_rsa. Your public key has been saved in /home/cluster/.ssh/id_rsa.pub. The key fingerprint is: 2d:c8:d1:e1:bc:90:b2:f6:6d:2e:a5:7f:db:26:60:3f cluster@headNode

.ننسخ ملف املفتاح العام إىل كافة العقد التي نريد الدخول إليها بدون كلمة مرور .٥[cluster@headNode cluster]$ cd .ssh [cluster@headNode cluster]$ ls -a . .. id_rsa id_rsa.pub known_hosts [cluster@headNode .ssh]$ cp id_rsa.pub authorized_keys2 [cluster@headNode .ssh]$ chmod go-rwx authorized_keys2 [cluster@headNode .ssh]$ chmod 755 ~/.ssh [cluster@headNode .ssh]$ scp authorized_keys2 p500:/home/cluster/.ssh [cluster@headNode .ssh]$ scp authorized_keys2 p300:/home/cluster/.ssh ...

. إىل كافة العقدetc/hosts/ننسخ ملف .٦[root@headNode /]# scp /etc/hosts p300:/etc/ ...

MPICH2تنصيب ٣.١.١م .clusterنفرتض أن اسم املستخدم الذي نعمل عليه هو

:فك ضغط امللف .١$ tar xfz mpich2-xx.tar.gz

. هو رقم النسخةxxحيث الذهاب إىل الدليل الناتج عن العملية السابقة .٢

$ cd mpich2-xx :طلب التعليامت التاليةن .٣

$ ./configure $ make

:rootنقوم بتنفيذ التعليمة التالية بعد تبديل املستخدم إىل .٤# make install

موجودة ضمن مـسار االفـرتايض للتنفيـذ، MPICHبعد انتهاء التنصيب تأكد من أن التعليامت اخلاصة بـ .٥ :ايل إىل هنايتهوقم بإضافة السطر الت etc/profile/افتح امللف لذا

PATH=/home/cluster/mpich2-xx/bin:$PATH export PATH

اخلاص باملستخدم، ونغري سامحيته بحيث ال يستطيع غرينا homeيف الدليل mpd.conf.نقوم بإنشاء امللف .٦ .التعامل معه

$ cd $ touch .mpd.conf $ chmod 600 .mpd.conf

:ونضع فيه السطر التايلsecretword=xxx

. هي كلمة الرسxxxحيث .نعيد اخلطوات السابقة عىل كل عقدة من عقد العنقود .٧، جيب أن توجد نسخة من هـذا الربنـامج عـىل MPICH2لتنفيذ برنامج عىل جمموعة من احلواسب بواسطة .٨

سنسمي دليل املـشاركة . كل حاسب، وأحد طرق حتقيق ذلك هي إنشاء دليل مشاركة عىل العقدة الرئيسيةshared ونضعه عىل الدليل home اخلاص باملستخدم cluster.

$ mkdir /home/cluster/shared $ chmod 777 /home/cluster/shared

هنـاك حاجـة لتغيـري تكـنلن حتتاج لتغيري السامحية االفرتاضية لدليل املـشاركة مـا مل : مالحظة .حمتوياته من أحد العقد غري العقدة الرئيسية

بإضافة سطر حيوي اسـم املجلـد املـشارك ثـم أسـامء etc/exports/، ونعدل امللف rootنبدل إىل احلساب .٩ :العقد وسامحية الوصول مفصولة بفراغات

/home/cluster/shared pc01(rw,sync) pc02(rw,sync) … .nfsثم نعيد تشغيل خدمة

etc/fstab/ة، ونعـدل امللـف عىل كل من العقد املتبقيـhome/cluster/shared/نقوم اآلن بإنشاء الدليل .١٠ :ليتضمن السطر التايل) rootبعد تبديل املستخدم إىل (عىل كل منها

headNode:/home/cluster/shared /home/cluster/shared nfs rsize=8192,wsize=8192,timeo=14,intr

:ثم نقوم بعد ذلك بتنفيذ التعليمة التالية عىل كل من العقد .١١# mount /home/cluster/shared

بالشكل املناسب كي نـتمكن مـن التعامـل مـع العقـد etc/hosts/ال بد من إعداد امللف : تذكر .املختلفة باستخدام أسامئها بدل عناوينها

ضـمن دليـل mpd.hosts عىل العقد املوجودة ضمن العنقـود ننـشئ ملفـا نـسميه MPICH2لكي يتعرف .١٢ : اسم يف كل سطر–) وينهاأو عنا(املشاركة، وحيتوي فيه أسامء العقد

headNode pc01

.mpi.h ويستخدم املكتبة C لترصيف برنامج مكتوب بلغة mpiccنستخدم التعليمة .١٣ . mpirunولتنفيذ الربنامج الناتج عن التعليمة السابقة نستخدم التعليمة .١٤

$ mpicc -c example.c $ mpicc –o run *.o $ mpirun -np 5 –machinefile mpd.hosts ./run

وهو عدد مستقل عـن عـدد العقـد الفعالـة ( هو عدد اإلجرائيات التي ستنفذ بشكل متواز np-ن اخليار إ .)MPIالتي تستخدم

OSCARتنصيب النظام باستخدام حزمة ٢.١م متهيد ١.٢.١م

ا يف ه التفرعية ومجعفضل احلزم الربجمية يف اإلدارة واملراقبة ومكتبات الربجمةأل باختيارها OSCARمتتاز حزمة . تقوم بتنصيب النظام عىل مجيع العقد الثانوية من خالل العقدة الرئيسية وبطريقة سلسة وسهلةوحزمة واحدة،

من قبل أوسكاربنيت حزمة . لعملية بناء العناقيدstandard إىل جعلها معيارا أوسكارويسعى مصمموا حزمة

Open Cluster Grouphttp://www.openclustergroup.org لية عم وهي جمموعة غري رسمية اختصت بتبسيطحظيت هذه املجموعة عرب السنني بالدعم من كربى املنظامت . استخدامهاتنصيب العناقيد وتوسيع جمال

ير احلزمة لتواكب التطورات وما زالت تقوم بدعم وتطو،Dell, IBM, Intel, NCSA, ORNL: والرشكات مثل .يف جمال العناقيد

.C3, Ganglia, MPICH, SIS: العديد من احلزم الربجمية، من أبرزهاأوسكارتتضمن وسنورد فيام . تقدم احلزمة دليل تنصيب واستعامل متوفرين عىل الويب، جيب قراءهتم بعناية قبل تنصيب احلزمة

دليل التنصيب موجود عىل الصفحة . ناء تنصيب النظام عىل عنقودنااتبعناها أثيأيت ملخصا للخطوات التي http://svn.oscar.openclustergroup.org/trac/oscar/wiki/installguide/default.htm

إصدارات لينوكس املدعومة ٢.٢.١مDistribution and Release Architecture Status Known Issues

RedHat Enterprise Linux 4 x86 - x86_64 Fully supported None

RedHat Enterprise Linux 5 x86 - x86_64 Fully supported None

Fedora Core 7 x86 - x86_64 Supported* UYOK workaround

Fedora Core 8 x86 - x86_64 Supported* UYOK workaround

Yellow Dog Linux 5.0 ppc64 Fully supported None

openSUSE Linux 10.2 x86_64 Supported* Manual installation of dependencies

لبات النظاممتط ٣.٢.١م متطلبات العقدة الرئيسية ١.٣.٢.١م

.إذا مل يكن إصدار لينوكس املستخدم يفرض متطلبات أعىل من هذه، فاملتطلبات اآلتية كافية لعمل العنقود . أو أعىلi586معالج بنتيوم أو ما يعادله .١ .TCP/IPبطاقة شبكة تدعم .٢لشبكة اخلارجية سنحتاج إىل بطاقة إذا كانت العقدة الرئيسية ستعمل كموجه بني شبكة العنقود وا .٣

.أخرىشبكة يف (4GB – 2GB under / and 2GB under /varمساحة فارغة عىل القرص الصلب بمقدار .٤

لوحده غري املساحة 15GB عن تزيد مساحةFedora Core 8نظام لينوكس اإلصدار يتطلب احلقيقة، ).أوسكارالتي يتطلبها

.العقدة الرئيسيةنسخة لينوكس منصبة وشغالة عىل .٥

متطلبات العقد الثانوية ٢.٣.٢.١م . أو أعىلi586معالج بنتيوم أو ما يعادله .٦ .TCP/IPبطاقة شبكة تدعم .٧ .PXEسواقة ليزرية أو بيوز تدعم اإلقالع عىل الشبكة .٨ بمسح مجيع حمتويات أوسكار سيقوم. عىل األقل2GBمساحة فارغة عىل القرص الصلب بمقدار .٩

.النظام القرص الصلب قبل تنصيب

خطوات التنصيب ٤.٢.١م عىل العقدة الرئيسية لينوكستنصيب نظام ١.٤.٢.١م

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

فوجدنا أن بعض األنظمة حتتاج fedoraproject.orgراجعنا موقع . مل ثم خيبرنامج اإلقالعل نواة حيممالنظا فأعدنا إقالع العقدة الرئيسية وعند ظهور شاشة ،لتمرير معامل خاص إىل النواة عند اإلقالع من القرص الليزري

Enter وضعطنا مفتاح linux edd=skipmbr : وكتبنا التعليمةEscاإلقالع اخلاصة بقرص لينوكس ضغطنا مفتاح .فتم اإلقالع بسالسة، وتابعنا تنصيب النظامقمنا بإعطاء اجلهاز الرئييس عنوانا ثابتا Static IP Address واسامmaster.a2b.

تنصيب حزمة أوسكار عىل العقدة الرئيسيةاإلعداد ل ٢.٤.٢.١م .وات، نوردها فيام يأيتقبل البدء بعملية تنصيب أوسكار نحتاج للقيام بعدة خط

.rootلذلك سجل الدخول باسم . للقيام هبذه العمليةrootحتتاج إىل صالحيات

:eth0أدخل التعليمة اآلتية وابحث عن . تأكد من عمل بطاقة الشبكة وأهنا تأخذ عنوانا .١

# ifconfig : مفعلة قم بتفعيلها كاآليتeth0إذا مل تكن

: كاآليتetc/sysconfig/network-scripts/ifcfg-eth0/حرر امللف DEVICE=eth0 BOOTPROTO=none BROADCAST=10.255.255.255 IPADDR=10.1.1.1 NETMASK=255.0.0.0 ONBOOT=yes TYPE=Ethernet

:ثم أدخل التعليمة# ifup eth0

: بإدخال التعليمةeth0 من عمل تأكدثم # ifconfig

SELINUX=disabled ووضع etc/selinux/config/ بتحرير امللف SELinuxقم بإيقاف .٢ : ليصبح بالشكل اآليتetc/hosts/حرر امللف .٣

127.0.0.1 localhost.localdomain localhost 10.1.1.1 master.a2b master 1:: localhost6.localdomain6 localhost6

ه وغري PermitRootLogin وابحث عن السطر الذي يبدأ بـetc/ssh/sshd_config/افتح امللف .٤ ):من بداية السطر# احذف إشارة (ليصبح متاما كاآليت

PermitRootLogin Yes extra/انسخ ملفات تنصيب حزمة أوسكار اخلاصة بإصدار لينوكس املثبت لديك إىل دليل اسمه .٥

# mkdir /extra # cp oscar-repo-common-rpms-5.1b2.tar.gz /extra # cp oscar-repo-fc-8-i386-5.1b2.tar.gz /extra

: كاآليتextra/fc8/ضع قرص تنصيب نظام لينوكس يف السواقة وانسخ مجيع امللفات إىل .٦

# cd /media/Fedora\ 8\ i386\ DVD/ # mkdir /extra/fc8 # cp -r * /extra/fc8/

etc/yum.repos.d/fedora-updates.repo/ و etc/yum.repos.d/fedora.repo/حرر امللفات .٧ : وأضف السطرetc/yum.repos.d/livna.repo/و

file:///extra/fc8/ :حتت السطر املكتوب فيه

baseurl= . مقطع موجود يف بداية امللفات أولفقط يف

:نفذ التعليامت اآلتية .٨

mkdir -p /usr/tftpboot/rpm ln -s /usr/tftpboot /tftpboot mkdir -p /var/lib/systemimager mkdir /tftpboot/oscar mkdir /tftpboot/distro cp /extra/oscar-repo-* /tftpboot/oscar/ cd /tftpboot/oscar/ tar xzfC oscar-repo-common-rpms-5.1b2.tar.gz /tftpboot/oscar/ tar xzfC oscar-repo-fc-8-i386-5.1b2.tar.gz /tftpboot/oscar/ cd /tftpboot/oscar/common-rpms/ rpm -ivh createrepo-0.4.3-5.1e.noarch.rpm cd tftpboot/oscar/common-rpms/ rpm -ivh yume* cd /tftpboot/distro ln -s /extra/fc8/Packages/ ./fedora-8-i386

تنصيب حزمة أوسكار عىل العقدة الرئيسية ٣.٤.٢.١م :ابدأ معالج تنصيب أوسكار بالتعليمة .١

cd /opt/oscar/ ./install_cluster eth0

: ستظهر نافذة تنصيب أوسكار السابقةبعد تنفيذ التعليمة

٥-١ الشكل زم التي تريد تنصيبها، قمنا باختيار مجيع احلزم ما عدا الختيار احلStep 1اضغط عىل الزر .٢

JobMonarch, sge, oscar-ha ألهنا كانت تتطلب حزم مفقودة يقوم أوسكار بطلبها من اإلنرتنت ولكننا ال نمتلك اتصال إنرتنت رسيع ولن نستخدم هذه احلزم أصال لذلك قمنا

.بتجاهلها

٦-١ الشكل .حزم املخدم لتنصيب Step 3: Install OSCAR Server Packagesاضغط عىل الزر .٣

: ستظهر نافذة شبيهة باآلتيةStep 4: Build OSCAR Client Imageاضغط عىل الزر .٤

٧-١ الشكل عقد الثانوية والذي سيحدد طريقة تقسيم لقرص الصلب وطريقة توزيع تستطيع هنا ختصيص ملف صورة ال

إعادة (حيدد ما تقوم العقدة الثانوية بفعله بعد انتهاء تنصيب الصورة عليها و) ثابت، ديناميكي(عناوين العقد .)، أو إيقاف اجلهازbeepإقالع، أو إصدار صوت

:الذي حيوي سطرا لكل قسملتخصيص تقسيم القرص الصلب جيب حترير ملف التقسيم و<partition> <size in megabytes> <type> <mount point> <options>

.استخدام كامل املساحة املتبقية يعني <size in megabytes> مكان حجم القسم *إن وضع

:نورد فيام ييل مثاال مللف تقسيم القرص الصلب/dev/sda1 100 ext3 /boot defaults /dev/sda5 4096 swap /dev/sda6 * ext3 / defaults nfs_oscar:/home - nfs /home rw

تسغرق هذه العملية بعض الوقت . لبناء ملف الصورةBuild Imageبعد االنتهاء من التخصيص اضغط الزر ).عدة دقائق(

:Step 5: Define OSCAR Clientsاضغط عىل الزر .٥

BaseNameاحلقل . تستطيع إضافة عقد أكثر فيام بعدو حيتوهيا العنقود،سنقوم هنا بتعريف العقد الثانوية التي Starting Number . حيوي عدد العقد التي نود إضافتهاNumber of Hosts. حيوي االسم األسايس للعقد الثانوية

. )ةعدد مراتب رقم العقد( عدد األصفار التي جيب إضافتها قبل رقم العقدة Padding. رقم العقدة األوىلStarting IPعنوان العقدة األوىل .

: ستكون أسامء العقد كاآليتPadding: 2 ووضعنا 100، عدد العقد Base Name: oscarnodeلو وضعنا oscarnode001, oscarnode002,…,oscarnode100

.Close ثم Add Clientsبعد االنتهاء من التخصيص نضغط الزر

٨-١ الشكل :Step 6: Setup Networkingاضغط عىل الزر .٦

اخلاصة ببطاقات الشبكة للعقد الثانوية حتى يقوم خمدم MACإعطاء برنامج إعداد أوسكار عناوين جيب علينا DHCPإما . املوجود مع لينوكس بإعطاء العقد الثانوية عناوين لإلقالع عىل الشبكة والبدء بعملية تنصيب النظام

. بشكل آيلMACأو نقوم بجمع عناوين . Import MACs from يف ملف ونختار MACأن نقوم بكتابة عناوين ع العقد الثانوية ونجعلها تبدأ نقوم بتشغيل مجي ثم Start Collecting MACsنضغط عىل MACجلمع عناوين

وسيلتقط IPلن تقوم العقد باإلقالع يف هذه املرحلة وإنام سرتسل طلبات ألخذ عنوان . بعملية إقالع عىل الشبكة

بعد . منها ويظهرها يف اجلانب األيمن من النافذةMACبرنامج إعداد أوسكار هذه الطلبات ويستخلص عناوين .Assign All MACsثم نضغط . Stop Collectiong MACs نضغط MACاالنتهاء من مجع عناوين

. لتهيئة خمدم صورة تنصيب النظام عىل العقد الثانويةEnable Install Modeنضغط زر إذا كان هناك بعض العقد التي ال . Setup Network Boot ثم نضغط زر Enable UYOKنضع إشارة بجانب

لقرص iso الذي يقوم بتهيئة ملف Build Auto Install CDنضغط زر PXEمتلك خاصية اإلقالع عىل الشبكة :بالتعليمةنقوم بنسخ قرص اإلقالع . إقالع ليزري

cdrecord -v speed=2 dev=1,0,0 /tmp/oscar bootcd.iso . إقالع احلواسب عليه أو نقلعها عن طريق الشبكةنقوم بو

٩-١ الشكل نضغط زر . من العقدة الرئيسيةنستطيع مراقبة سري عملية تنصيب النظام عىل العقد الثانوية .٧

Monitor Cluster Deployment أين وصلت ( حيث تظهر نافذة حتوي أسامء العقد وحالتهاهر ، ونستطيع رؤية عملية التنصيب بالضغط املزدوج عىل اسم العقدة فتظ)يف عملية التنصيب

.نافذة حتوي ما يظهر عىل شاشة العقدة املختارة

يظهر يف نافذة مراقبة (ننتظر انتهاء مجيع العقد من التنصيب وننتظر إقالعها عىل النظام اجلديد .٨ Step 7: Complete Cluster ثم نضغط )REBOOTEDالتنصيب أمام أسامء مجيع العقد

Setup Step 8: Test Cluster Setupنضغط .٩

:جراء اختبارات لفحص عمل مجيع احلزم، ويظهر نتائج االختبارات كام ييليقوم بإ

١٠-١ الشكل .وهبذا نكون انتهينا من عملية تنصيب نظام العنقود عىل مجيع العقد

HPCCحزمة االختبار ٣.١م HPCCتنصيب حزمة االختبار ١.٣.١م

بتنصيبها وذلك . Fortran و Cنصيب، جيب التأكد أوال من وجود مجيع مكتبات املرصف قبل البدء بعملية الت .Fedora يف قرص نظام التشغيل RPMsبعد النفاذ إىل املجلد الذي حيوي عىل

%rpm –ivh compat-* %rpm –ivh *g77*

النفاذ إىل املجلد الذي بضبطها بعد ++Cو Fortran اخلاصة بدعم MPIثم نقوم بعد ذلك بالتأكد من مكتبات . يف النظامMPIعىل حيوي

%./configure –-enable –f77 -–enable cxx

: وهيHPCCيمكننا اآلن البدء بتنصيب املتطلبات األساسية اخلاصة لعمل احلزمة .Blas (Basic Linear Algebra Subprograms)مكتبة اجلرب اخلطي •

.C ،CBlasواجهة مكتبة اجلرب اخلطي بلغة •

.ATLAS (Automatically Tuned Linear Algebra Software) اخلطيجلربا لربامج الضبط اآليلمكتبة • hpccنفك ضغط امللف )١(

%tar zxf hpcc_1.2.0.tar.gz %cd hpcc_1.2.0/hpl

:Blas، ونبدأ باملكتبة املتطلبات األساسية داخل هذا املجلدضغط نفك )٢(

%tar zxf blas.tgz %cd blas %make

:CBlasثم ننتقل إىل %tar zxf cblas.tgz %cd cblas %ln -s Makefile.LINUX Makefile.in

: كامييلMakefile.Linuxبعدها نعدل امللف ، كام BLLIB ونسنده إىل املتحول Blas الذي نتج عن عملية ترصيف املكتبة blas_Linux .aننسخ مسار امللف

:بعد ذلك ننفذ التعليمة التالية. CBDIRاملتحول وونسنده إىل CBlasننسخ مسار املجلد %make all

.CBlas/lib/Linux موجود ف ي املسار Cblas_Linux.aوعندها سينتج ملف جديد هو : كام ييلATLASأخريا، نفك ضغط

%tar zxf atlas3.6.0.tgz %cd atlas

ادية، وذلك عن طرق أسئلة جيب ، ويتم فيها ضبط بعض حمددات النظام املmake بعدها ننفذ التعليمة :، اسمه حيدد من اخلطوات السابقة، ثم تنفذ التعليمة<arch>اإلجابة عنها، بعد ذلك ينتج ملف

%make install arch=<arch> .وبذلك نكون أهنينا اخلطوة الثانية

تار ملف ، ونخhpcc_1.2.0/ hpl/setup من املسار setupسنقوم يف هذه اخلطوة بالنفاذ إىل املجلد )٣(Make.Linux_pll_CBlas_gm وهو األنسب اعتامدا عىل املتطلبات السابقة ،Blas و CBlas و

ATLAS.بتعديل امللف ليضم مسار كل من امللفات الناجتة من املتطلبات األساسية، ومسار مكتبة ونقوم MPI.

:التاليةأخريا نقوم بتنفيذ التعليمة )٤(

%make arch=Make.Linux_pll_CBLAS_gm . وبالشكل املناسبmpirun، يتم تشغيله باستخدام التعليمة xhplعند ذلك سينتج ملف تنفيذي اسمه

HPCC لحزمةبنية ملف الدخل لـ ٢.٣.١م* Line 1: ignored * Line 2: ignored * Line 3: ignored * Line 4: ignored * Line 5: number of matrix sizes for HPL (and PTRANS) * Line 6: matrix sizes for HPL (and PTRANS) * Line 7: number of blocking factors for HPL (and PTRANS) * Line 8: blocking factors for HPL (and PTRANS) * Line 9: type of process ordering for HPL * Line 10: number of process grids for HPL (and PTRANS) * Line 11: numbers of process rows of each process grid for HPL (and PTRANS) * Line 12: numbers of process columns of each process grid for HPL (and PTRANS) * Line 13: threshold value not to be exceeded by scaled residual for HPL (and PTRANS) * Line 14: number of panel factorization methods for HPL * Line 15: panel factorization methods for HPL * Line 16: number of recursive stopping criteria for HPL * Line 17: recursive stopping criteria for HPL * Line 18: number of recursion panel counts for HPL * Line 19: recursion panel counts for HPL * Line 20: number of recursive panel factorization methods for HPL * Line 21: recursive panel factorization methods for HPL * Line 22: number of broadcast methods for HPL * Line 23: broadcast methods for HPL * Line 24: number of look-ahead depths for HPL * Line 25: look-ahead depths for HPL * Line 26: swap methods for HPL * Line 27: swapping threshold for HPL * Line 28: form of L1 for HPL * Line 29: form of U for HPL * Line 30: value that specifies whether equilibration should be used by HPL * Line 31: memory alignment for HPL * Line 32: ignored

* Line 33: number of additional problem sizes for PTRANS * Line 34: additional problem sizes for PTRANS * Line 35: number of additional blocking factors for PTRANS * Line 36: additional blocking factors for PTRANS

MPI

MPI

: حزمة موجودة يف الصفحة اآلتية١٠٠هذه جمموعة من احلزم الربجمية منتقاة من حوايل Steven K. Baum, What's in NPACI Rocks and How Do I Use It?, Texas A&M University,

2004; (http://stommel.tamu.edu/~baum/npaci.html)

1. APPSPACK http://software.sandia.gov/appspack/

A package for an asynchronous parallel pattern search. APPS is an asynchronous parallel pattern search method for optimization. Pattern search uses only function values for optimization, so it can be applied to a wide variety of problems. Of particular interest to us are engineering optimization design problems characterized by a small number of variables and by expensive objective function evaluations (typically complex simulations that take minutes or hours to run). The name "pattern search" derives from the fact that a pattern of search directions is used to drive the search. Parallelism is achieved by dividing the search directions (and corresponding function evaluations) among the different processors. The asynchronous part comes about as a consequence of the fact that the search along each direction continues without waiting for searches along other directions to finish, in contrast to the standard parallel pattern search method.

2. CAM http://www.ccsm.ucar.edu/models/atm-cam/

The Community Atmosphere Model (CAM) serves as the atmospheric component of the Community Climate System Model (CCSM). CAM-2.0.1 is the latest in a series of global atmosphere models, previously known as the Community Climate Model (CCM), developed for the weather and climate research communities. CAM2 includes the new CCSM land surface model, the Community Land Model (CLM2.0). CLM2.0 replaces the previous land model, LSM1.

3. iMOOSE http://imoose.sourceforge.net/

A general purpose application framework for the development of Finite Element solvers and related tools. It mainly focuses on electromagnetic problems arising from the design of electrical machines.

4. MITgcm http://mitgcm.org/

The MITgcm (MIT General Circulation Model) is a numerical model designed for study of the atmosphere, ocean, and climate. Its non-hydrostatic formulation enables it to simulate fluid phenomena over a wide range of scales; its adjoint capability enables it to be applied to parameter and state estimation problems. By employing fluid isomorphisms, one hydrodynamical kernel can be used to simulate flow in both the atmosphere and ocean.

5. MPB http://ab-initio.mit.edu/mpb/

The MIT Photonic-Bands (MPB) package is a free program for computing the band structures (dispersion relations) and electromagnetic modes of periodic dielectric structures, on both serial and parallel computers. This program computes definite-frequency eigenstates of Maxwell's equations in periodic dielectric structures for arbitrary wavevectors, using fully-vectorial and

three-dimensional methods. It is especially designed for the study of photonic crystals (a.k.a. photonic band-gap materials), but is also applicable to many other problems in optics, such as waveguides and resonator systems. (For example, it can solve for the modes of waveguides with arbitrary cross-sections.

The features of MPB include: § full vectorial, 3-D calculation using iterative eigensolver techniques; § a direct, frequency-domain eigensolver to simultaneously obtain both eigenvalues

and eigenstates; § a targeted eigensolver that can compute the modes whose frequencies are closest to a

specific target frequency; § a scriptable user interface based on Guile; § support for arbitrary, anisotropic dielectric structures and non-orthogonal unit cells; § field output in HDF format; and § support for parallel machines via MPI.

6. PARPACK http://www.caam.rice.edu/ kristyn/parpack_home.html

ARPACK is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems. PARPACK is a parallel version of ARPACK that uses BLACS and MPI for parallelization. ARPACK software is capable of solving large scale symmetric, nonsymmetric, and generalized eigenproblems from significant application areas. The software is designed to compute a few (k) eigenvalues with user specified features such as those of largest real part or largest magnitude. Storage requirements are on the order of n*k locations. No auxiliary storage is required. A set of Schur basis vectors for the desired k-dimensional eigen-space is computed which is numerically orthogonal to working precision. Numerically accurate eigenvectors are available on request.

7. ParVox http://pat.jpl.nasa.gov/public/ParVox/

ParVox is a parallel volume rendering system using the splatting algorithm.

8. PIKAIA http://whitedwarf.org/index.html?parallel/&0

PIKAIA is a genetic algorithm based optimization program. It incorporates only the two basic genetic operators: uniform one-point crossover, and uniform one-point mutation. The encoding within PIKAIA is based on a decimal alphabet made of the 10 simple integers (0 through 9); this is because binary operations are usually carried out through platform-dependent functions in FORTRAN. Three reproduction plans are available: Full generational replacement, Steady-State-Delete-Random, and Steady-State-Delete-Worst. Elitism is available and is a default option. The mutation rate can be dynamically controlled by monitoring the difference in fitness between the current best and median in the population (also a default option). Selection is rank-based and stochastic, making use of the Roulette Wheel Algorithm. PIKAIA is supplied with a ranking subroutine based on the Quicksort algorithm, and a random number generator based on the minimal standard Lehmer multiplicative linear congruential generator.

9. PLANSO http://www.nersc.gov/research/SIMON/planso.html

Implements a Lanczos iteration for symmetric generalized eigenvalue problems.

MPI

10. SGOPT http://www.cs.sandia.gov/SGOPT/

The SGOPT optimization library provides an object-oriented interface to a variety of optimization algorithms, especially stochastic optimization methods used for global optimization. This includes a generic class hierarchy for optimization and optimization problems. This class hierarchy includes a generic notion of asynchronous parallel execution for optimization problems, which is used by many SGOPT optimizers.

SGOPT includes the following global and local optimization methods: § genetic algorithms PGAreal and PGAint; § evolutionary pattern search algorithms EPSA; § simulated annealing SAreal; § tabu search TSReal; § multistart local search MSreal; § stratified Monte Carlo sMCreal; § Solis-Wets local search SWOpt; and § local pattern search PatternSearch.

SGOPT stands for Stochastic Global OPTimization and for expensive optimization problems its global optimizers are best suited for identifying promising regions in the global design space. In multimodal design spaces, the combination of global identification (from SGOPT) with efficient local convergence (from a gradient-based algorithm) can be highly effective. The SGOPT methods are not gradient-based, which makes them appropriate for discrete problems as well as problems for which gradient information is unavailable or is of questionable accuracy due to numerical noise, etc.

11. Snark http://www.vpac.org/VDT/Geoscience/about/about_snark.php

An extensible framework for building finite element/particle-in-cell applications, customizations and extensions. It began as a redesign of Louis Moresi's Ellipsis FEM code, so one of its aims is to be a freely available, 3D, extensible, scalable and parallel version of Ellipsis. The key components of the framework are offering various methods of solving finite element method and particle in cell equations, modelling complex rheologies and allowing users to substitute their own, and controlling the precise set-up and application of initial and boundary conditions.

Snark was designed to run in parallel from its inception. Another of its advantage over many other physical solvers is its hybrid Finite-Element/Particle-In-Cell method, which can use fast implicit solving techniques, yet can also track the movement of material properties - such as the type of rock or mineral. Snark also comes with in-build modelling of several viscosity models, stress-dependence, and yielding, and allows the precise set-up of initial boundary and temperature conditions.

Top500

٢٠٠٧ ،ين الثاينباالعتامد عىل إصدار ترشwww.top500.org

Top500

Abstract With the increasing computational needs in research and other areas, computers are not

capable – with the current technologies – of doing the assigned tasks in reasonable durations. That launched a new approach in computing that depends on linking computers or processors together to have a higher computational power, which is called parallel computing.

Our project deals with one area of this approach – clustering. We linked a group of commodity computers using a Gigabit Ethernet, building a distributed system with open-source software, an architecture known as Beowulf cluster. Our cluster consists of three dual-core computers connected with a Gigabit Ethernet.

This cluster is used in 3-D rendering as a main application, which is one of the most popular distributed applications. That is because it needs a high computational power, and is much more faster when parallelized. We use this application to indicate the advantage we get using distributed computing.

We have got the fruit of our approach. Distributing the rendering application caused an almost linear speed-up. The serial solution took 9299 seconds to render 100 scenes. On the other hand, the parallel solution – using five worker processes and a manager to collect the results and write the outputs – took only 2040 seconds. That means that we have had a speed-up factor of 4.56 and an efficiency which equals 76%. We also measure the cluster's performance using standard benchmarks (HPCC), and performed 23.87 Gflops.

Damascus University Faculty of Mech. & Elect. Eng.

Computer & Automation Eng. Dept.

BUILDING & MANAGING AN HPC BEOWULF CLUSTER

AHMAD BAGHDADI

ABDULRAHMAN IDLBI

BESHR AL NAHAS

Submitted in partial fulfillment of the requirements of B.Sc. in Computer & Automation Engineering

Supervisor: Dr.Nizar Alhafez HIAST

May, 2008