Python: ejecute el subproceso cat en paralelo

Estoy corriendo varioscat | zgrep comandos en un servidor remoto y recopilar su salida individualmente para su posterior procesamiento:

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)

Sin embargo, esto da como resultado la ejecución secuencial de los comandos de subproceso ('ssh ... cat ...'). El segundo pico espera a que termine el primero y así sucesivamente.

¿Cómo puedo modificar este código para que las llamadas del subproceso se ejecuten en paralelo, sin dejar de poder recopilar la salida de cada uno de forma individual?

Respuestas a la pregunta(2)

Su respuesta a la pregunta