def largestNativeClique(self, max_chain_length=None):
        """Returns the largest native clique embedding we can find on the
        processor, with the shortest chainlength possible (for that
        clique size).

        OUTPUT:
            score: the score for the returned clique (just ``len(clique)``
            in the class :class:`eden_processor`; may differ in subclasses)

            clique: a list containing lists of qubits, each associated
            to a chain.  These lists of qubits are carefully
            arranged so that

             >>> [zip(chain,chain[1:]) for chain in clique]

            is a list of valid couplers.

        CAVEAT: we assume that the only failed couplers connected to working
        qubits are between two cells.  Any pair of working qubits on opposite
        sides of the same unit cell are assumed to be connected by working
        couplers.
        """
        bigclique = []
        bestscore = None
        if max_chain_length is None:
            wmax = min(self.M, self.N)
        else:
            wmax = max_chain_length - 1

        for w in range(wmax + 1):
            score, clique = self.nativeCliqueEmbed(w)
            if bestscore is None or score > bestscore:
                bigclique = clique
                bestscore = score
        return bestscore, bigclique