🎓

CS 330 Project Plan Dashboard

🖥️

Aryam — Metrics & Tables Owner أريم — مالكة المقاييس والجداول

Works only from measurement data. Computes speedup, % improvement, and creates formatted results tables. تعمل فقط من بيانات القياس. تحسب التسريع ونسبة التحسين وتنشئ جداول النتائج المنسقة.

Metricsالمقاييس Tablesالجداول Speedup Calculationsحسابات التسريع
📊 Phase 1-7المراحل ١-٧
🛠️ Excel / Sheetsإكسل / شيتس

Responsibilitiesالمسؤوليات

Metricsمقاييس
  • Compute speedupحساب التسريع
  • Compute % improvementحساب نسبة التحسين
  • Create formatted results tablesإنشاء جداول النتائج المنسقة
  • Prepare tables for report insertionتحضير الجداول لإدراجها في التقرير

Step-by-Step Processالخطوات التفصيلية

Processالعملية
  • 1
    Import dataset from Shoug (Person 2).استيراد مجموعة البيانات من شوق.
  • 2
    Verify averages (if not already done).التحقق من المتوسطات إذا لم تُحسب مسبقاً.
  • 3
    Create main table: Threads | Avg Time | Speedup | % Improvementإنشاء الجدول الرئيسي: الخيوط | متوسط الوقت | التسريع | نسبة التحسين
  • 4
    Compute: Speedup = T(1)/T(n) and % Improvement = ((T1−Tn)/T1)×100الحساب: التسريع = T(1)/T(n) ونسبة التحسين = ((T1−Tn)/T1)×100
  • 5
    Create additional supporting table if needed (raw vs average).إنشاء جدول دعم إضافي عند الحاجة (خام مقابل متوسط).
  • 6
    Format tables professionally.تنسيق الجداول باحترافية.
  • 7
    Export final tables (Excel/PDF).تصدير الجداول النهائية (Excel/PDF).
  • 8
    Deliver tables to Layan and Rana.تسليم الجداول لليان ورنا.
📦 Deliverable📦 المُخرَج Final formatted results tables (Excel/PDF) جداول النتائج المنسقة النهائية (Excel/PDF)
✏️

Layan — Graphs & Performance Analysis Owner ليان — مالكة الرسوم البيانية وتحليل الأداء

Works from final results table. Creates graphs, identifies performance decrease point, and writes technical interpretation. تعمل من جدول النتائج النهائي. تُنشئ الرسوم البيانية وتُحدد نقطة انخفاض الأداء وتكتب التفسير التقني.

Graphsرسوم بيانية Performance Analysisتحليل الأداء Technical Writingكتابة تقنية
📈 Charts & Analysisمخططات وتحليل

Responsibilitiesالمسؤوليات

Analysisتحليل
  • Create required graphsإنشاء الرسوم البيانية المطلوبة
  • Identify performance decrease pointتحديد نقطة انخفاض الأداء
  • Write short technical interpretationكتابة تفسير تقني مختصر

Step-by-Step Processالخطوات التفصيلية

Processالعملية
  • 1
    Import final table from Aryam.استيراد الجدول النهائي من أريم.
  • 2
    Create graph: Threads vs Avg Execution Time.إنشاء رسم بياني: الخيوط مقابل متوسط وقت التنفيذ.
  • 3
    Create graph: Threads vs Speedup.إنشاء رسم بياني: الخيوط مقابل التسريع.
  • 4
    Label axes clearly.وضع تسميات واضحة للمحاور.
  • 5
    Identify thread count where Avg Time increases compared to previous count.تحديد عدد الخيوط التي يرتفع عندها متوسط الوقت.
  • 6
    Write short explanation: speedup trend, overhead causes, decrease point.كتابة شرح مختصر: اتجاه التسريع وأسباب الحمل الزائد ونقطة الانخفاض.
  • 7
    Export graphs as PNG.تصدير الرسوم البيانية بصيغة PNG.
  • 8
    Deliver graphs + explanation to Rana.تسليم الرسوم البيانية والشرح لرنا.
📦 Deliverables📦 المُخرَجات Graph images (PNG) + Performance interpretation paragraph صور الرسوم البيانية (PNG) + فقرة تفسير الأداء
📋

Danah — Code Modification Owner دانه — مالكة تعديل الكود

Fully independent. Modifies the Java program, ensures correctness, and freezes the final version before benchmarking. مستقلة تماماً. تُعدّل برنامج Java وتضمن صحته وتُجمّد النسخة النهائية قبل القياس.

JavaJava Code Modificationتعديل الكود Multithreadingتعدد الخيوط
Java JDK
🔒 Fully Independentمستقلة تماماً

Responsibilitiesالمسؤوليات

Developmentتطوير
  • Modify program to compute sum of cubesتعديل البرنامج لحساب مجموع المكعبات
  • Ensure array values are < 100التأكد من أن قيم المصفوفة أقل من 100
  • Make thread count configurable (1, 2, 4, 6, 8)جعل عدد الخيوط قابلاً للضبط (1، 2، 4، 6، 8)
  • Verify correctness (parallel == single-thread result)التحقق من الصحة (النتيجة الموازية == نتيجة الخيط الواحد)
  • Clean and comment the codeتنظيف الكود وإضافة التعليقات
  • Freeze final version before benchmarkingتجميد النسخة النهائية قبل القياس

Step-by-Step Processالخطوات التفصيلية

Processالعملية
  • 1
    Open existing Java program.فتح برنامج Java الموجود.
  • 2
    Modify computation logic to calculate x³.تعديل منطق الحساب لحساب x³.
  • 3
    Ensure random/generated values are strictly < 100.التأكد من أن القيم العشوائية/المولّدة أقل من 100 بالتأكيد.
  • 4
    Implement configurable thread count parameter.تطبيق معامل عدد الخيوط القابل للضبط.
  • 5
    Implement correctness check comparing multi-thread and single-thread result.تطبيق التحقق من الصحة بمقارنة نتيجتي تعدد الخيوط والخيط الواحد.
  • 6
    Compile and test functionality (not performance).تجميع واختبار الوظائف (وليس الأداء).
  • 7
    Clean and comment code clearly.تنظيف الكود وإضافة تعليقات واضحة.
  • 8
    Freeze file.تجميد الملف.
  • 9
    Deliver final file to Shoug.تسليم الملف النهائي لشوق.
📦 Deliverable📦 المُخرَج FinalParallelVersion.java
⚠️ Does NOT require: Machine specs, Performance data, Other team members' output لا يتطلب: مواصفات الجهاز، بيانات الأداء، مُخرَجات أعضاء الفريق الآخرين
📊

Shoug — Measurement & System Owner شوق — مالكة القياس والنظام

The ONLY person running official performance tests. Runs all thread configurations, records raw times, and exports the dataset. الشخص الوحيد الذي يُجري اختبارات الأداء الرسمية. تُشغّل جميع تكوينات الخيوط وتُسجّل الأوقات الخام وتُصدّر مجموعة البيانات.

Benchmarkingقياس الأداء System Specsمواصفات النظام Data Collectionجمع البيانات
Only Official Machineالجهاز الرسمي الوحيد

Responsibilitiesالمسؤوليات

Measurementقياس
  • Compile and execute final Java fileتجميع وتنفيذ ملف Java النهائي
  • Run 1, 2, 4, 6, 8 thread configurationsتشغيل تكوينات الخيوط 1، 2، 4، 6، 8
  • Repeat runs (recommended: 5 per configuration)تكرار التشغيل (موصى به: 5 لكل تكوين)
  • Record raw times & compute averagesتسجيل الأوقات الخام وحساب المتوسطات
  • Record full machine specificationsتسجيل مواصفات الجهاز الكاملة

Step-by-Step Processالخطوات التفصيلية

Processالعملية
  • 1
    Receive FinalParallelVersion.java from Danah.استلام FinalParallelVersion.java من دانه.
  • 2
    Compile using javac.التجميع باستخدام javac.
  • 3
    Run program with 1 thread (5 runs).تشغيل البرنامج بخيط واحد (5 تشغيلات).
  • 4
    Run program with 2 threads (5 runs).تشغيل البرنامج بخيطين (5 تشغيلات).
  • 5
    Run program with 4 threads (5 runs).تشغيل البرنامج بـ 4 خيوط (5 تشغيلات).
  • 6
    Run program with 6 threads (5 runs).تشغيل البرنامج بـ 6 خيوط (5 تشغيلات).
  • 7
    Run program with 8 threads (5 runs).تشغيل البرنامج بـ 8 خيوط (5 تشغيلات).
  • 8
    Record raw execution times.تسجيل أوقات التنفيذ الخام.
  • 9
    Compute average execution time for each configuration.حساب متوسط وقت التنفيذ لكل تكوين.
  • 10
    Record CPU model, Core count, RAM, OS, Java version.تسجيل موديل المعالج وعدد الأنوية والذاكرة ونظام التشغيل وإصدار Java.
  • 11
    Export dataset to CSV or Excel.تصدير مجموعة البيانات إلى CSV أو Excel.
  • 12
    Deliver dataset + machine specs to Aryam and Rana.تسليم مجموعة البيانات ومواصفات الجهاز لأريم ورنا.
📦 Deliverables📦 المُخرَجات Raw timing dataset • Averaged timing table • machine_specs.txt مجموعة بيانات التوقيت الخام • جدول متوسط التوقيت • machine_specs.txt
⚠️ No one else runs official benchmarks. لا يُجري أي شخص آخر اختبارات الأداء الرسمية.
📄

Rana — Report & Integration Owner رنا — مالكة التقرير والتكامل

Final integrator. Writes the ≤1000-word report, inserts all tables and graphs, organizes the final submission, and creates the ZIP. المُكاملة النهائية. تكتب التقرير (≤1000 كلمة) وتُدرج الجداول والرسوم البيانية وتُنظّم التسليم النهائي وتُنشئ ملف ZIP.

Report Writingكتابة التقرير Integrationالتكامل Final Submissionالتسليم النهائي
📝 ≤1000 words≤1000 كلمة

Step-by-Step Processالخطوات التفصيلية

Integrationتكامل
  • 1
    Draft report structure: Objective, Methodology, Experimental Setup, Results, Discussion, Conclusion صياغة هيكل التقرير: الهدف، المنهجية، الإعداد التجريبي، النتائج، النقاش، الخاتمة
  • 2
    Insert: Tables (Aryam), Graphs (Layan), Machine specs (Shoug) إدراج: الجداول (أريم)، الرسوم البيانية (ليان)، مواصفات الجهاز (شوق)
  • 3
    Write explanation: thread division logic, synchronization, scalability behavior, performance decrease كتابة الشرح: منطق تقسيم الخيوط، المزامنة، سلوك قابلية التوسع، انخفاض الأداء
  • 4
    Ensure report ≤ 1000 words. التأكد من أن التقرير ≤ 1000 كلمة.
  • 5
    Organize submission folder: تنظيم مجلد التسليم:
    Phase2_Submission/ → code/ tables/ graphs/ report.pdf machine_specs.txt
  • 6
    Verify all files open correctly.التحقق من فتح جميع الملفات بشكل صحيح.
  • 7
    Create final ZIP.إنشاء ملف ZIP النهائي.
  • 8
    Perform final validation check.إجراء فحص التحقق النهائي.
📦 Deliverable📦 المُخرَج Final ZIP submission ملف ZIP النهائي للتسليم

🤝 Shared Agreementsالاتفاقيات المشتركة

  • Agree on fixed array sizeالاتفاق على حجم المصفوفة الثابت
  • Agree on thread set (1, 2, 4, 6, 8 only)الاتفاق على مجموعة الخيوط (1، 2، 4، 6، 8 فقط)
  • Agree on repetition countالاتفاق على عدد مرات التكرار
  • Standardize time unit (milliseconds)توحيد وحدة الوقت (ميلي ثانية)
  • Maintain consistent file namingالحفاظ على تسمية ملفات متسقة
  • Conduct final peer reviewإجراء مراجعة الزملاء النهائية

🔗 Dependency Flowتدفق التبعيات

Danahدانه Shougشوق Aryamأريم Layanليان Ranaرنا

Templates and report structure can be drafted early. Only performance data must wait. يمكن إعداد القوالب وهيكل التقرير مبكراً. بيانات الأداء فقط هي التي تنتظر.

📝 Important Notesملاحظات مهمة

  • Only one machine used for official timingجهاز واحد فقط يُستخدم للتوقيت الرسمي
  • Close background applications during benchmarkingإغلاق التطبيقات الخلفية أثناء قياس الأداء
  • Use consistent Java versionاستخدام إصدار Java متسق
  • Increase repetitions if fluctuations occurزيادة مرات التكرار إذا حدثت تذبذبات
  • Identify decrease point using average time trendتحديد نقطة الانخفاض باستخدام اتجاه متوسط الوقت

⚠️ Overhead Sourcesمصادر الحمل الزائد

  • Thread managementإدارة الخيوط
  • Synchronizationالمزامنة
  • Context switchingتبديل السياق
  • Cache contentionتنافس ذاكرة التخزين المؤقت

🔧 Tools by Categoryالأدوات حسب الفئة

  • Code:الكود:  Java JDK, IDE / text editor
  • Measurement:القياس:  System.nanoTime(), system info tools, Excel / Google Sheets
  • Tables:الجداول:  Spreadsheet formulasصيغ جداول البيانات
  • Graphs:الرسوم البيانية:  Excel / Sheets charts
  • Report:التقرير:  Word / Google Docs, PDF export, ZIP tool

Why This Model Is Optimalلماذا هذا النموذج هو الأمثل

  • Scientifically valid speedupتسريع صحيح علمياً
  • Clear task ownershipملكية واضحة للمهام
  • Minimal overlapتداخل أدنى
  • Linear workflowسير عمل خطي
  • Clean submissionتسليم نظيف
  • Professional structureهيكل احترافي