Given the pipeline topology starts ``Pipers`` in the order input -> 
        output. See ``Piper.start``. ``Pipers`` instances are started in two 
        stages, which allows them to share ``NuMaps``.

def start(self):
        """
        Given the pipeline topology starts ``Pipers`` in the order input -> 
        output. See ``Piper.start``. ``Pipers`` instances are started in two 
        stages, which allows them to share ``NuMaps``.
        
        """
        # top - > bottom of pipeline
        pipers = self.postorder()
        # 
        for piper in pipers:
            piper.start(stages=(0, 1))
        for piper in pipers:
            piper.start(stages=(2,))