السلام عليكم ...
أود سماع أفكاركم حول مشاريع صغيرة على منصة CUDA. هل لدى أحدكم فكرة معينة يود رؤيتها تطبق في العالم المتوازي و العالم المتتالي مع مقارنة بسيطة؟
الفكرة التي سأطبقها إن شاء الله, إن لم يكن هناك فكرة أكثر فائدة :sad: هي إيجاد الـ Transitive Closure لـ Undirected Graph(و Directed Graph بالمحصلة). هذه ستتضمن العديد من الأجزاء الجيدة و السهلة التطبيق, إضافة إلى أنها أكثر من مناسبة للعمل بشكل متوازي. إضافة إلى ذلك, سأقوم بمقارنة أداء النسخة المكتوبة على CUDA بنسخة مكتوبة بـ Standard Cpp و ربما بنسخة أخرى مكتبة بـ Boost.uBlas! الهدف هو التعرف على CUDA لا أكثر, و هذه مسألة يسهل كتابة برنامج متوازي لحلها. ربما أقوم بكتابة نسخة منقحة مثلاً ليكون رفع المصفوفات لأس ما باستخدام exponentiation by squaring أو ربما أتهور أكثر و أقوم بكتابة addition chain exponentiation و لكن لا أدري حقيقة إن كنت سأصل إلى هذه النقطة, ادعوا لنا بالتوفيق في تعلم CUDA :)
فائدة المشروع تكمن في أننا يمكن أن نستخدم الفكرة في التالي: تصور أن لدينا الأعضاء في الفريق العربي للبرمجة, و مع كل عضو لدينا قائمة بأصدقائه. نريد أن نقسم الأعضاء إلى disjoint subsets بحيث أن الأعضاء في أي مجموعة أصدقاء مباشرين أو غير مباشرين(صديق صديقك هو صديقك, و صديق صديق صديقك هو صديقك و هلم جرا). ببساطة, أي عضو في أي مجموعة ليس هناك علاقة مباشرة أو غير مباشرة بينه و بين أي عضو في أي مجموعة أخرى. يمكن أن يكون نظام للدعايات في الموقع, أو خلافه ربما من يستفيد من هكذا تحليل. عموماً هذه هي الفكرة!
تحياتي...

