schrodinger.application.desmond.autopartition module

A module to provide multiset partition, combination and processor topology decomposition.

Copyright Schrodinger, LLC. All rights reserved.

schrodinger.application.desmond.autopartition.all_multicomb(m)

Return all combinations for multiset m

Parameters

m (list of integer) – the array contains the maximum number of individual unique element in the multiset.

schrodinger.application.desmond.autopartition.get_next_partition(factors)

A partition generator

Parameters

factors (list of integer) – a list of prime numbers

Returns

a three element tuple that represent the partition

@todo:

this algorithm is still not very efficient due to the generation of duplicate combination. A vector partition function with restricted growth order will be a better option.

schrodinger.application.desmond.autopartition.next_prime(n)

A prmie number generator that generates prime number less than or equal to n :type n: int :param n:

:return prime number

schrodinger.application.desmond.autopartition.get_prime_factors(n)

A function to generate all factorizations of a given integer n. :type n: int :param n: an integer to be factorized

:return a list of prime factors.

schrodinger.application.desmond.autopartition.auto_partition(dims, nproc)

A function to calculate best cpu partition based on dimension and number of processor. The object function to optimize:

Parameters
  • dims (list of integer) – simulation box

  • nproc (int) – number of cores

:return an three element integer array that represents the best partition.