[GE issues] RE: Creating a Soft consumable resource

molumurj <[email protected]> Wed, 21 Jul 2010 21:15:06 +0530
Newsgroups gmane.comp.clustering.gridengine.users,gmane.comp.java.sun.ipl.bugs
Message-ID <6404320ADBB23E4BAB6DBFEB925CFFCD278BF6EFB5@HYDMBX2.winmail.deshaw.com>
I went through the source code and the code to deny soft resources consumab=
les was added in SGE v5.3 to fix the bug id http://gridengine.sunsource.net=
/issues/show_bug.cgi?id=3D223

http://gridengine.sunsource.net/ds/viewMessage.do?dsMessageId=3D78898&dsFor=
umId=3D35

Quoting: (=20
<>=20
 I think there is a little bug inside SGE 5.3 . =20
 If I have a host complex=20
 mpi_down mpi_down BOOL false =3D=3D NO NO false=20
 and a queue with=20
 load_thresholds      np_load_short=3D1.1,mpi_down=3Dtrue=20
 this queues is alarmed when no loadreport set mpi_down=20
 to false. =20
</>

From: ./daemons/qmaster/sge_job_qmaster.c
<>
/****** sge_job/deny_soft_consumables() ***********************************=
*****
*  NAME
*     deny_soft_consumables() -- Deny soft consumables
*
*  SYNOPSIS
*     static int deny_soft_consumables(lList **alpp, lList *srl)
*
*  FUNCTION
*     Find out if consumables are requested and deny them.
*
*  INPUTS
*     lList** alpp                    - answer list pointer pointer
*     lList *srl                      - jobs JB_soft_resource_list
*     const lList *master_centry_list - the master centry list
*
*  RESULT
*     static int - 0 request can pass
*                !=3D0 consumables requested soft
*
***************************************************************************=
****/
int deny_soft_consumables(lList **alpp, lList *srl, const lList *master_cen=
try_list)
{
   lListElem *entry, *dcep;
   const char *name;

   DENTER(TOP_LAYER, "deny_soft_consumables");

   /* ensure no consumables are requested in JB_soft_resource_list */
   for_each(entry, srl) {
      name =3D lGetString(entry, CE_name);

      if (!(dcep =3D centry_list_locate(master_centry_list, name))) {
         ERROR((SGE_EVENT, MSG_ATTRIB_MISSINGATTRIBUTEXINCOMPLEXES_S , name=
));
         answer_list_add(alpp, SGE_EVENT, STATUS_EUNKNOWN, ANSWER_QUALITY_E=
RROR);
         DRETURN(-1);
      }

      /* ignore non-consumables */
      if (lGetUlong(dcep, CE_consumable)) {
         ERROR((SGE_EVENT, MSG_JOB_MOD_SOFTREQCONSUMABLE_S, name));
         answer_list_add(alpp, SGE_EVENT, STATUS_EUNKNOWN, ANSWER_QUALITY_E=
RROR);
         DRETURN(-1);
      }
   }

   DRETURN(0);
}
</>

<>

            if (deny_soft_consumables(alpp, lGetList(jep, JB_soft_resource_=
list), master_centry_list)) {
            DRETURN(STATUS_EUNKNOWN);
         }
</>


Can someone more knowledgeable please comment on the changes or point us to=
 some documentation on the soft resources.


Thanks.

-----Original Message-----
From: Molumuri, Janardhan=20
Sent: Monday, July 19, 2010 8:02 PM
To: [email protected]
Cc: svibhore
Subject: RE: [GE users] Creating a Soft consumable resource

A soft request on consumable attributes is not working.

From the source code:

From msg_qmaster.h:
<<>>
#define MSG_JOB_MOD_SOFTREQCONSUMABLE_S  _MESSAGE(33307, _("denied: soft re=
quests on consumables like "SFQ" are not supported"))
<</>>

Is there any reason behind enforcing this? If so how can we use soft reques=
ts.

>qsub -soft -l test=3D0.1 uptime
Unable to run job: denied: soft requests on consumables like "test" are not=
 supported.
Exiting.
>

-----Original Message-----
From: templedf [mailto:[email protected]]=20
Sent: Wednesday, July 14, 2010 7:55 PM
To: [email protected]
Cc: svibhore
Subject: Re: [GE users] Creating a Soft consumable resource

The qsub -soft switch with a consumable is what you want.  If you assign=20
1 of your consumable to every machine and then request it with -soft,=20
the scheduler will try to put only one per machine, but if it runs out=20
of machines, it will ignore the consumable.

Daniel

On 07/14/10 04:33 AM, svibhore wrote:
> I have a scenario where I want to create a resource which should be used
> ( ideally) one per host but if all the resources are used( i.e all the
> hosts have job using this consumable) the jobs should not fail and get
> scheduled on any host.
>
> In a typical hard resource the jobs would fail if all the hosts have one
> job running on them, and in soft resource I cannot limit the number of
> jobs getting scheduled on the host( which will be limited by number of
> slots).
>
> This will achieve two things for me, first the jobs gets distributed on
> all host as one job per host and secondly this will guarantee that jobs
> would not fail even if all the hosts have a job running on them.
>
> Ideas ?
>
> Regards,
> Shantanu

------------------------------------------------------
http://gridengine.sunsource.net/ds/viewMessage.do?dsForumId=3D38&dsMessageI=
d=3D267984

To unsubscribe from this discussion, e-mail: [users-unsubscribe@gridengine.=
sunsource.net].

------------------------------------------------------
http://gridengine.sunsource.net/ds/viewMessage.do?dsForumId=3D38&dsMessageI=
d=3D269004

To unsubscribe from this discussion, e-mail: [users-unsubscribe@gridengine.=
sunsource.net].

------------------------------------------------------
http://gridengine.sunsource.net/ds/viewMessage.do?dsForumId=3D38&dsMessageI=
d=3D269505

To unsubscribe from this discussion, e-mail: [users-unsubscribe@gridengine.=
sunsource.net].