Jonathan Calmels created MESOS-3521:
---------------------------------------

             Summary: Support for hardware topology and resources description
                 Key: MESOS-3521
                 URL: https://issues.apache.org/jira/browse/MESOS-3521
             Project: Mesos
          Issue Type: Improvement
            Reporter: Jonathan Calmels


In heterogeneous clusters, tasks sometimes have strong constraints on the type 
of hardware they need to execute on. The current solution is to use custom 
attributes to describe resources on the agents.
While this solution works, the current attribute format is somehow constraining 
and requires workarounds on both the agent and the scheduler (e.g. Base64 RFC 
6920). In addition, we often need to encode the link between an attribute and a 
resource which is inherently error prone and implementation defined from one 
scheduler to another.

I would like to propose a unified format to expose hardware topology and 
resources information at the agent level.
This format would effectively extend the following specification: 
[http://mesos.apache.org/documentation/attributes-resources/]

{code:title=specification}
kv : text ":" ( range | kvSet | scalar | text )
kvSet : "{" kv ( "," kv )* "}"
info : ( range | text | "*" ) : kvSet
infoSet : "{" info ( "," info )* "}"
resourceName : text | "*"
resourcesInfoValue : text "(" resourceName ")" ":" infoSet
resourcesInfo : resourcesInfoValue ( ";" resourcesInfoValue )*
{code}

{code:javascript|title=example}
--resources= gpus:{card0, card1};ports:[0-100];cpus:8
--resources_info= nvidia(gpus): {               
                        card0: {
                                uuid: GPU-34e8d7ba-0e4d-ac00-6852-695d5d404f51,
                                name: GeForce_GTX_980,
                                path: /dev/nvidia0,
                                clocks: {
                                        graphic: 1392,
                                        sm: 1392
                                }
                        },
                        card1: {
                                uuid: GPU-12e457ba-0f4e-bf01-3452-674a5b212c21,
                                name: GeForce_GTX_970,
                                path: /dev/nvidia1
                                clocks: {
                                        graphic: 1392,
                                        sm: 1392
                                }
                        },
                        *: {
                                driver: 352.39
                        }
                 };
                 services(ports): {
                        [0-79]: {
                                type: daemon,
                                user: root
                        },
                        [80-100]: {
                                type: web_services,
                                user: www-data
                        }
                 };
                 procs(cpus): {
                        *: {
                                name: Intel_i7_6700K,
                                frequency: 4,
                                cache: 8
                        }
                 }
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to