[ 
https://issues.apache.org/jira/browse/YARN-2?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13539180#comment-13539180
 ] 

Arun C Murthy commented on YARN-2:
----------------------------------

Ok, I finally got around to finishing this up.

W.r.t cores, on some more thinking, I'm inclined to go along with the concept 
of integral 'virtual cores' instead of a float-precision 'cores' for the 
following reasons:
* It provides a level on indirection to deal with heterogenous cores viz. much 
more important for CPUs (as opposed to memory, disk b/w etc.). I've also added 
a notion of physical-to-virtual cores translation 
(yarn.nodemanager.vcores-pcores-ratio), per NodeManager, similar to 
physical-to-virtual memory translation (yarn.nodemanager.vmem-pmem-ratio) that 
we already have in place.
* It ensures we do minimal floating-point operations in the inner-most loop 
which are very expensive (for e.g. we dropped usage of Math.ceil in 
MAPREDUCE-1354 for JobTracker - Math.ceil is a JNI call). This is something 
I've been very focussed on since the dawn, which explains the integral 
implementations of divideAndCeil we've had since the beginning.

To make it clear, I've also renamed the apis to be (get,set)VirtualCores and 
marked them evolving - in future we can add (get,set)Cores after we finalize 
how we specify not just #cores, but also their capabilities (gigahertz?).

Thoughts?
                
> Enhance CS to schedule accounting for both memory and cpu cores
> ---------------------------------------------------------------
>
>                 Key: YARN-2
>                 URL: https://issues.apache.org/jira/browse/YARN-2
>             Project: Hadoop YARN
>          Issue Type: New Feature
>          Components: capacityscheduler, scheduler
>            Reporter: Arun C Murthy
>            Assignee: Arun C Murthy
>             Fix For: 2.0.3-alpha
>
>         Attachments: MAPREDUCE-4327.patch, MAPREDUCE-4327.patch, 
> MAPREDUCE-4327.patch, MAPREDUCE-4327-v2.patch, MAPREDUCE-4327-v3.patch, 
> MAPREDUCE-4327-v4.patch, MAPREDUCE-4327-v5.patch, YARN-2-help.patch, 
> YARN-2.patch, YARN-2.patch, YARN-2.patch, YARN-2.patch
>
>
> With YARN being a general purpose system, it would be useful for several 
> applications (MPI et al) to specify not just memory but also CPU (cores) for 
> their resource requirements. Thus, it would be useful to the 
> CapacityScheduler to account for both.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to