Esempio n. 1
0
def nprocesses_nthreads(n=CPU_COUNT):
    """
    The default breakdown of processes and threads for a given number of cores

    Parameters
    ----------
    n: int
        Number of available cores

    Examples
    --------
    >>> nprocesses_nthreads(4)
    (4, 1)
    >>> nprocesses_nthreads(32)
    (8, 4)

    Returns
    -------
    nprocesses, nthreads
    """
    if n <= 4:
        processes = n
    else:
        processes = min(f for f in factors(n) if f >= math.sqrt(n))
    threads = n // processes
    return (processes, threads)
Esempio n. 2
0
def test_factors():
    assert factors(0) == set()
    assert factors(1) == {1}
    assert factors(2) == {1, 2}
    assert factors(12) == {1, 2, 3, 4, 6, 12}
    assert factors(15) == {1, 3, 5, 15}