إرسال وظائف قسوب ديناميكيا على مجموعة سج بناء على تحميل الكتلة

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

سؤال

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

أخطط لفعل شيء مثل:النوم لمدة 1 دقيقة وتحقق مرة أخرى إذا كان عدد الوظائف في الكتلة هو < 688 ومن ثم تقديم وظائف أخرى.

وفقط لتوضيح سؤالي يتعلق بمعرفة العدد الإجمالي للوظائف المقدمة في المجموعة وليس فقط الوظائف التي قدمتها حاليا.

شكرا مقدما.

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

المحلول

يمكنك استخدام qstat لسرد وظائف جميع المستخدمين;هذا مع awk و wc يمكن استخدامها لمعرفة العدد الإجمالي للوظائف على الكتلة:

qstat -u "*" | awk '{if ($5 == "r" || $5 == "qw") print $0;}' | wc -l

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

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

qstat -u "*"

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

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

نصائح أخرى

اعتمادا على كيفية تكوين الكتلة ، وذلك باستخدام مجموعة العمل (-t الخيار ل qsub) سوف تحصل حول هذا الحد.

لدي حدود مماثلة تم تعيينها لأقصى عدد من الوظائف التي يمكن لمستخدم واحد إرسالها.يتعلق هذا الحد بالحالات الفردية لـ qsub وليس تقديم مجموعة مهمة واحدة يحتمل أن تكون العديد من المهام (يتم تعيين هذا الحد عبر متغير تكوين آخر, max_aj_tasks).

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