سؤال

ما معنى "البرمجيات الموازية" وما هي الاختلافات بين "البرمجيات الموازية" و "البرمجيات العادية"؟

ما هي مزاياها وعيوبها؟

هل تتطلب كتابة "البرامج الموازية" جهازًا معينًا أو لغة برمجة معينة؟

هل كانت مفيدة؟

المحلول

http://en.wikipedia.org/wiki/Thread_(computer_science)

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

تدعم معظم لغات البرمجة الحديثة تعدد مؤشرات الترابط بطريقة أو بأخرى (حتى Javascript في أحدث الإصدارات).:-)

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

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

بعض الأجهزة المتخصصة التي قد تكون على دراية بها والتي تقوم بمهام متوازية هي وحدة معالجة الرسومات (GPU) التي يمكن العثور عليها في معظم أجهزة الكمبيوتر الجديدة.في هذا الفيديو، يوضح Mythbusters الفرق بين الرسم على وحدة معالجة مركزية ذات خيط واحد، ووحدة معالجة رسومات متعددة الخيوط:
http://www.youtube.com/watch?v=XtGf0HaW7x4&feature=player_embedded

نصائح أخرى

<اقتباس فقرة>   

هل "البرنامج الموازي" يتطلب الأجهزة أو برمجة اللغة المحددة؟

ونعم ونعم.

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

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

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

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

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

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

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top