mpiexec باستخدام عدد خاطئ من وحدات المعالجة المركزية

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

سؤال

أحاول إعداد مجموعة MPI. لكن لدي مشكلة تفيد بأن عدد وحدات المعالجة المركزية التي تمت إضافتها إلى ملف MPD.Conf غير مستخدم بشكل صحيح. لدي ثلاثة خوادم أوبونتو. Opteron مع 48 النوى calc1 مع 8 النوى calc2 مع 8 نوى.

يبدو MPD.Hosts الخاص بي:
opteron:46
calc1:6
calc2:6

بعد التمهيد (mpdboot -n 3 -f mpd.hosts) يعمل النظام. MPDTRACE -> يتم سرد جميعهم الثلاثة.

لكن تشغيل برنامج مثل "MPIEXEC -N 58 RAXMLHPC -MPI ..." يؤدي إلى الوصول إلى Calc1 و Calc2 إلى العديد من الوظائف وينصل Opteron إلى عدد قليل في نفس الوقت. ما الخطأ الذي افعله؟

يعتبر

bjoern

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

المحلول

لقد وجدت الحل البديل. لقد استخدمت المعلمة الإضافية "-MachineFile/Path/TO/MPD.Hosts" لأمر mpiexec. والآن ، جميع العقد تعمل بشكل صحيح. مشكلة واحدة واجهتها هي أنني تلقيت رسالة خطأ متابعة:

... mpiu_shmw_seg_create_attach_templ (671): فتح الفشل - لا يوجد مثل هذا الملف أو الدليل ...

لإصلاحه ، اضطررت إلى ضبط متغير البيئة MPICH_NO_LOCAL=1

نصائح أخرى

كما اكتشفت ، يجب أن تمرر رشاش إلى كليهما mpdboot و mpiexec من أجل استخدام عدد عمليات المضيف لكل مضيف. مشكلة "الفشل المفتوح" هي خطأ معروف في MPD ، مدير العملية الذي تستخدمه. نلاحظ أن MPICH_NO_LOCAL=1 سيعمل الحل البديل ، ولكن من المحتمل أن يؤدي إلى عقوبة أداء كبيرة للتواصل الداخلي.

من الواضح أنك تستخدم MPICH2 (أو مشتق MPICH2) ، لكن ليس من الواضح ما هو الإصدار الذي تستخدمه. إذا استطعت ، أوصي بشدة بالترقية إما إلى MPICH2 1.2.1P1 أو (الأفضل من ذلك) 1.3.1. يتضمن كل من هذه الإصدارات مدير عملية أحدث يسمى العدار هذا أسرع بكثير وأكثر قوة. في 1.3.1 ، Hydra هو مدير العملية الافتراضية. لا يتطلب mpdboot المرحلة ، ويدعم أ $HYDRA_HOST_FILE متغير البيئة بحيث لا تضطر إلى تحديد ملف الجهاز على كل mpiexec.

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