الحوسبة المتوازية

الحوسبة المتوازية هي نوع من الحوسبة يتم فيه تنفيذ العديد من العمليات الحسابية أو الإجراءات في وقت واحد. [ 1 ] غالبًا ما يمكن تقسيم المشكلات الكبيرة إلى مشكلات أصغر، والتي يمكن حلها في الوقت نفسه. توجد عدة أشكال مختلفة للحوسبة المتوازية: التوازي على مستوى البت ، والتوازي على مستوى التعليمات ، والتوازي على مستوى البيانات ، والتوازي على مستوى المهام . لطالما استُخدمت الحوسبة المتوازية في الحوسبة عالية الأداء ، ولكنها اكتسبت اهتمامًا أوسع نظرًا للقيود الفيزيائية التي تمنع زيادة التردد . [ 2 ] مع تزايد المخاوف بشأن استهلاك الطاقة (وما يترتب عليه من توليد حرارة) في أجهزة الكمبيوتر في السنوات الأخيرة، [ 3 ] أصبحت الحوسبة المتوازية النموذج السائد في هندسة الحاسوب ، وخاصةً في شكل معالجات متعددة النوى . [ 4 ]

في علوم الحاسوب ، يُعدّ التوازي والتزامن مفهومين مختلفين: فالبرنامج المتوازي يستخدم أنوية معالجة متعددة ، حيث تؤدي كل نواة مهمةً بشكل مستقل. أما التزامن، فيُمكّن البرنامج من التعامل مع مهام متعددة حتى على نواة معالجة واحدة؛ إذ تنتقل النواة بين المهام (أي الخيوط ) دون إكمال كل مهمة بالضرورة. ويمكن للبرنامج أن يمتلك كلا المفهومين، أو لا يمتلك أيًا منهما، أو مزيجًا من خصائص التوازي والتزامن. [ 5 ]
يمكن تصنيف الحواسيب المتوازية تقريبًا وفقًا لمستوى دعم الأجهزة للتوازي، حيث تحتوي الحواسيب متعددة النوى والمعالجات على عناصر معالجة متعددة ضمن جهاز واحد، بينما تستخدم المجموعات الحاسوبية والمعالجات المتوازية الضخمة والشبكات عدة حواسيب للعمل على المهمة نفسها. تُستخدم أحيانًا بنى حاسوبية متوازية متخصصة جنبًا إلى جنب مع المعالجات التقليدية لتسريع مهام محددة.
في بعض الحالات، يكون التوازي واضحًا للمبرمج، كما هو الحال في التوازي على مستوى البت أو مستوى التعليمات، ولكن كتابة الخوارزميات المتوازية صراحةً ، وخاصةً تلك التي تستخدم التزامن، أصعب من كتابة الخوارزميات التسلسلية ، [ 6 ] لأن التزامن يُدخل عدة أنواع جديدة من أخطاء البرمجيات المحتملة ، وأكثرها شيوعًا حالات التزامن المتنافس . ويُعدّ التواصل والتزامن بين المهام الفرعية المختلفة عادةً من أكبر العقبات التي تحول دون تحقيق الأداء الأمثل للبرامج المتوازية.
يُعطى الحد الأعلى النظري لتسريع برنامج واحد نتيجة للتوازي بواسطة قانون أمدال ، الذي ينص على أنه محدود بجزء الوقت الذي يمكن فيه استخدام التوازي .
خلفية
تقليديًا، كُتبت برامج الحاسوب للحساب التسلسلي . لحل مشكلة ما، تُبنى خوارزمية وتُنفذ كسلسلة متسلسلة من التعليمات. تُنفذ هذه التعليمات على وحدة المعالجة المركزية في جهاز حاسوب واحد. لا يُمكن تنفيذ سوى تعليمة واحدة في كل مرة، فبعد انتهاء تنفيذها، تُنفذ التعليمة التالية. [ 7 ]
من ناحية أخرى، تستخدم الحوسبة المتوازية عناصر معالجة متعددة في آنٍ واحد لحل مشكلة ما. ويتحقق ذلك بتقسيم المشكلة إلى أجزاء مستقلة، بحيث يتمكن كل عنصر معالجة من تنفيذ جزءه من الخوارزمية بالتزامن مع العناصر الأخرى. ويمكن أن تكون عناصر المعالجة متنوعة، وتشمل موارد مثل حاسوب واحد بمعالجات متعددة، أو عدة حواسيب متصلة بشبكة، أو أجهزة متخصصة، أو أي مزيج مما سبق. [ 7 ] تاريخيًا، استُخدمت الحوسبة المتوازية في الحوسبة العلمية ومحاكاة المشكلات العلمية، لا سيما في العلوم الطبيعية والهندسية ، مثل الأرصاد الجوية . وقد أدى ذلك إلى تصميم أجهزة وبرامج متوازية، وإلى الحوسبة عالية الأداء . [ 8 ]
كان تغيير تردد المعالج السبب الرئيسي لتحسين أداء الحواسيب من منتصف ثمانينيات القرن الماضي وحتى عام ٢٠٠٤. يُحسب زمن تشغيل البرنامج بضرب عدد التعليمات في متوسط زمن تنفيذ كل تعليمة. مع ثبات جميع العوامل الأخرى، يؤدي رفع تردد الساعة إلى تقليل متوسط زمن تنفيذ كل تعليمة. وبالتالي، يؤدي رفع التردد إلى تقليل زمن تشغيل جميع البرامج التي تتطلب معالجة مكثفة . [ ٩ ] مع ذلك، يُعطى استهلاك الطاقة (P) للشريحة بالمعادلة: P = C × V² × F ، حيث C هي السعة الكهربائية التي يتم تبديلها في كل دورة ساعة (تتناسب مع عدد الترانزستورات التي تتغير مدخلاتها)، و V هو الجهد الكهربائي ، و F هو تردد المعالج (دورات في الثانية). [ ١٠ ] يؤدي رفع التردد إلى زيادة استهلاك الطاقة في المعالج. أدى ازدياد استهلاك الطاقة للمعالجات في نهاية المطاف إلى إلغاء شركة إنتل لمعالجاتها Tejas و Jayhawk في 8 مايو 2004 ، وهو ما يُشار إليه عمومًا بأنه نهاية تدرج التردد كنموذج معماري حاسوبي سائد. [ 11 ]
لمعالجة مشكلة استهلاك الطاقة وارتفاع درجة الحرارة، بدأت كبرى شركات تصنيع وحدات المعالجة المركزية (CPU) بإنتاج معالجات موفرة للطاقة متعددة النوى. النواة هي وحدة المعالجة في المعالج، وفي المعالجات متعددة النوى، تكون كل نواة مستقلة ويمكنها الوصول إلى نفس الذاكرة في وقت واحد. وقد أتاحت المعالجات متعددة النوى الحوسبة المتوازية لأجهزة الكمبيوتر المكتبية ، مما جعل معالجة البرامج التسلسلية بالتوازي مهمة أساسية في البرمجة. في عام 2012، أصبحت المعالجات رباعية النوى معيارًا لأجهزة الكمبيوتر المكتبية ، بينما احتوت الخوادم على معالجات تضم أكثر من 10 نوى. وتوقع قانون مور أن يتضاعف عدد النوى في كل معالج كل 18-24 شهرًا. [ 12 ] وبحلول عام 2023، احتوت بعض المعالجات على أكثر من 100 نواة. وقد اعتمدت بعض التصاميم مزيجًا من النوى عالية الأداء والكفاءة (مثل تصميم big.LITTLE من ARM ) نظرًا للقيود الحرارية والتصميمية.
يضمن نظام التشغيل تشغيل المهام المختلفة وبرامج المستخدم بالتوازي على النوى المتاحة. مع ذلك، لكي يستفيد برنامج تسلسلي استفادة كاملة من بنية المعالجات متعددة النوى، يحتاج المبرمج إلى إعادة هيكلة الكود وموازاته. لن يتحقق تسريع وقت تشغيل برامج التطبيقات من خلال تغيير التردد، بل سيحتاج المبرمجون إلى موازاة كود برامجهم للاستفادة من القدرة الحاسوبية المتزايدة لبنى المعالجات متعددة النوى. [ 13 ]
القوانين ذات الصلة


من الناحية المثالية، يكون تسارع المعالجة المتوازية خطيًا؛ فمضاعفة عدد عناصر المعالجة يُفترض أن يُقلل وقت التشغيل إلى النصف، ومضاعفته مرة أخرى يُفترض أن يُقلله إلى النصف مجددًا. مع ذلك، قليلٌ جدًا من الخوارزميات المتوازية تُحقق التسارع الأمثل. فمعظمها يُظهر تسارعًا شبه خطي عند استخدام عدد قليل من عناصر المعالجة، ثم يستقر عند قيمة ثابتة عند استخدام عدد كبير منها.
يمكن حساب أقصى تسريع محتمل لنظام ككل باستخدام قانون أمدال . [ 14 ] يشير قانون أمدال إلى أن التحسين الأمثل للأداء يتحقق من خلال موازنة التحسينات التي تُجرى على كلٍ من المكونات القابلة للتوازي وغير القابلة للتوازي في المهمة. علاوة على ذلك، يكشف القانون أن زيادة عدد المعالجات تُؤدي إلى تناقص العائد، مع مكاسب ضئيلة في التسريع بعد نقطة معينة. [ 15 ] [ 16 ]
يُعاني قانون أمدال من بعض القيود، بما في ذلك افتراضات ثبات حجم العمل، وإهمال تكاليف الاتصال والتزامن بين العمليات ، والتركيز بشكل أساسي على الجانب الحسابي وتجاهل العوامل الخارجية مثل استمرارية البيانات، وعمليات الإدخال/الإخراج، وتكاليف الوصول إلى الذاكرة. [ 17 ] [ 18 ] [ 19 ]
يُقدّم قانون غوستافسون وقانون قابلية التوسع الشامل تقييمًا أكثر واقعية للأداء المتوازي. [ 20 ] [ 21 ]

التبعيات
يُعدّ فهم تبعيات البيانات أساسيًا في تنفيذ الخوارزميات المتوازية . لا يمكن لأي برنامج أن يعمل بسرعة أكبر من أطول سلسلة من العمليات الحسابية المترابطة (المعروفة بالمسار الحرج )، إذ يجب تنفيذ العمليات الحسابية التي تعتمد على العمليات السابقة في السلسلة بالتسلسل. مع ذلك، لا تقتصر معظم الخوارزميات على سلسلة طويلة من العمليات الحسابية المترابطة فحسب، بل توجد عادةً فرص لتنفيذ عمليات حسابية مستقلة بالتوازي.
لنفترض أن Pᵢ و Pⱼ هما مقطعان برمجيان. تحدد شروط برنشتاين [ 22 ] متى يكون المقطعان مستقلين ويمكن تنفيذهما بالتوازي. بالنسبة لـ Pᵢ ، لنفترض أن Iᵢ هي جميع متغيرات الإدخال و Oᵢ هي متغيرات الإخراج، وكذلك بالنسبة لـ Pⱼ . يكون Pᵢ و Pⱼ مستقلين إذا حققا الشرط التالي :
يُؤدي انتهاك الشرط الأول إلى تبعية في التدفق، حيث يُنتج الجزء الأول نتيجةً يستخدمها الجزء الثاني. أما الشرط الثاني فيُمثل تبعية عكسية، عندما يُنتج الجزء الثاني متغيرًا يحتاجه الجزء الأول. ويُمثل الشرط الثالث والأخير تبعية في المخرجات: فعندما يكتب جزآن إلى الموقع نفسه، تأتي النتيجة من الجزء الذي تم تنفيذه منطقيًا أخيرًا. [ 23 ]
ضع في اعتبارك الدوال التالية، التي توضح أنواعًا متعددة من التبعيات:
1: دالة Dep(a, b) 2: ج := أ * ب 3: د := 3 * ج 4: نهاية الدالة
في هذا المثال، لا يمكن تنفيذ التعليمات 3 قبل (أو حتى بالتوازي مع) التعليمات 2، لأن التعليمات 3 تستخدم نتيجة من التعليمات 2. إنها تنتهك الشرط 1، وبالتالي تُدخل تبعية في التدفق.
1: دالة NoDep(a, b) 2: ج := أ * ب 3: د := 3 * ب 4: e := a + b 5: نهاية الدالة
في هذا المثال، لا توجد تبعيات بين التعليمات، لذلك يمكن تشغيلها جميعًا بالتوازي.
لا تسمح شروط برنشتاين بمشاركة الذاكرة بين العمليات المختلفة. ولذلك، يلزم وجود وسيلة لفرض ترتيب معين بين عمليات الوصول، مثل الإشارات الثنائية أو الحواجز أو أي طريقة أخرى للتزامن .
ظروف التنافس، والاستبعاد المتبادل، والتزامن، والتباطؤ المتوازي
تُسمى المهام الفرعية في البرامج المتوازية عادةً بالخيوط . تستخدم بعض بنى الحواسيب المتوازية نسخًا أصغر حجمًا وأخف وزنًا من الخيوط تُعرف بالألياف ، بينما تستخدم بنى أخرى نسخًا أكبر تُعرف بالعمليات . مع ذلك، يُعتبر مصطلح "الخيوط" مصطلحًا عامًا للمهام الفرعية. [ 24 ] غالبًا ما تحتاج الخيوط إلى وصول متزامن إلى كائن أو مورد آخر ، على سبيل المثال عندما يتعين عليها تحديث متغير مشترك بينها. بدون التزامن، قد تتداخل التعليمات بين الخيطين بأي ترتيب. على سبيل المثال، انظر إلى البرنامج التالي:
| الخيط أ | الخيط ب |
|---|---|
| 1أ: قراءة المتغير V | 1ب: قراءة المتغير V |
| 2أ: أضف 1 إلى المتغير V | 2ب: أضف 1 إلى المتغير V |
| 3أ: اكتب مرة أخرى إلى المتغير V | 3ب: اكتب مرة أخرى إلى المتغير V |
إذا نُفِّذت التعليمة 1B بين 1A و3A، أو إذا نُفِّذت التعليمة 1A بين 1B و3B، فسينتج البرنامج بيانات غير صحيحة. يُعرف هذا بـ" حالة التزامن" . يجب على المبرمج استخدام قفل (lock) لتوفير الحماية المتبادلة . القفل هو بنية برمجية تسمح لخيط واحد بالتحكم في متغير ومنع الخيوط الأخرى من قراءته أو الكتابة فيه، حتى يتم تحرير هذا المتغير. يكون الخيط الذي يحمل القفل حرًا في تنفيذ قسمه الحرج (القسم من البرنامج الذي يتطلب وصولًا حصريًا إلى متغير ما)، وفي تحرير البيانات عند الانتهاء. لذلك، لضمان تنفيذ البرنامج بشكل صحيح، يمكن إعادة كتابة البرنامج المذكور أعلاه لاستخدام الأقفال.
| الخيط أ | الخيط ب |
|---|---|
| 1أ: قفل المتغير V | 1ب: متغير القفل V |
| 2أ: قراءة المتغير V | 2ب: قراءة المتغير V |
| 3أ: أضف 1 إلى المتغير V | 3ب: أضف 1 إلى المتغير V |
| 4أ: اكتب مرة أخرى إلى المتغير V | 4ب: اكتب مرة أخرى إلى المتغير V |
| 5أ: فتح متغير V | 5ب: فتح المتغير V |
سينجح أحد الخيوط في قفل المتغير V، بينما سيُمنع الخيط الآخر من المتابعة حتى يتم فك قفل V مرة أخرى. هذا يضمن التنفيذ الصحيح للبرنامج. قد تكون الأقفال ضرورية لضمان التنفيذ الصحيح للبرنامج عندما يتعين على الخيوط تسلسل الوصول إلى الموارد، ولكن استخدامها قد يُبطئ البرنامج بشكل كبير وقد يؤثر على موثوقيته . [ 25 ]
يؤدي استخدام الأقفال غير الذرية لتأمين عدة متغيرات إلى احتمال حدوث حالة جمود في البرنامج . أما القفل الذري، فيقوم بتأمين جميع المتغيرات دفعة واحدة. وإذا تعذر تأمينها جميعًا، فلن يتم تأمين أي منها. إذا احتاج خيطان إلى تأمين المتغيرين نفسيهما باستخدام أقفال غير ذرية، فمن المحتمل أن يقوم أحدهما بتأمين أحدهما والآخر بتأمين الآخر. في هذه الحالة، لا يستطيع أي من الخيطين إكمال العملية، مما يؤدي إلى حالة جمود. [ 26 ]
تتطلب العديد من البرامج المتوازية أن تعمل مهامها الفرعية بشكل متزامن ، مما يستلزم استخدام حاجز . تُنفذ الحواجز عادةً باستخدام قفل أو إشارة مرور . [ 27 ] هناك فئة من الخوارزميات، تُعرف بالخوارزميات الخالية من الأقفال والانتظار ، تتجنب تمامًا استخدام الأقفال والحواجز. مع ذلك، يُعد هذا النهج صعب التنفيذ عمومًا ويتطلب هياكل بيانات مصممة بشكل صحيح. [ 28 ]
لا تؤدي جميع عمليات المعالجة المتوازية إلى تسريع الأداء. فعمومًا، كلما زاد عدد الخيوط المُقسّمة للمهمة، زادت نسبة الوقت الذي تقضيه هذه الخيوط في التواصل فيما بينها أو انتظار بعضها للوصول إلى الموارد. [ 29 ] [ 30 ] وعندما يتجاوز عبء التنافس على الموارد أو التواصل الوقت المُستغرق في العمليات الحسابية الأخرى، فإن المزيد من المعالجة المتوازية (أي تقسيم عبء العمل على عدد أكبر من الخيوط) يزيد من الوقت اللازم لإنجاز المهمة بدلًا من تقليله. تُعرف هذه المشكلة باسم تباطؤ المعالجة المتوازية ، [ 31 ] ويمكن تحسينها في بعض الحالات من خلال تحليل البرمجيات وإعادة تصميمها. [ 32 ]
التوازي الدقيق، والتوازي الخشن، والتوازي المحرج
تُصنّف التطبيقات عادةً وفقًا لمدى تكرار تزامن أو تواصل مهامها الفرعية مع بعضها البعض. يُظهر التطبيق توازيًا دقيقًا إذا كانت مهامه الفرعية تتواصل عدة مرات في الثانية؛ ويُظهر توازيًا واسعًا إذا لم تتواصل عدة مرات في الثانية؛ ويُظهر توازيًا ضعيفًا إذا كانت نادرًا ما تتواصل أو لا تتواصل أبدًا. تُعتبر التطبيقات ذات التوازي الضعيف الأسهل في التوازي.
تصنيف فلين
ابتكر مايكل ج. فلين أحد أقدم أنظمة التصنيف للحواسيب والبرامج المتوازية (والتسلسلية)، والمعروفة الآن باسم تصنيف فلين . صنف فلين البرامج والحواسيب بناءً على ما إذا كانت تعمل باستخدام مجموعة واحدة أو مجموعات متعددة من التعليمات، وما إذا كانت تلك التعليمات تستخدم مجموعة واحدة أو مجموعات متعددة من البيانات.
يُعادل تصنيف التعليمات المفردة والبيانات المفردة (SISD) برنامجًا تسلسليًا بالكامل. أما تصنيف التعليمات المفردة والبيانات المتعددة (SIMD) فيُشابه تكرار العملية نفسها على مجموعة بيانات كبيرة، وهو شائع في تطبيقات معالجة الإشارات . بينما يُعد تصنيف التعليمات المتعددة والبيانات المفردة (MISD) نادر الاستخدام. ورغم ابتكار بنى حاسوبية للتعامل معه (مثل المصفوفات الانقباضية )، إلا أن تطبيقات قليلة فقط تُناسب هذا التصنيف قد ظهرت. وتُعد برامج التعليمات المتعددة والبيانات المتعددة (MIMD) النوع الأكثر شيوعًا من البرامج المتوازية.
بحسب ديفيد أ. باترسون وجون ل. هينيسي ، "بعض الآلات هي مزيج من هذه الفئات، بالطبع، لكن هذا النموذج الكلاسيكي قد صمد لأنه بسيط وسهل الفهم ويعطي تقريبًا أوليًا جيدًا. وهو أيضًا - ربما بسبب سهولة فهمه - المخطط الأكثر استخدامًا على نطاق واسع." [ 34 ]
العيوب
قد تتسبب الحوسبة المتوازية في تكاليف إضافية كبيرة عمليًا، ويرجع ذلك أساسًا إلى التكاليف المرتبطة بدمج البيانات من عمليات متعددة. على وجه التحديد، قد يؤدي التواصل والتزامن بين العمليات إلى تكاليف إضافية أعلى بكثير - غالبًا بمقدار مئتي ضعف أو أكثر - مقارنةً بمعالجة البيانات نفسها على خيط واحد. [ 35 ] [ 36 ] [ 37 ] لذلك، ينبغي تقييم التحسين الإجمالي بعناية.
الحبيبية
التوازي على مستوى البت

منذ ظهور تقنية تصنيع رقائق الحاسوب المتكاملة واسعة النطاق جدًا (VLSI) في سبعينيات القرن الماضي وحتى عام 1986 تقريبًا، كان تسريع بنية الحاسوب مدفوعًا بمضاعفة حجم كلمة الحاسوب - أي كمية المعلومات التي يمكن للمعالج معالجتها في كل دورة. [ 38 ] يؤدي زيادة حجم الكلمة إلى تقليل عدد التعليمات التي يجب على المعالج تنفيذها لإجراء عملية على متغيرات أكبر من طول الكلمة. على سبيل المثال، عندما يحتاج معالج 8 بت إلى جمع عددين صحيحين 16 بت ، يجب على المعالج أولًا جمع البتات الثمانية الأقل أهمية من كل عدد صحيح باستخدام تعليمة الجمع القياسية، ثم جمع البتات الثمانية الأعلى أهمية باستخدام تعليمة الجمع مع الحمل وبت الحمل من عملية الجمع الأقل أهمية؛ وبالتالي، يحتاج معالج 8 بت إلى تعليمتين لإكمال عملية واحدة، بينما يستطيع معالج 16 بت إكمال العملية بتعليمة واحدة.
تاريخيًا، استُبدلت المعالجات الدقيقة ذات 4 بت بمعالجات ذات 8 بت، ثم 16 بت، ثم 32 بت. وانتهى هذا التوجه عمومًا مع ظهور معالجات 32 بت، التي أصبحت معيارًا في الحوسبة العامة لعقدين من الزمن. ولم تنتشر معالجات 64 بت على نطاق واسع إلا في أوائل العقد الأول من الألفية الثانية، مع ظهور معمارية x86-64 .
التوازي على مستوى التعليم

برنامج الحاسوب، في جوهره، عبارة عن سلسلة من التعليمات التي ينفذها المعالج. وبدون التوازي على مستوى التعليمات، لا يستطيع المعالج إصدار سوى أقل من تعليمة واحدة في كل دورة ساعة ( IPC < 1 ). تُعرف هذه المعالجات بالمعالجات دون المقياسية . يمكن إعادة ترتيب هذه التعليمات ودمجها في مجموعات تُنفذ بالتوازي دون تغيير نتيجة البرنامج. يُعرف هذا بالتوازي على مستوى التعليمات. وقد هيمنت التطورات في التوازي على مستوى التعليمات على بنية الحاسوب من منتصف الثمانينيات حتى منتصف التسعينيات. [ 39 ]

تتميز جميع المعالجات الحديثة بخطوط أنابيب تعليمات متعددة المراحل . تتوافق كل مرحلة في خط الأنابيب مع إجراء مختلف ينفذه المعالج على تلك التعليمات في تلك المرحلة؛ إذ يمكن لمعالج ذي خط أنابيب من N مرحلة أن يحتوي على ما يصل إلى N تعليمات مختلفة في مراحل إنجاز مختلفة، وبالتالي يمكنه إصدار تعليمة واحدة لكل دورة ساعة ( IPC = 1 ). تُعرف هذه المعالجات بالمعالجات العددية . المثال النموذجي لمعالج ذي خطوط أنابيب هو معالج RISC ، بخمس مراحل: جلب التعليمات (IF)، فك تشفير التعليمات (ID)، التنفيذ (EX)، الوصول إلى الذاكرة (MEM)، وكتابة السجلات (WB). كان معالج Pentium 4 يحتوي على خط أنابيب من 35 مرحلة. [ 40 ]

تحتوي معظم المعالجات الحديثة على وحدات تنفيذ متعددة . وعادةً ما تجمع هذه الميزة مع تقنية التجزئة، مما يسمح لها بإصدار أكثر من تعليمة واحدة في دورة الساعة الواحدة ( IPC > 1 ). تُعرف هذه المعالجات بالمعالجات فائقة التوازي . وتختلف المعالجات فائقة التوازي عن المعالجات متعددة النوى في أن وحدات التنفيذ المتعددة فيها ليست معالجات كاملة (أي وحدات معالجة). لا يمكن تجميع التعليمات معًا إلا إذا لم يكن هناك اعتماد متبادل بين البيانات. تُعدّ تقنية تقسيم النتائج (Scoreboarding) وخوارزمية توماسولو (المشابهة لتقنية تقسيم النتائج ولكنها تستخدم إعادة تسمية السجلات ) من أكثر التقنيات شيوعًا لتنفيذ التنفيذ خارج الترتيب والتوازي على مستوى التعليمات.
التوازي بين المهام
التوازي في المهام هو سمة مميزة للبرامج المتوازية، حيث "يمكن إجراء حسابات مختلفة تمامًا على نفس مجموعة البيانات أو على مجموعات بيانات مختلفة". [ 41 ] وهذا يختلف عن التوازي في البيانات، حيث تُجرى نفس العملية الحسابية على نفس مجموعة البيانات أو على مجموعات بيانات مختلفة. يتضمن التوازي في المهام تقسيم المهمة إلى مهام فرعية، ثم تخصيص كل مهمة فرعية لمعالج لتنفيذها. بعد ذلك، تُنفذ المعالجات هذه المهام الفرعية بشكل متزامن، وغالبًا بشكل تعاوني. لا يتناسب التوازي في المهام عادةً مع حجم المشكلة. [ 42 ]
توازي على مستوى الكلمات الخارقة
التوازي على مستوى الكلمات الفائقة هو أسلوب تحويل إلى متجه يعتمد على فك الحلقات وتحويل الكتل الأساسية إلى متجه. وهو يختلف عن خوارزميات تحويل الحلقات إلى متجه في قدرته على استغلال التوازي في التعليمات البرمجية المضمنة ، مثل معالجة الإحداثيات أو قنوات الألوان أو الحلقات التي يتم فكها يدويًا. [ 43 ]
الأجهزة
الذاكرة والتواصل
تتكون الذاكرة الرئيسية في الحواسيب المتوازية إما من ذاكرة مشتركة (تُستخدم بين جميع عناصر المعالجة في مساحة عنوان واحدة )، أو ذاكرة موزعة (حيث يمتلك كل عنصر معالجة مساحة عنوان محلية خاصة به). [ 44 ] تشير الذاكرة الموزعة إلى توزيع الذاكرة منطقيًا، ولكنها غالبًا ما تعني توزيعها فعليًا أيضًا. تجمع الذاكرة المشتركة الموزعة وتقنية محاكاة الذاكرة بين النهجين، حيث يمتلك عنصر المعالجة ذاكرته المحلية الخاصة به، بالإضافة إلى إمكانية الوصول إلى الذاكرة الموجودة على معالجات غير محلية. عادةً ما يكون الوصول إلى الذاكرة المحلية أسرع من الوصول إلى الذاكرة غير المحلية. في الحواسيب العملاقة ، يمكن تنفيذ مساحة الذاكرة المشتركة الموزعة باستخدام نموذج برمجة مثل PGAS . يسمح هذا النموذج للعمليات على عقدة حسابية واحدة بالوصول بشفافية إلى الذاكرة البعيدة لعقدة حسابية أخرى. كما أن جميع العقد الحسابية متصلة بنظام ذاكرة مشتركة خارجي عبر وصلات عالية السرعة، مثل Infiniband . يُعرف نظام الذاكرة المشتركة الخارجي هذا باسم مخزن البيانات المتفجر ، والذي يُبنى عادةً من مصفوفات من الذاكرة غير المتطايرة موزعة فعليًا عبر عقد إدخال/إخراج متعددة.

تُعرف بنى الحاسوب التي يُمكن فيها الوصول إلى كل عنصر من عناصر الذاكرة الرئيسية بنفس زمن الوصول وعرض النطاق الترددي بأنظمة الوصول الموحد للذاكرة (UMA). عادةً، لا يُمكن تحقيق ذلك إلا من خلال نظام ذاكرة مشتركة ، حيث لا تكون الذاكرة موزعة فعليًا. يُعرف النظام الذي لا يمتلك هذه الخاصية ببنية الوصول غير الموحد للذاكرة (NUMA). تتميز أنظمة الذاكرة الموزعة بالوصول غير الموحد للذاكرة.
تستخدم أنظمة الحاسوب (باستثناء وحدات المعالجة المنطقية من Groq ) ذاكرة التخزين المؤقت (الكاش) - وهي ذاكرة صغيرة وسريعة تقع بالقرب من المعالج، وتخزن نسخًا مؤقتة من قيم الذاكرة (قريبة منها فيزيائيًا ومنطقيًا). تواجه أنظمة الحواسيب المتوازية صعوبات مع ذاكرة التخزين المؤقت التي قد تخزن القيمة نفسها في أكثر من موقع، مما قد يؤدي إلى تنفيذ البرنامج بشكل خاطئ. تتطلب هذه الحواسيب نظامًا لتماسك ذاكرة التخزين المؤقت ، والذي يتتبع القيم المخزنة مؤقتًا ويحذفها بشكل استراتيجي، مما يضمن تنفيذ البرنامج بشكل صحيح. يُعدّ التجسس على ناقل البيانات أحد أكثر الطرق شيوعًا لتتبع القيم التي يتم الوصول إليها (وبالتالي يجب حذفها). يُعدّ تصميم أنظمة تماسك ذاكرة التخزين المؤقت الكبيرة وعالية الأداء مشكلة بالغة الصعوبة في هندسة الحاسوب. ونتيجة لذلك، لا تتوسع بنى الحواسيب ذات الذاكرة المشتركة، بينما تتوسع أنظمة الذاكرة الموزعة. [ 44 ]
يمكن تنفيذ الاتصال بين المعالج والمعالج وبين المعالج والذاكرة في الأجهزة بعدة طرق، بما في ذلك عبر الذاكرة المشتركة (إما متعددة المنافذ أو متعددة الإرسال )، أو مفتاح التبديل المتقاطع ، أو ناقل مشترك، أو شبكة ربط بينية ذات عدد لا يحصى من التكوينات بما في ذلك النجمة ، والحلقة ، والشجرة ، والمكعب الفائق ، والمكعب الفائق السمين (مكعب فائق يحتوي على أكثر من معالج واحد في العقدة)، أو الشبكة متعددة الأبعاد .
تحتاج الحواسيب المتوازية القائمة على الشبكات المترابطة إلى نوع من التوجيه لتمكين تبادل الرسائل بين العقد غير المتصلة مباشرةً. ومن المرجح أن تكون وسيلة الاتصال بين المعالجات هرمية في الحواسيب متعددة المعالجات الكبيرة.
أنواع الحواسيب المتوازية
يمكن تصنيف الحواسيب المتوازية تقريبًا وفقًا لمستوى دعم الأجهزة للتوازي. ويشابه هذا التصنيف إلى حد كبير المسافة بين عقد الحوسبة الأساسية. وهذه التصنيفات ليست حصرية؛ فعلى سبيل المثال، تُعد مجموعات المعالجات المتعددة المتناظرة شائعة نسبيًا.
الحوسبة متعددة النوى
المعالج متعدد النوى هو معالج يضم وحدات معالجة متعددة (تُسمى "أنوية") على نفس الشريحة. يختلف هذا المعالج عن المعالج فائق التوازي ، الذي يضم وحدات تنفيذ متعددة ويمكنه إصدار تعليمات متعددة في كل دورة ساعة من مسار تعليمات واحد (خيط معالجة)؛ في المقابل، يمكن للمعالج متعدد النوى إصدار تعليمات متعددة في كل دورة ساعة من مسارات تعليمات متعددة. يُعد معالج Cell من IBM ، المصمم للاستخدام في جهاز Sony PlayStation 3 ، مثالًا بارزًا على المعالجات متعددة النوى. يمكن لكل نواة في المعالج متعدد النوى أن تكون فائقة التوازي أيضًا - أي أنه في كل دورة ساعة، يمكن لكل نواة إصدار تعليمات متعددة من خيط معالجة واحد.
كانت المعالجة المتعددة المتزامنة (ومن أشهرها تقنية Hyper-Threading من إنتل) شكلاً مبكراً من أشكال المعالجة متعددة النوى الزائفة. يحتوي المعالج القادر على المعالجة المتعددة المتزامنة على وحدات تنفيذ متعددة ضمن وحدة المعالجة نفسها - أي أنه يتمتع ببنية فائقة التوازي - ويمكنه إصدار تعليمات متعددة في كل دورة ساعة من خيوط معالجة متعددة . أما المعالجة المتعددة الزمنية، من ناحية أخرى، فتتضمن وحدة تنفيذ واحدة ضمن وحدة المعالجة نفسها، ويمكنها إصدار تعليمة واحدة في كل مرة من خيوط معالجة متعددة .
المعالجة المتعددة المتناظرة
المعالج المتعدد المتناظر (SMP) هو نظام حاسوبي يتكون من عدة معالجات متطابقة تتشارك الذاكرة وتتصل عبر ناقل بيانات . [ 45 ] يمنع التنازع على ناقل البيانات من توسيع نطاق بنية ناقل البيانات. ونتيجة لذلك، لا يتجاوز عدد المعالجات في المعالجات المتعددة المتناظرة عادةً 32 معالجًا. [ 46 ] نظرًا لصغر حجم المعالجات والانخفاض الكبير في متطلبات عرض نطاق ناقل البيانات بفضل ذاكرة التخزين المؤقت الكبيرة، تُعد هذه المعالجات المتعددة المتناظرة فعالة من حيث التكلفة للغاية، شريطة توفر عرض نطاق ذاكرة كافٍ. [ 45 ]
الحوسبة الموزعة
الحاسوب الموزع (المعروف أيضًا باسم المعالج المتعدد ذي الذاكرة الموزعة) هو نظام حاسوبي ذو ذاكرة موزعة، حيث ترتبط عناصر المعالجة فيه بشبكة. تتميز الحواسيب الموزعة بقابلية توسع عالية. تتداخل مصطلحات " الحوسبة المتزامنة " و"الحوسبة المتوازية" و"الحوسبة الموزعة" بشكل كبير، ولا يوجد تمييز واضح بينها. [ 47 ] [ 48 ] يمكن وصف النظام نفسه بأنه "متوازي" و"موزع" في آنٍ واحد؛ حيث تعمل المعالجات في النظام الموزع النموذجي بشكل متزامن ومتوازٍ. [ 49 ] [ 50 ]
الحوسبة العنقودية

المجموعة الحاسوبية هي مجموعة من أجهزة الكمبيوتر غير المترابطة بشكل وثيق، بحيث يمكن اعتبارها، من بعض النواحي، جهاز كمبيوتر واحدًا. [ 51 ] تتكون المجموعات الحاسوبية من عدة أجهزة مستقلة متصلة بشبكة. ورغم أن أجهزة المجموعة لا يشترط أن تكون متناظرة، إلا أن موازنة الأحمال تصبح أكثر صعوبة في حال عدم تناظرها. النوع الأكثر شيوعًا من المجموعات الحاسوبية هو مجموعة بيوولف ، وهي مجموعة حاسوبية مُنفذة على عدة أجهزة كمبيوتر تجارية متطابقة جاهزة للاستخدام، متصلة بشبكة محلية من نوع TCP/IP Ethernet . [ 52 ] طُوّرت تقنية بيوولف في الأصل على يد توماس ستيرلينغ ودونالد بيكر . 87% من جميع أجهزة الكمبيوتر العملاقة ضمن قائمة Top500 هي مجموعات حاسوبية. [ 53 ] أما النسبة المتبقية فهي معالجات متوازية ضخمة، سيتم شرحها لاحقًا.
نظرًا لقدرة أنظمة الحوسبة الشبكية (الموصوفة أدناه) على معالجة المشكلات المتوازية المعقدة بسهولة، تُصمم المجموعات الحاسوبية الحديثة عادةً لمعالجة مشكلات أكثر صعوبة، وهي مشكلات تتطلب من العقد مشاركة النتائج الوسيطة فيما بينها بشكل متكرر. وهذا يتطلب نطاقًا تردديًا عاليًا، والأهم من ذلك، شبكة اتصال ذات زمن استجابة منخفض . تستخدم العديد من الحواسيب العملاقة، القديمة منها والحالية، أجهزة شبكية عالية الأداء مصممة خصيصًا للحوسبة العنقودية، مثل شبكة Cray Gemini. [ 54 ] اعتبارًا من عام 2014، تستخدم معظم الحواسيب العملاقة الحالية بعض أجهزة الشبكة القياسية الجاهزة، وغالبًا ما تكون من نوع Myrinet أو InfiniBand أو Gigabit Ethernet .
الحوسبة المتوازية الضخمة

المعالج المتوازي الضخم (MPP) هو حاسوب واحد مزود بالعديد من المعالجات المتصلة بشبكة. تشترك معالجات MPP في العديد من خصائص المجموعات الحاسوبية، ولكنها تتميز بشبكات ربط متخصصة (بينما تستخدم المجموعات الحاسوبية أجهزة قياسية للربط الشبكي). كما تميل معالجات MPP إلى أن تكون أكبر حجمًا من المجموعات الحاسوبية، حيث تحتوي عادةً على أكثر من 100 معالج. [ 55 ] في معالج MPP، "تحتوي كل وحدة معالجة مركزية على ذاكرتها الخاصة ونسخة من نظام التشغيل والتطبيق. ويتواصل كل نظام فرعي مع الأنظمة الأخرى عبر شبكة ربط عالية السرعة." [ 56 ]
يُعد جهاز Blue Gene/L من شركة IBM ، وهو خامس أسرع حاسوب عملاق في العالم وفقًا لتصنيف TOP500 الصادر في يونيو 2009 ، جهاز MPP.
الحوسبة الشبكية
الحوسبة الشبكية هي أكثر أشكال الحوسبة المتوازية انتشارًا. فهي تستخدم أجهزة الكمبيوتر المتصلة عبر الإنترنت لمعالجة مشكلة معينة. ونظرًا لانخفاض عرض النطاق الترددي وارتفاع زمن الاستجابة بشكل كبير على الإنترنت، فإن الحوسبة الموزعة عادةً ما تتعامل فقط مع المشكلات المتوازية البسيطة .
تستخدم معظم تطبيقات الحوسبة الشبكية برمجيات وسيطة (برمجيات تتوسط بين نظام التشغيل والتطبيق لإدارة موارد الشبكة وتوحيد واجهة البرمجيات). وأكثر البرمجيات الوسيطة شيوعًا في الحوسبة الشبكية هي بنية بيركلي المفتوحة للحوسبة الشبكية (BOINC). غالبًا ما تستغل برمجيات الحوسبة التطوعية "دورات المعالجة الاحتياطية"، حيث تُجري عمليات حسابية في أوقات خمول الحاسوب. [ 57 ]
الحوسبة السحابية
أتاح انتشار الإنترنت وشبكات النطاق الترددي العالي ظهور الحوسبة السحابية ، وهي نموذج يتم فيه توفير موارد متوازية ضخمة كخدمة. يُجرّد هذا النموذج البنية التحتية المادية، مما يسمح للمستخدمين بالوصول إلى مجموعات افتراضية لأحمال عمل قابلة للتوسع دون الحاجة إلى إدارة البنية التحتية المادية.
تقنية السجلات الموزعة
تُطبّق بروتوكولات السجلات الموزعة الحديثة مبادئ الحوسبة المتوازية للتغلب على الاختناقات التسلسلية في سلاسل الكتل التقليدية . ومن خلال تجزئة فضاء الحالة، تسمح بنى الإجماع الأحدث بمعالجة المعاملات بشكل متوازي واسع النطاق. في هذا النموذج، المستخدم في بروتوكولات مثل سيربيروس، تُعامل المعاملات المستقلة كمهام متوازية يمكن تنفيذها في وقت واحد على عُقد مختلفة، بدلاً من معالجتها بشكل تسلسلي في كتلة عالمية واحدة. [ 58 ]
أجهزة كمبيوتر متوازية متخصصة
في مجال الحوسبة المتوازية، توجد أجهزة متوازية متخصصة لا تزال تحظى باهتمام محدود. ورغم أنها ليست مخصصة لمجال معين ، إلا أنها تميل إلى أن تكون قابلة للتطبيق على فئات قليلة فقط من المشكلات المتوازية.
الحوسبة القابلة لإعادة التكوين باستخدام مصفوفات البوابات القابلة للبرمجة الميدانية
الحوسبة القابلة لإعادة التكوين هي استخدام مصفوفة البوابات المنطقية القابلة للبرمجة الميدانية (FPGA) كمعالج مساعد لحاسوب متعدد الأغراض. ومصفوفة البوابات المنطقية القابلة للبرمجة الميدانية هي، في جوهرها، شريحة حاسوبية قادرة على إعادة برمجة نفسها لأداء مهمة محددة.
يمكن برمجة مصفوفات البوابات المنطقية القابلة للبرمجة (FPGAs) باستخدام لغات وصف الأجهزة مثل VHDL [ 59 ] أو Verilog [ 60 ] . وقد طوّر العديد من الموردين لغات C-HDL التي تحاكي بنية ودلالات لغة البرمجة C ، التي يعرفها معظم المبرمجين. ومن أشهر هذه اللغات Mitrion-C و Impulse C و Handel-C . كما يمكن استخدام مجموعات فرعية محددة من SystemC المبنية على C++ لهذا الغرض.
أصبح قرار شركة AMD بفتح تقنية HyperTransport أمام موردي الطرف الثالث بمثابة التقنية الأساسية للحوسبة عالية الأداء والقابلة لإعادة التكوين. [ 61 ] ووفقًا لمايكل آر. دامور، الرئيس التنفيذي للعمليات في شركة DRC Computer Corporation، "عندما دخلنا إلى AMD لأول مرة، أطلقوا علينا لقب " سارقي المقابس ". أما الآن فهم يسموننا شركاءهم." [ 61 ]
الحوسبة للأغراض العامة على وحدات معالجة الرسومات (GPGPU)

يُعدّ الحوسبة للأغراض العامة على وحدات معالجة الرسومات (GPGPU) اتجاهًا حديثًا نسبيًا في أبحاث هندسة الحاسوب. وحدات معالجة الرسومات هي معالجات مساعدة تم تحسينها بشكل كبير لمعالجة رسومات الحاسوب . [ 62 ] وتُهيمن عمليات المعالجة المتوازية للبيانات على مجال معالجة رسومات الحاسوب، ولا سيما عمليات المصفوفات في الجبر الخطي .
في بداياتها، كانت برامج GPGPU تستخدم واجهات برمجة التطبيقات الرسومية العادية لتنفيذ البرامج. مع ذلك، تم تطوير العديد من لغات البرمجة والمنصات الجديدة لإجراء عمليات حسابية عامة على وحدات معالجة الرسومات، حيث أصدرت كل من Nvidia و AMD بيئات برمجة باستخدام CUDA و Stream SDK على التوالي. تشمل لغات برمجة وحدات معالجة الرسومات الأخرى BrookGPU و PeakStream و RapidMind . كما أصدرت Nvidia منتجات مخصصة للحوسبة ضمن سلسلة Tesla . وقد أصدر اتحاد Khronos Group التقني مواصفات OpenCL ، وهي إطار عمل لكتابة برامج تُنفذ على منصات تتكون من وحدات المعالجة المركزية ووحدات معالجة الرسومات. تدعم كل من AMD و Apple و Intel و Nvidia وغيرها OpenCL .
الدوائر المتكاملة الخاصة بالتطبيقات
تم ابتكار العديد من مناهج الدوائر المتكاملة الخاصة بالتطبيقات (ASIC) للتعامل مع التطبيقات المتوازية. [ 63 ] [ 64 ] [ 65 ]
نظرًا لأن الدوائر المتكاملة الخاصة بالتطبيقات (ASIC) مصممة (بحكم تعريفها) لتطبيق معين، يمكن تحسينها بالكامل لهذا التطبيق. ونتيجة لذلك، تميل الدوائر المتكاملة الخاصة بالتطبيقات إلى التفوق على الحواسيب العامة. مع ذلك، تُصنع هذه الدوائر بتقنية الطباعة الضوئية فوق البنفسجية ، وهي عملية تتطلب مجموعة أقنعة قد تكون باهظة الثمن للغاية، إذ قد تتجاوز تكلفتها مليون دولار أمريكي. [ 66 ] (كلما صغر حجم الترانزستورات المطلوبة للشريحة، زادت تكلفة القناع). في الوقت نفسه، تميل التحسينات في أداء الحوسبة العامة بمرور الوقت (كما ينص قانون مور ) إلى محو هذه المكاسب في جيل أو جيلين فقط من الشرائح. [ 61 ] وقد جعلت التكلفة الأولية المرتفعة، وميل الحوسبة العامة المدفوعة بقانون مور إلى التفوق عليها، استخدام الدوائر المتكاملة الخاصة بالتطبيقات غير عملي لمعظم تطبيقات الحوسبة المتوازية. مع ذلك، تم بناء بعضها، ومنها جهاز RIKEN MDGRAPE-3 ذو القدرة الحاسوبية الفائقة (PFLOPS) الذي يستخدم دوائر متكاملة خاصة بالتطبيقات لمحاكاة ديناميكيات الجزيئات .
معالجات المتجهات

المعالج المتجهي هو وحدة معالجة مركزية أو نظام حاسوبي قادر على تنفيذ نفس التعليمات على مجموعات بيانات كبيرة. يتميز المعالج المتجهي بعمليات عالية المستوى تعمل على مصفوفات خطية من الأرقام أو المتجهات. مثال على عملية متجهية هو A = B × C ، حيث A و B و C متجهات مكونة من 64 عنصرًا من أرقام الفاصلة العائمة ذات 64 بت . [ 67 ] وهي ترتبط ارتباطًا وثيقًا بتصنيف SIMD لفلين. [ 67 ]
اشتهرت حواسيب كراي بمعالجة المتجهات في سبعينيات وثمانينيات القرن الماضي. إلا أن معالجات المتجهات - سواءً كوحدات معالجة مركزية أو كأنظمة حاسوبية متكاملة - اختفت عمومًا. وتتضمن مجموعات تعليمات المعالجات الحديثة بعض تعليمات معالجة المتجهات، كما هو الحال في AltiVec من شركة فري سكيل سيميكوندكتور و Streaming SIMD Extensions (SSE) من شركة إنتل .
برمجة
لغات البرمجة المتوازية
تم تطوير لغات البرمجة المتزامنة ، والمكتبات ، وواجهات برمجة التطبيقات ( APIs )، ونماذج البرمجة المتوازية (مثل الهياكل الخوارزمية ) لبرمجة الحواسيب المتوازية. ويمكن تصنيف هذه الأدوات والنماذج عمومًا إلى فئات بناءً على افتراضاتها حول بنية الذاكرة الأساسية: الذاكرة المشتركة، والذاكرة الموزعة، والذاكرة الموزعة المشتركة. تتواصل لغات برمجة الذاكرة المشتركة من خلال معالجة متغيرات الذاكرة المشتركة. أما الذاكرة الموزعة فتستخدم تمرير الرسائل . وتُعدّ POSIX Threads و OpenMP من أكثر واجهات برمجة تطبيقات الذاكرة المشتركة استخدامًا، بينما تُعدّ واجهة تمرير الرسائل (MPI) أكثر واجهات برمجة تطبيقات أنظمة تمرير الرسائل استخدامًا. [ 68 ] ومن المفاهيم المستخدمة في برمجة البرامج المتوازية مفهوم المستقبل ، حيث يتعهد جزء من البرنامج بتسليم بيانات مطلوبة إلى جزء آخر منه في وقت لاحق.
تشمل الجهود المبذولة لتوحيد البرمجة المتوازية معيارًا مفتوحًا يُسمى OpenHMPP للبرمجة المتوازية الهجينة متعددة النوى. يوفر نموذج البرمجة القائم على التوجيهات في OpenHMPP صيغةً لتفريغ العمليات الحسابية بكفاءة على مُسرّعات الأجهزة، ولتحسين نقل البيانات من وإلى ذاكرة الأجهزة باستخدام استدعاءات الإجراءات عن بُعد .
أدى ظهور وحدات معالجة الرسومات الاستهلاكية إلى دعم نوى الحوسبة ، سواء في واجهات برمجة التطبيقات الرسومية (المشار إليها باسم تظليل الحوسبة )، أو في واجهات برمجة التطبيقات المخصصة (مثل OpenCL )، أو في امتدادات لغات أخرى.
التوازي التلقائي
يُعدّ التوازي التلقائي للبرامج المتسلسلة بواسطة المُترجم بمثابة "الهدف الأسمى" للحوسبة المتوازية، لا سيما مع القيد المذكور آنفًا لتردد المعالج. وعلى الرغم من عقود من العمل الذي قام به باحثو المُترجمات، لم يحقق التوازي التلقائي سوى نجاح محدود. [ 69 ]
لا تزال لغات البرمجة المتوازية الشائعة إما متوازية بشكل صريح أو (في أحسن الأحوال) ضمنية جزئيًا ، حيث يُعطي المبرمج للمترجم توجيهات للتوازي. وتوجد بعض لغات البرمجة المتوازية الضمنية بالكامل، مثل: SISAL ، وParallel Haskell ، و SequenceL ، و SystemC ( للمعالجات المنطقية القابلة للبرمجة )، و Mitrion-C ، و VHDL ، و Verilog .
التحقق من التطبيق
مع ازدياد تعقيد نظام الحاسوب، يقلّ متوسط الوقت بين الأعطال عادةً. تُعدّ تقنية حفظ نقاط التحقق للتطبيقات أسلوبًا يقوم فيه نظام الحاسوب بأخذ "لقطة" من التطبيق - سجلٌّ لجميع تخصيصات الموارد الحالية وحالات المتغيرات، أشبه بملف تفريغ الذاكرة -؛ ويمكن استخدام هذه المعلومات لاستعادة البرنامج في حال تعطل الحاسوب. تعني تقنية حفظ نقاط التحقق للتطبيقات أن البرنامج يُعاد تشغيله من آخر نقطة تحقق فقط، بدلًا من البداية. ورغم أن هذه التقنية تُوفّر فوائد في العديد من الحالات، إلا أنها تُعدّ مفيدة بشكل خاص في الأنظمة المتوازية للغاية ذات العدد الكبير من المعالجات المستخدمة في الحوسبة عالية الأداء . [ 70 ]
الأساليب الخوارزمية
مع ازدياد حجم وسرعة الحواسيب المتوازية، أصبحنا قادرين على حلّ مسائل كانت تستغرق وقتًا طويلاً في السابق. وقد استفادت مجالات متنوعة، مثل المعلوماتية الحيوية ( لتحليل طي البروتينات وتسلسلها ) والاقتصاد، من الحوسبة المتوازية. ومن أنواع المسائل الشائعة في تطبيقات الحوسبة المتوازية: [ 71 ]
- الجبر الخطي الكثيف
- الجبر الخطي المتفرق
- الطرق الطيفية (مثل تحويل فورييه السريع لكولي-توكي )
- مسائل الأجسام المتعددة (مثل محاكاة بارنز-هات )
- مسائل الشبكة المنظمة (مثل طرق لاتيس بولتزمان )
- مشاكل الشبكة غير المنظمة (مثل تلك الموجودة في تحليل العناصر المحدودة )
- طريقة مونت كارلو
- المنطق التوافقي (مثل تقنيات التشفير القائمة على القوة الغاشمة )
- اجتياز الرسم البياني (مثل خوارزميات الفرز )
- البرمجة الديناميكية
- أساليب التفرع والتقييد
- النماذج الرسومية (مثل اكتشاف نماذج ماركوف المخفية وبناء الشبكات البايزية )
- نموذج HBJ ، وهو نموذج موجز لتمرير الرسائل [ 72 ]
- محاكاة آلة الحالة المحدودة
- مشاكل التحسين (مثل الخوارزميات الجينية والتلدين المحاكي )
- طرق الجسيمات (مثل طريقة الجسيمات في الخلية وطريقة ديناميكا الموائع للجسيمات الملساء )
- مشاكل إرضاء القيود (CSPs)
- استخراج البيانات والتعرف على الأنماط
- التدريب على التعلم الآلي والتعلم العميق
- تتبع الأشعة والرسم
- تحليل السلاسل الزمنية
- تحليلات البيانات المتدفقة
تحمل الأعطال
يمكن تطبيق الحوسبة المتوازية أيضًا على تصميم أنظمة حاسوبية مقاومة للأعطال ، لا سيما عبر أنظمة متزامنة تُنفذ العملية نفسها بالتوازي. يوفر هذا التكرار في حال تعطل أحد المكونات، كما يسمح بالكشف التلقائي عن الأخطاء وتصحيحها إذا اختلفت النتائج. يمكن استخدام هذه الأساليب للمساعدة في منع الاضطرابات الناجمة عن أحداث فردية بسبب أخطاء عابرة. [ 73 ] على الرغم من أنه قد يلزم اتخاذ تدابير إضافية في الأنظمة المدمجة أو المتخصصة، إلا أن هذه الطريقة تُوفر نهجًا فعالًا من حيث التكلفة لتحقيق التكرار المعياري (n-modular) في الأنظمة التجارية الجاهزة.
تاريخ

تعود أصول التوازي الحقيقي (MIMD) إلى لويجي فيديريكو مينابريا ورسمه التخطيطي للمحرك التحليلي الذي اخترعه تشارلز باباج . [ 75 ] [ 76 ] [ 77 ]
في عام 1957، أعلنت شركة Compagnie des Machines Bull عن أول بنية حاسوبية مصممة خصيصًا للتوازي، وهي Gamma 60. [ 78 ] وقد استخدمت نموذج التفرع والدمج و"موزع البرامج" لإرسال البيانات وجمعها من وإلى وحدات المعالجة المستقلة المتصلة بذاكرة مركزية. [ 79 ] [ 80 ]
في أبريل 1958، ناقش ستانلي جيل (فيرانتي) البرمجة المتوازية وضرورة التفرع والانتظار. [ 81 ] وفي العام نفسه، ناقش باحثا شركة IBM ، جون كوك ودانيال سلوتنيك، استخدام التوازي في الحسابات العددية لأول مرة. [ 82 ] وفي عام 1962، طرحت شركة بوروز جهاز D825، وهو حاسوب رباعي المعالجات يصل إلى 16 وحدة ذاكرة عبر مفتاح تبديل . [ 83 ] وفي عام 1967، نشر أمدال وسلوتنيك مناقشة حول جدوى المعالجة المتوازية في مؤتمر الاتحاد الأمريكي لجمعيات معالجة المعلومات. [ 82 ] وخلال هذه المناقشة، صِيغ قانون أمدال لتحديد حد تسريع الأداء الناتج عن التوازي.
في عام 1969، طرحت شركة هانيويل أول نظام Multics لها ، وهو نظام معالجات متعددة متناظر قادر على تشغيل ما يصل إلى ثمانية معالجات بالتوازي. [ 82 ] وكان مشروع C.mmp ، وهو مشروع معالجات متعددة في جامعة كارنيجي ميلون في سبعينيات القرن الماضي، من أوائل أنظمة المعالجات المتعددة التي تضم أكثر من بضعة معالجات. أما أول نظام معالجات متعددة متصل بناقل بيانات مزود بذاكرة تخزين مؤقتة للتجسس، فكان Synapse N+1 في عام 1984. [ 76 ]
يعود تاريخ الحواسيب المتوازية بتقنية SIMD إلى سبعينيات القرن العشرين. وكان الدافع وراء ظهورها المبكر هو توزيع تأخير البوابات في وحدة التحكم بالمعالج على عدة تعليمات. [ 84 ] في عام 1964، اقترح سلوتنيك بناء حاسوب متوازي ضخم لمختبر لورانس ليفرمور الوطني . [ 82 ] وقد مولت القوات الجوية الأمريكية تصميمه ، وكان هذا أول مشروع للحوسبة المتوازية بتقنية SIMD، وهو ILLIAC IV . [ 82 ] تميز تصميمه بتوازي عالٍ نسبيًا، حيث وصل عدد المعالجات إلى 256 معالجًا، مما سمح للجهاز بالعمل على مجموعات بيانات ضخمة فيما عُرف لاحقًا بمعالجة المتجهات . ومع ذلك، لُقب ILLIAC IV بـ"أشهر الحواسيب العملاقة"، لأن المشروع لم يُنجز منه سوى الربع، واستغرق 11 عامًا، وكلف ما يقرب من أربعة أضعاف التقدير الأولي. [ 74 ] عندما أصبح جاهزًا أخيرًا لتشغيل أول تطبيق حقيقي له في عام 1976، تفوقت عليه أجهزة الكمبيوتر العملاقة التجارية الموجودة مثل Cray-1 .
الدماغ البيولوجي كحاسوب متوازي ضخم
في أوائل سبعينيات القرن العشرين، بدأ مارفن مينسكي وسيمور بابيرت ، في مختبر علوم الحاسوب والذكاء الاصطناعي التابع لمعهد ماساتشوستس للتكنولوجيا ، بتطوير نظرية "مجتمع العقل" ، التي تنظر إلى الدماغ البيولوجي على أنه حاسوب متوازي ضخم . في عام ١٩٨٦، نشر مينسكي كتابه "مجتمع العقل "، الذي يدّعي أن "العقل يتكون من العديد من العناصر الصغيرة، كل منها بلا عقل في حد ذاته". [ ٨٥ ] تحاول النظرية تفسير كيف يمكن لما نسميه الذكاء أن يكون نتاجًا لتفاعل أجزاء غير ذكية. يقول مينسكي إن المصدر الأكبر للأفكار حول هذه النظرية جاء من عمله في محاولة ابتكار آلة تستخدم ذراعًا آلية وكاميرا فيديو وحاسوبًا للبناء باستخدام مكعبات الأطفال. [ ٨٦ ]
وقد تم وصف نماذج مماثلة (والتي تنظر أيضًا إلى الدماغ البيولوجي على أنه حاسوب متوازي ضخم، أي أن الدماغ يتكون من مجموعة من العوامل المستقلة أو شبه المستقلة) بواسطة:
- توماس ر. بليكيسلي، [ 87 ]
- مايكل س. جازانيجا , [ 88 ] [ 89 ]
- روبرت إي. أورنشتاين ، [ 90 ]
- إرنست هيلجارد , [ 91 ] [ 92 ]
- ميتشيو كاكو , [ 93 ]
- جورج إيفانوفيتش غوردجييف ، [ 94 ]
- نموذج الدماغ العنقودي العصبي. [ 95 ]
انظر أيضاً
مراجع
- ↑ غوتليب، آلان؛ ألماسي، جورج س. (1989). الحوسبة المتوازية للغاية . ريدوود سيتي، كاليفورنيا: بنجامين/كومينغز. ISBN 978-0-8053-0177-9.
- ↑ إس. في. أدفي وآخرون (نوفمبر 2008). "أبحاث الحوسبة المتوازية في إلينوي: أجندة مركز أبحاث الحوسبة المتوازية بجامعة إلينوي في أوربانا-شامبين". مؤرشف في 11 يناير 2018 على موقع Wayback Machine (ملف PDF). Parallel@Illinois، جامعة إلينوي في أوربانا-شامبين. "إن التقنيات الرئيسية لتحقيق هذه التحسينات في الأداء - زيادة تردد الساعة وبنى أكثر ذكاءً ولكنها تزداد تعقيدًا - تواجه الآن ما يُسمى بـ"حاجز الطاقة". وقد أقرّت صناعة الحوسبة بأن الزيادات المستقبلية في الأداء يجب أن تأتي إلى حد كبير من زيادة عدد المعالجات (أو النوى) على الشريحة، بدلاً من زيادة سرعة نواة واحدة."
- ↑ أسانوفيتش وآخرون. الحكمة التقليدية القديمة: الطاقة مجانية، لكن الترانزستورات باهظة الثمن. الحكمة التقليدية الجديدة هي أن الطاقة باهظة الثمن، لكن الترانزستورات "مجانية".
- ↑ أسانوفيتش، كرست وآخرون (18 ديسمبر 2006). "مشهد أبحاث الحوسبة المتوازية: رؤية من بيركلي" (ملف PDF). جامعة كاليفورنيا، بيركلي. التقرير الفني رقم UCB/EECS-2006-183. "الرأي السائد سابقًا: زيادة تردد الساعة هي الطريقة الأساسية لتحسين أداء المعالج. الرأي السائد حاليًا: زيادة التوازي هي الطريقة الأساسية لتحسين أداء المعالج... حتى ممثلو شركة إنتل، وهي شركة تُعرف عمومًا بمبدأ "كلما زادت سرعة الساعة كان ذلك أفضل"، حذروا من أن الأساليب التقليدية لزيادة الأداء إلى أقصى حد من خلال زيادة سرعة الساعة قد وصلت إلى حدودها القصوى."
- ↑ البرمجة المتوازية والمتزامنة في لغة هاسكل . دار نشر أورايلي ميديا. 2013. رقم ISBN 9781449335922.
- ↑ هينيسي، جون ل .؛ باترسون، ديفيد أ .؛ لاروس، جيمس ر. (1999). تنظيم وتصميم الحاسوب: واجهة الأجهزة/البرمجيات (الطبعة الثانية، الطبعة الثالثة ). سان فرانسيسكو: كوفمان. ISBN 978-1-55860-428-5.
- 1 2 بارني، بليز. "مقدمة في الحوسبة المتوازية" . مختبر لورانس ليفرمور الوطني . تم الاسترجاع في 9 نوفمبر 2007 .
- ↑ توماس راوبر؛ جودولا رونغر (2013). البرمجة المتوازية: لأنظمة المعالجات متعددة النوى وأنظمة المجموعات . سبرينغر ساينس آند بيزنس ميديا. ص 1. ISBN 9783642378010.
- ↑ هينيسي، جون ل.؛ باترسون، ديفيد أ. (2002). هندسة الحاسوب / منهج كمي ( الطبعة الثالثة). سان فرانسيسكو، كاليفورنيا: إنترناشونال تومسون. ص 43. ISBN 978-1-55860-724-8.
- ↑ راباي، جان م. (1996). الدوائر المتكاملة الرقمية : منظور تصميمي . أبر سادل ريفر، نيوجيرسي: برنتيس هول. ص 235. ISBN 978-0-13-178609-7.
- ↑ فلين، لوري ج. (8 مايو 2004). "إنتل توقف تطوير معالجين دقيقين جديدين" . نيويورك تايمز . تم الاطلاع عليه في 5 يونيو 2012 .
- ↑ توماس راوبر؛ جودولا رونغر (2013). البرمجة المتوازية: لأنظمة المعالجات متعددة النوى وأنظمة المجموعات . سبرينغر ساينس آند بيزنس ميديا. ص 2. ISBN 9783642378010.
- ↑ توماس راوبر؛ جودولا رونغر (2013). البرمجة المتوازية: لأنظمة المعالجات متعددة النوى وأنظمة المجموعات . سبرينغر ساينس آند بيزنس ميديا. ص 3. ISBN 9783642378010.
- ↑ باكوس، جيسون د. (2016-01-01)، باكوس، جيسون د. (محرر)، "الفصل 2 - تحسين متعدد النوى وعلى مستوى البيانات: OpenMP وSIMD" ، الأنظمة المدمجة ، بوسطن: مورغان كوفمان، ص 49-103 ، doi : 10.1016/b978-0-12-800342-8.00002-x ، ISBN 978-0-12-800342-8تم الاطلاع عليه بتاريخ 18 نوفمبر 2024
{{citation}}: CS1 maint: work parameter with ISBN ( link ) - ↑ فن برمجة المعالجات المتعددة، طبعة منقحة . مورغان كوفمان. ٢٢ مايو ٢٠١٢. رقم ISBN 9780123973375.
- ^ فاجدا ، أندراس (10 يونيو 2011). برمجة الرقائق متعددة النواة . سبرينغر. رقم ISBN 9781441997395.
- ↑ أمدال، جين م. (18 أبريل 1967). "صحة نهج المعالج الواحد لتحقيق قدرات حوسبة واسعة النطاق" . وقائع المؤتمر المشترك للحوسبة الربيعي المنعقد في الفترة من 18 إلى 20 أبريل 1967 - AFIPS '67 (ربيع) . نيويورك، نيويورك، الولايات المتحدة الأمريكية: رابطة آلات الحوسبة. الصفحات 483-485 . doi : 10.1145/1465482.1465560 . ISBN 978-1-4503-7895-6.
- ↑ هندسة الحاسوب: منهج كمي . مورغان كوفمان. 2003. ISBN 978-8178672663.
- ↑ بنية الحاسوب المتوازي: منهج الأجهزة/البرمجيات . دار نشر إلسيفير للعلوم. 1999. رقم ISBN 9781558603431.
- ↑ ماكول، مايكل؛ رايندرز، جيمس؛ روبيسون، آرتش (2013). البرمجة المتوازية المهيكلة: أنماط للحوسبة الفعالة . إلسيفير. ص 61. ISBN 978-0-12-415993-8.
- ↑ غونتر، نيل (2007). تخطيط القدرات المبتكر: منهج تكتيكي لتخطيط التطبيقات والخدمات عالية التوسع . ISBN 978-3540261384.
- ↑ بيرنشتاين، آرثر ج. (1 أكتوبر 1966). "تحليل برامج المعالجة المتوازية". معاملات IEEE في الحواسيب الإلكترونية . EC-15 (5): 757–763 . Bibcode : 1966ITECm..15..757B . doi : 10.1109/PGEC.1966.264565 .
- ↑ روستا، سيد ح. (2000). المعالجة المتوازية والخوارزميات المتوازية : النظرية والحساب . نيويورك، نيويورك [ua]: سبرينغر. ص 114. ISBN 978-0-387-98716-3.
- ↑ "العمليات والخيوط" . شبكة مطوري مايكروسوفت . شركة مايكروسوفت . 2018. تم الاطلاع عليه بتاريخ 10-05-2018 .
- ↑ كراوس، كيرك ج (2018). "سلامة الخيوط من أجل الأداء" . التطوير من أجل الأداء . مؤرشف من الأصل في 13 مايو 2018. تم الاسترجاع في 10 مايو 2018 .
- ↑ تانينباوم، أندرو س. (1 فبراير 2002). مقدمة عن حالات الجمود في أنظمة التشغيل . بيرسون إديوكيشن، إنفورميت . تم الاطلاع عليه بتاريخ 10 مايو 2018 .
- ↑ سيسيل، ديفيد (2015-11-03). "آليات التزامن الداخلية - الإشارة" . مضمنة . أسبن كور . تم الاسترجاع في 2018-05-10 .
- ↑ بريشينغ، جيف (2012-06-08). "مقدمة في البرمجة غير المعتمدة على الأقفال" . بريشينغ في البرمجة . تم الاسترجاع في 2018-05-10 .
- ↑ "ما هو عكس عبارة "متوازي بشكل محرج"؟" . StackOverflow . تم الاسترجاع في 10 مايو 2018 .
- ↑ شوارتز، ديفيد (15 أغسطس 2011). "ما هو التنازع على الخيوط؟" . ستاك أوفر فلو . تم الاسترجاع في 10 مايو 2018 .
- ↑ كوكانوف، أليكسي (2008-03-04). "لماذا قد يتسبب اختبار بسيط في تباطؤ الأداء المتوازي" . تم الاطلاع عليه بتاريخ 2015-02-15 .
- ↑ كراوس، كيرك ج. (2018). "المعالجة المتعددة لتحسين الأداء" . تطوير الأداء . مؤرشف من الأصل بتاريخ 13 مايو 2018. تم الاطلاع عليه بتاريخ 10 مايو 2018 .
- ↑ فلين، مايكل ج. (سبتمبر 1972). "بعض تنظيمات الحاسوب وفعاليتها" (ملف PDF) . معاملات IEEE في مجال الحواسيب . C-21 (9): 948-960 . doi : 10.1109/TC.1972.5009071 .
- ↑ باترسون وهينيسي، ص 748.
- ↑ سيلبرشاتز، أبراهام؛ جالفين، بيتر ب.؛ غاني، جريج (29 يوليو 2008). مفاهيم أنظمة التشغيل . وايلي. ISBN 978-0470128725.
- ↑ تنظيم وتصميم الحاسوب، إصدار MIPS: واجهة الأجهزة/البرمجيات (سلسلة مورغان كوفمان في هندسة وتصميم الحاسوب) . مورغان كوفمان. 2013. ISBN 978-0124077263.
- ↑ البرمجة المتوازية: تقنيات وتطبيقات باستخدام محطات العمل الشبكية والحواسيب المتوازية . بيرسون. 2005. ISBN 978-0131405639.
- ^ سينغ ، ديفيد كولر. جي بي (1997). هندسة الكمبيوتر المتوازية ([Nachdr.] ed.). سان فرانسيسكو: مورجان كوفمان للنشر. ص. 15. رقم ISBN 978-1-55860-343-1.
{{cite book}}: صيانة CS1: أسماء متعددة: قائمة المؤلفين ( رابط ) - ↑ كولر وآخرون، ص 15.
- ↑ بات، جامعة ييل (أبريل 2004). " المعالج الدقيق بعد عشر سنوات: ما هي التحديات، وكيف نواجهها؟" مؤرشف في 14 أبريل 2008 على موقع Wayback Machine (wmv). محاضرة لمحاضر متميز في جامعة كارنيجي ميلون . تم الاطلاع عليه في 7 نوفمبر 2007.
- ↑ كولر وآخرون، ص 124.
- ↑ كولر وآخرون، ص 125.
- ↑ صموئيل لارسن؛ سامان أماراسينغ. "استغلال التوازي على مستوى الكلمات الفائقة مع مجموعات تعليمات الوسائط المتعددة" (PDF) .
- 1 2 باترسون وهينيسي، ص 713.
- 1 2 هينيسي وباترسون، ص 549.
- ↑ باترسون وهينيسي، ص 714.
- ↑ غوش، سوكومار (2007). الأنظمة الموزعة - منهج خوارزمي . تشابمان آند هول/سي آر سي. ص 10. ISBN 978-1-58488-564-1.
- ↑ كيدار، إيديت (2008). "الحوسبة الموزعة، العمود 32 - استعراض العام" . أخبار ACM SIGACT . 39 (4): 53-54 . CiteSeerX 10.1.1.116.1285 . doi : 10.1145/1466390.1466402 . S2CID 7607391. مؤرشف من الأصل بتاريخ 16 يناير 2014. تم الاطلاع عليه بتاريخ 20 أغسطس 2009 .
- ↑ لينش، نانسي أ. (1996)، الخوارزميات الموزعة ، مورغان كوفمان ، ص 1-2، ISBN 978-1-55860-348-6
- ↑ بيليج، ديفيد (2000). الحوسبة الموزعة: منهج حساس للموقع . SIAM . ص 1. ISBN 978-0-89871-464-7أُرشف من المصدر الأصلي بتاريخ 2009-08-06 . تم الاطلاع عليه بتاريخ 2009-07-16 .
- ↑ ما هو التجميع؟ قاموس ويبوبيديا الحاسوبي. تم الاطلاع عليه بتاريخ 7 نوفمبر 2007.
- ↑ تعريف بيوولف. مؤرشف بتاريخ 10 أكتوبر 2012 في أرشيف الإنترنت (Wayback Machine) . مجلة الكمبيوتر الشخصي . تم الاطلاع عليه بتاريخ 7 نوفمبر 2007.
- ↑ "إحصائيات القائمة | أفضل 500 موقع حاسوب فائق" . www.top500.org . تاريخ الاسترجاع: 5 أغسطس 2018 .
- ↑ "الترابط" مؤرشف بتاريخ 2015-01-28 في آلة Wayback Machine .
- ↑ هينيسي وباترسون، ص 537.
- ↑ تعريف MPP. مؤرشف بتاريخ 11 مايو 2013 في أرشيف Wayback Machine . مجلة PC . تم الاطلاع عليه بتاريخ 7 نوفمبر 2007.
- ↑ كيركباتريك، سكوت (2003). "علوم الحاسوب: أوقات عصيبة قادمة". مجلة ساينس . 299 (5607): 668-669 . doi : 10.1126/science.1081623 . PMID 12560537. S2CID 60622095 .
- ↑ هيلينغز، جيلي؛ سادوغي، محمد (2021). "سيربيروس: معالجة معاملات بسيطة متعددة الأجزاء مقاومة للأخطاء البيزنطية" (ملف PDF) . وقائع مؤسسة VLDB . 14 (11): 2230-2243 . arXiv : 2202.04522 . doi : 10.14778/3476249.3476274 .
- ↑ فالويفا، ماريا؛ فالويف، جورجي؛ سيميونوفا، ناتاليا؛ لياخوف، بافيل؛ تشيرفياكوف، نيكولاي؛ كابلون، ديمتري؛ بوغايفسكي، دانيل (2019-06-20). "بناء نظام الأعداد المتبقية باستخدام دالة قطرية فعالة من حيث استخدام الأجهزة" . إلكترونيات . 8 (6): 694. doi : 10.3390/electronics8060694 . ISSN 2079-9292 .
تم وصف جميع الدوائر المحاكاة بلغة وصف الأجهزة (VHDL) الخاصة بالدوائر المتكاملة عالية السرعة جدًا (VHSIC). تم إجراء نمذجة الأجهزة على Xilinx FPGA Artix 7 xc7a200tfbg484-2.
- ↑ غوبتا، أنكيت؛ سونيجا، كريتي (مايو 2020). "تصميم الأجهزة لمضاعف المصفوفة التقريبي القائم على FPGA في Verilog". المؤتمر الدولي الرابع للحوسبة الذكية وأنظمة التحكم (ICICCS) لعام 2020. مادوراي، الهند: IEEE. الصفحات 496-498 . doi : 10.1109/ICICCS48265.2020.9121004 . ISBN 978-1-7281-4876-2. S2CID 219990653 .
- 1 2 3 دامور، مايكل ر.، الرئيس التنفيذي للعمليات، شركة دي آر سي للحاسوب. "الحوسبة القياسية القابلة لإعادة التكوين". متحدث مدعو في جامعة ديلاوير، 28 فبراير 2007.
- ↑ بوغان، شاكيا ودانيال م. بريسل (أغسطس 2007). وحدات معالجة الرسومات: منصة ناشئة للحوسبة للأغراض العامة (ملف PDF). ARL-SR-154، مختبر أبحاث الجيش الأمريكي. تم الاطلاع عليه بتاريخ 7 نوفمبر 2007.
- ↑ ماسلينيكوف، أوليغ (2002). "التوليد المنهجي لبرامج التنفيذ لعناصر المعالج في الأنظمة المتوازية القائمة على الدوائر المتكاملة الخاصة بالتطبيقات أو مصفوفات البوابات المنطقية القابلة للبرمجة وتحويلها إلى أوصاف VHDL لوحدات التحكم في عناصر المعالج". سلسلة محاضرات في علوم الحاسوب ، 2328/2002: ص 272.
- ↑ شيموكاوا، ي.؛ فوا، ي.؛ أراماكي، ن. (18-21 نوفمبر 1991). "حاسوب عصبي متوازي بتقنية ASIC VLSI لعدد كبير من الخلايا العصبية وسرعة مليار اتصال في الثانية". [ وقائع ] المؤتمر الدولي المشترك لشبكات IEEE العصبية لعام 1991. المجلد 3. الصفحات 2162-2167 . doi : 10.1109/IJCNN.1991.170708 . ISBN 978-0-7803-0227-3. S2CID 61094111 .
- ↑ آكن، كيفن ب.؛ إيروين، ماري جين؛ أوينز، روبرت م. (يوليو 1998). "معمارية ASIC متوازية لترميز الصور الكسورية بكفاءة". مجلة معالجة إشارات VLSI . 19 (2): 97-113 . Bibcode : 1998JSPSy..19...97A . doi : 10.1023/A:1008005616596 . S2CID 2976028 .
- ↑ كانغ، أندرو ب. (21 يونيو 2004) " تحديد نطاق مشكلة التصميم للتصنيع في صناعة أشباه الموصلات " مؤرشف في 31 يناير 2008 على موقع Wayback Machine . جامعة كاليفورنيا، سان دييغو. "يجب أن تقلل تقنية التصميم للتصنيع (DFM) المستقبلية من تكلفة التصميم [النفقات غير القابلة للاسترداد] وأن تعالج بشكل مباشر تكاليف التصنيع [النفقات غير القابلة للاسترداد] - تكلفة مجموعة الأقنعة وبطاقة المجس - والتي تتجاوز مليون دولار أمريكي عند عقدة تكنولوجيا 90 نانومتر، مما يخلق عائقًا كبيرًا أمام الابتكار القائم على أشباه الموصلات."
- 1 2 باترسون وهينيسي، ص 751.
- ↑ جائزة سيدني فيرنباخ الممنوحة لمخترع MPI بيل غروب، مؤرشفة بتاريخ 25-07-2011 في Wayback Machine، تشير إلى MPI على أنها "واجهة اتصالات الحوسبة عالية الأداء المهيمنة".
- ↑ شين، جون بول؛ ليباستي، ميكو هـ. (2004). تصميم المعالجات الحديثة: أساسيات المعالجات فائقة القياس ( الطبعة الأولى). دوبوك، أيوا: ماكجرو هيل. ص 561. ISBN 978-0-07-057064-1ومع ذلك ،
فإن الهدف الأسمى لهذا النوع من الأبحاث - وهو التوازي الآلي للبرامج التسلسلية - لم يتحقق بعد. فبينما تم إثبات التوازي الآلي لبعض فئات الخوارزميات، إلا أن هذا النجاح اقتصر إلى حد كبير على التطبيقات العلمية والرقمية ذات التحكم المتوقع في التدفق (مثل هياكل الحلقات المتداخلة ذات عدد التكرارات المحدد مسبقًا) وأنماط الوصول إلى الذاكرة القابلة للتحليل الثابت (مثل عمليات المسح على مصفوفات متعددة الأبعاد كبيرة من بيانات الفاصلة العائمة).
- ↑ موسوعة الحوسبة المتوازية، المجلد 4، بقلم ديفيد بادوا، 2011، رقم ISBN 0387097651الصفحة 265
- ↑ أسانوفيتش، كرست ، وآخرون (18 ديسمبر/كانون الأول 2006). "مشهد أبحاث الحوسبة المتوازية: رؤية من بيركلي" (ملف PDF). جامعة كاليفورنيا، بيركلي. التقرير الفني رقم UCB/EECS-2006-183. انظر الجدول في الصفحات 17-19.
- ↑ ديفيد ر. هيلمان؛ ديفيد أ. بادر؛ جاجا، جوزيف (1998). "خوارزمية فرز متوازية عشوائية مع دراسة تجريبية" (ملف PDF) . مجلة الحوسبة المتوازية والموزعة . 52 : 1-23 . doi : 10.1006/jpdc.1998.1462 . hdl : 1903/835 . مؤرشف من الأصل (ملف PDF) في 19 نوفمبر 2012. تم الاطلاع عليه في 26 أكتوبر 2012 .
- ↑ دوبل، ب.، هارتيغ، هـ.، وإنجل، م. (2012). "دعم نظام التشغيل للمعالجة المتعددة المتكررة". وقائع المؤتمر الدولي العاشر لجمعية الحوسبة الآلية حول البرمجيات المدمجة ، 83-92. doi : 10.1145/2380356.2380375
- 1 2 باترسون وهينيسي، الصفحات 749-750: "على الرغم من نجاح جهاز ILLIAC IV في تطوير العديد من التقنيات المفيدة في مشاريع لاحقة، إلا أنه فشل كحاسوب. فقد ارتفعت تكاليفه من 8 ملايين دولار أمريكي، وهي التكلفة المقدرة في عام 1966، إلى 31 مليون دولار أمريكي بحلول عام 1972، على الرغم من بناء ربع الجهاز المخطط له فقط . ولعله كان أشهر الحواسيب العملاقة من حيث السمعة السيئة. بدأ المشروع في عام 1965، وشغّل أول تطبيق حقيقي له في عام 1976."
- ↑ مينابريا، إل إف (1842). رسم تخطيطي للمحرك التحليلي الذي اخترعه تشارلز باباج . المكتبة العالمية في جنيف. تم الاطلاع عليه في 7 نوفمبر 2007. اقتباس: "عندما يتعين إجراء سلسلة طويلة من العمليات الحسابية المتطابقة، مثل تلك المطلوبة لتكوين الجداول العددية، يمكن استخدام الآلة لإعطاء عدة نتائج في الوقت نفسه، مما يقلل بشكل كبير من إجمالي العمليات."
- 1 2 باترسون وهينيسي، ص 753.
- ↑ RW Hockney, CR Jesshope. Parallel Computers 2: Architecture, Programming and Algorithms, Volume 2. 1988. ص 8 اقتباس: "يُعتقد أن أقدم إشارة إلى التوازي في تصميم الحاسوب كانت في منشور الجنرال إل إف مينابريا في عام 1842، بعنوان " رسم تخطيطي للمحرك التحليلي الذي اخترعه تشارلز باباج ".
- ↑ باتاي، م. (1972-04-01). "شيء قديم: غاما 60، الحاسوب الذي سبق عصره" . أخبار هندسة الحاسوب، ACM SIGARCH . 1 (2): 10-15 . doi : 10.1145/641276.641278 . ISSN 0163-5964 . S2CID 34642285 .
- ↑ "رسم تخطيطي معماري لثورة جاما 60 - مارك سموثرمان" . www.feb-patrimoine.com . تاريخ الاسترجاع: 14 أغسطس 2023 .
- ↑ توملين، سموثرمان (14 أغسطس 2023). "تقييم تصميم جاما 60" . متحف أكونيت لتاريخ الحاسوب . قسم علوم الحاسوب، جامعة كليمسون . تاريخ الاسترجاع: 14 أغسطس 2023 .
- ↑ "البرمجة المتوازية"، إس. جيل، مجلة الكمبيوتر المجلد 1 العدد 1، الصفحات 2-10، الجمعية البريطانية للحاسبات، أبريل 1958.
- 1 2 3 4 5 ويلسون، غريغوري ف. (1994). "تاريخ تطور الحوسبة المتوازية" . جامعة فرجينيا للتكنولوجيا/جامعة نورفولك الحكومية، التعلم التفاعلي باستخدام مكتبة رقمية في علوم الحاسوب . تم الاسترجاع في 8 يناير 2008 .
- ↑ أنثيس، جري (19 نوفمبر 2001). "قوة التوازي" . كمبيوتر وورلد . مؤرشف من الأصل في 31 يناير 2008. تم الاسترجاع في 8 يناير 2008 .
- ↑ باترسون وهينيسي، ص 749.
- ↑ مينسكي ، مارفن (1986). مجتمع العقل . نيويورك: سايمون وشوستر. ص 17. ISBN 978-0-671-60740-1.
- ↑ مينسكي ، مارفن (1986). مجتمع العقل . نيويورك: سايمون وشوستر. ص 29. ISBN 978-0-671-60740-1.
- ↑ بليكيسلي، توماس (1996). ما وراء العقل الواعي: كشف أسرار الذات . سبرينغر. ص 6-7 . ISBN 9780306452628.
- ↑ غازانيغا، مايكل ؛ ليدو، جوزيف (1978). العقل المتكامل . ص 132-161 .
- ↑ غازانيغا، مايكل (1985). الدماغ الاجتماعي: اكتشاف شبكات العقل . دار بيسيك بوكس. الصفحات 77-79 . ISBN 9780465078509.
- ↑ أورنشتاين، روبرت (1992). تطور الوعي: أصول طريقة تفكيرنا . ص 2 .
- ↑ هيلغارد، إرنست (1977). الوعي المنقسم: ضوابط متعددة في الفكر والفعل البشري . نيويورك: وايلي. ISBN 978-0-471-39602-4.
- ↑ هيلغارد، إرنست (1986). الوعي المنقسم: ضوابط متعددة في الفكر والفعل البشري (طبعة موسعة) . نيويورك: وايلي. ISBN 978-0-471-80572-4.
- ↑ كاكو، ميتشيو (2014). مستقبل العقل .
- ↑ أوسبنسكي، بيوتر (1992). "الفصل 3". في البحث عن المعجزة. شذرات من تعاليم مجهولة . ص 72-83 .
- ↑ "الموقع الرسمي لنموذج الدماغ العصبي" . تم الاطلاع عليه في 22 يوليو 2017 .
للمزيد من القراءة
- رودريغيز، سي.؛ فيلاغرا، إم.؛ باران، بي. (29 أغسطس 2008). "خوارزميات الفريق غير المتزامنة لتحقيق الإرضاء المنطقي". المؤتمر الثاني لعام 2007 حول النماذج المستوحاة من علم الأحياء لأنظمة الشبكات والمعلومات والحوسبة . الصفحات 66-69 . doi : 10.1109/BIMNICS.2007.4610083 . S2CID 15185219 .
- سيتشين، أ.؛ الحوسبة المتوازية في التصوير المساحي. جي آي إم إنترناشونال. العدد 1، 2016، الصفحات 21-23.
روابط خارجية
- مختبر لورانس ليفرمور الوطني: مقدمة في الحوسبة المتوازية
- تصميم وبناء البرامج المتوازية، بقلم إيان فوستر
- أرشيف الحوسبة المتوازية عبر الإنترنت
- الحوسبة المتوازية
- الحوسبة المتزامنة
- الحوسبة الموزعة
