manpagez: man pages & more
man MCE::Util(3)
Home | html | info | man
MCE::Util(3)          User Contributed Perl Documentation         MCE::Util(3)




NAME

       MCE::Util - Utility functions


VERSION

       This document describes MCE::Util version 1.843


SYNOPSIS

        use MCE::Util;


DESCRIPTION

       A utility module for MCE. Nothing is exported by default. Exportable is
       get_ncpu.

   get_ncpu()
       Returns the number of logical (online/active/enabled) CPU cores; never
       smaller than one.

        my $ncpu = MCE::Util::get_ncpu();

       Specifying 'auto' for max_workers calls MCE::Util::get_ncpu
       automatically.  MCE 1.521 sets an upper-limit when specifying 'auto'.
       The reason is mainly to safeguard apps from spawning 100 workers on a
       box having 100 cores.  This is important for apps which are IO-bound.

        use MCE;

        ## 'Auto' is the total # of logical cores (lcores) (8 maximum, MCE 1.521).
        ## The computed value will not exceed the # of logical cores on the box.

        my $mce = MCE->new(

        max_workers => 'auto',       ##  1 on HW with 1-lcores;  2 on  2-lcores
        max_workers =>  16,          ## 16 on HW with 4-lcores; 16 on 32-lcores

        max_workers => 'auto',       ##  4 on HW with 4-lcores;  8 on 16-lcores
        max_workers => 'auto*1.5',   ##  4 on HW with 4-lcores; 12 on 16-lcores
        max_workers => 'auto*2.0',   ##  4 on HW with 4-lcores; 16 on 16-lcores
        max_workers => 'auto/2.0',   ##  2 on HW with 4-lcores;  4 on 16-lcores
        max_workers => 'auto+3',     ##  4 on HW with 4-lcores; 11 on 16-lcores
        max_workers => 'auto-1',     ##  3 on HW with 4-lcores;  7 on 16-lcores

        max_workers => MCE::Util::get_ncpu,   ## run on all lcores
        );

       In summary:

        1. Auto has an upper-limit of 8 in MCE 1.521 (# of lcores, 8 maximum)
        2. Math may be applied with auto (*/+-) to change the upper limit
        3. The computed value for auto will not exceed the total # of lcores
        4. One can specify max_workers explicitly to a hard value
        5. MCE::Util::get_ncpu returns the actual # of lcores


ACKNOWLEDGMENTS

       The portable code for detecting the number of processors was adopted
       from Test::Smoke::SysInfo.


INDEX

       MCE(3), MCE::Core(3)


AUTHOR

       Mario E. Roy, <marioeroyA ATA gmailA DOTA com>



perl v5.28.2                      2019-07-24                      MCE::Util(3)

mce 1.843.0 - Generated Tue Aug 6 13:34:56 CDT 2019
© manpagez.com 2000-2025
Individual documents may contain additional copyright information.