mpiexec باستخدام عدد خاطئ من وحدات المعالجة المركزية
-
28-09-2019 - |
سؤال
أحاول إعداد مجموعة 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
.