Python: executar subprocesso cat em paralelo

Estou executando várioscat | zgrep comandos em um servidor remoto e reunindo sua saída individualmente para processamento adicional:

class MainProcessor(mp.Process):
    def __init__(self, peaks_array):
        super(MainProcessor, self).__init__()
        self.peaks_array = peaks_array

    def run(self):
        for peak_arr in self.peaks_array:
            peak_processor = PeakProcessor(peak_arr)
            peak_processor.start()

class PeakProcessor(mp.Process):
    def __init__(self, peak_arr):
        super(PeakProcessor, self).__init__()
        self.peak_arr = peak_arr

    def run(self):
        command = 'ssh remote_host cat files_to_process | zgrep --mmap "regex" '
        log_lines = (subprocess.check_output(command, shell=True)).split('\n')
        process_data(log_lines)

Isso, no entanto, resulta na execução seqüencial dos comandos do subprocesso ('ssh ... cat ...'). O segundo pico aguarda que o primeiro termine e assim por diante.

Como posso modificar esse código para que as chamadas de subprocesso sejam executadas em paralelo, enquanto ainda é possível coletar a saída de cada uma individualmente?

questionAnswers(2)

yourAnswerToTheQuestion