هل هناك شيء مثل الساعة () يعمل بشكل أفضل للرمز المتوازي؟

StackOverflow https://stackoverflow.com/questions/2467132

سؤال

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

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

المحلول

انظر إجابة Freememory على هذا السؤال بالنسبة إلى RDTSC إذا كنت تستخدم X86 الذي اختبرته ويبدو أنه يعمل بشكل جيد على نظامي (MAC) ، ولكن انظر إجابتي على هذا السؤال. انظر أيضًا انتقاد RDTSC هنا.

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

نصائح أخرى

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

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