[CMake] Does Makefile generated by CMake support make -jN?

Chaos Zhang zcsd2012 at gmail.com
Wed Jul 13 02:39:10 EDT 2016


Thanks for your analysis for me Andrew. I can't use "-j" options, i think the
reason is the project i dealed with is not parallel. Thus when i use "make
-jN", it couldn't work correctly every time. Obviously it caused by the
Makefile generated by CMake, so i wonder if there are some CMake options to
use CPU effectively. Because i found when i use already exist Makefile, just
use "make", it used about 480% CPU. And when i use CMake generated Makefile,
it just uesd about 96% CPU. The "hardware acceleration" i said means how to
CPU more effectively in CMake.

Thanks again,
Chao

Andrew Melo wrote
> On Tue, Jul 12, 2016 at 10:48 PM, Chaos Zhang <

> zcsd2012@

> > wrote:
>> Thanks for your reply Raymond, by 'If you got 96% both times, then I
>> would
>> say there's a problem.', did you mean if make performed like this, it
>> means
>> this project can't use make -jN?
> 
> If "make -j1" and "make -j8" ran in the same amount of time, there
> would be a problem. Since "make -j1" uses 96% CPU and "make -j8" uses
> 690% CPU, it implies that the "-j" options make compilation time
> scale, which is what you want.
> 
>> BTW, does CMake support some options to
>> turn on hardware acceleration?
> 
> What do you mean by "hardware acceleration"?
> 
> 
> 
>>
>> Raymond Wan-2 wrote
>>> Hi Chao,
>>>
>>>
>>> On Wed, Jul 13, 2016 at 10:54 AM, Chaos Zhang <
>>
>>> zcsd2012@
>>
>>> > wrote:
>>>> I was trying to compile my project using CMake, after CMake generated
>>>> Makefile.
>>>> I used `/usr/bin/time -v make` to make the Makefile,  got the result:
>>>> 'Percent of CPU this job got: 96%'.
>>>> Then i used `/usr/bin/time -v make -j8` to make the Makefile, the
>>>> result
>>>> of
>>>> CPU used is  'Percent of CPU this job got: 648%'.
>>>> So i wonder if Makefile generated by CMake support make -jN, BTW my CPU
>>>> is
>>>> I7-4790, and after i use 'cat /proc/cpuinfo', there are 8 processors.
>>>
>>>
>>> I'm not sure what you are asking...
>>>
>>> You ran make with -j 8 and you got a percentage greater than 96% ...
>>> this implies that the Makefile does support -jN, doesn't it?  If you
>>> got 96% both times, then I would say there's a problem.
>>>
>>> Is what you're wondering why it is 648% and not 800%?  I think that
>>> depends on the dependencies in your Makefile.  It's possible that some
>>> of them depend on each other in such a way that 8 parallel threads is
>>> not possible.
>>>
>>> Also, I can't remember the value returned by /usr/bin/time -v, but I
>>> guess 648% is the average and not maximum.  So, perhaps there are
>>> parts within the Makefile that only one thread could be used and then
>>> it gets averaged out?
>>>
>>> Ray
>>> --
>>>
>>> Powered by www.kitware.com
>>>
>>> Please keep messages on-topic and check the CMake FAQ at:
>>> http://www.cmake.org/Wiki/CMake_FAQ
>>>
>>> Kitware offers various services to support the CMake community. For more
>>> information on each offering, please visit:
>>>
>>> CMake Support: http://cmake.org/cmake/help/support.html
>>> CMake Consulting: http://cmake.org/cmake/help/consulting.html
>>> CMake Training Courses: http://cmake.org/cmake/help/training.html
>>>
>>> Visit other Kitware open-source projects at
>>> http://www.kitware.com/opensource/opensource.html
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://public.kitware.com/mailman/listinfo/cmake
>>
>>
>>
>>
>>
>> --
>> View this message in context:
>> http://cmake.3232098.n2.nabble.com/Does-Makefile-generated-by-CMake-support-make-jN-tp7593949p7593951.html
>> Sent from the CMake mailing list archive at Nabble.com.
>> --
>>
>> Powered by www.kitware.com
>>
>> Please keep messages on-topic and check the CMake FAQ at:
>> http://www.cmake.org/Wiki/CMake_FAQ
>>
>> Kitware offers various services to support the CMake community. For more
>> information on each offering, please visit:
>>
>> CMake Support: http://cmake.org/cmake/help/support.html
>> CMake Consulting: http://cmake.org/cmake/help/consulting.html
>> CMake Training Courses: http://cmake.org/cmake/help/training.html
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Follow this link to subscribe/unsubscribe:
>> http://public.kitware.com/mailman/listinfo/cmake
> 
> 
> 
> -- 
> --
> Andrew Melo
> -- 
> 
> Powered by www.kitware.com
> 
> Please keep messages on-topic and check the CMake FAQ at:
> http://www.cmake.org/Wiki/CMake_FAQ
> 
> Kitware offers various services to support the CMake community. For more
> information on each offering, please visit:
> 
> CMake Support: http://cmake.org/cmake/help/support.html
> CMake Consulting: http://cmake.org/cmake/help/consulting.html
> CMake Training Courses: http://cmake.org/cmake/help/training.html
> 
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
> 
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/cmake





--
View this message in context: http://cmake.3232098.n2.nabble.com/Does-Makefile-generated-by-CMake-support-make-jN-tp7593949p7593955.html
Sent from the CMake mailing list archive at Nabble.com.


More information about the CMake mailing list