Hi Elizabeth, Just FYI, there is a JIRA tracing the resource revocation here https://issues.apache.org/jira/browse/MESOS-4967
And I'm also working on the short term solution of excluding the scarce resources from allocator (https://reviews.apache.org/r/48906/), with this feature and Kevin's GPU_RESOURCES capability, the mesos can handle scarce resources well. Thanks, Guangya On Wed, Jun 22, 2016 at 4:45 AM, Kevin Klues <klue...@gmail.com> wrote: > As an FYI, preliminary support to work around this issue for GPUs will > appear in the 1.0 release > https://reviews.apache.org/r/48914/ > > This doesn't solve the problem of scarce resources in general, but it > will at least keep non-GPU workloads from starving out GPU-based > workloads on GPU capable machines. The downside of this approach is > that only GPU aware frameworks will be able to launch stuff on GPU > capable machines (meaning some of their resources could go unused > unnecessarily). We decided this tradeoff is acceptable for now. > > Kevin > > On Tue, Jun 21, 2016 at 1:40 PM, Elizabeth Lingg > <elizabeth_li...@apple.com> wrote: > > Thanks, looking forward to discussion and review on your document. The > main use case I see here is that some of our frameworks will want to > request the GPU resources, and we want to make sure that those frameworks > are able to successfully launch tasks on agents with those resources. We > want to be certain that other frameworks that do not require GPU’s will not > request all other resources on those agents (i.e. cpu, disk, memory) which > would mean the GPU resources are not allocated and the frameworks that > require them will not receive them. As Ben Mahler mentioned, "(2) Because > we do not have revocation yet, if a framework decides to consume the > non-GPU resources on a GPU machine, it will prevent the GPU workloads from > running!” This will occur for us in clusters where we have higher > utilization as well as different types of workloads running. Smart task > placement then becomes more relevant (i.e. we want to be able to schedule > with scarce resources successfully and we may have considerations like not > scheduling too many I/O bound workloads on a single host or more stringent > requirements for scheduling persistent tasks). > > > > Elizabeth Lingg > > > > > > > >> On Jun 20, 2016, at 7:24 PM, Guangya Liu <gyliu...@gmail.com> wrote: > >> > >> Had some discussion with Ben M, for the following two solutions: > >> > >> 1) Ben M: Create sub-pools of resources based on machine profile and > >> perform fair sharing / quota within each pool plus a framework > >> capability GPU_AWARE > >> to enable allocator filter out scarce resources for some frameworks. > >> 2) Guangya: Adding new sorters for non scarce resources plus a framework > >> capability GPU_AWARE to enable allocator filter out scarce resources for > >> some frameworks. > >> > >> Both of the above two solutions are meaning same thing and there is no > >> difference between those two solutions: Create sub-pools of resources > will > >> need to introduce different sorters for each sub-pools, so I will merge > >> those two solutions to one. > >> > >> Also had some dicsussion with Ben for AlexR's solution of implementing > >> "requestResource", this API should be treated as an improvement to the > >> issues of doing resource allocation pessimistically. (e.g. we > offer/decline > >> the GPUs to 1000 frameworks before offering it to the GPU framework that > >> wants it). And the "requestResource" is providing *more information* to > >> mesos. Namely, it gives us awareness of demand. > >> > >> Even though for some cases, we can use the "requestResource" to get all > of > >> the scarce resources, and then once those scarce resources are in use, > then > >> the WDRF sorter will sorter non scarce resources as normal, but the > problem > >> is that we cannot guarantee that the framework which have > "requestResource" > >> can always consume all of the scarce resources before those scarce > resource > >> allocated to other frameworks. > >> > >> I'm planning to draft a document based on solution 1) "Create sub-pools" > >> for the long term solution, any comments are welcome! > >> > >> Thanks, > >> > >> Guangya > >> > >> On Sat, Jun 18, 2016 at 11:58 AM, Guangya Liu <gyliu...@gmail.com> > wrote: > >> > >>> Thanks Du Fan. So you mean that we should have some clear rules in > >>> document or somewhere else to tell or guide cluster admin which > resources > >>> should be classified as scarce resources, right? > >>> > >>> On Sat, Jun 18, 2016 at 2:38 AM, Du, Fan <fan...@intel.com> wrote: > >>> > >>>> > >>>> > >>>> On 2016/6/17 7:57, Guangya Liu wrote: > >>>> > >>>>> @Fan Du, > >>>>> > >>>>> Currently, I think that the scarce resources should be defined by > cluster > >>>>> admin, s/he can specify those scarce resources via a flag when master > >>>>> start > >>>>> up. > >>>>> > >>>> > >>>> This is not what I mean. > >>>> IMO, it's not cluster admin's call to decide what resources should be > >>>> marked as scarce , they can carry out the operation, but should be > advised > >>>> on based on the clear rule: to what extend the resource is scarce > compared > >>>> with other resources, and it will affect wDRF by causing starvation > for > >>>> frameworks which holds scarce resources, that's my point. > >>>> > >>>> To my best knowledge here, a quantitative study of how wDRF behaves in > >>>> scenario of one/multiple scarce resources first will help to verify > the > >>>> proposed approach, and guide the user of this functionality. > >>>> > >>>> > >>>> > >>>> Regarding to the proposal of generic scarce resources, do you have any > >>>>> thoughts on this? I can see that giving framework developers the > options > >>>>> of > >>>>> define scarce resources may bring trouble to mesos, it is better to > let > >>>>> mesos define those scarce but not framework developer. > >>>>> > >>>> > >>> > > > > > > -- > ~Kevin >