سؤال

هل هناك طريقة لتغيير schedule اكتب في pragma omp for حلقة, باستخدام وظيفة في ج?كنت أحاول أن أفعل setenv("OMP_SCHEDULE", "guided", 1); قبل البيان الموازي ، لكنني لست متأكدا تماما مما إذا كان يعمل ، لأن الأوقات التي أحصل عليها من الكود الخاص بي متشابهة جدا.ما أردت القيام به هو استخدام for حلقة تغيير نوع الجدول الزمني لمقارنة توقيت ، وإعطاء dynamic, auto ، إلخ.كما سلسلة في setenv وظيفة.

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

المحلول

يمكنك استخدام الجدول الزمني (وقت التشغيل) وتعيين الجدول الزمني.

من عند https://computing.llnl.gov/tutorials/openMP/

وقت التشغيل يتم تأجيل قرار الجدولة حتى وقت التشغيل بواسطة الجدول الزمني لمتغير البيئة.من غير القانوني تحديد حجم قطعة لهذا البند.

اسمحوا لي فقط أن أقتبس خريستو إلييف لأنه قال بالفعل أفضل هنا أوبنمب:للجدول الزمني

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

نصائح أخرى

لا توجد طريقة قياسية للقيام بذلك ، ولكن إذا كنت تستخدم مكتبة إنتل ، يمكنك استخدام kmp_set_defaults() تمديد.هذا يأخذ سلسلة من الخيارات مفصولة | الأحرف ، ويتجاوز السلوك الافتراضي أوبنمب.في المثال الخاص بك, kmp_set_defaults("OMP_SCHEDULE=guided") يجب أن تنجز ما تريد.

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